@alfresco/aca-content 4.0.0-4895233349

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 (264) hide show
  1. package/README.md +24 -0
  2. package/about/about.component.d.ts +45 -0
  3. package/about/aca-about.module.d.ts +39 -0
  4. package/about/dev-mode.tokens.d.ts +25 -0
  5. package/about/index.d.ts +5 -0
  6. package/about/package-json.token.d.ts +25 -0
  7. package/about/public-api.d.ts +27 -0
  8. package/assets/app.extensions.json +2626 -0
  9. package/assets/i18n/ar.json +660 -0
  10. package/assets/i18n/cs.json +660 -0
  11. package/assets/i18n/da.json +660 -0
  12. package/assets/i18n/de.json +660 -0
  13. package/assets/i18n/en.json +660 -0
  14. package/assets/i18n/es.json +660 -0
  15. package/assets/i18n/fi.json +660 -0
  16. package/assets/i18n/fr.json +660 -0
  17. package/assets/i18n/it.json +660 -0
  18. package/assets/i18n/ja.json +660 -0
  19. package/assets/i18n/nb.json +660 -0
  20. package/assets/i18n/nl.json +660 -0
  21. package/assets/i18n/pl.json +660 -0
  22. package/assets/i18n/pt-BR.json +660 -0
  23. package/assets/i18n/ru.json +660 -0
  24. package/assets/i18n/sv.json +660 -0
  25. package/assets/i18n/zh-CN.json +660 -0
  26. package/assets/images/Wallpaper-BG-generic.svg +39 -0
  27. package/assets/images/adf-move-file-24px.svg +1 -0
  28. package/assets/images/baseline-library_books-24px.svg +2 -0
  29. package/assets/images/baseline-lock-24px.svg +1 -0
  30. package/assets/images/join-library.svg +32 -0
  31. package/esm2020/about/about.component.mjs +77 -0
  32. package/esm2020/about/aca-about.module.mjs +67 -0
  33. package/esm2020/about/alfresco-aca-content-about.mjs +5 -0
  34. package/esm2020/about/dev-mode.tokens.mjs +26 -0
  35. package/esm2020/about/package-json.token.mjs +26 -0
  36. package/esm2020/about/public-api.mjs +28 -0
  37. package/esm2020/alfresco-aca-content.mjs +5 -0
  38. package/esm2020/lib/aca-content.module.mjs +365 -0
  39. package/esm2020/lib/aca-content.routes.mjs +581 -0
  40. package/esm2020/lib/components/common/common.module.mjs +67 -0
  41. package/esm2020/lib/components/common/language-picker/language-picker.component.mjs +57 -0
  42. package/esm2020/lib/components/common/location-link/location-link.component.mjs +177 -0
  43. package/esm2020/lib/components/common/logout/logout.component.mjs +60 -0
  44. package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +65 -0
  45. package/esm2020/lib/components/common/user-info/user-info.component.mjs +86 -0
  46. package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +58 -0
  47. package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +65 -0
  48. package/esm2020/lib/components/context-menu/context-menu-overlay.mjs +32 -0
  49. package/esm2020/lib/components/context-menu/context-menu.component.mjs +102 -0
  50. package/esm2020/lib/components/context-menu/context-menu.module.mjs +76 -0
  51. package/esm2020/lib/components/context-menu/context-menu.service.mjs +103 -0
  52. package/esm2020/lib/components/context-menu/direction.token.mjs +29 -0
  53. package/esm2020/lib/components/context-menu/interfaces.mjs +25 -0
  54. package/esm2020/lib/components/create-menu/create-menu.component.mjs +73 -0
  55. package/esm2020/lib/components/create-menu/create-menu.module.mjs +44 -0
  56. package/esm2020/lib/components/details/details.component.mjs +99 -0
  57. package/esm2020/lib/components/dl-custom-components/document-list-custom-components.module.mjs +49 -0
  58. package/esm2020/lib/components/dl-custom-components/name-column/name-column.component.mjs +90 -0
  59. package/esm2020/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +31 -0
  60. package/esm2020/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +51 -0
  61. package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +113 -0
  62. package/esm2020/lib/components/favorites/favorites.component.mjs +98 -0
  63. package/esm2020/lib/components/files/files.component.mjs +312 -0
  64. package/esm2020/lib/components/home/home.component.mjs +49 -0
  65. package/esm2020/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +56 -0
  66. package/esm2020/lib/components/info-drawer/info.drawer.module.mjs +92 -0
  67. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +143 -0
  68. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +42 -0
  69. package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +88 -0
  70. package/esm2020/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +95 -0
  71. package/esm2020/lib/components/libraries/libraries.component.mjs +70 -0
  72. package/esm2020/lib/components/node-version/node-version-form.component.mjs +70 -0
  73. package/esm2020/lib/components/node-version/node-version.module.mjs +78 -0
  74. package/esm2020/lib/components/recent-files/recent-files.component.mjs +81 -0
  75. package/esm2020/lib/components/search/search-action-menu/search-action-menu.component.mjs +59 -0
  76. package/esm2020/lib/components/search/search-input/search-input.component.mjs +275 -0
  77. package/esm2020/lib/components/search/search-input-control/search-input-control.component.mjs +87 -0
  78. package/esm2020/lib/components/search/search-input.module.mjs +47 -0
  79. package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +91 -0
  80. package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +142 -0
  81. package/esm2020/lib/components/search/search-navigation.service.mjs +60 -0
  82. package/esm2020/lib/components/search/search-results/search-results.component.mjs +221 -0
  83. package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +101 -0
  84. package/esm2020/lib/components/search/search-results.module.mjs +88 -0
  85. package/esm2020/lib/components/shared-files/shared-files.component.mjs +78 -0
  86. package/esm2020/lib/components/shared-link-view/shared-link-view.component.mjs +81 -0
  87. package/esm2020/lib/components/shared-link-view/shared-link-view.module.mjs +69 -0
  88. package/esm2020/lib/components/sidenav/components/button-menu.component.mjs +57 -0
  89. package/esm2020/lib/components/sidenav/components/expand-menu.component.mjs +53 -0
  90. package/esm2020/lib/components/sidenav/components/sidenav-header.component.mjs +74 -0
  91. package/esm2020/lib/components/sidenav/directives/action.directive.mjs +74 -0
  92. package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +92 -0
  93. package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +101 -0
  94. package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +98 -0
  95. package/esm2020/lib/components/sidenav/sidenav.component.mjs +83 -0
  96. package/esm2020/lib/components/sidenav/sidenav.module.mjs +84 -0
  97. package/esm2020/lib/components/toolbar/document-display-mode/document-display-mode.component.mjs +84 -0
  98. package/esm2020/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +150 -0
  99. package/esm2020/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +79 -0
  100. package/esm2020/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +101 -0
  101. package/esm2020/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +75 -0
  102. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +98 -0
  103. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.mjs +80 -0
  104. package/esm2020/lib/components/toolbar/toolbar.module.mjs +88 -0
  105. package/esm2020/lib/components/toolbar/view-node/view-node.component.mjs +109 -0
  106. package/esm2020/lib/components/trashcan/trashcan.component.mjs +63 -0
  107. package/esm2020/lib/components/trashcan/trashcan.module.mjs +74 -0
  108. package/esm2020/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +50 -0
  109. package/esm2020/lib/components/view-profile/view-profile.component.mjs +174 -0
  110. package/esm2020/lib/components/view-profile/view-profile.guard.mjs +47 -0
  111. package/esm2020/lib/components/view-profile/view-profile.module.mjs +42 -0
  112. package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +119 -0
  113. package/esm2020/lib/directives/directives.module.mjs +42 -0
  114. package/esm2020/lib/directives/document-list.directive.mjs +141 -0
  115. package/esm2020/lib/extensions/core.extensions.module.mjs +64 -0
  116. package/esm2020/lib/material.module.mjs +57 -0
  117. package/esm2020/lib/services/content-management.service.mjs +870 -0
  118. package/esm2020/lib/services/content-service-extension.service.mjs +63 -0
  119. package/esm2020/lib/services/content-url.service.mjs +72 -0
  120. package/esm2020/lib/services/node-actions.service.mjs +600 -0
  121. package/esm2020/lib/services/node-template.service.mjs +149 -0
  122. package/esm2020/lib/store/app-store.module.mjs +95 -0
  123. package/esm2020/lib/store/effects/app.effects.mjs +61 -0
  124. package/esm2020/lib/store/effects/contextmenu.effects.mjs +55 -0
  125. package/esm2020/lib/store/effects/download.effects.mjs +159 -0
  126. package/esm2020/lib/store/effects/favorite.effects.mjs +76 -0
  127. package/esm2020/lib/store/effects/library.effects.mjs +111 -0
  128. package/esm2020/lib/store/effects/node.effects.mjs +309 -0
  129. package/esm2020/lib/store/effects/search.effects.mjs +60 -0
  130. package/esm2020/lib/store/effects/template.effects.mjs +121 -0
  131. package/esm2020/lib/store/effects/upload.effects.mjs +169 -0
  132. package/esm2020/lib/store/effects/viewer.effects.mjs +175 -0
  133. package/esm2020/lib/store/effects.mjs +35 -0
  134. package/esm2020/lib/store/initial-state.mjs +62 -0
  135. package/esm2020/lib/store/reducers/app.reducer.mjs +211 -0
  136. package/esm2020/public-api.mjs +32 -0
  137. package/fesm2015/alfresco-aca-content-about.mjs +216 -0
  138. package/fesm2015/alfresco-aca-content-about.mjs.map +1 -0
  139. package/fesm2015/alfresco-aca-content.mjs +9771 -0
  140. package/fesm2015/alfresco-aca-content.mjs.map +1 -0
  141. package/fesm2020/alfresco-aca-content-about.mjs +214 -0
  142. package/fesm2020/alfresco-aca-content-about.mjs.map +1 -0
  143. package/fesm2020/alfresco-aca-content.mjs +9915 -0
  144. package/fesm2020/alfresco-aca-content.mjs.map +1 -0
  145. package/index.d.ts +5 -0
  146. package/lib/aca-content.module.d.ts +47 -0
  147. package/lib/aca-content.routes.d.ts +27 -0
  148. package/lib/components/common/common.module.d.ts +17 -0
  149. package/lib/components/common/language-picker/language-picker.component.d.ts +5 -0
  150. package/lib/components/common/location-link/location-link.component.d.ts +48 -0
  151. package/lib/components/common/logout/logout.component.d.ts +10 -0
  152. package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +43 -0
  153. package/lib/components/common/user-info/user-info.component.d.ts +44 -0
  154. package/lib/components/context-menu/context-menu-item.component.d.ts +13 -0
  155. package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +35 -0
  156. package/lib/components/context-menu/context-menu-overlay.d.ts +29 -0
  157. package/lib/components/context-menu/context-menu.component.d.ts +48 -0
  158. package/lib/components/context-menu/context-menu.module.d.ts +18 -0
  159. package/lib/components/context-menu/context-menu.service.d.ts +43 -0
  160. package/lib/components/context-menu/direction.token.d.ts +25 -0
  161. package/lib/components/context-menu/interfaces.d.ts +30 -0
  162. package/lib/components/create-menu/create-menu.component.d.ts +42 -0
  163. package/lib/components/create-menu/create-menu.module.d.ts +10 -0
  164. package/lib/components/details/details.component.d.ts +46 -0
  165. package/lib/components/dl-custom-components/document-list-custom-components.module.d.ts +14 -0
  166. package/lib/components/dl-custom-components/name-column/name-column.component.d.ts +41 -0
  167. package/lib/components/dl-custom-components/tags-column/tags-column.component.d.ts +35 -0
  168. package/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.d.ts +17 -0
  169. package/lib/components/favorite-libraries/favorite-libraries.component.d.ts +54 -0
  170. package/lib/components/favorites/favorites.component.d.ts +49 -0
  171. package/lib/components/files/files.component.d.ts +55 -0
  172. package/lib/components/home/home.component.d.ts +36 -0
  173. package/lib/components/info-drawer/comments-tab/comments-tab.component.d.ts +11 -0
  174. package/lib/components/info-drawer/info.drawer.module.d.ts +19 -0
  175. package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +64 -0
  176. package/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.d.ts +7 -0
  177. package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +49 -0
  178. package/lib/components/info-drawer/versions-tab/versions-tab.component.d.ts +35 -0
  179. package/lib/components/libraries/libraries.component.d.ts +44 -0
  180. package/lib/components/node-version/node-version-form.component.d.ts +46 -0
  181. package/lib/components/node-version/node-version.module.d.ts +16 -0
  182. package/lib/components/recent-files/recent-files.component.d.ts +48 -0
  183. package/lib/components/search/search-action-menu/search-action-menu.component.d.ts +38 -0
  184. package/lib/components/search/search-input/search-input.component.d.ts +85 -0
  185. package/lib/components/search/search-input-control/search-input-control.component.d.ts +50 -0
  186. package/lib/components/search/search-input.module.d.ts +12 -0
  187. package/lib/components/search/search-libraries-results/search-libraries-query-builder.service.d.ts +56 -0
  188. package/lib/components/search/search-libraries-results/search-libraries-results.component.d.ts +58 -0
  189. package/lib/components/search/search-navigation.service.d.ts +13 -0
  190. package/lib/components/search/search-results/search-results.component.d.ts +69 -0
  191. package/lib/components/search/search-results-row/search-results-row.component.d.ts +50 -0
  192. package/lib/components/search/search-results.module.d.ts +21 -0
  193. package/lib/components/shared-files/shared-files.component.d.ts +47 -0
  194. package/lib/components/shared-link-view/shared-link-view.component.d.ts +47 -0
  195. package/lib/components/shared-link-view/shared-link-view.module.d.ts +15 -0
  196. package/lib/components/sidenav/components/button-menu.component.d.ts +37 -0
  197. package/lib/components/sidenav/components/expand-menu.component.d.ts +35 -0
  198. package/lib/components/sidenav/components/sidenav-header.component.d.ts +48 -0
  199. package/lib/components/sidenav/directives/action.directive.d.ts +14 -0
  200. package/lib/components/sidenav/directives/active-link.directive.d.ts +45 -0
  201. package/lib/components/sidenav/directives/expansion-panel.directive.d.ts +44 -0
  202. package/lib/components/sidenav/directives/menu-panel.directive.d.ts +42 -0
  203. package/lib/components/sidenav/sidenav.component.d.ts +50 -0
  204. package/lib/components/sidenav/sidenav.module.d.ts +19 -0
  205. package/lib/components/toolbar/document-display-mode/document-display-mode.component.d.ts +13 -0
  206. package/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.d.ts +47 -0
  207. package/lib/components/toolbar/toggle-favorite/toggle-favorite.component.d.ts +42 -0
  208. package/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.d.ts +42 -0
  209. package/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.d.ts +11 -0
  210. package/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.d.ts +41 -0
  211. package/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.d.ts +10 -0
  212. package/lib/components/toolbar/toolbar.module.d.ts +20 -0
  213. package/lib/components/toolbar/view-node/view-node.component.d.ts +19 -0
  214. package/lib/components/trashcan/trashcan.component.d.ts +42 -0
  215. package/lib/components/trashcan/trashcan.module.d.ts +16 -0
  216. package/lib/components/upload-files-dialog/upload-files-dialog.component.d.ts +37 -0
  217. package/lib/components/view-profile/view-profile.component.d.ts +59 -0
  218. package/lib/components/view-profile/view-profile.guard.d.ts +12 -0
  219. package/lib/components/view-profile/view-profile.module.d.ts +9 -0
  220. package/lib/dialogs/node-template/create-from-template.dialog.d.ts +49 -0
  221. package/lib/directives/directives.module.d.ts +9 -0
  222. package/lib/directives/document-list.directive.d.ts +56 -0
  223. package/lib/extensions/core.extensions.module.d.ts +14 -0
  224. package/lib/material.module.d.ts +14 -0
  225. package/lib/services/content-management.service.d.ts +100 -0
  226. package/lib/services/content-service-extension.service.d.ts +11 -0
  227. package/lib/services/content-url.service.d.ts +17 -0
  228. package/lib/services/node-actions.service.d.ts +93 -0
  229. package/lib/services/node-template.service.d.ts +34 -0
  230. package/lib/store/app-store.module.d.ts +10 -0
  231. package/lib/store/effects/app.effects.d.ts +41 -0
  232. package/lib/store/effects/contextmenu.effects.d.ts +12 -0
  233. package/lib/store/effects/download.effects.d.ts +49 -0
  234. package/lib/store/effects/favorite.effects.d.ts +38 -0
  235. package/lib/store/effects/library.effects.d.ts +43 -0
  236. package/lib/store/effects/node.effects.d.ts +56 -0
  237. package/lib/store/effects/search.effects.d.ts +37 -0
  238. package/lib/store/effects/template.effects.d.ts +54 -0
  239. package/lib/store/effects/upload.effects.d.ts +52 -0
  240. package/lib/store/effects/viewer.effects.d.ts +55 -0
  241. package/lib/store/effects.d.ts +34 -0
  242. package/lib/store/initial-state.d.ts +26 -0
  243. package/lib/store/reducers/app.reducer.d.ts +26 -0
  244. package/package.json +47 -0
  245. package/public-api.d.ts +28 -0
  246. package/ui/application.scss +53 -0
  247. package/ui/colors.scss +96 -0
  248. package/ui/custom-theme.scss +34 -0
  249. package/ui/dynamic-theme/custom-background-color.scss +14 -0
  250. package/ui/dynamic-theme/custom-palette-creator.scss +132 -0
  251. package/ui/dynamic-theme/custom-text-color.scss +8 -0
  252. package/ui/dynamic-theme/custom-theme-palettes.scss +33 -0
  253. package/ui/dynamic-theme/custom-theme.scss.tpl +72 -0
  254. package/ui/dynamic-theme/index.scss +1 -0
  255. package/ui/dynamic-theme/theme-configuration.scss.tpl +14 -0
  256. package/ui/dynamic-theme/typography.scss +94 -0
  257. package/ui/mixins.scss +26 -0
  258. package/ui/overrides/adf-about.theme.scss +38 -0
  259. package/ui/overrides/adf-pagination.theme.scss +46 -0
  260. package/ui/overrides/adf-style-fixes.theme.scss +18 -0
  261. package/ui/overrides/ay11.scss +232 -0
  262. package/ui/theme.scss +55 -0
  263. package/ui/variables/font-family.scss +1 -0
  264. package/ui/variables/variables.scss +92 -0
