@alfresco/adf-content-services 8.1.0-16116688508 → 8.1.0-16117584844

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 (414) hide show
  1. package/bundles/assets/adf-content-services/i18n/en.json +1 -3
  2. package/esm2022/adf-content-services.mjs +5 -0
  3. package/esm2022/lib/agent/index.mjs +18 -0
  4. package/esm2022/lib/agent/public-api.mjs +18 -0
  5. package/esm2022/lib/agent/services/agent.service.mjs +60 -0
  6. package/esm2022/lib/alfresco-icon/alfresco-icon.component.mjs +27 -0
  7. package/esm2022/lib/api-factories/alfresco-api-no-auth.service.mjs +42 -0
  8. package/esm2022/lib/api-factories/alfresco-api-v2-loader.service.mjs +77 -0
  9. package/esm2022/lib/api-factories/index.mjs +18 -0
  10. package/esm2022/lib/api-factories/public-api.mjs +19 -0
  11. package/esm2022/lib/aspect-list/aspect-list-dialog-data.interface.mjs +18 -0
  12. package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +77 -0
  13. package/esm2022/lib/aspect-list/aspect-list.component.mjs +139 -0
  14. package/esm2022/lib/aspect-list/aspect-list.module.mjs +35 -0
  15. package/esm2022/lib/aspect-list/index.mjs +18 -0
  16. package/esm2022/lib/aspect-list/public-api.mjs +24 -0
  17. package/esm2022/lib/aspect-list/services/aspect-list.service.mjs +83 -0
  18. package/esm2022/lib/aspect-list/services/dialog-aspect-list.service.mjs +86 -0
  19. package/esm2022/lib/aspect-list/services/node-aspect.service.mjs +52 -0
  20. package/esm2022/lib/auth-loader/content-auth-loader-factory.mjs +26 -0
  21. package/esm2022/lib/auth-loader/content-auth-loader.service.mjs +42 -0
  22. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +166 -0
  23. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +35 -0
  24. package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +65 -0
  25. package/esm2022/lib/breadcrumb/index.mjs +18 -0
  26. package/esm2022/lib/breadcrumb/public-api.mjs +20 -0
  27. package/esm2022/lib/category/categories-management/categories-management-mode.mjs +22 -0
  28. package/esm2022/lib/category/categories-management/categories-management.component.mjs +308 -0
  29. package/esm2022/lib/category/category.module.mjs +33 -0
  30. package/esm2022/lib/category/index.mjs +18 -0
  31. package/esm2022/lib/category/models/category-node.interface.mjs +18 -0
  32. package/esm2022/lib/category/public-api.mjs +23 -0
  33. package/esm2022/lib/category/services/category-tree-datasource.service.mjs +80 -0
  34. package/esm2022/lib/category/services/category.service.mjs +159 -0
  35. package/esm2022/lib/common/events/file.event.mjs +46 -0
  36. package/esm2022/lib/common/index.mjs +18 -0
  37. package/esm2022/lib/common/interfaces/saved-search.interface.mjs +18 -0
  38. package/esm2022/lib/common/interfaces/search-configuration.interface.mjs +18 -0
  39. package/esm2022/lib/common/mocks/ecm-user.service.mock.mjs +37 -0
  40. package/esm2022/lib/common/models/allowable-operations.enum.mjs +30 -0
  41. package/esm2022/lib/common/models/ecm-company.model.mjs +19 -0
  42. package/esm2022/lib/common/models/ecm-user.model.mjs +45 -0
  43. package/esm2022/lib/common/models/file.model.mjs +53 -0
  44. package/esm2022/lib/common/models/node-metadata.model.mjs +23 -0
  45. package/esm2022/lib/common/models/permissions.enum.mjs +32 -0
  46. package/esm2022/lib/common/public-api.mjs +37 -0
  47. package/esm2022/lib/common/services/card-view-content-update.service.mjs +55 -0
  48. package/esm2022/lib/common/services/content.service.mjs +180 -0
  49. package/esm2022/lib/common/services/discovery-api.service.mjs +79 -0
  50. package/esm2022/lib/common/services/favorites-api.service.mjs +84 -0
  51. package/esm2022/lib/common/services/nodes-api.service.mjs +251 -0
  52. package/esm2022/lib/common/services/people-content.service.mjs +138 -0
  53. package/esm2022/lib/common/services/rendition.service.mjs +270 -0
  54. package/esm2022/lib/common/services/saved-searches.service.mjs +206 -0
  55. package/esm2022/lib/common/services/sites.service.mjs +243 -0
  56. package/esm2022/lib/common/services/upload.service.mjs +391 -0
  57. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +54 -0
  58. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +490 -0
  59. package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +128 -0
  60. package/esm2022/lib/content-metadata/content-metadata.module.mjs +36 -0
  61. package/esm2022/lib/content-metadata/index.mjs +18 -0
  62. package/esm2022/lib/content-metadata/interfaces/aspect-oriented-config.interface.mjs +18 -0
  63. package/esm2022/lib/content-metadata/interfaces/card-view-group.interface.mjs +18 -0
  64. package/esm2022/lib/content-metadata/interfaces/content-metadata-config.interface.mjs +18 -0
  65. package/esm2022/lib/content-metadata/interfaces/content-metadata-custom-panel.interface.mjs +18 -0
  66. package/esm2022/lib/content-metadata/interfaces/content-metadata-panel.interface.mjs +18 -0
  67. package/esm2022/lib/content-metadata/interfaces/content-metadata.interfaces.mjs +28 -0
  68. package/esm2022/lib/content-metadata/interfaces/indifferent-config.interface.mjs +18 -0
  69. package/esm2022/lib/content-metadata/interfaces/layout-oriented-config.interface.mjs +18 -0
  70. package/esm2022/lib/content-metadata/interfaces/organised-property-group.interface.mjs +18 -0
  71. package/esm2022/lib/content-metadata/interfaces/preset-config.interface.mjs +18 -0
  72. package/esm2022/lib/content-metadata/interfaces/property-group.interface.mjs +18 -0
  73. package/esm2022/lib/content-metadata/interfaces/property.interface.mjs +18 -0
  74. package/esm2022/lib/content-metadata/public-api.mjs +31 -0
  75. package/esm2022/lib/content-metadata/services/basic-properties.service.mjs +107 -0
  76. package/esm2022/lib/content-metadata/services/config/aspect-oriented-config.service.mjs +106 -0
  77. package/esm2022/lib/content-metadata/services/config/content-metadata-config.factory.mjs +76 -0
  78. package/esm2022/lib/content-metadata/services/config/indifferent-config.service.mjs +40 -0
  79. package/esm2022/lib/content-metadata/services/config/layout-oriented-config.service.mjs +108 -0
  80. package/esm2022/lib/content-metadata/services/config/property-group-reader.mjs +33 -0
  81. package/esm2022/lib/content-metadata/services/content-metadata.service.mjs +99 -0
  82. package/esm2022/lib/content-metadata/services/content-type-property.service.mjs +134 -0
  83. package/esm2022/lib/content-metadata/services/property-descriptors.service.mjs +52 -0
  84. package/esm2022/lib/content-metadata/services/property-groups-translator.service.mjs +169 -0
  85. package/esm2022/lib/content-node-selector/content-node-dialog.service.mjs +256 -0
  86. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +617 -0
  87. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.mjs +66 -0
  88. package/esm2022/lib/content-node-selector/content-node-selector.component-data.interface.mjs +18 -0
  89. package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +205 -0
  90. package/esm2022/lib/content-node-selector/content-node-selector.module.mjs +50 -0
  91. package/esm2022/lib/content-node-selector/index.mjs +18 -0
  92. package/esm2022/lib/content-node-selector/name-location-cell/name-location-cell.component.mjs +48 -0
  93. package/esm2022/lib/content-node-selector/public-api.mjs +25 -0
  94. package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +168 -0
  95. package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +287 -0
  96. package/esm2022/lib/content-node-share/content-node-share.directive.mjs +102 -0
  97. package/esm2022/lib/content-node-share/content-node-share.module.mjs +35 -0
  98. package/esm2022/lib/content-node-share/content-node-share.settings.mjs +18 -0
  99. package/esm2022/lib/content-node-share/index.mjs +18 -0
  100. package/esm2022/lib/content-node-share/public-api.mjs +22 -0
  101. package/esm2022/lib/content-node-share/services/shared-links-api.service.mjs +83 -0
  102. package/esm2022/lib/content-type/content-type-dialog.component.mjs +57 -0
  103. package/esm2022/lib/content-type/content-type-metadata.interface.mjs +18 -0
  104. package/esm2022/lib/content-type/content-type.service.mjs +52 -0
  105. package/esm2022/lib/content-type/index.mjs +20 -0
  106. package/esm2022/lib/content.module.mjs +277 -0
  107. package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +51 -0
  108. package/esm2022/lib/dialogs/dialog.module.mjs +52 -0
  109. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.mjs +111 -0
  110. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.module.mjs +38 -0
  111. package/esm2022/lib/dialogs/download-zip/services/download-zip.service.mjs +66 -0
  112. package/esm2022/lib/dialogs/folder/folder-name.validators.mjs +44 -0
  113. package/esm2022/lib/dialogs/folder/folder.dialog.mjs +146 -0
  114. package/esm2022/lib/dialogs/index.mjs +18 -0
  115. package/esm2022/lib/dialogs/library/library.dialog.mjs +224 -0
  116. package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +115 -0
  117. package/esm2022/lib/dialogs/public-api.mjs +25 -0
  118. package/esm2022/lib/directives/auto-focus.directive.mjs +38 -0
  119. package/esm2022/lib/directives/check-allowable-operation.directive.mjs +126 -0
  120. package/esm2022/lib/directives/content-directive.module.mjs +75 -0
  121. package/esm2022/lib/directives/index.mjs +18 -0
  122. package/esm2022/lib/directives/library-favorite.directive.mjs +119 -0
  123. package/esm2022/lib/directives/library-membership.directive.mjs +202 -0
  124. package/esm2022/lib/directives/node-counter.directive.mjs +59 -0
  125. package/esm2022/lib/directives/node-delete.directive.mjs +177 -0
  126. package/esm2022/lib/directives/node-download.directive.mjs +138 -0
  127. package/esm2022/lib/directives/node-favorite.directive.mjs +193 -0
  128. package/esm2022/lib/directives/node-lock.directive.mjs +57 -0
  129. package/esm2022/lib/directives/node-restore.directive.mjs +218 -0
  130. package/esm2022/lib/directives/public-api.mjs +28 -0
  131. package/esm2022/lib/document-list/components/content-action/content-action-list.component.mjs +60 -0
  132. package/esm2022/lib/document-list/components/content-action/content-action.component.mjs +196 -0
  133. package/esm2022/lib/document-list/components/document-list.component.mjs +965 -0
  134. package/esm2022/lib/document-list/components/document-list.token.mjs +21 -0
  135. package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +42 -0
  136. package/esm2022/lib/document-list/components/filter-header/filter-header.component.mjs +107 -0
  137. package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +131 -0
  138. package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +91 -0
  139. package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +86 -0
  140. package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +118 -0
  141. package/esm2022/lib/document-list/components/node.event.mjs +30 -0
  142. package/esm2022/lib/document-list/components/trashcan-name-column/trashcan-name-column.component.mjs +83 -0
  143. package/esm2022/lib/document-list/data/image-resolver.model.mjs +18 -0
  144. package/esm2022/lib/document-list/data/row-filter.model.mjs +18 -0
  145. package/esm2022/lib/document-list/data/share-data-row.model.mjs +102 -0
  146. package/esm2022/lib/document-list/data/share-datatable-adapter.mjs +258 -0
  147. package/esm2022/lib/document-list/document-list.module.mjs +75 -0
  148. package/esm2022/lib/document-list/index.mjs +18 -0
  149. package/esm2022/lib/document-list/interfaces/document-list-loader.interface.mjs +18 -0
  150. package/esm2022/lib/document-list/models/content-action.model.mjs +59 -0
  151. package/esm2022/lib/document-list/models/document-folder.model.mjs +23 -0
  152. package/esm2022/lib/document-list/models/node-action.enum.mjs +27 -0
  153. package/esm2022/lib/document-list/models/permissions-style.model.mjs +27 -0
  154. package/esm2022/lib/document-list/models/permissions.model.mjs +26 -0
  155. package/esm2022/lib/document-list/models/preset.model.mjs +257 -0
  156. package/esm2022/lib/document-list/public-api.mjs +47 -0
  157. package/esm2022/lib/document-list/services/custom-resources.service.mjs +378 -0
  158. package/esm2022/lib/document-list/services/document-actions.service.mjs +142 -0
  159. package/esm2022/lib/document-list/services/document-list.service.mjs +175 -0
  160. package/esm2022/lib/document-list/services/folder-actions.service.mjs +137 -0
  161. package/esm2022/lib/document-list/services/lock.service.mjs +72 -0
  162. package/esm2022/lib/document-list/services/node-actions.service.mjs +122 -0
  163. package/esm2022/lib/group/index.mjs +18 -0
  164. package/esm2022/lib/group/public-api.mjs +18 -0
  165. package/esm2022/lib/group/services/group.service.mjs +84 -0
  166. package/esm2022/lib/infinite-scroll-datasource/index.mjs +18 -0
  167. package/esm2022/lib/infinite-scroll-datasource/infinite-scroll-datasource.mjs +69 -0
  168. package/esm2022/lib/infinite-scroll-datasource/public-api.mjs +18 -0
  169. package/esm2022/lib/interfaces/base-card-view-content-update.interface.mjs +18 -0
  170. package/esm2022/lib/interfaces/index.mjs +18 -0
  171. package/esm2022/lib/interfaces/library-entity.interface.mjs +18 -0
  172. package/esm2022/lib/interfaces/library-membership-error-event.interface.mjs +18 -0
  173. package/esm2022/lib/interfaces/library-membership-toggle-event.interface.mjs +18 -0
  174. package/esm2022/lib/interfaces/node-allowable-operation-subject.interface.mjs +18 -0
  175. package/esm2022/lib/interfaces/public-api.mjs +23 -0
  176. package/esm2022/lib/interfaces/restore-message-model.interface.mjs +19 -0
  177. package/esm2022/lib/legal-hold/index.mjs +18 -0
  178. package/esm2022/lib/legal-hold/public-api.mjs +18 -0
  179. package/esm2022/lib/legal-hold/services/legal-hold.service.mjs +136 -0
  180. package/esm2022/lib/material.module.mjs +183 -0
  181. package/esm2022/lib/mock/alfresco-api.service.mock.mjs +43 -0
  182. package/esm2022/lib/mock/date-range-search-filter.mock.mjs +65 -0
  183. package/esm2022/lib/mock/document-library.model.mock.mjs +84 -0
  184. package/esm2022/lib/mock/document-list.component.mock.mjs +364 -0
  185. package/esm2022/lib/mock/index.mjs +18 -0
  186. package/esm2022/lib/mock/new-version-uploader.service.mock.mjs +161 -0
  187. package/esm2022/lib/mock/public-api.mjs +27 -0
  188. package/esm2022/lib/mock/search-filter-mock.mjs +637 -0
  189. package/esm2022/lib/mock/search-query.mock.mjs +40 -0
  190. package/esm2022/lib/mock/search.component.mock.mjs +165 -0
  191. package/esm2022/lib/mock/search.service.mock.mjs +61 -0
  192. package/esm2022/lib/mock/sites-dropdown.component.mock.mjs +281 -0
  193. package/esm2022/lib/new-version-uploader/index.mjs +18 -0
  194. package/esm2022/lib/new-version-uploader/models/index.mjs +18 -0
  195. package/esm2022/lib/new-version-uploader/models/new-version-uploader.model.mjs +24 -0
  196. package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +74 -0
  197. package/esm2022/lib/new-version-uploader/new-version-uploader.module.mjs +33 -0
  198. package/esm2022/lib/new-version-uploader/new-version-uploader.service.mjs +103 -0
  199. package/esm2022/lib/new-version-uploader/public-api.mjs +21 -0
  200. package/esm2022/lib/node-comments/index.mjs +18 -0
  201. package/esm2022/lib/node-comments/node-comments.component.mjs +50 -0
  202. package/esm2022/lib/node-comments/node-comments.module.mjs +33 -0
  203. package/esm2022/lib/node-comments/public-api.mjs +20 -0
  204. package/esm2022/lib/node-comments/services/node-comments.service.mjs +85 -0
  205. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog-data.interface.mjs +18 -0
  206. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +123 -0
  207. package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +102 -0
  208. package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +69 -0
  209. package/esm2022/lib/permission-manager/components/add-permission/search-config-permission.service.mjs +45 -0
  210. package/esm2022/lib/permission-manager/components/inherited-button.directive.mjs +67 -0
  211. package/esm2022/lib/permission-manager/components/node-path-column/node-path-column.component.mjs +56 -0
  212. package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +102 -0
  213. package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +87 -0
  214. package/esm2022/lib/permission-manager/components/permission-list/permission-list.service.mjs +219 -0
  215. package/esm2022/lib/permission-manager/components/pop-over.directive.mjs +134 -0
  216. package/esm2022/lib/permission-manager/components/user-icon-column/user-icon-column.component.mjs +88 -0
  217. package/esm2022/lib/permission-manager/components/user-name-column/user-name-column.component.mjs +82 -0
  218. package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +111 -0
  219. package/esm2022/lib/permission-manager/index.mjs +18 -0
  220. package/esm2022/lib/permission-manager/models/member.model.mjs +59 -0
  221. package/esm2022/lib/permission-manager/models/permission.model.mjs +29 -0
  222. package/esm2022/lib/permission-manager/models/role.model.mjs +18 -0
  223. package/esm2022/lib/permission-manager/permission-manager.module.mjs +84 -0
  224. package/esm2022/lib/permission-manager/public-api.mjs +36 -0
  225. package/esm2022/lib/permission-manager/services/node-permission-dialog.service.mjs +78 -0
  226. package/esm2022/lib/permission-manager/services/node-permission.service.mjs +299 -0
  227. package/esm2022/lib/pipes/content-pipe.module.mjs +37 -0
  228. package/esm2022/lib/pipes/index.mjs +18 -0
  229. package/esm2022/lib/pipes/node-name-tooltip.pipe.mjs +69 -0
  230. package/esm2022/lib/pipes/public-api.mjs +19 -0
  231. package/esm2022/lib/prediction/index.mjs +18 -0
  232. package/esm2022/lib/prediction/public-api.mjs +18 -0
  233. package/esm2022/lib/prediction/services/index.mjs +18 -0
  234. package/esm2022/lib/prediction/services/prediction.service.mjs +57 -0
  235. package/esm2022/lib/search/components/empty-search-result.component.mjs +27 -0
  236. package/esm2022/lib/search/components/index.mjs +43 -0
  237. package/esm2022/lib/search/components/reset-search.directive.mjs +41 -0
  238. package/esm2022/lib/search/components/search-check-list/index.mjs +18 -0
  239. package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +158 -0
  240. package/esm2022/lib/search/components/search-chip-autocomplete-input/index.mjs +18 -0
  241. package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +169 -0
  242. package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +46 -0
  243. package/esm2022/lib/search/components/search-control.component.mjs +180 -0
  244. package/esm2022/lib/search/components/search-date-range-tabbed/index.mjs +22 -0
  245. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/date-range-type.mjs +23 -0
  246. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/in-last-date-type.mjs +23 -0
  247. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +196 -0
  248. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.mjs +18 -0
  249. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.mjs +201 -0
  250. package/esm2022/lib/search/components/search-datetime-range/index.mjs +18 -0
  251. package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +223 -0
  252. package/esm2022/lib/search/components/search-facet-field/index.mjs +18 -0
  253. package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +132 -0
  254. package/esm2022/lib/search/components/search-filter/index.mjs +19 -0
  255. package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +45 -0
  256. package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +80 -0
  257. package/esm2022/lib/search/components/search-filter-autocomplete-chips/index.mjs +18 -0
  258. package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +154 -0
  259. package/esm2022/lib/search/components/search-filter-chips/index.mjs +23 -0
  260. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +104 -0
  261. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +109 -0
  262. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-tabbed-content.component.mjs +129 -0
  263. package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +63 -0
  264. package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +43 -0
  265. package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +109 -0
  266. package/esm2022/lib/search/components/search-filter-container/index.mjs +18 -0
  267. package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +122 -0
  268. package/esm2022/lib/search/components/search-filter-tabbed/index.mjs +19 -0
  269. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tab.directive.mjs +36 -0
  270. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +63 -0
  271. package/esm2022/lib/search/components/search-form/index.mjs +18 -0
  272. package/esm2022/lib/search/components/search-form/search-form.component.mjs +52 -0
  273. package/esm2022/lib/search/components/search-input/index.mjs +18 -0
  274. package/esm2022/lib/search/components/search-input/search-input.component.mjs +108 -0
  275. package/esm2022/lib/search/components/search-logical-filter/index.mjs +18 -0
  276. package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +163 -0
  277. package/esm2022/lib/search/components/search-number-range/index.mjs +18 -0
  278. package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +154 -0
  279. package/esm2022/lib/search/components/search-panel/index.mjs +18 -0
  280. package/esm2022/lib/search/components/search-panel/search-panel.component.mjs +44 -0
  281. package/esm2022/lib/search/components/search-properties/file-size-condition.mjs +18 -0
  282. package/esm2022/lib/search/components/search-properties/file-size-operator.enum.mjs +23 -0
  283. package/esm2022/lib/search/components/search-properties/file-size-unit.enum.mjs +26 -0
  284. package/esm2022/lib/search/components/search-properties/index.mjs +22 -0
  285. package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +244 -0
  286. package/esm2022/lib/search/components/search-properties/search-properties.mjs +18 -0
  287. package/esm2022/lib/search/components/search-radio/index.mjs +18 -0
  288. package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +145 -0
  289. package/esm2022/lib/search/components/search-slider/index.mjs +18 -0
  290. package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +119 -0
  291. package/esm2022/lib/search/components/search-sorting-picker/index.mjs +18 -0
  292. package/esm2022/lib/search/components/search-sorting-picker/search-sorting-picker.component.mjs +77 -0
  293. package/esm2022/lib/search/components/search-text/index.mjs +18 -0
  294. package/esm2022/lib/search/components/search-text/search-text.component.mjs +134 -0
  295. package/esm2022/lib/search/components/search-widget-container/index.mjs +18 -0
  296. package/esm2022/lib/search/components/search-widget-container/search-widget-container.component.mjs +113 -0
  297. package/esm2022/lib/search/components/search.component.mjs +152 -0
  298. package/esm2022/lib/search/forms/index.mjs +19 -0
  299. package/esm2022/lib/search/forms/live-error-state-matcher.mjs +23 -0
  300. package/esm2022/lib/search/forms/search-term-validator.mjs +26 -0
  301. package/esm2022/lib/search/index.mjs +18 -0
  302. package/esm2022/lib/search/mocks/index.mjs +18 -0
  303. package/esm2022/lib/search/mocks/search.service.mock.mjs +56 -0
  304. package/esm2022/lib/search/models/autocomplete-option.interface.mjs +22 -0
  305. package/esm2022/lib/search/models/facet-field-bucket.interface.mjs +18 -0
  306. package/esm2022/lib/search/models/facet-field.interface.mjs +29 -0
  307. package/esm2022/lib/search/models/facet-query.interface.mjs +18 -0
  308. package/esm2022/lib/search/models/facet-widget.interface.mjs +18 -0
  309. package/esm2022/lib/search/models/filter-query.interface.mjs +18 -0
  310. package/esm2022/lib/search/models/filter-search.interface.mjs +18 -0
  311. package/esm2022/lib/search/models/index.mjs +34 -0
  312. package/esm2022/lib/search/models/response-facet-query-list.model.mjs +31 -0
  313. package/esm2022/lib/search/models/search-category.interface.mjs +18 -0
  314. package/esm2022/lib/search/models/search-configuration.interface.mjs +18 -0
  315. package/esm2022/lib/search/models/search-filter-list.model.mjs +148 -0
  316. package/esm2022/lib/search/models/search-form.interface.mjs +18 -0
  317. package/esm2022/lib/search/models/search-range.interface.mjs +18 -0
  318. package/esm2022/lib/search/models/search-sorting-definition.interface.mjs +18 -0
  319. package/esm2022/lib/search/models/search-widget-settings.interface.mjs +18 -0
  320. package/esm2022/lib/search/models/search-widget.interface.mjs +18 -0
  321. package/esm2022/lib/search/models/tabbed-facet-field.interface.mjs +18 -0
  322. package/esm2022/lib/search/public-api.mjs +24 -0
  323. package/esm2022/lib/search/search-configuration.token.mjs +19 -0
  324. package/esm2022/lib/search/search.module.mjs +192 -0
  325. package/esm2022/lib/search/services/base-query-builder.service.mjs +509 -0
  326. package/esm2022/lib/search/services/index.mjs +24 -0
  327. package/esm2022/lib/search/services/search-configuration.service.mjs +50 -0
  328. package/esm2022/lib/search/services/search-facet-filters.service.mjs +374 -0
  329. package/esm2022/lib/search/services/search-filter.service.mjs +56 -0
  330. package/esm2022/lib/search/services/search-header-query-builder.service.mjs +136 -0
  331. package/esm2022/lib/search/services/search-query-builder.service.mjs +48 -0
  332. package/esm2022/lib/search/services/search.service.mjs +89 -0
  333. package/esm2022/lib/search-ai/index.mjs +18 -0
  334. package/esm2022/lib/search-ai/models/search-ai-input-state.mjs +18 -0
  335. package/esm2022/lib/search-ai/public-api.mjs +19 -0
  336. package/esm2022/lib/search-ai/services/search-ai.service.mjs +103 -0
  337. package/esm2022/lib/security/index.mjs +18 -0
  338. package/esm2022/lib/security/public-api.mjs +18 -0
  339. package/esm2022/lib/security/services/models/security-controls-group-response.interface.mjs +18 -0
  340. package/esm2022/lib/security/services/models/security-controls-mark-response.interface.mjs +18 -0
  341. package/esm2022/lib/security/services/security-controls-groups-marks-security.service.mjs +274 -0
  342. package/esm2022/lib/security-options-loader/security-options-loader.service.mjs +43 -0
  343. package/esm2022/lib/services/alfresco-api.interface.mjs +18 -0
  344. package/esm2022/lib/services/alfresco-api.service.mjs +120 -0
  345. package/esm2022/lib/services/index.mjs +18 -0
  346. package/esm2022/lib/services/public-api.mjs +18 -0
  347. package/esm2022/lib/tag/index.mjs +18 -0
  348. package/esm2022/lib/tag/public-api.mjs +24 -0
  349. package/esm2022/lib/tag/services/tag.service.mjs +171 -0
  350. package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +114 -0
  351. package/esm2022/lib/tag/tag-list/tag-list.component.mjs +98 -0
  352. package/esm2022/lib/tag/tag-node-list/tag-node-list.component.mjs +80 -0
  353. package/esm2022/lib/tag/tag.module.mjs +37 -0
  354. package/esm2022/lib/tag/tags-creator/tags-creator-mode.mjs +27 -0
  355. package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +370 -0
  356. package/esm2022/lib/testing/content.testing.module.mjs +56 -0
  357. package/esm2022/lib/tree/components/tree.component.mjs +312 -0
  358. package/esm2022/lib/tree/index.mjs +18 -0
  359. package/esm2022/lib/tree/models/tree-context-menu-result.interface.mjs +18 -0
  360. package/esm2022/lib/tree/models/tree-node.interface.mjs +22 -0
  361. package/esm2022/lib/tree/models/tree-response.interface.mjs +18 -0
  362. package/esm2022/lib/tree/public-api.mjs +23 -0
  363. package/esm2022/lib/tree/services/tree.service.mjs +134 -0
  364. package/esm2022/lib/tree/tree.module.mjs +33 -0
  365. package/esm2022/lib/tree-view/components/tree-view.component.mjs +75 -0
  366. package/esm2022/lib/tree-view/data/tree-view-datasource.mjs +99 -0
  367. package/esm2022/lib/tree-view/index.mjs +18 -0
  368. package/esm2022/lib/tree-view/models/tree-view.model.mjs +28 -0
  369. package/esm2022/lib/tree-view/public-api.mjs +22 -0
  370. package/esm2022/lib/tree-view/services/tree-view.service.mjs +38 -0
  371. package/esm2022/lib/tree-view/tree-view.module.mjs +33 -0
  372. package/esm2022/lib/upload/components/base-upload/upload-base.mjs +176 -0
  373. package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +190 -0
  374. package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +92 -0
  375. package/esm2022/lib/upload/components/file-uploading-list.component.mjs +124 -0
  376. package/esm2022/lib/upload/components/upload-button.component.mjs +133 -0
  377. package/esm2022/lib/upload/components/upload-drag-area.component.mjs +112 -0
  378. package/esm2022/lib/upload/components/upload-files.event.mjs +41 -0
  379. package/esm2022/lib/upload/components/upload-version-button.component.mjs +54 -0
  380. package/esm2022/lib/upload/directives/file-draggable.directive.mjs +154 -0
  381. package/esm2022/lib/upload/directives/toggle-icon.directive.mjs +75 -0
  382. package/esm2022/lib/upload/index.mjs +18 -0
  383. package/esm2022/lib/upload/pipes/file-upload-error.pipe.mjs +39 -0
  384. package/esm2022/lib/upload/public-api.mjs +29 -0
  385. package/esm2022/lib/upload/upload.module.mjs +72 -0
  386. package/esm2022/lib/version-compatibility/index.mjs +18 -0
  387. package/esm2022/lib/version-compatibility/public-api.mjs +20 -0
  388. package/esm2022/lib/version-compatibility/version-compatibility-factory.mjs +26 -0
  389. package/esm2022/lib/version-compatibility/version-compatibility.directive.mjs +53 -0
  390. package/esm2022/lib/version-compatibility/version-compatibility.module.mjs +33 -0
  391. package/esm2022/lib/version-compatibility/version-compatibility.service.mjs +76 -0
  392. package/esm2022/lib/version-manager/content-version.service.mjs +53 -0
  393. package/esm2022/lib/version-manager/index.mjs +18 -0
  394. package/esm2022/lib/version-manager/public-api.mjs +23 -0
  395. package/esm2022/lib/version-manager/version-comparison.component.mjs +42 -0
  396. package/esm2022/lib/version-manager/version-list.component.mjs +215 -0
  397. package/esm2022/lib/version-manager/version-manager.component.mjs +145 -0
  398. package/esm2022/lib/version-manager/version-manager.module.mjs +48 -0
  399. package/esm2022/lib/version-manager/version-upload.component.mjs +154 -0
  400. package/esm2022/lib/viewer/alfresco-viewer.module.mjs +33 -0
  401. package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +408 -0
  402. package/esm2022/lib/viewer/index.mjs +18 -0
  403. package/esm2022/lib/viewer/public-api.mjs +19 -0
  404. package/esm2022/public-api.mjs +56 -0
  405. package/fesm2022/adf-content-services.mjs +790 -831
  406. package/fesm2022/adf-content-services.mjs.map +1 -1
  407. package/lib/aspect-list/aspect-list.component.d.ts +0 -4
  408. package/lib/aspect-list/public-api.d.ts +0 -1
  409. package/lib/aspect-list/services/aspect-list.service.d.ts +4 -6
  410. package/lib/category/categories-management/categories-management.component.d.ts +0 -4
  411. package/lib/new-version-uploader/new-version-uploader.dialog.scss +1 -1
  412. package/lib/upload/components/base-upload/upload-base.d.ts +1 -1
  413. package/package.json +5 -3
  414. package/lib/aspect-list/interfaces/custom-aspect-paging.interface.d.ts +0 -21
@@ -0,0 +1,56 @@
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 { Node } from '@alfresco/js-api';
18
+ import { Component, Input } from '@angular/core';
19
+ import { BehaviorSubject } from 'rxjs';
20
+ import { CommonModule } from '@angular/common';
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@angular/common";
23
+ export class NodePathColumnComponent {
24
+ constructor() {
25
+ this.displayText$ = new BehaviorSubject('');
26
+ }
27
+ ngOnInit() {
28
+ this.updateValue();
29
+ }
30
+ updateValue() {
31
+ this.displayText$.next(this.node.path.name);
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NodePathColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NodePathColumnComponent, isStandalone: true, selector: "adf-node-path-column", inputs: { node: "node" }, host: { classAttribute: "adf-node-path-column adf-datatable-content-cell" }, ngImport: i0, template: `
35
+ <span class="adf-user-name-column adf-datatable-cell-value" title="{{ displayText$ | async }}">
36
+ {{ displayText$ | async }}
37
+ </span>
38
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NodePathColumnComponent, decorators: [{
41
+ type: Component,
42
+ args: [{
43
+ selector: 'adf-node-path-column',
44
+ standalone: true,
45
+ imports: [CommonModule],
46
+ template: `
47
+ <span class="adf-user-name-column adf-datatable-cell-value" title="{{ displayText$ | async }}">
48
+ {{ displayText$ | async }}
49
+ </span>
50
+ `,
51
+ host: { class: 'adf-node-path-column adf-datatable-content-cell' }
52
+ }]
53
+ }], propDecorators: { node: [{
54
+ type: Input
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1wYXRoLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3Blcm1pc3Npb24tbWFuYWdlci9jb21wb25lbnRzL25vZGUtcGF0aC1jb2x1bW4vbm9kZS1wYXRoLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFhL0MsTUFBTSxPQUFPLHVCQUF1QjtJQVhwQztRQWVJLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7S0FTbEQ7SUFQRyxRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7K0dBWlEsdUJBQXVCO21HQUF2Qix1QkFBdUIsdUxBUHRCOzs7O0tBSVQsMkRBTFMsWUFBWTs7NEZBUWIsdUJBQXVCO2tCQVhuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFFBQVEsRUFBRTs7OztLQUlUO29CQUNELElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxpREFBaUQsRUFBRTtpQkFDckU7OEJBR0csSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtbm9kZS1wYXRoLWNvbHVtbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi11c2VyLW5hbWUtY29sdW1uIGFkZi1kYXRhdGFibGUtY2VsbC12YWx1ZVwiIHRpdGxlPVwie3sgZGlzcGxheVRleHQkIHwgYXN5bmMgfX1cIj5cbiAgICAgICAgICAgIHt7IGRpc3BsYXlUZXh0JCB8IGFzeW5jIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICBgLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtbm9kZS1wYXRoLWNvbHVtbiBhZGYtZGF0YXRhYmxlLWNvbnRlbnQtY2VsbCcgfVxufSlcbmV4cG9ydCBjbGFzcyBOb2RlUGF0aENvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBub2RlOiBOb2RlO1xuXG4gICAgZGlzcGxheVRleHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVZhbHVlKCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlUZXh0JC5uZXh0KHRoaXMubm9kZS5wYXRoLm5hbWUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,102 @@
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 { Node } from '@alfresco/js-api';
19
+ import { CommonModule } from '@angular/common';
20
+ import { DataColumnComponent, DataColumnListComponent, DataTableComponent, DateColumnHeaderComponent, EmptyContentComponent, NoContentTemplateDirective } from '@alfresco/adf-core';
21
+ import { TranslatePipe } from '@ngx-translate/core';
22
+ import { MatButtonModule } from '@angular/material/button';
23
+ import { MatIconModule } from '@angular/material/icon';
24
+ import { UserIconColumnComponent } from '../user-icon-column/user-icon-column.component';
25
+ import { UserNameColumnComponent } from '../user-name-column/user-name-column.component';
26
+ import { NodePathColumnComponent } from '../node-path-column/node-path-column.component';
27
+ import { UserRoleColumnComponent } from '../user-role-column/user-role-column.component';
28
+ import * as i0 from "@angular/core";
29
+ import * as i1 from "@angular/common";
30
+ import * as i2 from "@angular/material/button";
31
+ import * as i3 from "@angular/material/icon";
32
+ export class PermissionContainerComponent {
33
+ constructor() {
34
+ this.permissions = [];
35
+ this.isReadOnly = false;
36
+ this.showLocation = false;
37
+ this.selectionMode = 'multiple'; // none|single|multiple
38
+ /** Emitted when the permission is updated. */
39
+ this.update = new EventEmitter();
40
+ this.updateAll = new EventEmitter();
41
+ /** Emitted when the permission is updated. */
42
+ this.delete = new EventEmitter();
43
+ /** Emitted when an error occurs. */
44
+ this.error = new EventEmitter();
45
+ }
46
+ ngOnChanges() {
47
+ this.bulkSelectionRole = '';
48
+ }
49
+ updateRole(role, permission) {
50
+ this.update.emit({ role, permission });
51
+ }
52
+ bulkRoleUpdate(role) {
53
+ this.updateAll.emit(role);
54
+ }
55
+ removePermission(event, permissionRow) {
56
+ event.stopPropagation();
57
+ this.delete.emit(permissionRow);
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PermissionContainerComponent, isStandalone: true, selector: "adf-permission-container", inputs: { node: "node", permissions: "permissions", roles: "roles", isReadOnly: "isReadOnly", showLocation: "showLocation", selectionMode: "selectionMode" }, outputs: { update: "update", updateAll: "updateAll", delete: "delete", error: "error" }, usesOnChanges: true, ngImport: i0, template: "<adf-datatable class=\"adf-datatable-permission\"\n id=\"adf-permission-display-container\"\n [rows]=\"permissions\"\n [stickyHeader]=\"true\"\n [selectionMode]=\"selectionMode\">\n\n <data-columns>\n <data-column class=\"adf-datatable-cell--image adf-authority-icon-column\" key=\"$thumbunail\" [sortable]=\"false\">\n <ng-template let-context>\n <adf-user-icon-column [context]=\"context\" />\n </ng-template>\n </data-column>\n\n <data-column class=\"adf-ellipsis-cell adf-expand-cell-5 adf-authorityId-column\"\n [title]=\"'PERMISSION_MANAGER.COLUMN.NAME' | translate:{count:permissions.length}\"\n key=\"authorityId\">\n <ng-template let-context>\n <adf-user-name-column [context]=\"context\" />\n </ng-template>\n </data-column>d\n\n <data-column class=\"adf-ellipsis-cell adf-expand-cell-5 adf-authorityId-column\"\n title=\"PERMISSION_MANAGER.COLUMN.LOCATION\"\n key=\"location\"\n *ngIf=\"node && showLocation\">\n <ng-template>\n <adf-node-path-column [node]=\"node\" />\n </ng-template>\n </data-column>\n\n <data-column\n class=\"adf-ellipsis-cell adf-expand-cell-4\"\n title=\"PERMISSION_MANAGER.PERMISSION_DISPLAY.ROLE\"\n key=\"name\"\n [sortable]=\"false\">\n <ng-template let-entry=\"$implicit\">\n <adf-user-role-column [readonly]=\"entry.row.obj.readonly || isReadOnly\"\n [placeholder]=\"entry.data.getValue(entry.row, entry.col)\"\n [value]=\"entry.data.getValue(entry.row, entry.col)\"\n [roles]=\"roles\"\n id=\"adf-select-role-permission\"\n (roleChanged)=\"updateRole($event, entry.row.obj)\" />\n </ng-template>\n\n <adf-data-column-header *ngIf=\"!isReadOnly\">\n <ng-template>\n <adf-user-role-column class=\"adf-permission-role-column-header\"\n placeholder=\"PERMISSION_MANAGER.COLUMN.BULK-ROLE\"\n [roles]=\"roles\"\n [value]=\"bulkSelectionRole\"\n id=\"adf-bulk-select-role-permission\"\n (roleChanged)=\"bulkRoleUpdate($event)\" />\n </ng-template>\n </adf-data-column-header>\n </data-column>\n\n <data-column class=\"adf-datatable-cell adf-delete-permission-column\" key=\"\" *ngIf=\"!isReadOnly\" [sortable]=\"false\">\n <ng-template let-entry=\"$implicit\">\n <button mat-icon-button\n [disabled]=\"entry.row.obj.readonly\"\n (click)=\"removePermission($event, entry.row.obj)\"\n (keydown.enter)=\"removePermission($event, entry.row.obj)\"\n [attr.data-automation-id]=\"'adf-delete-permission-button-' + entry.row.obj.authorityId\"\n [attr.aria-label]=\"'PERMISSION_MANAGER.ACTION.DELETE' | translate\">\n <mat-icon>delete_outline</mat-icon>\n </button>\n </ng-template>\n </data-column>\n </data-columns>\n\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content\n id=\"adf-no-permissions-template\"\n icon=\"supervisor_account\"\n [title]=\"'PERMISSION_MANAGER.MESSAGE.EMPTY-PERMISSION' | translate\"\n [subtitle]=\"'PERMISSION_MANAGER.MESSAGE.EMPTY-SUBTITLE' | translate\" />\n </ng-template>\n </adf-no-content-template>\n\n</adf-datatable>\n", styles: [".adf-datatable-permission{display:flex;min-width:450px;width:100%}.adf-datatable-permission.adf-datatable{overflow:hidden}.adf-datatable-permission.adf-datatable .adf-datatable-row .adf-permission-role-column-header{position:relative}.adf-datatable-permission.adf-datatable .adf-delete-permission-column{min-width:80px}.adf-datatable-permission.adf-datatable .adf-delete-permission-column .adf-cell-value{width:80px;padding-right:10px;place-content:flex-end}.adf-datatable-permission.adf-datatable .adf-authorityId-column{flex:40%}.adf-datatable-permission.adf-datatable .adf-authority-icon-column{min-width:40px}.adf-datatable-permission.adf-datatable .adf-authority-icon-column .adf-datatable-cell-container{padding:0}.adf-datatable-permission.adf-datatable .adf-datatable-selected>svg{width:40px;height:40px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DataTableComponent, selector: "adf-datatable", inputs: ["data", "rows", "sorting", "columns", "selectionMode", "multiselect", "mainTableAction", "actions", "showMainDatatableActions", "showProvidedActions", "actionsPosition", "actionsVisibleOnHover", "fallbackThumbnail", "contextMenu", "rowStyle", "rowStyleClass", "showHeader", "stickyHeader", "loading", "noPermission", "rowMenuCacheEnabled", "resolverFn", "allowFiltering", "isResizingEnabled", "blurOnResize", "displayCheckboxesOnHover", "enableDragRows"], outputs: ["rowClick", "rowDblClick", "showRowContextMenu", "showRowActionsMenu", "executeRowAction", "columnOrderChanged", "columnsWidthChanged", "selectedItemsCountChanged", "dragDropped"] }, { kind: "component", type: DataColumnListComponent, selector: "data-columns" }, { kind: "component", type: DataColumnComponent, selector: "data-column", inputs: ["id", "key", "customData", "type", "format", "sortable", "draggable", "resizable", "isHidden", "title", "subtitle", "formatTooltip", "sr-title", "class", "copyContent", "editable", "focus", "sortingKey", "order", "currencyConfig", "decimalConfig", "dateConfig"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: DateColumnHeaderComponent, selector: "adf-data-column-header" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NoContentTemplateDirective, selector: "adf-no-content-template, no-content-template" }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "component", type: UserIconColumnComponent, selector: "adf-user-icon-column", inputs: ["context", "node", "selected"] }, { kind: "component", type: UserNameColumnComponent, selector: "adf-user-name-column", inputs: ["context", "node"] }, { kind: "component", type: NodePathColumnComponent, selector: "adf-node-path-column", inputs: ["node"] }, { kind: "component", type: UserRoleColumnComponent, selector: "adf-user-role-column", inputs: ["roles", "value", "readonly", "placeholder"], outputs: ["roleChanged"] }], encapsulation: i0.ViewEncapsulation.None }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionContainerComponent, decorators: [{
63
+ type: Component,
64
+ args: [{ selector: 'adf-permission-container', standalone: true, imports: [
65
+ CommonModule,
66
+ DataTableComponent,
67
+ DataColumnListComponent,
68
+ DataColumnComponent,
69
+ TranslatePipe,
70
+ DateColumnHeaderComponent,
71
+ MatButtonModule,
72
+ MatIconModule,
73
+ NoContentTemplateDirective,
74
+ EmptyContentComponent,
75
+ UserIconColumnComponent,
76
+ UserNameColumnComponent,
77
+ NodePathColumnComponent,
78
+ UserRoleColumnComponent
79
+ ], encapsulation: ViewEncapsulation.None, template: "<adf-datatable class=\"adf-datatable-permission\"\n id=\"adf-permission-display-container\"\n [rows]=\"permissions\"\n [stickyHeader]=\"true\"\n [selectionMode]=\"selectionMode\">\n\n <data-columns>\n <data-column class=\"adf-datatable-cell--image adf-authority-icon-column\" key=\"$thumbunail\" [sortable]=\"false\">\n <ng-template let-context>\n <adf-user-icon-column [context]=\"context\" />\n </ng-template>\n </data-column>\n\n <data-column class=\"adf-ellipsis-cell adf-expand-cell-5 adf-authorityId-column\"\n [title]=\"'PERMISSION_MANAGER.COLUMN.NAME' | translate:{count:permissions.length}\"\n key=\"authorityId\">\n <ng-template let-context>\n <adf-user-name-column [context]=\"context\" />\n </ng-template>\n </data-column>d\n\n <data-column class=\"adf-ellipsis-cell adf-expand-cell-5 adf-authorityId-column\"\n title=\"PERMISSION_MANAGER.COLUMN.LOCATION\"\n key=\"location\"\n *ngIf=\"node && showLocation\">\n <ng-template>\n <adf-node-path-column [node]=\"node\" />\n </ng-template>\n </data-column>\n\n <data-column\n class=\"adf-ellipsis-cell adf-expand-cell-4\"\n title=\"PERMISSION_MANAGER.PERMISSION_DISPLAY.ROLE\"\n key=\"name\"\n [sortable]=\"false\">\n <ng-template let-entry=\"$implicit\">\n <adf-user-role-column [readonly]=\"entry.row.obj.readonly || isReadOnly\"\n [placeholder]=\"entry.data.getValue(entry.row, entry.col)\"\n [value]=\"entry.data.getValue(entry.row, entry.col)\"\n [roles]=\"roles\"\n id=\"adf-select-role-permission\"\n (roleChanged)=\"updateRole($event, entry.row.obj)\" />\n </ng-template>\n\n <adf-data-column-header *ngIf=\"!isReadOnly\">\n <ng-template>\n <adf-user-role-column class=\"adf-permission-role-column-header\"\n placeholder=\"PERMISSION_MANAGER.COLUMN.BULK-ROLE\"\n [roles]=\"roles\"\n [value]=\"bulkSelectionRole\"\n id=\"adf-bulk-select-role-permission\"\n (roleChanged)=\"bulkRoleUpdate($event)\" />\n </ng-template>\n </adf-data-column-header>\n </data-column>\n\n <data-column class=\"adf-datatable-cell adf-delete-permission-column\" key=\"\" *ngIf=\"!isReadOnly\" [sortable]=\"false\">\n <ng-template let-entry=\"$implicit\">\n <button mat-icon-button\n [disabled]=\"entry.row.obj.readonly\"\n (click)=\"removePermission($event, entry.row.obj)\"\n (keydown.enter)=\"removePermission($event, entry.row.obj)\"\n [attr.data-automation-id]=\"'adf-delete-permission-button-' + entry.row.obj.authorityId\"\n [attr.aria-label]=\"'PERMISSION_MANAGER.ACTION.DELETE' | translate\">\n <mat-icon>delete_outline</mat-icon>\n </button>\n </ng-template>\n </data-column>\n </data-columns>\n\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content\n id=\"adf-no-permissions-template\"\n icon=\"supervisor_account\"\n [title]=\"'PERMISSION_MANAGER.MESSAGE.EMPTY-PERMISSION' | translate\"\n [subtitle]=\"'PERMISSION_MANAGER.MESSAGE.EMPTY-SUBTITLE' | translate\" />\n </ng-template>\n </adf-no-content-template>\n\n</adf-datatable>\n", styles: [".adf-datatable-permission{display:flex;min-width:450px;width:100%}.adf-datatable-permission.adf-datatable{overflow:hidden}.adf-datatable-permission.adf-datatable .adf-datatable-row .adf-permission-role-column-header{position:relative}.adf-datatable-permission.adf-datatable .adf-delete-permission-column{min-width:80px}.adf-datatable-permission.adf-datatable .adf-delete-permission-column .adf-cell-value{width:80px;padding-right:10px;place-content:flex-end}.adf-datatable-permission.adf-datatable .adf-authorityId-column{flex:40%}.adf-datatable-permission.adf-datatable .adf-authority-icon-column{min-width:40px}.adf-datatable-permission.adf-datatable .adf-authority-icon-column .adf-datatable-cell-container{padding:0}.adf-datatable-permission.adf-datatable .adf-datatable-selected>svg{width:40px;height:40px}\n"] }]
80
+ }], propDecorators: { node: [{
81
+ type: Input,
82
+ args: [{ required: true }]
83
+ }], permissions: [{
84
+ type: Input
85
+ }], roles: [{
86
+ type: Input
87
+ }], isReadOnly: [{
88
+ type: Input
89
+ }], showLocation: [{
90
+ type: Input
91
+ }], selectionMode: [{
92
+ type: Input
93
+ }], update: [{
94
+ type: Output
95
+ }], updateAll: [{
96
+ type: Output
97
+ }], delete: [{
98
+ type: Output
99
+ }], error: [{
100
+ type: Output
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9wZXJtaXNzaW9uLW1hbmFnZXIvY29tcG9uZW50cy9wZXJtaXNzaW9uLWNvbnRhaW5lci9wZXJtaXNzaW9uLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3Blcm1pc3Npb24tbWFuYWdlci9jb21wb25lbnRzL3Blcm1pc3Npb24tY29udGFpbmVyL3Blcm1pc3Npb24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7QUF5QnpGLE1BQU0sT0FBTyw0QkFBNEI7SUF2QnpDO1FBNEJJLGdCQUFXLEdBQTZCLEVBQUUsQ0FBQztRQU0zQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBR25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLGtCQUFhLEdBQUcsVUFBVSxDQUFDLENBQUMsdUJBQXVCO1FBRW5ELDhDQUE4QztRQUU5QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQXdELENBQUM7UUFHbEYsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFdkMsOENBQThDO1FBRTlDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUVwRCxvQ0FBb0M7UUFFcEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7S0FvQm5DO0lBaEJHLFdBQVc7UUFDUCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWSxFQUFFLFVBQWtDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFZLEVBQUUsYUFBcUM7UUFDaEUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7K0dBbkRRLDRCQUE0QjttR0FBNUIsNEJBQTRCLGdXQzdEekMseTlIQWlGQSxzMkJEdkNRLFlBQVksbUlBQ1osa0JBQWtCLDBzQkFDbEIsdUJBQXVCLHlEQUN2QixtQkFBbUIsbVVBQ25CLGFBQWEsa0RBQ2IseUJBQXlCLGtFQUN6QixlQUFlLDJJQUNmLGFBQWEsb0xBQ2IsMEJBQTBCLHlGQUMxQixxQkFBcUIscUdBQ3JCLHVCQUF1QiwwR0FDdkIsdUJBQXVCLDhGQUN2Qix1QkFBdUIsbUZBQ3ZCLHVCQUF1Qjs7NEZBTWxCLDRCQUE0QjtrQkF2QnhDLFNBQVM7K0JBQ0ksMEJBQTBCLGNBQ3hCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IseUJBQXlCO3dCQUN6QixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsMEJBQTBCO3dCQUMxQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLHVCQUF1QjtxQkFDMUIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs4QkFJckMsSUFBSTtzQkFESCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJekIsV0FBVztzQkFEVixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFLTixNQUFNO3NCQURMLE1BQU07Z0JBSVAsU0FBUztzQkFEUixNQUFNO2dCQUtQLE1BQU07c0JBREwsTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uRGlzcGxheU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Blcm1pc3Npb24ubW9kZWwnO1xuaW1wb3J0IHsgUm9sZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JvbGUubW9kZWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGF0YUNvbHVtbkNvbXBvbmVudCxcbiAgICBEYXRhQ29sdW1uTGlzdENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0ZUNvbHVtbkhlYWRlckNvbXBvbmVudCxcbiAgICBFbXB0eUNvbnRlbnRDb21wb25lbnQsXG4gICAgTm9Db250ZW50VGVtcGxhdGVEaXJlY3RpdmVcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBVc2VySWNvbkNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL3VzZXItaWNvbi1jb2x1bW4vdXNlci1pY29uLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlck5hbWVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi91c2VyLW5hbWUtY29sdW1uL3VzZXItbmFtZS1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVQYXRoQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vbm9kZS1wYXRoLWNvbHVtbi9ub2RlLXBhdGgtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyUm9sZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL3VzZXItcm9sZS1jb2x1bW4vdXNlci1yb2xlLWNvbHVtbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1wZXJtaXNzaW9uLWNvbnRhaW5lcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgICAgICBEYXRhQ29sdW1uTGlzdENvbXBvbmVudCxcbiAgICAgICAgRGF0YUNvbHVtbkNvbXBvbmVudCxcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgRGF0ZUNvbHVtbkhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBOb0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgRW1wdHlDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBVc2VySWNvbkNvbHVtbkNvbXBvbmVudCxcbiAgICAgICAgVXNlck5hbWVDb2x1bW5Db21wb25lbnQsXG4gICAgICAgIE5vZGVQYXRoQ29sdW1uQ29tcG9uZW50LFxuICAgICAgICBVc2VyUm9sZUNvbHVtbkNvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Blcm1pc3Npb24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wZXJtaXNzaW9uLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbkNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBub2RlOiBOb2RlO1xuXG4gICAgQElucHV0KClcbiAgICBwZXJtaXNzaW9uczogUGVybWlzc2lvbkRpc3BsYXlNb2RlbFtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHJvbGVzITogUm9sZU1vZGVsW107XG5cbiAgICBASW5wdXQoKVxuICAgIGlzUmVhZE9ubHkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvd0xvY2F0aW9uID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGlvbk1vZGUgPSAnbXVsdGlwbGUnOyAvLyBub25lfHNpbmdsZXxtdWx0aXBsZVxuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgcGVybWlzc2lvbiBpcyB1cGRhdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHVwZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyByb2xlOiBzdHJpbmc7IHBlcm1pc3Npb246IFBlcm1pc3Npb25EaXNwbGF5TW9kZWwgfT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHVwZGF0ZUFsbCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgcGVybWlzc2lvbiBpcyB1cGRhdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGVybWlzc2lvbkRpc3BsYXlNb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBidWxrU2VsZWN0aW9uUm9sZTogc3RyaW5nO1xuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVsa1NlbGVjdGlvblJvbGUgPSAnJztcbiAgICB9XG5cbiAgICB1cGRhdGVSb2xlKHJvbGU6IHN0cmluZywgcGVybWlzc2lvbjogUGVybWlzc2lvbkRpc3BsYXlNb2RlbCkge1xuICAgICAgICB0aGlzLnVwZGF0ZS5lbWl0KHsgcm9sZSwgcGVybWlzc2lvbiB9KTtcbiAgICB9XG5cbiAgICBidWxrUm9sZVVwZGF0ZShyb2xlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy51cGRhdGVBbGwuZW1pdChyb2xlKTtcbiAgICB9XG5cbiAgICByZW1vdmVQZXJtaXNzaW9uKGV2ZW50OiBFdmVudCwgcGVybWlzc2lvblJvdzogUGVybWlzc2lvbkRpc3BsYXlNb2RlbCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5kZWxldGUuZW1pdChwZXJtaXNzaW9uUm93KTtcbiAgICB9XG59XG4iLCI8YWRmLWRhdGF0YWJsZSBjbGFzcz1cImFkZi1kYXRhdGFibGUtcGVybWlzc2lvblwiXG4gICAgICAgICAgICAgICBpZD1cImFkZi1wZXJtaXNzaW9uLWRpc3BsYXktY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgIFtyb3dzXT1cInBlcm1pc3Npb25zXCJcbiAgICAgICAgICAgICAgIFtzdGlja3lIZWFkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlXCI+XG5cbiAgICA8ZGF0YS1jb2x1bW5zPlxuICAgICAgICA8ZGF0YS1jb2x1bW4gY2xhc3M9XCJhZGYtZGF0YXRhYmxlLWNlbGwtLWltYWdlIGFkZi1hdXRob3JpdHktaWNvbi1jb2x1bW5cIiBrZXk9XCIkdGh1bWJ1bmFpbFwiIFtzb3J0YWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1jb250ZXh0PlxuICAgICAgICAgICAgICAgIDxhZGYtdXNlci1pY29uLWNvbHVtbiBbY29udGV4dF09XCJjb250ZXh0XCIgLz5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGF0YS1jb2x1bW4+XG5cbiAgICAgICAgPGRhdGEtY29sdW1uIGNsYXNzPVwiYWRmLWVsbGlwc2lzLWNlbGwgYWRmLWV4cGFuZC1jZWxsLTUgYWRmLWF1dGhvcml0eUlkLWNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ1BFUk1JU1NJT05fTUFOQUdFUi5DT0xVTU4uTkFNRScgfCB0cmFuc2xhdGU6e2NvdW50OnBlcm1pc3Npb25zLmxlbmd0aH1cIlxuICAgICAgICAgICAgICAgICAgICAga2V5PVwiYXV0aG9yaXR5SWRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtY29udGV4dD5cbiAgICAgICAgICAgICAgICA8YWRmLXVzZXItbmFtZS1jb2x1bW4gW2NvbnRleHRdPVwiY29udGV4dFwiIC8+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2RhdGEtY29sdW1uPmRcblxuICAgICAgICA8ZGF0YS1jb2x1bW4gY2xhc3M9XCJhZGYtZWxsaXBzaXMtY2VsbCBhZGYtZXhwYW5kLWNlbGwtNSBhZGYtYXV0aG9yaXR5SWQtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiUEVSTUlTU0lPTl9NQU5BR0VSLkNPTFVNTi5MT0NBVElPTlwiXG4gICAgICAgICAgICAgICAgICAgICBrZXk9XCJsb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm5vZGUgJiYgc2hvd0xvY2F0aW9uXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGFkZi1ub2RlLXBhdGgtY29sdW1uIFtub2RlXT1cIm5vZGVcIiAvPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kYXRhLWNvbHVtbj5cblxuICAgICAgICA8ZGF0YS1jb2x1bW5cbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLWVsbGlwc2lzLWNlbGwgYWRmLWV4cGFuZC1jZWxsLTRcIlxuICAgICAgICAgICAgdGl0bGU9XCJQRVJNSVNTSU9OX01BTkFHRVIuUEVSTUlTU0lPTl9ESVNQTEFZLlJPTEVcIlxuICAgICAgICAgICAga2V5PVwibmFtZVwiXG4gICAgICAgICAgICBbc29ydGFibGVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZW50cnk9XCIkaW1wbGljaXRcIj5cbiAgICAgICAgICAgICAgICA8YWRmLXVzZXItcm9sZS1jb2x1bW4gW3JlYWRvbmx5XT1cImVudHJ5LnJvdy5vYmoucmVhZG9ubHkgfHwgaXNSZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJlbnRyeS5kYXRhLmdldFZhbHVlKGVudHJ5LnJvdywgZW50cnkuY29sKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJlbnRyeS5kYXRhLmdldFZhbHVlKGVudHJ5LnJvdywgZW50cnkuY29sKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb2xlc109XCJyb2xlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWRmLXNlbGVjdC1yb2xlLXBlcm1pc3Npb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocm9sZUNoYW5nZWQpPVwidXBkYXRlUm9sZSgkZXZlbnQsIGVudHJ5LnJvdy5vYmopXCIgLz5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxhZGYtZGF0YS1jb2x1bW4taGVhZGVyICpuZ0lmPVwiIWlzUmVhZE9ubHlcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtdXNlci1yb2xlLWNvbHVtbiBjbGFzcz1cImFkZi1wZXJtaXNzaW9uLXJvbGUtY29sdW1uLWhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBFUk1JU1NJT05fTUFOQUdFUi5DT0xVTU4uQlVMSy1ST0xFXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb2xlc109XCJyb2xlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYnVsa1NlbGVjdGlvblJvbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhZGYtYnVsay1zZWxlY3Qtcm9sZS1wZXJtaXNzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyb2xlQ2hhbmdlZCk9XCJidWxrUm9sZVVwZGF0ZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9hZGYtZGF0YS1jb2x1bW4taGVhZGVyPlxuICAgICAgICA8L2RhdGEtY29sdW1uPlxuXG4gICAgICAgIDxkYXRhLWNvbHVtbiBjbGFzcz1cImFkZi1kYXRhdGFibGUtY2VsbCBhZGYtZGVsZXRlLXBlcm1pc3Npb24tY29sdW1uXCIga2V5PVwiXCIgKm5nSWY9XCIhaXNSZWFkT25seVwiIFtzb3J0YWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1lbnRyeT1cIiRpbXBsaWNpdFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZW50cnkucm93Lm9iai5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlUGVybWlzc2lvbigkZXZlbnQsIGVudHJ5LnJvdy5vYmopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZVBlcm1pc3Npb24oJGV2ZW50LCBlbnRyeS5yb3cub2JqKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1kZWxldGUtcGVybWlzc2lvbi1idXR0b24tJyArIGVudHJ5LnJvdy5vYmouYXV0aG9yaXR5SWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUEVSTUlTU0lPTl9NQU5BR0VSLkFDVElPTi5ERUxFVEUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kZWxldGVfb3V0bGluZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2RhdGEtY29sdW1uPlxuICAgIDwvZGF0YS1jb2x1bW5zPlxuXG4gICAgPGFkZi1uby1jb250ZW50LXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8YWRmLWVtcHR5LWNvbnRlbnRcbiAgICAgICAgICAgICAgICBpZD1cImFkZi1uby1wZXJtaXNzaW9ucy10ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgaWNvbj1cInN1cGVydmlzb3JfYWNjb3VudFwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidQRVJNSVNTSU9OX01BTkFHRVIuTUVTU0FHRS5FTVBUWS1QRVJNSVNTSU9OJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3N1YnRpdGxlXT1cIidQRVJNSVNTSU9OX01BTkFHRVIuTUVTU0FHRS5FTVBUWS1TVUJUSVRMRScgfCB0cmFuc2xhdGVcIiAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYWRmLW5vLWNvbnRlbnQtdGVtcGxhdGU+XG5cbjwvYWRmLWRhdGF0YWJsZT5cbiJdfQ==
@@ -0,0 +1,87 @@
1
+ import { Component, DestroyRef, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { PermissionListService } from './permission-list.service';
3
+ import { CommonModule } from '@angular/common';
4
+ import { MatCardModule } from '@angular/material/card';
5
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
8
+ import { TranslatePipe } from '@ngx-translate/core';
9
+ import { MatButtonModule } from '@angular/material/button';
10
+ import { PermissionContainerComponent } from '../permission-container/permission-container.component';
11
+ import { PopOverDirective } from '../pop-over.directive';
12
+ import { AllowableOperationsEnum, ContentService } from '../../../common';
13
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "./permission-list.service";
16
+ import * as i2 from "../../../common";
17
+ import * as i3 from "@angular/common";
18
+ import * as i4 from "@angular/material/card";
19
+ import * as i5 from "@angular/material/progress-spinner";
20
+ import * as i6 from "@angular/material/icon";
21
+ import * as i7 from "@angular/material/slide-toggle";
22
+ import * as i8 from "@angular/material/button";
23
+ export class PermissionListComponent {
24
+ get updatePermissionsAllowed() {
25
+ return this._updatePermissionsAllowed;
26
+ }
27
+ constructor(permissionList, contentService) {
28
+ this.permissionList = permissionList;
29
+ this.contentService = contentService;
30
+ this.selectedPermissions = [];
31
+ this._updatePermissionsAllowed = false;
32
+ this.destroyRef = inject(DestroyRef);
33
+ this.error = this.permissionList.errored;
34
+ this.update = this.permissionList.updated;
35
+ }
36
+ ngOnInit() {
37
+ this.permissionList.fetchPermission(this.nodeId);
38
+ this.permissionList.data$
39
+ .pipe(takeUntilDestroyed(this.destroyRef))
40
+ .subscribe((model) => (this._updatePermissionsAllowed = this.contentService.hasAllowableOperations(model.node, AllowableOperationsEnum.UPDATEPERMISSIONS)));
41
+ }
42
+ openAddPermissionDialog() {
43
+ this.permissionList.updateNodePermissionByDialog();
44
+ }
45
+ onSelect(selections) {
46
+ this.selectedPermissions = selections.map((selection) => selection['obj']).filter((permission) => !permission.readonly);
47
+ }
48
+ deleteSelection() {
49
+ this.permissionList.deletePermissions(this.selectedPermissions);
50
+ this.selectedPermissions = [];
51
+ }
52
+ updatePermission({ role, permission }) {
53
+ this.permissionList.updateRole(role, permission);
54
+ }
55
+ deletePermission(permission) {
56
+ this.selectedPermissions = [];
57
+ this.permissionList.deletePermission(permission);
58
+ }
59
+ updateAllPermission(role) {
60
+ this.permissionList.bulkRoleUpdate(role);
61
+ this.selectedPermissions = [];
62
+ }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionListComponent, deps: [{ token: i1.PermissionListService }, { token: i2.ContentService }], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PermissionListComponent, isStandalone: true, selector: "adf-permission-list", inputs: { nodeId: "nodeId" }, outputs: { update: "update", error: "error" }, ngImport: i0, template: "<mat-card class=\"adf-permission-card\" id=\"adf-permission-manager-card\">\n <div *ngIf=\"(permissionList.data$ | async) === null && permissionList.loading$ | async\" class=\"adf-permission-loader\">\n <mat-progress-spinner [color]=\"'primary'\" [mode]=\"'indeterminate'\" />\n </div>\n\n <ng-container *ngIf=\"permissionList.error$ | async\">\n <div class=\"adf-no-permission__template\" id=\"adf-permission-manager-error\">\n <mat-icon color=\"warn\">error</mat-icon>\n <p class=\"adf-no-permission__template--text\">{{ 'PERMISSION_MANAGER.ERROR.NOT-FOUND'| translate }}</p>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"permissionList.data$ | async as model\">\n <div class=\"adf-permission-container\" #target>\n\n <div class=\"adf-permission-header\">\n <span class=\"adf-inherit-container\">\n <h3 class=\"adf-inherit-container-header\">\n {{'PERMISSION_MANAGER.LABELS.INHERITED-PERMISSIONS' | translate }}\n\n {{ (model.node.permissions.isInheritanceEnabled ? \"PERMISSION_MANAGER.LABELS.ON\" : \"PERMISSION_MANAGER.LABELS.OFF\") | translate }}\n </h3>\n\n <mat-slide-toggle\n *ngIf=\"updatePermissionsAllowed\"\n class=\"adf-inherit-toggle\"\n title=\"{{'PERMISSION_MANAGER.LABELS.INHERITED_PERMISSION_TOGGLE' | translate }}\"\n color=\"primary\"\n aria-label=\"{{'PERMISSION_MANAGER.LABELS.INHERITED_PERMISSION_TOGGLE' | translate}}\"\n data-automation-id=\"adf-inherit-toggle-button\"\n [checked]=\"model.node.permissions.isInheritanceEnabled\"\n (change)=\"permissionList.toggleInherited($event)\" />\n </span>\n\n <span class=\"adf-inherit-subtitle\" title=\"total\">\n {{'PERMISSION_MANAGER.LABELS.INHERITED-SUBTITLE' | translate: { count: model.inheritedPermissions.length } }}\n </span>\n </div>\n\n <button\n mat-flat-button\n data-automation-id=\"permission-info-button\"\n class=\"adf-permission-visibility-toggle\"\n [adf-pop-over]=\"inheritedPermission\"\n [target]=\"target\"\n #popOver=\"adfPopOver\"\n *ngIf=\"model.node.permissions.isInheritanceEnabled\">\n {{ (popOver.open ? 'PERMISSION_MANAGER.LABELS.HIDE' : 'PERMISSION_MANAGER.LABELS.SHOW') | translate }}\n <mat-icon class=\"adf-permission-visibility-toggle-icon\" iconPositionEnd>\n {{ popOver.open ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }} </mat-icon>\n </button>\n </div>\n\n <ng-template #inheritedPermission>\n <div class=\"adf-pop-over-card\">\n <adf-permission-container\n data-automation-id=\"adf-inherited-permission\"\n [isReadOnly]=\"true\"\n [node]=\"model.node\"\n [permissions]=\"model.inheritedPermissions\"\n [showLocation]=\"true\"\n [selectionMode]=\"'none'\"\n [roles]=\"model.roles\" />\n </div>\n </ng-template>\n\n <mat-card-content class=\"adf-local-permission-container\">\n <section class=\"adf-permission-content-header\">\n <h3>{{'PERMISSION_MANAGER.LABELS.DIRECT-PERMISSIONS' | translate }}</h3>\n\n <div class=\"adf-toolbar--spacer\"></div>\n\n <ng-container *ngIf=\"updatePermissionsAllowed\">\n <button\n mat-icon-button\n title=\"{{'PERMISSION_MANAGER.ACTION.ADD-PERMISSION' | translate}}\"\n (click)=\"openAddPermissionDialog()\"\n class=\"adf-add-permission-button\"\n data-automation-id=\"adf-add-permission-button\">\n <mat-icon>person_add_outline</mat-icon>\n </button>\n\n <button\n mat-icon-button\n title=\"{{'PERMISSION_MANAGER.ACTION.DELETE' | translate}}\"\n [disabled]=\"!selectedPermissions?.length\"\n (click)=\"deleteSelection()\"\n data-automation-id=\"adf-delete-selected-permission\">\n <mat-icon>delete_outline</mat-icon>\n </button>\n </ng-container>\n </section>\n\n <adf-permission-container\n class=\"adf-permission-list\"\n data-automation-id=\"adf-locally-set-permission\"\n [node]=\"model.node\"\n [permissions]=\"model.localPermissions\"\n (update)=\"updatePermission($event)\"\n (delete)=\"deletePermission($event)\"\n (updateAll)=\"updateAllPermission($event)\"\n (row-select)=\"onSelect($any($event).detail.selection)\"\n (row-unselect)=\"onSelect($any($event).detail.selection)\"\n [roles]=\"model.roles\"\n [isReadOnly]=\"!updatePermissionsAllowed\"/>\n\n </mat-card-content>\n </ng-container>\n</mat-card>\n", styles: [".adf-permission-card{height:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;padding:16px}.adf-permission-loader{margin-left:45%;overflow:hidden}.adf-permission-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:10px 15px;border:1px solid var(--adf-theme-foreground-text-color-007)}.adf-permission-container .adf-permission-visibility-toggle .adf-permission-visibility-toggle-icon{font-size:24px;height:24px;width:24px;margin:1px 0 0 4px}.adf-inherit-container{display:flex;flex-direction:row;align-items:center}.adf-inherit-container-header{margin-bottom:10px;margin-top:10px}.adf-inherit-toggle{padding-left:30px;margin-top:-2px}.adf-inherit-subtitle{padding-bottom:5px}.adf-permission-content-header{display:flex;flex-direction:row;align-items:center;padding:5px 15px}.adf-permission-content-header .adf-add-permission-button{margin-left:12px;margin-right:24px}.adf-permission-content-header .adf-toolbar--spacer{flex:1 1 auto}.adf-permission-role-column-header{position:relative;height:40px}.adf-permission-header{display:flex;flex-direction:column;flex:1;height:100%;overflow:hidden;min-height:0}.adf-permission-list{display:flex;height:calc(100% - 63px)}.adf-local-permission-container.mat-mdc-card-content{overflow:hidden;flex:1 1 auto;padding:0}[aria-sort=Ascending] adf-user-role-column,[aria-sort=Descending] adf-user-role-column{padding-left:10px;padding-right:10px}.adf-permission-pop-over{padding-right:15px;width:100%}.adf-permission-pop-over .adf-pop-over-card{width:100%;overflow:hidden;box-shadow:0 8px 9px -5px var(--adf-theme-foreground-divider-color),0 15px 22px 2px var(--adf-theme-foreground-divider-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i7.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: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: PermissionContainerComponent, selector: "adf-permission-container", inputs: ["node", "permissions", "roles", "isReadOnly", "showLocation", "selectionMode"], outputs: ["update", "updateAll", "delete", "error"] }, { kind: "directive", type: PopOverDirective, selector: "[adf-pop-over]", inputs: ["adf-pop-over", "target", "panelClass", "autofocusedElementSelector"], exportAs: ["adfPopOver"] }], encapsulation: i0.ViewEncapsulation.None }); }
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionListComponent, decorators: [{
67
+ type: Component,
68
+ args: [{ selector: 'adf-permission-list', standalone: true, imports: [
69
+ CommonModule,
70
+ MatCardModule,
71
+ MatProgressSpinnerModule,
72
+ MatIconModule,
73
+ MatSlideToggleModule,
74
+ TranslatePipe,
75
+ MatButtonModule,
76
+ PermissionContainerComponent,
77
+ PopOverDirective
78
+ ], encapsulation: ViewEncapsulation.None, template: "<mat-card class=\"adf-permission-card\" id=\"adf-permission-manager-card\">\n <div *ngIf=\"(permissionList.data$ | async) === null && permissionList.loading$ | async\" class=\"adf-permission-loader\">\n <mat-progress-spinner [color]=\"'primary'\" [mode]=\"'indeterminate'\" />\n </div>\n\n <ng-container *ngIf=\"permissionList.error$ | async\">\n <div class=\"adf-no-permission__template\" id=\"adf-permission-manager-error\">\n <mat-icon color=\"warn\">error</mat-icon>\n <p class=\"adf-no-permission__template--text\">{{ 'PERMISSION_MANAGER.ERROR.NOT-FOUND'| translate }}</p>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"permissionList.data$ | async as model\">\n <div class=\"adf-permission-container\" #target>\n\n <div class=\"adf-permission-header\">\n <span class=\"adf-inherit-container\">\n <h3 class=\"adf-inherit-container-header\">\n {{'PERMISSION_MANAGER.LABELS.INHERITED-PERMISSIONS' | translate }}\n\n {{ (model.node.permissions.isInheritanceEnabled ? \"PERMISSION_MANAGER.LABELS.ON\" : \"PERMISSION_MANAGER.LABELS.OFF\") | translate }}\n </h3>\n\n <mat-slide-toggle\n *ngIf=\"updatePermissionsAllowed\"\n class=\"adf-inherit-toggle\"\n title=\"{{'PERMISSION_MANAGER.LABELS.INHERITED_PERMISSION_TOGGLE' | translate }}\"\n color=\"primary\"\n aria-label=\"{{'PERMISSION_MANAGER.LABELS.INHERITED_PERMISSION_TOGGLE' | translate}}\"\n data-automation-id=\"adf-inherit-toggle-button\"\n [checked]=\"model.node.permissions.isInheritanceEnabled\"\n (change)=\"permissionList.toggleInherited($event)\" />\n </span>\n\n <span class=\"adf-inherit-subtitle\" title=\"total\">\n {{'PERMISSION_MANAGER.LABELS.INHERITED-SUBTITLE' | translate: { count: model.inheritedPermissions.length } }}\n </span>\n </div>\n\n <button\n mat-flat-button\n data-automation-id=\"permission-info-button\"\n class=\"adf-permission-visibility-toggle\"\n [adf-pop-over]=\"inheritedPermission\"\n [target]=\"target\"\n #popOver=\"adfPopOver\"\n *ngIf=\"model.node.permissions.isInheritanceEnabled\">\n {{ (popOver.open ? 'PERMISSION_MANAGER.LABELS.HIDE' : 'PERMISSION_MANAGER.LABELS.SHOW') | translate }}\n <mat-icon class=\"adf-permission-visibility-toggle-icon\" iconPositionEnd>\n {{ popOver.open ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }} </mat-icon>\n </button>\n </div>\n\n <ng-template #inheritedPermission>\n <div class=\"adf-pop-over-card\">\n <adf-permission-container\n data-automation-id=\"adf-inherited-permission\"\n [isReadOnly]=\"true\"\n [node]=\"model.node\"\n [permissions]=\"model.inheritedPermissions\"\n [showLocation]=\"true\"\n [selectionMode]=\"'none'\"\n [roles]=\"model.roles\" />\n </div>\n </ng-template>\n\n <mat-card-content class=\"adf-local-permission-container\">\n <section class=\"adf-permission-content-header\">\n <h3>{{'PERMISSION_MANAGER.LABELS.DIRECT-PERMISSIONS' | translate }}</h3>\n\n <div class=\"adf-toolbar--spacer\"></div>\n\n <ng-container *ngIf=\"updatePermissionsAllowed\">\n <button\n mat-icon-button\n title=\"{{'PERMISSION_MANAGER.ACTION.ADD-PERMISSION' | translate}}\"\n (click)=\"openAddPermissionDialog()\"\n class=\"adf-add-permission-button\"\n data-automation-id=\"adf-add-permission-button\">\n <mat-icon>person_add_outline</mat-icon>\n </button>\n\n <button\n mat-icon-button\n title=\"{{'PERMISSION_MANAGER.ACTION.DELETE' | translate}}\"\n [disabled]=\"!selectedPermissions?.length\"\n (click)=\"deleteSelection()\"\n data-automation-id=\"adf-delete-selected-permission\">\n <mat-icon>delete_outline</mat-icon>\n </button>\n </ng-container>\n </section>\n\n <adf-permission-container\n class=\"adf-permission-list\"\n data-automation-id=\"adf-locally-set-permission\"\n [node]=\"model.node\"\n [permissions]=\"model.localPermissions\"\n (update)=\"updatePermission($event)\"\n (delete)=\"deletePermission($event)\"\n (updateAll)=\"updateAllPermission($event)\"\n (row-select)=\"onSelect($any($event).detail.selection)\"\n (row-unselect)=\"onSelect($any($event).detail.selection)\"\n [roles]=\"model.roles\"\n [isReadOnly]=\"!updatePermissionsAllowed\"/>\n\n </mat-card-content>\n </ng-container>\n</mat-card>\n", styles: [".adf-permission-card{height:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;padding:16px}.adf-permission-loader{margin-left:45%;overflow:hidden}.adf-permission-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:10px 15px;border:1px solid var(--adf-theme-foreground-text-color-007)}.adf-permission-container .adf-permission-visibility-toggle .adf-permission-visibility-toggle-icon{font-size:24px;height:24px;width:24px;margin:1px 0 0 4px}.adf-inherit-container{display:flex;flex-direction:row;align-items:center}.adf-inherit-container-header{margin-bottom:10px;margin-top:10px}.adf-inherit-toggle{padding-left:30px;margin-top:-2px}.adf-inherit-subtitle{padding-bottom:5px}.adf-permission-content-header{display:flex;flex-direction:row;align-items:center;padding:5px 15px}.adf-permission-content-header .adf-add-permission-button{margin-left:12px;margin-right:24px}.adf-permission-content-header .adf-toolbar--spacer{flex:1 1 auto}.adf-permission-role-column-header{position:relative;height:40px}.adf-permission-header{display:flex;flex-direction:column;flex:1;height:100%;overflow:hidden;min-height:0}.adf-permission-list{display:flex;height:calc(100% - 63px)}.adf-local-permission-container.mat-mdc-card-content{overflow:hidden;flex:1 1 auto;padding:0}[aria-sort=Ascending] adf-user-role-column,[aria-sort=Descending] adf-user-role-column{padding-left:10px;padding-right:10px}.adf-permission-pop-over{padding-right:15px;width:100%}.adf-permission-pop-over .adf-pop-over-card{width:100%;overflow:hidden;box-shadow:0 8px 9px -5px var(--adf-theme-foreground-divider-color),0 15px 22px 2px var(--adf-theme-foreground-divider-color)}\n"] }]
79
+ }], ctorParameters: () => [{ type: i1.PermissionListService }, { type: i2.ContentService }], propDecorators: { nodeId: [{
80
+ type: Input,
81
+ args: [{ required: true }]
82
+ }], update: [{
83
+ type: Output
84
+ }], error: [{
85
+ type: Output
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvcGVybWlzc2lvbi1tYW5hZ2VyL2NvbXBvbmVudHMvcGVybWlzc2lvbi1saXN0L3Blcm1pc3Npb24tbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3Blcm1pc3Npb24tbWFuYWdlci9jb21wb25lbnRzL3Blcm1pc3Npb24tbGlzdC9wZXJtaXNzaW9uLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7OztBQW9CaEUsTUFBTSxPQUFPLHVCQUF1QjtJQW1CaEMsSUFBSSx3QkFBd0I7UUFDeEIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDMUMsQ0FBQztJQUVELFlBQTRCLGNBQXFDLEVBQW1CLGNBQThCO1FBQXRGLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUFtQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFWbEgsd0JBQW1CLEdBQTZCLEVBQUUsQ0FBQztRQUUzQyw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFFekIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQU83QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7SUFDOUMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLO2FBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekMsU0FBUyxDQUNOLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDTixDQUFDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUN4RSxLQUFLLENBQUMsSUFBSSxFQUNWLHVCQUF1QixDQUFDLGlCQUFpQixDQUM1QyxDQUFDLENBQ1QsQ0FBQztJQUNWLENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRLENBQUMsVUFBMkI7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUgsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQWtDO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7K0dBbEVRLHVCQUF1QjttR0FBdkIsdUJBQXVCLDRKQ3BEcEMsNDRLQTZHQSxxdUREdkVRLFlBQVksdUxBQ1osYUFBYSwwTkFDYix3QkFBd0Isa09BQ3hCLGFBQWEsbUxBQ2Isb0JBQW9CLHFYQUNwQixhQUFhLGlEQUNiLGVBQWUseVVBQ2YsNEJBQTRCLG1OQUM1QixnQkFBZ0I7OzRGQU1YLHVCQUF1QjtrQkFsQm5DLFNBQVM7K0JBQ0kscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2Isd0JBQXdCO3dCQUN4QixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLDRCQUE0Qjt3QkFDNUIsZ0JBQWdCO3FCQUNuQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJO3VIQUtyQyxNQUFNO3NCQURMLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUt6QixNQUFNO3NCQURMLE1BQU07Z0JBS1AsS0FBSztzQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBPYmplY3REYXRhUm93IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFBlcm1pc3Npb25FbGVtZW50IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uRGlzcGxheU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Blcm1pc3Npb24ubW9kZWwnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkxpc3RTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9uLWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgUGVybWlzc2lvbkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL3Blcm1pc3Npb24tY29udGFpbmVyL3Blcm1pc3Npb24tY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BPdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vcG9wLW92ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFsbG93YWJsZU9wZXJhdGlvbnNFbnVtLCBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXBlcm1pc3Npb24tbGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Q2FyZE1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXJtaXNzaW9uQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBQb3BPdmVyRGlyZWN0aXZlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGVybWlzc2lvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wZXJtaXNzaW9uLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25MaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogSUQgb2YgdGhlIG5vZGUgd2hvc2UgcGVybWlzc2lvbnMgeW91IHdhbnQgdG8gc2hvdy4gKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIG5vZGVJZDogc3RyaW5nO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgcGVybWlzc2lvbiBpcyB1cGRhdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHVwZGF0ZTogRXZlbnRFbWl0dGVyPFBlcm1pc3Npb25FbGVtZW50PjtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICAgIHNlbGVjdGVkUGVybWlzc2lvbnM6IFBlcm1pc3Npb25EaXNwbGF5TW9kZWxbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfdXBkYXRlUGVybWlzc2lvbnNBbGxvd2VkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBnZXQgdXBkYXRlUGVybWlzc2lvbnNBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlUGVybWlzc2lvbnNBbGxvd2VkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBwZXJtaXNzaW9uTGlzdDogUGVybWlzc2lvbkxpc3RTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSkge1xuICAgICAgICB0aGlzLmVycm9yID0gdGhpcy5wZXJtaXNzaW9uTGlzdC5lcnJvcmVkO1xuICAgICAgICB0aGlzLnVwZGF0ZSA9IHRoaXMucGVybWlzc2lvbkxpc3QudXBkYXRlZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uTGlzdC5mZXRjaFBlcm1pc3Npb24odGhpcy5ub2RlSWQpO1xuICAgICAgICB0aGlzLnBlcm1pc3Npb25MaXN0LmRhdGEkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKG1vZGVsKSA9PlxuICAgICAgICAgICAgICAgICAgICAodGhpcy5fdXBkYXRlUGVybWlzc2lvbnNBbGxvd2VkID0gdGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwubm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93YWJsZU9wZXJhdGlvbnNFbnVtLlVQREFURVBFUk1JU1NJT05TXG4gICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIG9wZW5BZGRQZXJtaXNzaW9uRGlhbG9nKCkge1xuICAgICAgICB0aGlzLnBlcm1pc3Npb25MaXN0LnVwZGF0ZU5vZGVQZXJtaXNzaW9uQnlEaWFsb2coKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdChzZWxlY3Rpb25zOiBPYmplY3REYXRhUm93W10pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBlcm1pc3Npb25zID0gc2VsZWN0aW9ucy5tYXAoKHNlbGVjdGlvbikgPT4gc2VsZWN0aW9uWydvYmonXSkuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiAhcGVybWlzc2lvbi5yZWFkb25seSk7XG4gICAgfVxuXG4gICAgZGVsZXRlU2VsZWN0aW9uKCkge1xuICAgICAgICB0aGlzLnBlcm1pc3Npb25MaXN0LmRlbGV0ZVBlcm1pc3Npb25zKHRoaXMuc2VsZWN0ZWRQZXJtaXNzaW9ucyk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQZXJtaXNzaW9ucyA9IFtdO1xuICAgIH1cblxuICAgIHVwZGF0ZVBlcm1pc3Npb24oeyByb2xlLCBwZXJtaXNzaW9uIH0pIHtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uTGlzdC51cGRhdGVSb2xlKHJvbGUsIHBlcm1pc3Npb24pO1xuICAgIH1cblxuICAgIGRlbGV0ZVBlcm1pc3Npb24ocGVybWlzc2lvbjogUGVybWlzc2lvbkRpc3BsYXlNb2RlbCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUGVybWlzc2lvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uTGlzdC5kZWxldGVQZXJtaXNzaW9uKHBlcm1pc3Npb24pO1xuICAgIH1cblxuICAgIHVwZGF0ZUFsbFBlcm1pc3Npb24ocm9sZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGVybWlzc2lvbkxpc3QuYnVsa1JvbGVVcGRhdGUocm9sZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQZXJtaXNzaW9ucyA9IFtdO1xuICAgIH1cbn1cbiIsIjxtYXQtY2FyZCBjbGFzcz1cImFkZi1wZXJtaXNzaW9uLWNhcmRcIiBpZD1cImFkZi1wZXJtaXNzaW9uLW1hbmFnZXItY2FyZFwiPlxuICAgIDxkaXYgKm5nSWY9XCIocGVybWlzc2lvbkxpc3QuZGF0YSQgfCBhc3luYykgPT09IG51bGwgJiYgcGVybWlzc2lvbkxpc3QubG9hZGluZyQgfCBhc3luY1wiIGNsYXNzPVwiYWRmLXBlcm1pc3Npb24tbG9hZGVyXCI+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBbY29sb3JdPVwiJ3ByaW1hcnknXCIgW21vZGVdPVwiJ2luZGV0ZXJtaW5hdGUnXCIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwZXJtaXNzaW9uTGlzdC5lcnJvciQgfCBhc3luY1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLW5vLXBlcm1pc3Npb25fX3RlbXBsYXRlXCIgaWQ9XCJhZGYtcGVybWlzc2lvbi1tYW5hZ2VyLWVycm9yXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJ3YXJuXCI+ZXJyb3I8L21hdC1pY29uPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJhZGYtbm8tcGVybWlzc2lvbl9fdGVtcGxhdGUtLXRleHRcIj57eyAnUEVSTUlTU0lPTl9NQU5BR0VSLkVSUk9SLk5PVC1GT1VORCd8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGVybWlzc2lvbkxpc3QuZGF0YSQgfCBhc3luYyBhcyBtb2RlbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXBlcm1pc3Npb24tY29udGFpbmVyXCIgI3RhcmdldD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1wZXJtaXNzaW9uLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLWluaGVyaXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImFkZi1pbmhlcml0LWNvbnRhaW5lci1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7J1BFUk1JU1NJT05fTUFOQUdFUi5MQUJFTFMuSU5IRVJJVEVELVBFUk1JU1NJT05TJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAobW9kZWwubm9kZS5wZXJtaXNzaW9ucy5pc0luaGVyaXRhbmNlRW5hYmxlZCA/IFwiUEVSTUlTU0lPTl9NQU5BR0VSLkxBQkVMUy5PTlwiIDogXCJQRVJNSVNTSU9OX01BTkFHRVIuTEFCRUxTLk9GRlwiKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2gzPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInVwZGF0ZVBlcm1pc3Npb25zQWxsb3dlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1pbmhlcml0LXRvZ2dsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cInt7J1BFUk1JU1NJT05fTUFOQUdFUi5MQUJFTFMuSU5IRVJJVEVEX1BFUk1JU1NJT05fVE9HR0xFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cInt7J1BFUk1JU1NJT05fTUFOQUdFUi5MQUJFTFMuSU5IRVJJVEVEX1BFUk1JU1NJT05fVE9HR0xFJyB8IHRyYW5zbGF0ZX19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1pbmhlcml0LXRvZ2dsZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibW9kZWwubm9kZS5wZXJtaXNzaW9ucy5pc0luaGVyaXRhbmNlRW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInBlcm1pc3Npb25MaXN0LnRvZ2dsZUluaGVyaXRlZCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi1pbmhlcml0LXN1YnRpdGxlXCIgdGl0bGU9XCJ0b3RhbFwiPlxuICAgICAgICAgICAgICAgICAgICB7eydQRVJNSVNTSU9OX01BTkFHRVIuTEFCRUxTLklOSEVSSVRFRC1TVUJUSVRMRScgfCB0cmFuc2xhdGU6IHsgY291bnQ6IG1vZGVsLmluaGVyaXRlZFBlcm1pc3Npb25zLmxlbmd0aCB9IH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBtYXQtZmxhdC1idXR0b25cbiAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJwZXJtaXNzaW9uLWluZm8tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1wZXJtaXNzaW9uLXZpc2liaWxpdHktdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICBbYWRmLXBvcC1vdmVyXT1cImluaGVyaXRlZFBlcm1pc3Npb25cIlxuICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwidGFyZ2V0XCJcbiAgICAgICAgICAgICAgICAjcG9wT3Zlcj1cImFkZlBvcE92ZXJcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwibW9kZWwubm9kZS5wZXJtaXNzaW9ucy5pc0luaGVyaXRhbmNlRW5hYmxlZFwiPlxuICAgICAgICAgICAgICAgIHt7IChwb3BPdmVyLm9wZW4gPyAnUEVSTUlTU0lPTl9NQU5BR0VSLkxBQkVMUy5ISURFJyA6ICdQRVJNSVNTSU9OX01BTkFHRVIuTEFCRUxTLlNIT1cnKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi1wZXJtaXNzaW9uLXZpc2liaWxpdHktdG9nZ2xlLWljb25cIiBpY29uUG9zaXRpb25FbmQ+XG4gICAgICAgICAgICAgICAgICAgIHt7IHBvcE92ZXIub3BlbiA/ICdrZXlib2FyZF9hcnJvd191cCcgOiAna2V5Ym9hcmRfYXJyb3dfZG93bicgfX0gPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2luaGVyaXRlZFBlcm1pc3Npb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXBvcC1vdmVyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICA8YWRmLXBlcm1pc3Npb24tY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1pbmhlcml0ZWQtcGVybWlzc2lvblwiXG4gICAgICAgICAgICAgICAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbbm9kZV09XCJtb2RlbC5ub2RlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Blcm1pc3Npb25zXT1cIm1vZGVsLmluaGVyaXRlZFBlcm1pc3Npb25zXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dMb2NhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiJ25vbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvbGVzXT1cIm1vZGVsLnJvbGVzXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiYWRmLWxvY2FsLXBlcm1pc3Npb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImFkZi1wZXJtaXNzaW9uLWNvbnRlbnQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGgzPnt7J1BFUk1JU1NJT05fTUFOQUdFUi5MQUJFTFMuRElSRUNULVBFUk1JU1NJT05TJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXRvb2xiYXItLXNwYWNlclwiPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwZGF0ZVBlcm1pc3Npb25zQWxsb3dlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3snUEVSTUlTU0lPTl9NQU5BR0VSLkFDVElPTi5BREQtUEVSTUlTU0lPTicgfCB0cmFuc2xhdGV9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkFkZFBlcm1pc3Npb25EaWFsb2coKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1hZGQtcGVybWlzc2lvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWFkZC1wZXJtaXNzaW9uLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnBlcnNvbl9hZGRfb3V0bGluZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eydQRVJNSVNTSU9OX01BTkFHRVIuQUNUSU9OLkRFTEVURScgfCB0cmFuc2xhdGV9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkUGVybWlzc2lvbnM/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2VsZWN0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWRlbGV0ZS1zZWxlY3RlZC1wZXJtaXNzaW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZGVsZXRlX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgICAgPGFkZi1wZXJtaXNzaW9uLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXBlcm1pc3Npb24tbGlzdFwiXG4gICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWxvY2FsbHktc2V0LXBlcm1pc3Npb25cIlxuICAgICAgICAgICAgICAgIFtub2RlXT1cIm1vZGVsLm5vZGVcIlxuICAgICAgICAgICAgICAgIFtwZXJtaXNzaW9uc109XCJtb2RlbC5sb2NhbFBlcm1pc3Npb25zXCJcbiAgICAgICAgICAgICAgICAodXBkYXRlKT1cInVwZGF0ZVBlcm1pc3Npb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGRlbGV0ZSk9XCJkZWxldGVQZXJtaXNzaW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgICh1cGRhdGVBbGwpPVwidXBkYXRlQWxsUGVybWlzc2lvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocm93LXNlbGVjdCk9XCJvblNlbGVjdCgkYW55KCRldmVudCkuZGV0YWlsLnNlbGVjdGlvbilcIlxuICAgICAgICAgICAgICAgIChyb3ctdW5zZWxlY3QpPVwib25TZWxlY3QoJGFueSgkZXZlbnQpLmRldGFpbC5zZWxlY3Rpb24pXCJcbiAgICAgICAgICAgICAgICBbcm9sZXNdPVwibW9kZWwucm9sZXNcIlxuICAgICAgICAgICAgICAgIFtpc1JlYWRPbmx5XT1cIiF1cGRhdGVQZXJtaXNzaW9uc0FsbG93ZWRcIi8+XG5cbiAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9tYXQtY2FyZD5cbiJdfQ==