@@ -0,0 +1,92 @@
1
+ /*!
2
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { ContentMetadataModule, ContentModule, VersionManagerModule } from '@alfresco/adf-content-services';
25
+ import { CoreModule } from '@alfresco/adf-core';
26
+ import { ExtensionsModule } from '@alfresco/adf-extensions';
27
+ import { CommonModule } from '@angular/common';
28
+ import { NgModule } from '@angular/core';
29
+ import { DirectivesModule } from '../../directives/directives.module';
30
+ import { MaterialModule } from '../../material.module';
31
+ import { CommentsTabComponent } from './comments-tab/comments-tab.component';
32
+ import { MetadataTabComponent } from './metadata-tab/metadata-tab.component';
33
+ import { LibraryMetadataTabComponent } from './library-metadata-tab/library-metadata-tab.component';
34
+ import { LibraryMetadataFormComponent } from './library-metadata-tab/library-metadata-form.component';
35
+ import { VersionsTabComponent } from './versions-tab/versions-tab.component';
36
+ import { A11yModule } from '@angular/cdk/a11y';
37
+ import { SharedInfoDrawerModule } from '@alfresco/aca-shared';
38
+ import * as i0 from "@angular/core";
39
+ import * as i1 from "@alfresco/adf-core";
40
+ import * as i2 from "@alfresco/adf-content-services";
41
+ export class AppInfoDrawerModule {
42
+ }
43
+ AppInfoDrawerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AppInfoDrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
44
+ AppInfoDrawerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: AppInfoDrawerModule, declarations: [MetadataTabComponent, CommentsTabComponent, VersionsTabComponent, LibraryMetadataTabComponent, LibraryMetadataFormComponent], imports: [CommonModule,
45
+ MaterialModule, i1.CoreModule, i2.ContentModule, ExtensionsModule,
46
+ ContentMetadataModule,
47
+ VersionManagerModule,
48
+ DirectivesModule,
49
+ A11yModule,
50
+ SharedInfoDrawerModule], exports: [MetadataTabComponent,
51
+ CommentsTabComponent,
52
+ VersionsTabComponent,
53
+ LibraryMetadataTabComponent,
54
+ LibraryMetadataFormComponent,
55
+ SharedInfoDrawerModule] });
56
+ AppInfoDrawerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AppInfoDrawerModule, imports: [CommonModule,
57
+ MaterialModule,
58
+ CoreModule.forChild(),
59
+ ContentModule.forChild(),
60
+ ExtensionsModule,
61
+ ContentMetadataModule,
62
+ VersionManagerModule,
63
+ DirectivesModule,
64
+ A11yModule,
65
+ SharedInfoDrawerModule, SharedInfoDrawerModule] });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AppInfoDrawerModule, decorators: [{
67
+ type: NgModule,
68
+ args: [{
69
+ imports: [
70
+ CommonModule,
71
+ MaterialModule,
72
+ CoreModule.forChild(),
73
+ ContentModule.forChild(),
74
+ ExtensionsModule,
75
+ ContentMetadataModule,
76
+ VersionManagerModule,
77
+ DirectivesModule,
78
+ A11yModule,
79
+ SharedInfoDrawerModule
80
+ ],
81
+ declarations: [MetadataTabComponent, CommentsTabComponent, VersionsTabComponent, LibraryMetadataTabComponent, LibraryMetadataFormComponent],
82
+ exports: [
83
+ MetadataTabComponent,
84
+ CommentsTabComponent,
85
+ VersionsTabComponent,
86
+ LibraryMetadataTabComponent,
87
+ LibraryMetadataFormComponent,
88
+ SharedInfoDrawerModule
89
+ ]
90
+ }]
91
+ }] });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5kcmF3ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2luZm8tZHJhd2VyL2luZm8uZHJhd2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQXlCOUQsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQVZmLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLDJCQUEyQixFQUFFLDRCQUE0QixhQVh4SSxZQUFZO1FBQ1osY0FBYyxtQ0FHZCxnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLG9CQUFvQjtRQUNwQixnQkFBZ0I7UUFDaEIsVUFBVTtRQUNWLHNCQUFzQixhQUl0QixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQiwyQkFBMkI7UUFDM0IsNEJBQTRCO1FBQzVCLHNCQUFzQjtpSEFHYixtQkFBbUIsWUFyQjVCLFlBQVk7UUFDWixjQUFjO1FBQ2QsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNyQixhQUFhLENBQUMsUUFBUSxFQUFFO1FBQ3hCLGdCQUFnQjtRQUNoQixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLGdCQUFnQjtRQUNoQixVQUFVO1FBQ1Ysc0JBQXNCLEVBU3RCLHNCQUFzQjsyRkFHYixtQkFBbUI7a0JBdkIvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsVUFBVSxDQUFDLFFBQVEsRUFBRTt3QkFDckIsYUFBYSxDQUFDLFFBQVEsRUFBRTt3QkFDeEIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLHNCQUFzQjtxQkFDdkI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsMkJBQTJCLEVBQUUsNEJBQTRCLENBQUM7b0JBQzNJLE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQiwyQkFBMkI7d0JBQzNCLDRCQUE0Qjt3QkFDNUIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBDb250ZW50TWV0YWRhdGFNb2R1bGUsIENvbnRlbnRNb2R1bGUsIFZlcnNpb25NYW5hZ2VyTW9kdWxlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgRXh0ZW5zaW9uc01vZHVsZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpcmVjdGl2ZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7IENvbW1lbnRzVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50cy10YWIvY29tbWVudHMtdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXRhZGF0YVRhYkNvbXBvbmVudCB9IGZyb20gJy4vbWV0YWRhdGEtdGFiL21ldGFkYXRhLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlicmFyeU1ldGFkYXRhVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9saWJyYXJ5LW1ldGFkYXRhLXRhYi9saWJyYXJ5LW1ldGFkYXRhLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlicmFyeU1ldGFkYXRhRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vbGlicmFyeS1tZXRhZGF0YS10YWIvbGlicmFyeS1tZXRhZGF0YS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWZXJzaW9uc1RhYkNvbXBvbmVudCB9IGZyb20gJy4vdmVyc2lvbnMtdGFiL3ZlcnNpb25zLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFNoYXJlZEluZm9EcmF3ZXJNb2R1bGUgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgQ29yZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIENvbnRlbnRNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBFeHRlbnNpb25zTW9kdWxlLFxuICAgIENvbnRlbnRNZXRhZGF0YU1vZHVsZSxcbiAgICBWZXJzaW9uTWFuYWdlck1vZHVsZSxcbiAgICBEaXJlY3RpdmVzTW9kdWxlLFxuICAgIEExMXlNb2R1bGUsXG4gICAgU2hhcmVkSW5mb0RyYXdlck1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtNZXRhZGF0YVRhYkNvbXBvbmVudCwgQ29tbWVudHNUYWJDb21wb25lbnQsIFZlcnNpb25zVGFiQ29tcG9uZW50LCBMaWJyYXJ5TWV0YWRhdGFUYWJDb21wb25lbnQsIExpYnJhcnlNZXRhZGF0YUZvcm1Db21wb25lbnRdLFxuICBleHBvcnRzOiBbXG4gICAgTWV0YWRhdGFUYWJDb21wb25lbnQsXG4gICAgQ29tbWVudHNUYWJDb21wb25lbnQsXG4gICAgVmVyc2lvbnNUYWJDb21wb25lbnQsXG4gICAgTGlicmFyeU1ldGFkYXRhVGFiQ29tcG9uZW50LFxuICAgIExpYnJhcnlNZXRhZGF0YUZvcm1Db21wb25lbnQsXG4gICAgU2hhcmVkSW5mb0RyYXdlck1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcEluZm9EcmF3ZXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,143 @@
1
+ /*!
2
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, Input } from '@angular/core';
25
+ import { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';
26
+ import { QueriesApi, SiteEntry } from '@alfresco/js-api';
27
+ import { Store } from '@ngrx/store';
28
+ import { UpdateLibraryAction } from '@alfresco/aca-shared/store';
29
+ import { debounceTime, mergeMap, takeUntil } from 'rxjs/operators';
30
+ import { AlfrescoApiService } from '@alfresco/adf-core';
31
+ import { from, Subject } from 'rxjs';
32
+ import * as i0 from "@angular/core";
33
+ import * as i1 from "@alfresco/adf-core";
34
+ import * as i2 from "@ngrx/store";
35
+ import * as i3 from "@angular/common";
36
+ import * as i4 from "@angular/material/button";
37
+ import * as i5 from "@angular/material/form-field";
38
+ import * as i6 from "@angular/material/input";
39
+ import * as i7 from "@angular/material/card";
40
+ import * as i8 from "@angular/forms";
41
+ import * as i9 from "@angular/material/core";
42
+ import * as i10 from "@angular/material/select";
43
+ import * as i11 from "@ngx-translate/core";
44
+ export class InstantErrorStateMatcher {
45
+ isErrorState(control, form) {
46
+ const isSubmitted = form && form.submitted;
47
+ return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));
48
+ }
49
+ }
50
+ export class LibraryMetadataFormComponent {
51
+ constructor(alfrescoApiService, store) {
52
+ this.alfrescoApiService = alfrescoApiService;
53
+ this.store = store;
54
+ this.libraryTitleExists = false;
55
+ this.libraryType = [
56
+ { value: 'PUBLIC', label: 'LIBRARY.VISIBILITY.PUBLIC' },
57
+ { value: 'PRIVATE', label: 'LIBRARY.VISIBILITY.PRIVATE' },
58
+ { value: 'MODERATED', label: 'LIBRARY.VISIBILITY.MODERATED' }
59
+ ];
60
+ this.form = new UntypedFormGroup({
61
+ id: new UntypedFormControl({ value: '', disabled: true }),
62
+ title: new UntypedFormControl({ value: '' }, [Validators.required, Validators.maxLength(256)]),
63
+ description: new UntypedFormControl({ value: '' }, [Validators.maxLength(512)]),
64
+ visibility: new UntypedFormControl(this.libraryType[0].value)
65
+ });
66
+ this.matcher = new InstantErrorStateMatcher();
67
+ this.onDestroy$ = new Subject();
68
+ }
69
+ get queriesApi() {
70
+ this._queriesApi = this._queriesApi ?? new QueriesApi(this.alfrescoApiService.getInstance());
71
+ return this._queriesApi;
72
+ }
73
+ get canUpdateLibrary() {
74
+ return this.node && this.node.entry && this.node.entry.role === 'SiteManager';
75
+ }
76
+ getVisibilityLabel(value) {
77
+ return this.libraryType.find((type) => type.value === value).label;
78
+ }
79
+ toggleEdit() {
80
+ this.edit = !this.edit;
81
+ }
82
+ cancel() {
83
+ this.updateForm(this.node);
84
+ this.toggleEdit();
85
+ }
86
+ ngOnInit() {
87
+ this.updateForm(this.node);
88
+ this.form.controls['title'].valueChanges
89
+ .pipe(debounceTime(300), mergeMap((title) => this.findLibraryByTitle(title)), takeUntil(this.onDestroy$))
90
+ .subscribe((result) => {
91
+ const { entries } = result.list;
92
+ if (entries.length) {
93
+ if (this.form.controls.title.value === this.node.entry.title) {
94
+ this.libraryTitleExists = false;
95
+ }
96
+ else {
97
+ this.libraryTitleExists = this.form.controls.title.value === entries[0].entry.title;
98
+ }
99
+ }
100
+ else {
101
+ this.libraryTitleExists = false;
102
+ }
103
+ });
104
+ }
105
+ ngOnDestroy() {
106
+ this.onDestroy$.next(true);
107
+ this.onDestroy$.complete();
108
+ }
109
+ ngOnChanges() {
110
+ this.updateForm(this.node);
111
+ }
112
+ update() {
113
+ if (this.canUpdateLibrary && this.form.valid) {
114
+ this.store.dispatch(new UpdateLibraryAction(this.form.value));
115
+ }
116
+ }
117
+ updateForm(node) {
118
+ const { entry } = node;
119
+ this.form.setValue({
120
+ id: entry.id,
121
+ title: entry.title,
122
+ description: entry.description || '',
123
+ visibility: entry.visibility
124
+ });
125
+ }
126
+ findLibraryByTitle(libraryTitle) {
127
+ return from(this.queriesApi
128
+ .findSites(libraryTitle, {
129
+ maxItems: 1,
130
+ fields: ['title']
131
+ })
132
+ .catch(() => ({ list: { entries: [] } })));
133
+ }
134
+ }
135
+ LibraryMetadataFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryMetadataFormComponent, deps: [{ token: i1.AlfrescoApiService }, { token: i2.Store }], target: i0.ɵɵFactoryTarget.Component });
136
+ LibraryMetadataFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: LibraryMetadataFormComponent, selector: "app-library-metadata-form", inputs: { node: "node" }, usesOnChanges: true, ngImport: i0, template: "<mat-card *ngIf=\"node\">\n <mat-card-content *ngIf=\"!edit\">\n <div class=\"mat-form-field mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width\">\n <div class=\"mat-form-field-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.title.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width\">\n <div class=\"mat-form-field-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.id.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width\">\n <div class=\"mat-form-field-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ getVisibilityLabel(form.controls.visibility.value) | translate }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width\">\n <div class=\"mat-form-field-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.description?.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"!edit && canUpdateLibrary\">\n <button mat-button color=\"primary\" (click)=\"toggleEdit()\">\n {{ 'LIBRARY.DIALOG.EDIT' | translate }}\n </button>\n </mat-card-actions>\n\n <mat-card-content *ngIf=\"edit\">\n <form [formGroup]=\"form\" autocomplete=\"off\">\n <mat-form-field class=\"adf-full-width\">\n <input\n matInput\n cdkFocusInitial\n required\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\"\n formControlName=\"title\"\n [errorStateMatcher]=\"matcher\"\n />\n <mat-hint *ngIf=\"libraryTitleExists\">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint>\n <mat-error>\n {{ 'LIBRARY.ERRORS.TITLE_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"adf-full-width\">\n <input matInput placeholder=\"{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\" formControlName=\"id\" />\n </mat-form-field>\n\n <mat-form-field class=\"adf-full-width\">\n <mat-select placeholder=\"{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\" formControlName=\"visibility\">\n <mat-option [value]=\"type.value\" *ngFor=\"let type of libraryType\">\n {{ type.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"adf-full-width\">\n <textarea\n matInput\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\"\n rows=\"3\"\n formControlName=\"description\"\n [errorStateMatcher]=\"matcher\"\n ></textarea>\n <mat-error>\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n </form>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"edit && canUpdateLibrary\">\n <button mat-button (click)=\"cancel()\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n <button mat-button color=\"primary\" [disabled]=\"form.invalid || form.pristine\" (click)=\"update()\">\n {{ 'LIBRARY.DIALOG.UPDATE' | translate }}\n </button>\n </mat-card-actions>\n</mat-card>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i7.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryMetadataFormComponent, decorators: [{
138
+ type: Component,
139
+ args: [{ selector: 'app-library-metadata-form', template: "<mat-card *ngIf=\"node\">\n <mat-card-content *ngIf=\"!edit\">\n <div class=\"mat-form-field mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width\">\n <div class=\"mat-form-field-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.title.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width\">\n <div class=\"mat-form-field-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.id.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width\">\n <div class=\"mat-form-field-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ getVisibilityLabel(form.controls.visibility.value) | translate }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width\">\n <div class=\"mat-form-field-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.description?.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"!edit && canUpdateLibrary\">\n <button mat-button color=\"primary\" (click)=\"toggleEdit()\">\n {{ 'LIBRARY.DIALOG.EDIT' | translate }}\n </button>\n </mat-card-actions>\n\n <mat-card-content *ngIf=\"edit\">\n <form [formGroup]=\"form\" autocomplete=\"off\">\n <mat-form-field class=\"adf-full-width\">\n <input\n matInput\n cdkFocusInitial\n required\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\"\n formControlName=\"title\"\n [errorStateMatcher]=\"matcher\"\n />\n <mat-hint *ngIf=\"libraryTitleExists\">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint>\n <mat-error>\n {{ 'LIBRARY.ERRORS.TITLE_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"adf-full-width\">\n <input matInput placeholder=\"{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\" formControlName=\"id\" />\n </mat-form-field>\n\n <mat-form-field class=\"adf-full-width\">\n <mat-select placeholder=\"{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\" formControlName=\"visibility\">\n <mat-option [value]=\"type.value\" *ngFor=\"let type of libraryType\">\n {{ type.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"adf-full-width\">\n <textarea\n matInput\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\"\n rows=\"3\"\n formControlName=\"description\"\n [errorStateMatcher]=\"matcher\"\n ></textarea>\n <mat-error>\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n </form>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"edit && canUpdateLibrary\">\n <button mat-button (click)=\"cancel()\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n <button mat-button color=\"primary\" [disabled]=\"form.invalid || form.pristine\" (click)=\"update()\">\n {{ 'LIBRARY.DIALOG.UPDATE' | translate }}\n </button>\n </mat-card-actions>\n</mat-card>\n" }]
140
+ }], ctorParameters: function () { return [{ type: i1.AlfrescoApiService }, { type: i2.Store }]; }, propDecorators: { node: [{
141
+ type: Input
142
+ }] } });
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS1tZXRhZGF0YS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9pbmZvLWRyYXdlci9saWJyYXJ5LW1ldGFkYXRhLXRhYi9saWJyYXJ5LW1ldGFkYXRhLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2luZm8tZHJhd2VyL2xpYnJhcnktbWV0YWRhdGEtdGFiL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQVksbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQWMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztBQUdqRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQVksQ0FBQyxPQUFrQyxFQUFFLElBQXdDO1FBQ3ZGLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sNEJBQTRCO0lBOEJ2QyxZQUFvQixrQkFBc0MsRUFBWSxLQUFzQjtRQUF4RSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVksVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFuQjVGLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUUzQixnQkFBVyxHQUFHO1lBQ1osRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTtZQUN2RCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLDRCQUE0QixFQUFFO1lBQ3pELEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsOEJBQThCLEVBQUU7U0FDOUQsQ0FBQztRQUVGLFNBQUksR0FBcUIsSUFBSSxnQkFBZ0IsQ0FBQztZQUM1QyxFQUFFLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3pELEtBQUssRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDOUYsV0FBVyxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0UsVUFBVSxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDOUQsQ0FBQyxDQUFDO1FBRUgsWUFBTyxHQUFHLElBQUksd0JBQXdCLEVBQUUsQ0FBQztRQUV6QyxlQUFVLEdBQXFCLElBQUksT0FBTyxFQUFXLENBQUM7SUFFeUMsQ0FBQztJQTVCaEcsSUFBSSxVQUFVO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzdGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBMkJELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDO0lBQ2hGLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFhO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZO2FBQ3JDLElBQUksQ0FDSCxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ25ELFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFFaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNsQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO29CQUM1RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO2lCQUNqQztxQkFBTTtvQkFDTCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztpQkFDckY7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFlO1FBQ2hDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDakIsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1osS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2xCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDcEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxZQUFvQjtRQUM3QyxPQUFPLElBQUksQ0FDVCxJQUFJLENBQUMsVUFBVTthQUNaLFNBQVMsQ0FBQyxZQUFZLEVBQUU7WUFDdkIsUUFBUSxFQUFFLENBQUM7WUFDWCxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7U0FDbEIsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUM1QyxDQUFDO0lBQ0osQ0FBQzs7eUhBNUdVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLGdIQzdDekMsc2hLQXNJQTsyRkR6RmEsNEJBQTRCO2tCQUp4QyxTQUFTOytCQUNFLDJCQUEyQjs2SEFXckMsSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBRdWVyaWVzQXBpLCBTaXRlRW50cnksIFNpdGVQYWdpbmcgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQXBwU3RvcmUsIFVwZGF0ZUxpYnJhcnlBY3Rpb24gfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1lcmdlTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEluc3RhbnRFcnJvclN0YXRlTWF0Y2hlciBpbXBsZW1lbnRzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgaXNFcnJvclN0YXRlKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQ7XG4gICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1saWJyYXJ5LW1ldGFkYXRhLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlicmFyeS1tZXRhZGF0YS1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBMaWJyYXJ5TWV0YWRhdGFGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIF9xdWVyaWVzQXBpOiBRdWVyaWVzQXBpO1xuICBnZXQgcXVlcmllc0FwaSgpOiBRdWVyaWVzQXBpIHtcbiAgICB0aGlzLl9xdWVyaWVzQXBpID0gdGhpcy5fcXVlcmllc0FwaSA/PyBuZXcgUXVlcmllc0FwaSh0aGlzLmFsZnJlc2NvQXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fcXVlcmllc0FwaTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG5vZGU6IFNpdGVFbnRyeTtcblxuICBlZGl0OiBib29sZWFuO1xuICBsaWJyYXJ5VGl0bGVFeGlzdHMgPSBmYWxzZTtcblxuICBsaWJyYXJ5VHlwZSA9IFtcbiAgICB7IHZhbHVlOiAnUFVCTElDJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFVCTElDJyB9LFxuICAgIHsgdmFsdWU6ICdQUklWQVRFJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFJJVkFURScgfSxcbiAgICB7IHZhbHVlOiAnTU9ERVJBVEVEJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuTU9ERVJBVEVEJyB9XG4gIF07XG5cbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBpZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSksXG4gICAgdGl0bGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogJycgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildKSxcbiAgICBkZXNjcmlwdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiAnJyB9LCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTEyKV0pLFxuICAgIHZpc2liaWxpdHk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5saWJyYXJ5VHlwZVswXS52YWx1ZSlcbiAgfSk7XG5cbiAgbWF0Y2hlciA9IG5ldyBJbnN0YW50RXJyb3JTdGF0ZU1hdGNoZXIoKTtcblxuICBvbkRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFsZnJlc2NvQXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlLCBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlPEFwcFN0b3JlPikge31cblxuICBnZXQgY2FuVXBkYXRlTGlicmFyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlICYmIHRoaXMubm9kZS5lbnRyeSAmJiB0aGlzLm5vZGUuZW50cnkucm9sZSA9PT0gJ1NpdGVNYW5hZ2VyJztcbiAgfVxuXG4gIGdldFZpc2liaWxpdHlMYWJlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubGlicmFyeVR5cGUuZmluZCgodHlwZSkgPT4gdHlwZS52YWx1ZSA9PT0gdmFsdWUpLmxhYmVsO1xuICB9XG5cbiAgdG9nZ2xlRWRpdCgpIHtcbiAgICB0aGlzLmVkaXQgPSAhdGhpcy5lZGl0O1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMudXBkYXRlRm9ybSh0aGlzLm5vZGUpO1xuICAgIHRoaXMudG9nZ2xlRWRpdCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVGb3JtKHRoaXMubm9kZSk7XG5cbiAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3RpdGxlJ10udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgIG1lcmdlTWFwKCh0aXRsZSkgPT4gdGhpcy5maW5kTGlicmFyeUJ5VGl0bGUodGl0bGUpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICBjb25zdCB7IGVudHJpZXMgfSA9IHJlc3VsdC5saXN0O1xuXG4gICAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHMudGl0bGUudmFsdWUgPT09IHRoaXMubm9kZS5lbnRyeS50aXRsZSkge1xuICAgICAgICAgICAgdGhpcy5saWJyYXJ5VGl0bGVFeGlzdHMgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5saWJyYXJ5VGl0bGVFeGlzdHMgPSB0aGlzLmZvcm0uY29udHJvbHMudGl0bGUudmFsdWUgPT09IGVudHJpZXNbMF0uZW50cnkudGl0bGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubGlicmFyeVRpdGxlRXhpc3RzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnVwZGF0ZUZvcm0odGhpcy5ub2RlKTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBpZiAodGhpcy5jYW5VcGRhdGVMaWJyYXJ5ICYmIHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlTGlicmFyeUFjdGlvbih0aGlzLmZvcm0udmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZvcm0obm9kZTogU2l0ZUVudHJ5KSB7XG4gICAgY29uc3QgeyBlbnRyeSB9ID0gbm9kZTtcblxuICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh7XG4gICAgICBpZDogZW50cnkuaWQsXG4gICAgICB0aXRsZTogZW50cnkudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogZW50cnkuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB2aXNpYmlsaXR5OiBlbnRyeS52aXNpYmlsaXR5XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRMaWJyYXJ5QnlUaXRsZShsaWJyYXJ5VGl0bGU6IHN0cmluZyk6IE9ic2VydmFibGU8U2l0ZVBhZ2luZyB8IHsgbGlzdDogeyBlbnRyaWVzOiBhbnlbXSB9IH0+IHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHRoaXMucXVlcmllc0FwaVxuICAgICAgICAuZmluZFNpdGVzKGxpYnJhcnlUaXRsZSwge1xuICAgICAgICAgIG1heEl0ZW1zOiAxLFxuICAgICAgICAgIGZpZWxkczogWyd0aXRsZSddXG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiAoeyBsaXN0OiB7IGVudHJpZXM6IFtdIH0gfSkpXG4gICAgKTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkICpuZ0lmPVwibm9kZVwiPlxuICA8bWF0LWNhcmQtY29udGVudCAqbmdJZj1cIiFlZGl0XCI+XG4gICAgPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkIG1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LWlucHV0IG1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgYWRmLWZ1bGwtd2lkdGhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1mbGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWluZml4XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLk5BTUUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtaW5wdXQtZWxlbWVudFwiPlxuICAgICAgICAgICAgICB7eyBmb3JtLmNvbnRyb2xzLnRpdGxlLnZhbHVlIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQgbWF0LXByaW1hcnkgbWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtaW5wdXQgbWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCBhZGYtZnVsbC13aWR0aFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWZsZXhcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtaW5maXhcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAge3sgJ0xJQlJBUlkuRElBTE9HLkZPUk0uU0lURV9JRCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1pbnB1dC1lbGVtZW50XCI+XG4gICAgICAgICAgICAgIHt7IGZvcm0uY29udHJvbHMuaWQudmFsdWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZCBtYXQtcHJpbWFyeSBtYXQtZm9ybS1maWVsZC10eXBlLW1hdC1pbnB1dCBtYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IGFkZi1mdWxsLXdpZHRoXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtZmxleFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1pbmZpeFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWZvcm0tZmllbGQtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7eyAnTElCUkFSWS5ESUFMT0cuRk9STS5WSVNJQklMSVRZJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWlucHV0LWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAge3sgZ2V0VmlzaWJpbGl0eUxhYmVsKGZvcm0uY29udHJvbHMudmlzaWJpbGl0eS52YWx1ZSkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZCBtYXQtcHJpbWFyeSBtYXQtZm9ybS1maWVsZC10eXBlLW1hdC1pbnB1dCBtYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IGFkZi1mdWxsLXdpZHRoXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtZmxleFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1pbmZpeFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWZvcm0tZmllbGQtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7eyAnTElCUkFSWS5ESUFMT0cuRk9STS5ERVNDUklQVElPTicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1pbnB1dC1lbGVtZW50XCI+XG4gICAgICAgICAgICAgIHt7IGZvcm0uY29udHJvbHMuZGVzY3JpcHRpb24/LnZhbHVlIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cblxuICA8bWF0LWNhcmQtYWN0aW9ucyBhbGlnbj1cImVuZFwiICpuZ0lmPVwiIWVkaXQgJiYgY2FuVXBkYXRlTGlicmFyeVwiPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwidG9nZ2xlRWRpdCgpXCI+XG4gICAgICB7eyAnTElCUkFSWS5ESUFMT0cuRURJVCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuXG4gIDxtYXQtY2FyZC1jb250ZW50ICpuZ0lmPVwiZWRpdFwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBjZGtGb2N1c0luaXRpYWxcbiAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0xJQlJBUlkuRElBTE9HLkZPUk0uTkFNRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcbiAgICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwibWF0Y2hlclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxtYXQtaGludCAqbmdJZj1cImxpYnJhcnlUaXRsZUV4aXN0c1wiPnt7ICdMSUJSQVJZLkhJTlRTLlNJVEVfVElUTEVfRVhJU1RTJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWhpbnQ+XG4gICAgICAgIDxtYXQtZXJyb3I+XG4gICAgICAgICAge3sgJ0xJQlJBUlkuRVJST1JTLlRJVExFX1RPT19MT05HJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1mdWxsLXdpZHRoXCI+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLlNJVEVfSUQnIHwgdHJhbnNsYXRlIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIiAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJ7eyAnTElCUkFSWS5ESUFMT0cuRk9STS5WSVNJQklMSVRZJyB8IHRyYW5zbGF0ZSB9fVwiIGZvcm1Db250cm9sTmFtZT1cInZpc2liaWxpdHlcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidHlwZS52YWx1ZVwiICpuZ0Zvcj1cImxldCB0eXBlIG9mIGxpYnJhcnlUeXBlXCI+XG4gICAgICAgICAgICB7eyB0eXBlLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtZnVsbC13aWR0aFwiPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0xJQlJBUlkuRElBTE9HLkZPUk0uREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICByb3dzPVwiM1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJtYXRjaGVyXCJcbiAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDxtYXQtZXJyb3I+XG4gICAgICAgICAge3sgJ0xJQlJBUlkuRVJST1JTLkRFU0NSSVBUSU9OX1RPT19MT05HJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9mb3JtPlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG5cbiAgPG1hdC1jYXJkLWFjdGlvbnMgYWxpZ249XCJlbmRcIiAqbmdJZj1cImVkaXQgJiYgY2FuVXBkYXRlTGlicmFyeVwiPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWQgfHwgZm9ybS5wcmlzdGluZVwiIChjbGljayk9XCJ1cGRhdGUoKVwiPlxuICAgICAge3sgJ0xJQlJBUlkuRElBTE9HLlVQREFURScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuPC9tYXQtY2FyZD5cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ /*!
2
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, Input } from '@angular/core';
25
+ import { SiteEntry } from '@alfresco/js-api';
26
+ import * as i0 from "@angular/core";
27
+ import * as i1 from "./library-metadata-form.component";
28
+ export class LibraryMetadataTabComponent {
29
+ }
30
+ LibraryMetadataTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryMetadataTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
+ LibraryMetadataTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: LibraryMetadataTabComponent, selector: "app-library-metadata-tab", inputs: { node: "node" }, host: { classAttribute: "app-metadata-tab" }, ngImport: i0, template: '<app-library-metadata-form [node]="node"></app-library-metadata-form>', isInline: true, dependencies: [{ kind: "component", type: i1.LibraryMetadataFormComponent, selector: "app-library-metadata-form", inputs: ["node"] }] });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryMetadataTabComponent, decorators: [{
33
+ type: Component,
34
+ args: [{
35
+ selector: 'app-library-metadata-tab',
36
+ template: '<app-library-metadata-form [node]="node"></app-library-metadata-form>',
37
+ host: { class: 'app-metadata-tab' }
38
+ }]
39
+ }], propDecorators: { node: [{
40
+ type: Input
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS1tZXRhZGF0YS10YWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2luZm8tZHJhd2VyL2xpYnJhcnktbWV0YWRhdGEtdGFiL2xpYnJhcnktbWV0YWRhdGEtdGFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBTzdDLE1BQU0sT0FBTywyQkFBMkI7O3dIQUEzQiwyQkFBMkI7NEdBQTNCLDJCQUEyQix3SUFINUIsdUVBQXVFOzJGQUd0RSwyQkFBMkI7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFLHVFQUF1RTtvQkFDakYsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFO2lCQUNwQzs4QkFHQyxJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2l0ZUVudHJ5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1saWJyYXJ5LW1ldGFkYXRhLXRhYicsXG4gIHRlbXBsYXRlOiAnPGFwcC1saWJyYXJ5LW1ldGFkYXRhLWZvcm0gW25vZGVdPVwibm9kZVwiPjwvYXBwLWxpYnJhcnktbWV0YWRhdGEtZm9ybT4nLFxuICBob3N0OiB7IGNsYXNzOiAnYXBwLW1ldGFkYXRhLXRhYicgfVxufSlcbmV4cG9ydCBjbGFzcyBMaWJyYXJ5TWV0YWRhdGFUYWJDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBub2RlOiBTaXRlRW50cnk7XG59XG4iXX0=
@@ -0,0 +1,88 @@
1
+ /*!
2
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
25
+ import { MinimalNodeEntryEntity } from '@alfresco/js-api';
26
+ import { NodePermissionService, isLocked, AppExtensionService } from '@alfresco/aca-shared';
27
+ import { infoDrawerMetadataAspect } from '@alfresco/aca-shared/store';
28
+ import { AppConfigService, NotificationService } from '@alfresco/adf-core';
29
+ import { Subject } from 'rxjs';
30
+ import { Store } from '@ngrx/store';
31
+ import { ContentMetadataService } from '@alfresco/adf-content-services';
32
+ import { takeUntil } from 'rxjs/operators';
33
+ import * as i0 from "@angular/core";
34
+ import * as i1 from "@alfresco/aca-shared";
35
+ import * as i2 from "@alfresco/adf-core";
36
+ import * as i3 from "@ngrx/store";
37
+ import * as i4 from "@alfresco/adf-content-services";
38
+ import * as i5 from "@angular/common";
39
+ export class MetadataTabComponent {
40
+ constructor(permission, extensions, appConfig, store, notificationService, contentMetadataService) {
41
+ this.permission = permission;
42
+ this.extensions = extensions;
43
+ this.appConfig = appConfig;
44
+ this.store = store;
45
+ this.notificationService = notificationService;
46
+ this.contentMetadataService = contentMetadataService;
47
+ this.onDestroy$ = new Subject();
48
+ if (this.extensions.contentMetadata) {
49
+ this.appConfig.config['content-metadata'].presets = this.extensions.contentMetadata.presets;
50
+ }
51
+ this.displayAspect$ = this.store.select(infoDrawerMetadataAspect);
52
+ }
53
+ get canUpdateNode() {
54
+ if (this.node && !isLocked({ entry: this.node })) {
55
+ return this.permission.check(this.node, ['update']);
56
+ }
57
+ return false;
58
+ }
59
+ ngOnInit() {
60
+ this.contentMetadataService.error.pipe(takeUntil(this.onDestroy$)).subscribe((err) => {
61
+ this.notificationService.showError(err.message);
62
+ });
63
+ }
64
+ ngOnDestroy() {
65
+ this.onDestroy$.next(true);
66
+ this.onDestroy$.complete();
67
+ }
68
+ }
69
+ MetadataTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MetadataTabComponent, deps: [{ token: i1.NodePermissionService }, { token: i1.AppExtensionService }, { token: i2.AppConfigService }, { token: i3.Store }, { token: i2.NotificationService }, { token: i4.ContentMetadataService }], target: i0.ɵɵFactoryTarget.Component });
70
+ MetadataTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MetadataTabComponent, selector: "app-metadata-tab", inputs: { node: "node" }, host: { classAttribute: "app-metadata-tab" }, ngImport: i0, template: `
71
+ <adf-content-metadata-card [readOnly]="!canUpdateNode" [preset]="'custom'" [node]="node" [displayAspect]="displayAspect$ | async">
72
+ </adf-content-metadata-card>
73
+ `, isInline: true, dependencies: [{ kind: "component", type: i4.ContentMetadataCardComponent, selector: "adf-content-metadata-card", inputs: ["node", "displayEmpty", "displayAspect", "preset", "readOnly", "multi", "displayDefaultProperties"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MetadataTabComponent, decorators: [{
75
+ type: Component,
76
+ args: [{
77
+ selector: 'app-metadata-tab',
78
+ template: `
79
+ <adf-content-metadata-card [readOnly]="!canUpdateNode" [preset]="'custom'" [node]="node" [displayAspect]="displayAspect$ | async">
80
+ </adf-content-metadata-card>
81
+ `,
82
+ encapsulation: ViewEncapsulation.None,
83
+ host: { class: 'app-metadata-tab' }
84
+ }]
85
+ }], ctorParameters: function () { return [{ type: i1.NodePermissionService }, { type: i1.AppExtensionService }, { type: i2.AppConfigService }, { type: i3.Store }, { type: i2.NotificationService }, { type: i4.ContentMetadataService }]; }, propDecorators: { node: [{
86
+ type: Input
87
+ }] } });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9pbmZvLWRyYXdlci9tZXRhZGF0YS10YWIvbWV0YWRhdGEtdGFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUYsT0FBTyxFQUFZLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0UsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVczQyxNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLFlBQ1UsVUFBaUMsRUFDL0IsVUFBK0IsRUFDakMsU0FBMkIsRUFDM0IsS0FBc0IsRUFDdEIsbUJBQXdDLEVBQ3hDLHNCQUE4QztRQUw5QyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUMvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUN0Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFiOUMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFlNUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRTtZQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUM7U0FDN0Y7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRTtZQUNoRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUF3QixFQUFFLEVBQUU7WUFDeEcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7aUhBdkNVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGdJQVByQjs7O0dBR1Q7MkZBSVUsb0JBQW9CO2tCQVRoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7O0dBR1Q7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtpQkFDcEM7d1FBS0MsSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWluaW1hbE5vZGVFbnRyeUVudGl0eSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgTm9kZVBlcm1pc3Npb25TZXJ2aWNlLCBpc0xvY2tlZCwgQXBwRXh0ZW5zaW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkJztcbmltcG9ydCB7IEFwcFN0b3JlLCBpbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3QgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlLCBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQ29udGVudE1ldGFkYXRhU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tZXRhZGF0YS10YWInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhZGYtY29udGVudC1tZXRhZGF0YS1jYXJkIFtyZWFkT25seV09XCIhY2FuVXBkYXRlTm9kZVwiIFtwcmVzZXRdPVwiJ2N1c3RvbSdcIiBbbm9kZV09XCJub2RlXCIgW2Rpc3BsYXlBc3BlY3RdPVwiZGlzcGxheUFzcGVjdCQgfCBhc3luY1wiPlxuICAgIDwvYWRmLWNvbnRlbnQtbWV0YWRhdGEtY2FyZD5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDogeyBjbGFzczogJ2FwcC1tZXRhZGF0YS10YWInIH1cbn0pXG5leHBvcnQgY2xhc3MgTWV0YWRhdGFUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBASW5wdXQoKVxuICBub2RlOiBNaW5pbWFsTm9kZUVudHJ5RW50aXR5O1xuXG4gIGRpc3BsYXlBc3BlY3QkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uOiBOb2RlUGVybWlzc2lvblNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGV4dGVuc2lvbnM6IEFwcEV4dGVuc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8QXBwU3RvcmU+LFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRlbnRNZXRhZGF0YVNlcnZpY2U6IENvbnRlbnRNZXRhZGF0YVNlcnZpY2VcbiAgKSB7XG4gICAgaWYgKHRoaXMuZXh0ZW5zaW9ucy5jb250ZW50TWV0YWRhdGEpIHtcbiAgICAgIHRoaXMuYXBwQ29uZmlnLmNvbmZpZ1snY29udGVudC1tZXRhZGF0YSddLnByZXNldHMgPSB0aGlzLmV4dGVuc2lvbnMuY29udGVudE1ldGFkYXRhLnByZXNldHM7XG4gICAgfVxuICAgIHRoaXMuZGlzcGxheUFzcGVjdCQgPSB0aGlzLnN0b3JlLnNlbGVjdChpbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3QpO1xuICB9XG5cbiAgZ2V0IGNhblVwZGF0ZU5vZGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMubm9kZSAmJiAhaXNMb2NrZWQoeyBlbnRyeTogdGhpcy5ub2RlIH0pKSB7XG4gICAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uLmNoZWNrKHRoaXMubm9kZSwgWyd1cGRhdGUnXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb250ZW50TWV0YWRhdGFTZXJ2aWNlLmVycm9yLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoZXJyOiB7IG1lc3NhZ2U6IHN0cmluZyB9KSA9PiB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd0Vycm9yKGVyci5tZXNzYWdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,95 @@
1
+ /*!
2
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, Input } from '@angular/core';
25
+ import { MinimalNodeEntryEntity } from '@alfresco/js-api';
26
+ import * as i0 from "@angular/core";
27
+ import * as i1 from "@angular/common";
28
+ import * as i2 from "@angular/material/icon";
29
+ import * as i3 from "@alfresco/adf-content-services";
30
+ import * as i4 from "@alfresco/adf-core";
31
+ import * as i5 from "@ngx-translate/core";
32
+ export class VersionsTabComponent {
33
+ constructor() {
34
+ this.isFileSelected = false;
35
+ }
36
+ ngOnInit() {
37
+ this.updateState();
38
+ }
39
+ ngOnChanges() {
40
+ this.updateState();
41
+ }
42
+ updateState() {
43
+ if (this.node && this.node.nodeId) {
44
+ // workaround for shared files type.
45
+ this.isFileSelected = true;
46
+ }
47
+ else {
48
+ this.isFileSelected = this.node.isFile;
49
+ }
50
+ }
51
+ }
52
+ VersionsTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: VersionsTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
53
+ VersionsTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: VersionsTabComponent, selector: "app-versions-tab", inputs: { node: "node" }, usesOnChanges: true, ngImport: i0, template: `
54
+ <ng-container *ngIf="isFileSelected; else empty">
55
+ <adf-version-manager
56
+ [showComments]="'adf-version-manager.allowComments' | adfAppConfig : true"
57
+ [allowDownload]="'adf-version-manager.allowDownload' | adfAppConfig : true"
58
+ [node]="node"
59
+ >
60
+ </adf-version-manager>
61
+ </ng-container>
62
+
63
+ <ng-template #empty>
64
+ <div class="adf-manage-versions-empty">
65
+ <mat-icon class="adf-manage-versions-empty-icon">face</mat-icon>
66
+ {{ 'VERSION.SELECTION.EMPTY' | translate }}
67
+ </div>
68
+ </ng-template>
69
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.VersionManagerComponent, selector: "adf-version-manager", inputs: ["node", "newFileVersion", "showComments", "showVersionComparison", "allowDownload"], outputs: ["uploadSuccess", "uploadError", "uploadCancel", "viewVersion"] }, { kind: "pipe", type: i4.AppConfigPipe, name: "adfAppConfig" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: VersionsTabComponent, decorators: [{
71
+ type: Component,
72
+ args: [{
73
+ selector: 'app-versions-tab',
74
+ template: `
75
+ <ng-container *ngIf="isFileSelected; else empty">
76
+ <adf-version-manager
77
+ [showComments]="'adf-version-manager.allowComments' | adfAppConfig : true"
78
+ [allowDownload]="'adf-version-manager.allowDownload' | adfAppConfig : true"
79
+ [node]="node"
80
+ >
81
+ </adf-version-manager>
82
+ </ng-container>
83
+
84
+ <ng-template #empty>
85
+ <div class="adf-manage-versions-empty">
86
+ <mat-icon class="adf-manage-versions-empty-icon">face</mat-icon>
87
+ {{ 'VERSION.SELECTION.EMPTY' | translate }}
88
+ </div>
89
+ </ng-template>
90
+ `
91
+ }]
92
+ }], propDecorators: { node: [{
93
+ type: Input
94
+ }] } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbnMtdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9pbmZvLWRyYXdlci92ZXJzaW9ucy10YWIvdmVyc2lvbnMtdGFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQXNCMUQsTUFBTSxPQUFPLG9CQUFvQjtJQXBCakM7UUF3QkUsbUJBQWMsR0FBRyxLQUFLLENBQUM7S0FrQnhCO0lBaEJDLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFLLElBQUksQ0FBQyxJQUFZLENBQUMsTUFBTSxFQUFFO1lBQzFDLG9DQUFvQztZQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUN4QztJQUNILENBQUM7O2lIQXJCVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix1R0FsQnJCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUOzJGQUVVLG9CQUFvQjtrQkFwQmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUO2lCQUNGOzhCQUdDLElBQUk7c0JBREgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWluaW1hbE5vZGVFbnRyeUVudGl0eSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdmVyc2lvbnMtdGFiJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNGaWxlU2VsZWN0ZWQ7IGVsc2UgZW1wdHlcIj5cbiAgICAgIDxhZGYtdmVyc2lvbi1tYW5hZ2VyXG4gICAgICAgIFtzaG93Q29tbWVudHNdPVwiJ2FkZi12ZXJzaW9uLW1hbmFnZXIuYWxsb3dDb21tZW50cycgfCBhZGZBcHBDb25maWcgOiB0cnVlXCJcbiAgICAgICAgW2FsbG93RG93bmxvYWRdPVwiJ2FkZi12ZXJzaW9uLW1hbmFnZXIuYWxsb3dEb3dubG9hZCcgfCBhZGZBcHBDb25maWcgOiB0cnVlXCJcbiAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICA+XG4gICAgICA8L2FkZi12ZXJzaW9uLW1hbmFnZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgICAgPGRpdiBjbGFzcz1cImFkZi1tYW5hZ2UtdmVyc2lvbnMtZW1wdHlcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYWRmLW1hbmFnZS12ZXJzaW9ucy1lbXB0eS1pY29uXCI+ZmFjZTwvbWF0LWljb24+XG4gICAgICAgIHt7ICdWRVJTSU9OLlNFTEVDVElPTi5FTVBUWScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgVmVyc2lvbnNUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIG5vZGU6IE1pbmltYWxOb2RlRW50cnlFbnRpdHk7XG5cbiAgaXNGaWxlU2VsZWN0ZWQgPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0YXRlKCkge1xuICAgIGlmICh0aGlzLm5vZGUgJiYgKHRoaXMubm9kZSBhcyBhbnkpLm5vZGVJZCkge1xuICAgICAgLy8gd29ya2Fyb3VuZCBmb3Igc2hhcmVkIGZpbGVzIHR5cGUuXG4gICAgICB0aGlzLmlzRmlsZVNlbGVjdGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0ZpbGVTZWxlY3RlZCA9IHRoaXMubm9kZS5pc0ZpbGU7XG4gICAgfVxuICB9XG59XG4iXX0=