@alfresco/aca-playwright-shared 5.1.1 → 5.2.0

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 (184) hide show
  1. package/api/tags-api.d.ts +8 -2
  2. package/esm2022/api/api-client-factory.mjs +131 -0
  3. package/esm2022/api/categories-api.mjs +66 -0
  4. package/esm2022/api/favorites-api.mjs +130 -0
  5. package/esm2022/api/file-actions.mjs +167 -0
  6. package/esm2022/api/nodes-api.mjs +428 -0
  7. package/esm2022/api/people-api-models.mjs +41 -0
  8. package/esm2022/api/queries-api.mjs +70 -0
  9. package/esm2022/api/rules-api.mjs +258 -0
  10. package/esm2022/api/search-api.mjs +75 -0
  11. package/esm2022/api/shared-links-api.mjs +137 -0
  12. package/esm2022/api/sites-api.mjs +156 -0
  13. package/esm2022/api/tags-api.mjs +92 -0
  14. package/esm2022/api/trashcan-api.mjs +52 -0
  15. package/{esm2020 → esm2022}/models/user-model.mjs +11 -5
  16. package/esm2022/page-objects/components/aca-header.component.mjs +78 -0
  17. package/esm2022/page-objects/components/actions-dropdown.component.mjs +100 -0
  18. package/esm2022/page-objects/components/adf-info-drawer.component.mjs +102 -0
  19. package/esm2022/page-objects/components/base.component.mjs +70 -0
  20. package/esm2022/page-objects/components/breadcrumb/breadcrumb.component.mjs +47 -0
  21. package/esm2022/page-objects/components/conditions.component.mjs +72 -0
  22. package/esm2022/page-objects/components/dataTable/data-table.component.mjs +343 -0
  23. package/esm2022/page-objects/components/dataTable/mat-menu.component.mjs +67 -0
  24. package/{esm2020/page-objects/components/dialogs/manage-versions-dialog.component.mjs → esm2022/page-objects/components/dataTable/toolbar.component.mjs} +13 -8
  25. package/esm2022/page-objects/components/datetime-picker/datetime-picker.component.mjs +53 -0
  26. package/esm2022/page-objects/components/dialogs/adf-confirm-dialog.component.mjs +36 -0
  27. package/esm2022/page-objects/components/dialogs/adf-folder-dialog.component.mjs +57 -0
  28. package/esm2022/page-objects/components/dialogs/adf-library-dialog.component.mjs +64 -0
  29. package/esm2022/page-objects/components/dialogs/content-node-selector-dialog.mjs +68 -0
  30. package/esm2022/page-objects/components/dialogs/create-from-template-dialog-component.mjs +55 -0
  31. package/esm2022/page-objects/components/dialogs/delete-trash-dialog.component.mjs +54 -0
  32. package/esm2022/page-objects/components/dialogs/edit-dialog.component.mjs +39 -0
  33. package/esm2022/page-objects/components/dialogs/link-rules.component.mjs +58 -0
  34. package/esm2022/page-objects/components/dialogs/manage-versions-dialog.component.mjs +36 -0
  35. package/esm2022/page-objects/components/dialogs/password-overlay-dialog.component.mjs +71 -0
  36. package/esm2022/page-objects/components/dialogs/share-dialog.component.mjs +85 -0
  37. package/esm2022/page-objects/components/dialogs/upload-dialog.component.mjs +36 -0
  38. package/esm2022/page-objects/components/dialogs/upload-new-version-dialog.component.mjs +38 -0
  39. package/esm2022/page-objects/components/dialogs/viewer-overlay-dialog.component.mjs +56 -0
  40. package/esm2022/page-objects/components/error.component.mjs +34 -0
  41. package/esm2022/page-objects/components/manageRules/manage-rules-dialog.component.mjs +64 -0
  42. package/esm2022/page-objects/components/manageRules/manage-rules.component.mjs +70 -0
  43. package/esm2022/page-objects/components/pagination.component.mjs +174 -0
  44. package/esm2022/page-objects/components/search/search-filters/search-filters-categories.component.mjs +33 -0
  45. package/esm2022/page-objects/components/search/search-filters/search-filters-date.component.mjs +115 -0
  46. package/esm2022/page-objects/components/search/search-filters/search-filters-location.component.mjs +40 -0
  47. package/esm2022/page-objects/components/search/search-filters/search-filters-logic.component.mjs +36 -0
  48. package/esm2022/page-objects/components/search/search-filters/search-filters-properties.component.mjs +83 -0
  49. package/esm2022/page-objects/components/search/search-filters/search-filters-tags.component.mjs +40 -0
  50. package/esm2022/page-objects/components/search/search-filters.component.mjs +45 -0
  51. package/esm2022/page-objects/components/search/search-input.component.mjs +48 -0
  52. package/esm2022/page-objects/components/search/search-overlay.components.mjs +83 -0
  53. package/esm2022/page-objects/components/search/search-sorting-picker.components.mjs +72 -0
  54. package/esm2022/page-objects/components/sidenav.component.mjs +88 -0
  55. package/esm2022/page-objects/components/snackBar/snack-bar.component.mjs +54 -0
  56. package/esm2022/page-objects/components/spinner.component.mjs +41 -0
  57. package/esm2022/page-objects/components/viewer.component.mjs +110 -0
  58. package/esm2022/page-objects/pages/base.page.mjs +84 -0
  59. package/esm2022/page-objects/pages/favorites-libraries.page.mjs +43 -0
  60. package/esm2022/page-objects/pages/favorites.page.mjs +49 -0
  61. package/esm2022/page-objects/pages/login.page.mjs +62 -0
  62. package/esm2022/page-objects/pages/my-libraries.page.mjs +54 -0
  63. package/esm2022/page-objects/pages/nodes.page.mjs +40 -0
  64. package/esm2022/page-objects/pages/personal-files.page.mjs +85 -0
  65. package/esm2022/page-objects/pages/recent-files.page.mjs +45 -0
  66. package/esm2022/page-objects/pages/search.page.mjs +79 -0
  67. package/esm2022/page-objects/pages/shared.page.mjs +45 -0
  68. package/esm2022/page-objects/pages/trash.page.mjs +45 -0
  69. package/esm2022/page-objects/playwright-base.mjs +33 -0
  70. package/esm2022/resources/test-files/index.mjs +102 -0
  71. package/esm2022/utils/logger.mjs +71 -0
  72. package/esm2022/utils/utils.mjs +145 -0
  73. package/{fesm2020 → fesm2022}/alfresco-aca-playwright-shared.mjs +816 -675
  74. package/fesm2022/alfresco-aca-playwright-shared.mjs.map +1 -0
  75. package/package.json +5 -11
  76. package/page-objects/components/adf-info-drawer.component.d.ts +18 -0
  77. package/page-objects/components/viewer.component.d.ts +11 -0
  78. package/page-objects/pages/search.page.d.ts +1 -1
  79. package/resources/test-files/index.d.ts +24 -0
  80. package/utils/utils.d.ts +2 -2
  81. package/esm2020/api/api-client-factory.mjs +0 -111
  82. package/esm2020/api/categories-api.mjs +0 -65
  83. package/esm2020/api/favorites-api.mjs +0 -129
  84. package/esm2020/api/file-actions.mjs +0 -166
  85. package/esm2020/api/nodes-api.mjs +0 -427
  86. package/esm2020/api/people-api-models.mjs +0 -34
  87. package/esm2020/api/queries-api.mjs +0 -69
  88. package/esm2020/api/rules-api.mjs +0 -251
  89. package/esm2020/api/search-api.mjs +0 -74
  90. package/esm2020/api/shared-links-api.mjs +0 -136
  91. package/esm2020/api/sites-api.mjs +0 -155
  92. package/esm2020/api/tags-api.mjs +0 -61
  93. package/esm2020/api/trashcan-api.mjs +0 -54
  94. package/esm2020/page-objects/components/aca-header.component.mjs +0 -77
  95. package/esm2020/page-objects/components/actions-dropdown.component.mjs +0 -99
  96. package/esm2020/page-objects/components/adf-info-drawer.component.mjs +0 -83
  97. package/esm2020/page-objects/components/base.component.mjs +0 -69
  98. package/esm2020/page-objects/components/breadcrumb/breadcrumb.component.mjs +0 -46
  99. package/esm2020/page-objects/components/conditions.component.mjs +0 -75
  100. package/esm2020/page-objects/components/dataTable/data-table.component.mjs +0 -341
  101. package/esm2020/page-objects/components/dataTable/mat-menu.component.mjs +0 -66
  102. package/esm2020/page-objects/components/dataTable/toolbar.component.mjs +0 -39
  103. package/esm2020/page-objects/components/datetime-picker/datetime-picker.component.mjs +0 -52
  104. package/esm2020/page-objects/components/dialogs/adf-confirm-dialog.component.mjs +0 -35
  105. package/esm2020/page-objects/components/dialogs/adf-folder-dialog.component.mjs +0 -56
  106. package/esm2020/page-objects/components/dialogs/adf-library-dialog.component.mjs +0 -63
  107. package/esm2020/page-objects/components/dialogs/content-node-selector-dialog.mjs +0 -67
  108. package/esm2020/page-objects/components/dialogs/create-from-template-dialog-component.mjs +0 -54
  109. package/esm2020/page-objects/components/dialogs/delete-trash-dialog.component.mjs +0 -53
  110. package/esm2020/page-objects/components/dialogs/edit-dialog.component.mjs +0 -38
  111. package/esm2020/page-objects/components/dialogs/link-rules.component.mjs +0 -57
  112. package/esm2020/page-objects/components/dialogs/password-overlay-dialog.component.mjs +0 -70
  113. package/esm2020/page-objects/components/dialogs/share-dialog.component.mjs +0 -84
  114. package/esm2020/page-objects/components/dialogs/upload-dialog.component.mjs +0 -35
  115. package/esm2020/page-objects/components/dialogs/upload-new-version-dialog.component.mjs +0 -37
  116. package/esm2020/page-objects/components/dialogs/viewer-overlay-dialog.component.mjs +0 -55
  117. package/esm2020/page-objects/components/error.component.mjs +0 -33
  118. package/esm2020/page-objects/components/manageRules/manage-rules-dialog.component.mjs +0 -63
  119. package/esm2020/page-objects/components/manageRules/manage-rules.component.mjs +0 -69
  120. package/esm2020/page-objects/components/pagination.component.mjs +0 -173
  121. package/esm2020/page-objects/components/search/search-filters/search-filters-categories.component.mjs +0 -32
  122. package/esm2020/page-objects/components/search/search-filters/search-filters-date.component.mjs +0 -114
  123. package/esm2020/page-objects/components/search/search-filters/search-filters-location.component.mjs +0 -39
  124. package/esm2020/page-objects/components/search/search-filters/search-filters-logic.component.mjs +0 -35
  125. package/esm2020/page-objects/components/search/search-filters/search-filters-properties.component.mjs +0 -82
  126. package/esm2020/page-objects/components/search/search-filters/search-filters-tags.component.mjs +0 -39
  127. package/esm2020/page-objects/components/search/search-filters.component.mjs +0 -44
  128. package/esm2020/page-objects/components/search/search-input.component.mjs +0 -47
  129. package/esm2020/page-objects/components/search/search-overlay.components.mjs +0 -82
  130. package/esm2020/page-objects/components/search/search-sorting-picker.components.mjs +0 -71
  131. package/esm2020/page-objects/components/sidenav.component.mjs +0 -86
  132. package/esm2020/page-objects/components/snackBar/snack-bar.component.mjs +0 -53
  133. package/esm2020/page-objects/components/spinner.component.mjs +0 -40
  134. package/esm2020/page-objects/components/viewer.component.mjs +0 -92
  135. package/esm2020/page-objects/pages/base.page.mjs +0 -80
  136. package/esm2020/page-objects/pages/favorites-libraries.page.mjs +0 -42
  137. package/esm2020/page-objects/pages/favorites.page.mjs +0 -48
  138. package/esm2020/page-objects/pages/login.page.mjs +0 -61
  139. package/esm2020/page-objects/pages/my-libraries.page.mjs +0 -53
  140. package/esm2020/page-objects/pages/nodes.page.mjs +0 -39
  141. package/esm2020/page-objects/pages/personal-files.page.mjs +0 -84
  142. package/esm2020/page-objects/pages/recent-files.page.mjs +0 -44
  143. package/esm2020/page-objects/pages/search.page.mjs +0 -78
  144. package/esm2020/page-objects/pages/shared.page.mjs +0 -44
  145. package/esm2020/page-objects/pages/trash.page.mjs +0 -44
  146. package/esm2020/page-objects/playwright-base.mjs +0 -31
  147. package/esm2020/resources/test-files/index.mjs +0 -78
  148. package/esm2020/utils/logger.mjs +0 -69
  149. package/esm2020/utils/utils.mjs +0 -144
  150. package/fesm2015/alfresco-aca-playwright-shared.mjs +0 -6267
  151. package/fesm2015/alfresco-aca-playwright-shared.mjs.map +0 -1
  152. package/fesm2020/alfresco-aca-playwright-shared.mjs.map +0 -1
  153. /package/{esm2020 → esm2022}/alfresco-aca-playwright-shared.mjs +0 -0
  154. /package/{esm2020 → esm2022}/api/index.mjs +0 -0
  155. /package/{esm2020 → esm2022}/api/node-content-tree.mjs +0 -0
  156. /package/{esm2020 → esm2022}/base-config/global-variables.mjs +0 -0
  157. /package/{esm2020 → esm2022}/base-config/global.setup.mjs +0 -0
  158. /package/{esm2020 → esm2022}/base-config/index.mjs +0 -0
  159. /package/{esm2020 → esm2022}/base-config/playwright.config.mjs +0 -0
  160. /package/{esm2020 → esm2022}/base-config/report-portal.config.mjs +0 -0
  161. /package/{esm2020 → esm2022}/fixtures/index.mjs +0 -0
  162. /package/{esm2020 → esm2022}/fixtures/page-initialization.mjs +0 -0
  163. /package/{esm2020 → esm2022}/models/custom-config.mjs +0 -0
  164. /package/{esm2020 → esm2022}/models/index.mjs +0 -0
  165. /package/{esm2020 → esm2022}/page-objects/components/dataTable/index.mjs +0 -0
  166. /package/{esm2020 → esm2022}/page-objects/components/dialogs/index.mjs +0 -0
  167. /package/{esm2020 → esm2022}/page-objects/components/index.mjs +0 -0
  168. /package/{esm2020 → esm2022}/page-objects/components/manageRules/index.mjs +0 -0
  169. /package/{esm2020 → esm2022}/page-objects/index.mjs +0 -0
  170. /package/{esm2020 → esm2022}/page-objects/pages/index.mjs +0 -0
  171. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  172. /package/{esm2020 → esm2022}/resources/index.mjs +0 -0
  173. /package/{esm2020 → esm2022}/resources/test-data/index.mjs +0 -0
  174. /package/{esm2020 → esm2022}/resources/test-data/test-data-files-folders.mjs +0 -0
  175. /package/{esm2020 → esm2022}/resources/test-data/test-data-permissions.mjs +0 -0
  176. /package/{esm2020 → esm2022}/utils/api.mjs +0 -0
  177. /package/{esm2020 → esm2022}/utils/config.mjs +0 -0
  178. /package/{esm2020 → esm2022}/utils/error-strings.mjs +0 -0
  179. /package/{esm2020 → esm2022}/utils/exclude-tests.mjs +0 -0
  180. /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
  181. /package/{esm2020 → esm2022}/utils/library-errors.mjs +0 -0
  182. /package/{esm2020 → esm2022}/utils/paths.mjs +0 -0
  183. /package/{esm2020 → esm2022}/utils/state-helper.mjs +0 -0
  184. /package/{esm2020 → esm2022}/utils/timeouts.mjs +0 -0
@@ -1,69 +0,0 @@
1
- /*!
2
- * Copyright © 2005-2024 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 { PlaywrightBase } from '../playwright-base';
25
- import { timeouts } from '../../utils';
26
- export class BaseComponent extends PlaywrightBase {
27
- constructor(page, rootElement) {
28
- super(page);
29
- this.overlayElement = this.page.locator('.cdk-overlay-backdrop-showing');
30
- this.progressBar = this.page.locator('mat-progress-bar');
31
- this.rootElement = rootElement;
32
- }
33
- /**
34
- * Method which should be used across the repository, while creating
35
- * reference to elements, which are in root element of component.
36
- *
37
- * @param cssLocator css selector as String. Need to be in the tree under the root element
38
- * @param options if you want to localize it by text, then provide an optional hasText
39
- * @returns Locator object
40
- */
41
- getChild(cssLocator, options) {
42
- return this.page.locator(`${this.rootElement} ${cssLocator}`, options);
43
- }
44
- async closeAdditionalOverlayElementIfVisible() {
45
- if (await this.overlayElement.isVisible()) {
46
- await this.page.keyboard.press('Escape');
47
- await this.overlayElement.waitFor({ state: 'detached', timeout: timeouts.medium });
48
- }
49
- }
50
- async spinnerWaitForReload() {
51
- try {
52
- await this.page.locator('mat-progress-spinner').waitFor({ state: 'attached', timeout: timeouts.medium });
53
- await this.page.locator('mat-progress-spinner').waitFor({ state: 'detached', timeout: timeouts.normal });
54
- }
55
- catch (e) {
56
- this.logger.info('Spinner was not present');
57
- }
58
- }
59
- async progressBarWaitForReload() {
60
- try {
61
- await this.progressBar.waitFor({ state: 'visible', timeout: timeouts.medium });
62
- await this.progressBar.waitFor({ state: 'hidden', timeout: timeouts.normal });
63
- }
64
- catch (e) {
65
- this.logger.info('Progress bar was not present');
66
- }
67
- }
68
- }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtcGxheXdyaWdodC1zaGFyZWQvc3JjL3BhZ2Utb2JqZWN0cy9jb21wb25lbnRzL2Jhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBR0gsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsTUFBTSxPQUFnQixhQUFjLFNBQVEsY0FBYztJQUt4RCxZQUFzQixJQUFVLEVBQUUsV0FBbUI7UUFDbkQsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBSk4sbUJBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ3BFLGdCQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUkxRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFFBQVEsQ0FBQyxVQUFrQixFQUFFLE9BQXNEO1FBQ2pGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxLQUFLLENBQUMsc0NBQXNDO1FBQzFDLElBQUksTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3pDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNwRjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CO1FBQ3hCLElBQUk7WUFDRixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDekcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzFHO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyx3QkFBd0I7UUFDNUIsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMvRSxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDL0U7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgTG9jYXRvciwgUGFnZSB9IGZyb20gJ0BwbGF5d3JpZ2h0L3Rlc3QnO1xuaW1wb3J0IHsgUGxheXdyaWdodEJhc2UgfSBmcm9tICcuLi9wbGF5d3JpZ2h0LWJhc2UnO1xuaW1wb3J0IHsgdGltZW91dHMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50IGV4dGVuZHMgUGxheXdyaWdodEJhc2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHJvb3RFbGVtZW50OiBzdHJpbmc7XG4gIHByaXZhdGUgb3ZlcmxheUVsZW1lbnQgPSB0aGlzLnBhZ2UubG9jYXRvcignLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcnKTtcbiAgcHJpdmF0ZSBwcm9ncmVzc0JhciA9IHRoaXMucGFnZS5sb2NhdG9yKCdtYXQtcHJvZ3Jlc3MtYmFyJyk7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHBhZ2U6IFBhZ2UsIHJvb3RFbGVtZW50OiBzdHJpbmcpIHtcbiAgICBzdXBlcihwYWdlKTtcbiAgICB0aGlzLnJvb3RFbGVtZW50ID0gcm9vdEVsZW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHdoaWNoIHNob3VsZCBiZSB1c2VkIGFjcm9zcyB0aGUgcmVwb3NpdG9yeSwgd2hpbGUgY3JlYXRpbmdcbiAgICogcmVmZXJlbmNlIHRvIGVsZW1lbnRzLCB3aGljaCBhcmUgaW4gcm9vdCBlbGVtZW50IG9mIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGNzc0xvY2F0b3IgY3NzIHNlbGVjdG9yIGFzIFN0cmluZy4gTmVlZCB0byBiZSBpbiB0aGUgdHJlZSB1bmRlciB0aGUgcm9vdCBlbGVtZW50XG4gICAqIEBwYXJhbSBvcHRpb25zIGlmIHlvdSB3YW50IHRvIGxvY2FsaXplIGl0IGJ5IHRleHQsIHRoZW4gcHJvdmlkZSBhbiBvcHRpb25hbCBoYXNUZXh0XG4gICAqIEByZXR1cm5zIExvY2F0b3Igb2JqZWN0XG4gICAqL1xuICBnZXRDaGlsZChjc3NMb2NhdG9yOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGhhc1RleHQ/OiBzdHJpbmcgfCBSZWdFeHA7IGhhcz86IExvY2F0b3IgfSk6IExvY2F0b3Ige1xuICAgIHJldHVybiB0aGlzLnBhZ2UubG9jYXRvcihgJHt0aGlzLnJvb3RFbGVtZW50fSAke2Nzc0xvY2F0b3J9YCwgb3B0aW9ucyk7XG4gIH1cblxuICBhc3luYyBjbG9zZUFkZGl0aW9uYWxPdmVybGF5RWxlbWVudElmVmlzaWJsZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoYXdhaXQgdGhpcy5vdmVybGF5RWxlbWVudC5pc1Zpc2libGUoKSkge1xuICAgICAgYXdhaXQgdGhpcy5wYWdlLmtleWJvYXJkLnByZXNzKCdFc2NhcGUnKTtcbiAgICAgIGF3YWl0IHRoaXMub3ZlcmxheUVsZW1lbnQud2FpdEZvcih7IHN0YXRlOiAnZGV0YWNoZWQnLCB0aW1lb3V0OiB0aW1lb3V0cy5tZWRpdW0gfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc3Bpbm5lcldhaXRGb3JSZWxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucGFnZS5sb2NhdG9yKCdtYXQtcHJvZ3Jlc3Mtc3Bpbm5lcicpLndhaXRGb3IoeyBzdGF0ZTogJ2F0dGFjaGVkJywgdGltZW91dDogdGltZW91dHMubWVkaXVtIH0pO1xuICAgICAgYXdhaXQgdGhpcy5wYWdlLmxvY2F0b3IoJ21hdC1wcm9ncmVzcy1zcGlubmVyJykud2FpdEZvcih7IHN0YXRlOiAnZGV0YWNoZWQnLCB0aW1lb3V0OiB0aW1lb3V0cy5ub3JtYWwgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbygnU3Bpbm5lciB3YXMgbm90IHByZXNlbnQnKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBwcm9ncmVzc0JhcldhaXRGb3JSZWxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucHJvZ3Jlc3NCYXIud2FpdEZvcih7IHN0YXRlOiAndmlzaWJsZScsIHRpbWVvdXQ6IHRpbWVvdXRzLm1lZGl1bSB9KTtcbiAgICAgIGF3YWl0IHRoaXMucHJvZ3Jlc3NCYXIud2FpdEZvcih7IHN0YXRlOiAnaGlkZGVuJywgdGltZW91dDogdGltZW91dHMubm9ybWFsIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ1Byb2dyZXNzIGJhciB3YXMgbm90IHByZXNlbnQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,46 +0,0 @@
1
- /*!
2
- * Copyright © 2005-2024 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 { BaseComponent } from '.././base.component';
25
- export class Breadcrumb extends BaseComponent {
26
- constructor(page) {
27
- super(page, Breadcrumb.rootElement);
28
- this.items = this.getChild('.adf-breadcrumb-item');
29
- this.currentItem = this.getChild('.adf-breadcrumb-item-current');
30
- this.getItemByTitle = (name) => this.getChild(`.adf-breadcrumb-item[title=${name}]`);
31
- }
32
- async getAllItems() {
33
- const itemElements = await this.page.$$('adf-breadcrumb .adf-breadcrumb-item');
34
- const itemTexts = await Promise.all(itemElements.map(async (elem) => {
35
- const text = await elem.innerText();
36
- return text.split('\nchevron_right')[0];
37
- }));
38
- return itemTexts;
39
- }
40
- async clickItem(name) {
41
- const elem = this.getChild(`.adf-breadcrumb-item[title=${name}]`);
42
- await elem.click();
43
- }
44
- }
45
- Breadcrumb.rootElement = 'adf-breadcrumb';
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtcGxheXdyaWdodC1zaGFyZWQvc3JjL3BhZ2Utb2JqZWN0cy9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsTUFBTSxPQUFPLFVBQVcsU0FBUSxhQUFhO0lBTTNDLFlBQVksSUFBVTtRQUNwQixLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUwvQixVQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlDLGdCQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ25FLG1CQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsOEJBQThCLElBQUksR0FBRyxDQUFDLENBQUM7SUFJakcsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDakMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQVk7UUFDMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNsRSxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDOztBQXZCYyxzQkFBVyxHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IExvY2F0b3IsIFBhZ2UgfSBmcm9tICdAcGxheXdyaWdodC90ZXN0JztcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhdGljIHJvb3RFbGVtZW50ID0gJ2FkZi1icmVhZGNydW1iJztcbiAgcHVibGljIGl0ZW1zID0gdGhpcy5nZXRDaGlsZCgnLmFkZi1icmVhZGNydW1iLWl0ZW0nKTtcbiAgcHVibGljIGN1cnJlbnRJdGVtID0gdGhpcy5nZXRDaGlsZCgnLmFkZi1icmVhZGNydW1iLWl0ZW0tY3VycmVudCcpO1xuICBnZXRJdGVtQnlUaXRsZSA9IChuYW1lOiBzdHJpbmcpOiBMb2NhdG9yID0+IHRoaXMuZ2V0Q2hpbGQoYC5hZGYtYnJlYWRjcnVtYi1pdGVtW3RpdGxlPSR7bmFtZX1dYCk7XG5cbiAgY29uc3RydWN0b3IocGFnZTogUGFnZSkge1xuICAgIHN1cGVyKHBhZ2UsIEJyZWFkY3J1bWIucm9vdEVsZW1lbnQpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QWxsSXRlbXMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IGl0ZW1FbGVtZW50cyA9IGF3YWl0IHRoaXMucGFnZS4kJCgnYWRmLWJyZWFkY3J1bWIgLmFkZi1icmVhZGNydW1iLWl0ZW0nKTtcbiAgICBjb25zdCBpdGVtVGV4dHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGl0ZW1FbGVtZW50cy5tYXAoYXN5bmMgKGVsZW0pID0+IHtcbiAgICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IGVsZW0uaW5uZXJUZXh0KCk7XG4gICAgICAgIHJldHVybiB0ZXh0LnNwbGl0KCdcXG5jaGV2cm9uX3JpZ2h0JylbMF07XG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIGl0ZW1UZXh0cztcbiAgfVxuXG4gIGFzeW5jIGNsaWNrSXRlbShuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBlbGVtID0gdGhpcy5nZXRDaGlsZChgLmFkZi1icmVhZGNydW1iLWl0ZW1bdGl0bGU9JHtuYW1lfV1gKTtcbiAgICBhd2FpdCBlbGVtLmNsaWNrKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,75 +0,0 @@
1
- /*!
2
- * Copyright © 2005-2024 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 { ManageRulesDialogComponent } from './manageRules/manage-rules-dialog.component';
25
- export var Field;
26
- (function (Field) {
27
- Field["Name"] = "Name";
28
- Field["Size"] = "Size";
29
- Field["Mimetype"] = "Mimetype";
30
- Field["Encoding"] = "Encoding";
31
- Field["HasCategory"] = "Has category";
32
- Field["HasTag"] = "Has tag";
33
- Field["HasAspect"] = "Has aspect";
34
- })(Field || (Field = {}));
35
- export var Comparator;
36
- (function (Comparator) {
37
- Comparator["Equals"] = "(=) Equals";
38
- Comparator["Contains"] = "Contains";
39
- Comparator["StartsWith"] = "Starts with";
40
- Comparator["EndsWith"] = "Ends with";
41
- })(Comparator || (Comparator = {}));
42
- export class ConditionComponent extends ManageRulesDialogComponent {
43
- constructor() {
44
- super(...arguments);
45
- this.getOptionLocator = (optionName) => this.page.locator(`.cdk-overlay-pane .mat-mdc-option span`, { hasText: optionName });
46
- }
47
- async selectField(fields, index) {
48
- await this.fieldDropDown.nth(index).click();
49
- const option = this.getOptionLocator(fields);
50
- await option.click();
51
- }
52
- async selectComparator(comparators, index) {
53
- await this.comparatorDropDown.nth(index).click();
54
- const option = this.getOptionLocator(comparators);
55
- await option.click();
56
- }
57
- async addCondition(fields, value, index, comparators) {
58
- await this.addConditionButton.first().click();
59
- await this.selectField(fields, index);
60
- if (comparators) {
61
- await this.selectComparator(comparators, index);
62
- }
63
- await this.valueField.nth(index).fill(value);
64
- }
65
- async addConditionGroup(fields, value, index, comparators) {
66
- await this.addConditionGroupButton.last().click();
67
- await this.addConditionButton.nth(index).click();
68
- await this.selectField(fields, index);
69
- if (comparators) {
70
- await this.selectComparator(comparators, index);
71
- }
72
- await this.valueField.nth(index).fill(value);
73
- }
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtcGxheXdyaWdodC1zaGFyZWQvc3JjL3BhZ2Utb2JqZWN0cy9jb21wb25lbnRzL2NvbmRpdGlvbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBR0gsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFekYsTUFBTSxDQUFOLElBQVksS0FRWDtBQVJELFdBQVksS0FBSztJQUNmLHNCQUFhLENBQUE7SUFDYixzQkFBYSxDQUFBO0lBQ2IsOEJBQXFCLENBQUE7SUFDckIsOEJBQXFCLENBQUE7SUFDckIscUNBQTRCLENBQUE7SUFDNUIsMkJBQWtCLENBQUE7SUFDbEIsaUNBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQVJXLEtBQUssS0FBTCxLQUFLLFFBUWhCO0FBRUQsTUFBTSxDQUFOLElBQVksVUFLWDtBQUxELFdBQVksVUFBVTtJQUNwQixtQ0FBcUIsQ0FBQTtJQUNyQixtQ0FBcUIsQ0FBQTtJQUNyQix3Q0FBMEIsQ0FBQTtJQUMxQixvQ0FBc0IsQ0FBQTtBQUN4QixDQUFDLEVBTFcsVUFBVSxLQUFWLFVBQVUsUUFLckI7QUFFRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsMEJBQTBCO0lBQWxFOztRQUNVLHFCQUFnQixHQUFHLENBQUMsVUFBa0IsRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsd0NBQXdDLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQWdDbkosQ0FBQztJQTlCUyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQXNCLEVBQUUsS0FBYTtRQUM3RCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLFdBQWdDLEVBQUUsS0FBYTtRQUM1RSxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQXNCLEVBQUUsS0FBYSxFQUFFLEtBQWEsRUFBRSxXQUFpQztRQUN4RyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksV0FBVyxFQUFFO1lBQ2YsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFzQixFQUFFLEtBQWEsRUFBRSxLQUFhLEVBQUUsV0FBaUM7UUFDN0csTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEQsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pELE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxXQUFXLEVBQUU7WUFDZixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakQ7UUFDRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgTG9jYXRvciB9IGZyb20gJ0BwbGF5d3JpZ2h0L3Rlc3QnO1xuaW1wb3J0IHsgTWFuYWdlUnVsZXNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL21hbmFnZVJ1bGVzL21hbmFnZS1ydWxlcy1kaWFsb2cuY29tcG9uZW50JztcblxuZXhwb3J0IGVudW0gRmllbGQge1xuICBOYW1lID0gJ05hbWUnLFxuICBTaXplID0gJ1NpemUnLFxuICBNaW1ldHlwZSA9ICdNaW1ldHlwZScsXG4gIEVuY29kaW5nID0gJ0VuY29kaW5nJyxcbiAgSGFzQ2F0ZWdvcnkgPSAnSGFzIGNhdGVnb3J5JyxcbiAgSGFzVGFnID0gJ0hhcyB0YWcnLFxuICBIYXNBc3BlY3QgPSAnSGFzIGFzcGVjdCdcbn1cblxuZXhwb3J0IGVudW0gQ29tcGFyYXRvciB7XG4gIEVxdWFscyA9ICcoPSkgRXF1YWxzJyxcbiAgQ29udGFpbnMgPSAnQ29udGFpbnMnLFxuICBTdGFydHNXaXRoID0gJ1N0YXJ0cyB3aXRoJyxcbiAgRW5kc1dpdGggPSAnRW5kcyB3aXRoJ1xufVxuXG5leHBvcnQgY2xhc3MgQ29uZGl0aW9uQ29tcG9uZW50IGV4dGVuZHMgTWFuYWdlUnVsZXNEaWFsb2dDb21wb25lbnQge1xuICBwcml2YXRlIGdldE9wdGlvbkxvY2F0b3IgPSAob3B0aW9uTmFtZTogc3RyaW5nKTogTG9jYXRvciA9PiB0aGlzLnBhZ2UubG9jYXRvcihgLmNkay1vdmVybGF5LXBhbmUgLm1hdC1tZGMtb3B0aW9uIHNwYW5gLCB7IGhhc1RleHQ6IG9wdGlvbk5hbWUgfSk7XG5cbiAgcHJpdmF0ZSBhc3luYyBzZWxlY3RGaWVsZChmaWVsZHM6IFBhcnRpYWw8RmllbGQ+LCBpbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5maWVsZERyb3BEb3duLm50aChpbmRleCkuY2xpY2soKTtcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLmdldE9wdGlvbkxvY2F0b3IoZmllbGRzKTtcbiAgICBhd2FpdCBvcHRpb24uY2xpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2VsZWN0Q29tcGFyYXRvcihjb21wYXJhdG9yczogUGFydGlhbDxDb21wYXJhdG9yPiwgaW5kZXg6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuY29tcGFyYXRvckRyb3BEb3duLm50aChpbmRleCkuY2xpY2soKTtcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLmdldE9wdGlvbkxvY2F0b3IoY29tcGFyYXRvcnMpO1xuICAgIGF3YWl0IG9wdGlvbi5jbGljaygpO1xuICB9XG5cbiAgYXN5bmMgYWRkQ29uZGl0aW9uKGZpZWxkczogUGFydGlhbDxGaWVsZD4sIHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIsIGNvbXBhcmF0b3JzPzogUGFydGlhbDxDb21wYXJhdG9yPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuYWRkQ29uZGl0aW9uQnV0dG9uLmZpcnN0KCkuY2xpY2soKTtcbiAgICBhd2FpdCB0aGlzLnNlbGVjdEZpZWxkKGZpZWxkcywgaW5kZXgpO1xuICAgIGlmIChjb21wYXJhdG9ycykge1xuICAgICAgYXdhaXQgdGhpcy5zZWxlY3RDb21wYXJhdG9yKGNvbXBhcmF0b3JzLCBpbmRleCk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMudmFsdWVGaWVsZC5udGgoaW5kZXgpLmZpbGwodmFsdWUpO1xuICB9XG5cbiAgYXN5bmMgYWRkQ29uZGl0aW9uR3JvdXAoZmllbGRzOiBQYXJ0aWFsPEZpZWxkPiwgdmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlciwgY29tcGFyYXRvcnM/OiBQYXJ0aWFsPENvbXBhcmF0b3I+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5hZGRDb25kaXRpb25Hcm91cEJ1dHRvbi5sYXN0KCkuY2xpY2soKTtcbiAgICBhd2FpdCB0aGlzLmFkZENvbmRpdGlvbkJ1dHRvbi5udGgoaW5kZXgpLmNsaWNrKCk7XG4gICAgYXdhaXQgdGhpcy5zZWxlY3RGaWVsZChmaWVsZHMsIGluZGV4KTtcbiAgICBpZiAoY29tcGFyYXRvcnMpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2VsZWN0Q29tcGFyYXRvcihjb21wYXJhdG9ycywgaW5kZXgpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnZhbHVlRmllbGQubnRoKGluZGV4KS5maWxsKHZhbHVlKTtcbiAgfVxufVxuIl19
@@ -1,341 +0,0 @@
1
- /*!
2
- * Copyright © 2005-2024 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 { BaseComponent } from '../base.component';
25
- import { MatMenuComponent } from './mat-menu.component';
26
- import { PaginationActionsType, PaginationComponent } from '../pagination.component';
27
- import { timeouts } from '../../../utils';
28
- export class DataTableComponent extends BaseComponent {
29
- constructor(page, rootElement = DataTableComponent.rootElement) {
30
- super(page, rootElement);
31
- this.contextMenuActions = new MatMenuComponent(this.page);
32
- this.pagination = new PaginationComponent(this.page);
33
- this.body = this.getChild('.adf-datatable-body');
34
- this.getEmptyFolderLocator = this.getChild('.adf-empty-folder');
35
- this.getEmptyContentTitleLocator = this.getChild('adf-empty-content .adf-empty-content__title');
36
- this.getEmptyContentSubTitleLocator = this.getChild('adf-empty-content .adf-empty-content__subtitle');
37
- this.getSelectedRow = this.getChild('.adf-datatable-row.adf-is-selected');
38
- this.sortedColumnHeader = this.getChild(`.adf-datatable__header--sorted-asc .adf-datatable-cell-header-content .adf-datatable-cell-value,
39
- .adf-datatable__header--sorted-desc .adf-datatable-cell-header-content .adf-datatable-cell-value`);
40
- this.columnHeaders = this.getChild('.adf-datatable-row .adf-datatable-cell-header .adf-datatable-cell-value');
41
- this.emptyList = this.getChild('div.adf-no-content-container');
42
- this.emptyListTitle = this.getChild('.adf-empty-content__title');
43
- this.emptyListSubtitle = this.getChild('.adf-empty-content__subtitle');
44
- this.emptySearchText = this.getChild('.empty-search__text');
45
- this.emptyListTest = this.getChild('adf-custom-empty-content-template');
46
- this.paginationButton = this.page.locator('.adf-pagination__block button').nth(0);
47
- this.paginationOptions = this.page.locator('#cdk-overlay-0 button');
48
- this.sitesVisibility = this.page.locator('.adf-datatable-body [data-automation-id*="datatable-row"] [aria-label="Visibility"]');
49
- this.sitesName = this.page.locator('.adf-datatable-body [data-automation-id*="datatable-row"] [aria-label="Name"]');
50
- this.sitesRole = this.page.locator('.adf-datatable-body [data-automation-id*="datatable-row"] [aria-label="My Role"]');
51
- this.lockOwner = this.page.locator('.aca-locked-by--name');
52
- this.uncheckedCheckbox = this.page.locator('.mat-mdc-checkbox');
53
- this.checkedCheckbox = this.page.locator('.mat-mdc-checkbox-checked');
54
- this.highlightedText = '.aca-highlight';
55
- this.searchFileName = '.search-file-name';
56
- this.searchFileDescription = '[data-automation-id="search-results-entry-description"]';
57
- this.searchFileContent = '.aca-result-content';
58
- /** Locator for row (or rows) */
59
- this.getRowLocator = this.page.getByRole('rowgroup').nth(1).locator('adf-datatable-row');
60
- /** Locator to get "No results found" message */
61
- this.getNoResultsFoundMessage = this.getChild('adf-custom-empty-content-template', { hasText: 'No results found' });
62
- /**
63
- * Method used in cases where we want to check that some record is visible in the datatable. It will consider whole row
64
- *
65
- * @returns reference to cell element which contains text.
66
- */
67
- this.getRowByName = (name) => this.getChild(`adf-datatable-row`, { hasText: name.toString() });
68
- /**
69
- * Method used in cases where we want to check that some record is visible in the datatable.
70
- * But we want to check it by column header title and value of this column.
71
- *
72
- * @returns reference to cell element which contains text.
73
- */
74
- this.getRowByColumnTitleAndItsCellValue = (columnTitle, cellValue) => this.page.locator(`//div[contains(@title, '${columnTitle}')]//span[contains(text(), '${cellValue}')]/ancestor::adf-datatable-row`);
75
- /**
76
- * Method used in cases where we want to retrieve a row from the datatable based on its numerical order within the array.
77
- *
78
- * @returns reference to cell element which contains text.
79
- */
80
- this.getNthRow = (orderNum) => this.getRowLocator.nth(orderNum);
81
- /**
82
- * Method used in cases where user have possibility to navigate "inside" the element (it's clickable and has link attribute).
83
- * Perform action .click() to navigate inside it
84
- *
85
- * @returns reference to cell element which contains link.
86
- */
87
- this.getCellLinkByName = (name) => this.getChild('.adf-cell-value span[role="link"]', { hasText: name });
88
- /**
89
- * Method used in cases where we want to localize the element by [aria-label]
90
- *
91
- * @returns reference to cell element.
92
- */
93
- this.getByAriaLabelTitle = (title) => this.getChild(`[aria-label="${title}"]`);
94
- /**
95
- * Method used in cases where we want to get the button (hamburger menu) for row element
96
- *
97
- * @returns reference to menu placed in row localized by the name
98
- */
99
- this.getActionsButtonByName = (name) => this.getRowByName(name).locator('mat-icon', { hasText: new RegExp(`^\\s*more_vert\\s*$`, 'g') });
100
- /**
101
- * Method used in cases where we want to get the edit button and there is no hamburger menu
102
- *
103
- * @returns reference to edit button placed in row localized by the name
104
- */
105
- this.getEditButtonByName = (name) => this.getRowByName(name).locator('button#editButton');
106
- /**
107
- * Method used in cases where we want to get the button and there is no hamburger menu
108
- *
109
- * @returns reference to button placed in row localized by the name
110
- */
111
- this.getButtonByNameForSpecificRow = (elementTitleInRow, buttonTitle) => this.getRowByName(elementTitleInRow).locator('button', { hasText: buttonTitle });
112
- /**
113
- * Method used in cases where you want to get some specific cell (by column name) for row which contains some name/title/etc.
114
- *
115
- * @returns reference to cell element
116
- */
117
- this.getCellByColumnNameAndRowItem = (item, columnName) => this.getRowByName(item).locator(`[title="${columnName}"]`);
118
- /**
119
- * Method used in cases where we want to get the checkbox for row element
120
- *
121
- * @returns reference to checkbox placed in row localized by the name
122
- */
123
- this.getCheckboxForElement = (item) => this.getRowByName(item).locator('.mat-mdc-checkbox');
124
- this.getColumnHeaderByTitleLocator = (headerTitle) => this.getChild('[role="columnheader"]', { hasText: headerTitle });
125
- this.getSearchResultLinkByName = (name) => this.getChild('.aca-search-results-row span[role="link"]', { hasText: name });
126
- this.getColumnValuesByName = (name) => this.getChild(`div[title="${name}"] span`);
127
- this.getColumnHeaderByName = (headerTitle) => this.getChild('.adf-datatable-row .adf-datatable-cell-header .adf-datatable-cell-value', { hasText: headerTitle });
128
- }
129
- async sortBy(label, order) {
130
- const sortColumn = await this.getSortedColumnHeaderText();
131
- let sortOrder = await this.getSortingOrder();
132
- if (sortColumn !== label) {
133
- await this.getColumnHeaderByName(label).click({ force: true });
134
- sortOrder = await this.getSortingOrder();
135
- }
136
- if (sortOrder !== order) {
137
- await this.getChild('span[class*="adf-datatable__header--sorted"]').click();
138
- }
139
- }
140
- /**
141
- * This method is used when we want to perform right mouse click on the dataTable row and perform some action
142
- *
143
- * @param name of the data table element with which we want to click
144
- * @param action provide which action you want to perform
145
- */
146
- async performActionFromExpandableMenu(name, action) {
147
- await this.goThroughPagesLookingForRowWithName(name);
148
- const actionButtonLocator = await this.getActionLocatorFromExpandableMenu(name, action);
149
- await actionButtonLocator.click();
150
- await this.spinnerWaitForReload();
151
- }
152
- /**
153
- * Click action from the expandable kebab menu for the element in datatable
154
- *
155
- * @param name title of the record you would like to proceed
156
- * @param action provide button title for the action
157
- * @param subAction if the action is in sub menu, then provide it here
158
- */
159
- async performActionForElement(name, action, subAction) {
160
- await this.getActionsButtonByName(name).click();
161
- await this.contextMenuActions.getButtonByText(action).click();
162
- if (subAction) {
163
- await this.contextMenuActions.getButtonByText(subAction).click();
164
- }
165
- }
166
- /**
167
- * This method is used when we want to perform double click on the dataTable row to open a file or folder
168
- *
169
- * @param name of the data table element with which we want to double click
170
- */
171
- async performClickFolderOrFileToOpen(name) {
172
- await this.getCellLinkByName(name).click();
173
- await this.spinnerWaitForReload();
174
- }
175
- async isItemPresent(name) {
176
- await this.goThroughPagesLookingForRowWithName(name);
177
- return this.getRowByName(name).isVisible();
178
- }
179
- async getActionLocatorFromExpandableMenu(name, action) {
180
- await this.getRowByName(name).click({ button: 'right' });
181
- return this.contextMenuActions.getButtonByText(action);
182
- }
183
- async performActionInExpandableMenu(name, action) {
184
- await this.getRowByName(name).click({ button: 'right' });
185
- await this.contextMenuActions.getButtonByText(action).click();
186
- }
187
- async goThroughPagesLookingForRowWithName(name) {
188
- await this.spinnerWaitForReload();
189
- if (await this.getRowByName(name).isVisible()) {
190
- return null;
191
- }
192
- if (await this.pagination.currentPageLocator.isVisible()) {
193
- if ((await this.pagination.currentPageLocator.textContent()) === ' of 1 ') {
194
- return null;
195
- }
196
- }
197
- if (await this.pagination.totalPageLocator.isVisible()) {
198
- const maxPages = (await this.pagination.totalPageLocator?.textContent())?.match(/\d/)[0];
199
- for (let page = 1; page <= Number(maxPages); page++) {
200
- if (await this.getRowByName(name).isVisible()) {
201
- break;
202
- }
203
- if (await this.pagination.getArrowLocatorFor(PaginationActionsType.NextPageSelector).isEnabled()) {
204
- await this.pagination.getArrowLocatorFor(PaginationActionsType.NextPageSelector).click();
205
- }
206
- await this.spinnerWaitForReload();
207
- }
208
- }
209
- }
210
- async selectItems(...names) {
211
- for (const name of names) {
212
- const isSelected = await this.isRowSelected(name);
213
- if (!isSelected) {
214
- const row = this.getRowByName(name);
215
- await row.hover();
216
- await row.locator(this.uncheckedCheckbox).click();
217
- await row.locator(this.checkedCheckbox).waitFor({ state: 'attached' });
218
- }
219
- }
220
- }
221
- async isRowSelected(itemName) {
222
- const row = this.getRowByName(itemName);
223
- return row.locator(this.checkedCheckbox).isVisible();
224
- }
225
- async getColumnHeaders() {
226
- const columnNameLocator = this.columnHeaders;
227
- await this.columnHeaders.nth(0).waitFor({ state: 'attached' });
228
- return columnNameLocator.allTextContents();
229
- }
230
- async getSortedColumnHeaderText() {
231
- return this.sortedColumnHeader.innerText();
232
- }
233
- getItemLocationEl(name) {
234
- return this.getRowByName(name).locator('.aca-location-link');
235
- }
236
- async getItemLocationText(name) {
237
- await this.getItemLocationEl(name).locator('a').waitFor({ state: 'attached' });
238
- return this.getItemLocationEl(name).innerText();
239
- }
240
- async getItemLocationTooltip(name) {
241
- const location = this.getItemLocationEl(name);
242
- await location.hover();
243
- return location.locator('a').getAttribute('title', { timeout: timeouts.normal });
244
- }
245
- async clickItemLocation(name) {
246
- await this.getItemLocationEl(name).click();
247
- }
248
- async getSortingOrder() {
249
- const str = await this.sortedColumnHeader.locator('../..').getAttribute('class');
250
- if (str.includes('asc')) {
251
- return 'asc';
252
- }
253
- else if (str.includes('desc')) {
254
- return 'desc';
255
- }
256
- return 'none';
257
- }
258
- async getRowAllInnerTexts(name) {
259
- return (await this.getRowByName(name).locator('span').allInnerTexts()).toString();
260
- }
261
- async getFirstElementDetail(name) {
262
- const firstNode = this.getColumnValuesByName(name).first();
263
- return firstNode.innerText();
264
- }
265
- async isEmpty() {
266
- return this.emptyList.isVisible();
267
- }
268
- async getEmptyStateTitle() {
269
- return (await this.isEmpty()) ? this.emptyListTitle.innerText() : '';
270
- }
271
- async getEmptyStateSubtitle() {
272
- return (await this.isEmpty()) ? this.emptyListSubtitle.innerText() : '';
273
- }
274
- async getEmptyListText() {
275
- return (await this.isEmpty()) ? this.emptyListTest.innerText() : '';
276
- }
277
- async getRowsCount() {
278
- return this.getRowLocator.count();
279
- }
280
- async rightClickOnItem(itemName) {
281
- await this.getCellByColumnNameAndRowItem(itemName, 'Name').click({ button: 'right' });
282
- }
283
- async setPaginationTo50() {
284
- await this.paginationButton.click();
285
- await this.paginationOptions.getByText('50').click();
286
- }
287
- /**
288
- * Method used to create objects from names and visibility of sites from datatable
289
- *
290
- * @returns an object with sites' names and their corresponding visibility values
291
- */
292
- async getSitesNameAndVisibility() {
293
- const rowsCount = await this.sitesName.count();
294
- const sitesInfo = {};
295
- for (let i = 0; i < rowsCount; i++) {
296
- let siteVisibilityText = await this.sitesVisibility.nth(i).textContent();
297
- let siteNameText = await this.sitesName.nth(i).textContent();
298
- siteVisibilityText = siteVisibilityText.trim().toUpperCase();
299
- siteNameText = siteNameText.trim();
300
- sitesInfo[siteNameText] = siteVisibilityText;
301
- }
302
- return sitesInfo;
303
- }
304
- /**
305
- * Method used to create objects from names and roles of sites from datatable
306
- *
307
- * @returns an object with sites' names and their corresponding role values
308
- */
309
- async getSitesNameAndRole() {
310
- const rowsCount = await this.sitesName.count();
311
- const sitesInfo = {};
312
- for (let i = 0; i < rowsCount; i++) {
313
- let siteNameText = await this.sitesName.nth(i).textContent();
314
- let siteRoleText = await this.sitesRole.nth(i).textContent();
315
- siteNameText = siteNameText.trim();
316
- siteRoleText = siteRoleText.trim();
317
- sitesInfo[siteNameText] = siteRoleText;
318
- }
319
- return sitesInfo;
320
- }
321
- async hasLockIcon(itemName) {
322
- const row = this.getRowByName(itemName);
323
- return row.locator('img[src*="lock"]').isVisible();
324
- }
325
- async getLockOwner(itemName) {
326
- const row = this.getRowByName(itemName);
327
- return row.locator(this.lockOwner).innerText();
328
- }
329
- async hasHighlightedText(location) {
330
- switch (location) {
331
- case 'name':
332
- return this.page.locator(this.searchFileName).locator(this.highlightedText).isVisible();
333
- case 'description':
334
- return this.page.locator(this.searchFileDescription).locator(this.highlightedText).isVisible();
335
- case 'content':
336
- return this.page.locator(this.searchFileContent).locator(this.highlightedText).isVisible();
337
- }
338
- }
339
- }
340
- DataTableComponent.rootElement = 'adf-datatable';
341
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtcGxheXdyaWdodC1zaGFyZWQvc3JjL3BhZ2Utb2JqZWN0cy9jb21wb25lbnRzL2RhdGFUYWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUdILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFJbkQsWUFBWSxJQUFVLEVBQUUsV0FBVyxHQUFHLGtCQUFrQixDQUFDLFdBQVc7UUFDbEUsS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUgzQix1QkFBa0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU05QyxlQUFVLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsU0FBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM1QywwQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0QsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQzNGLG1DQUE4QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUNqRyxtQkFB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MDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBMb2NhdG9yLCBQYWdlIH0gZnJvbSAnQHBsYXl3cmlnaHQvdGVzdCc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vbWF0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRpb25BY3Rpb25zVHlwZSwgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IHRpbWVvdXRzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhdGljIHJvb3RFbGVtZW50ID0gJ2FkZi1kYXRhdGFibGUnO1xuICBjb250ZXh0TWVudUFjdGlvbnMgPSBuZXcgTWF0TWVudUNvbXBvbmVudCh0aGlzLnBhZ2UpO1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IFBhZ2UsIHJvb3RFbGVtZW50ID0gRGF0YVRhYmxlQ29tcG9uZW50LnJvb3RFbGVtZW50KSB7XG4gICAgc3VwZXIocGFnZSwgcm9vdEVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHBhZ2luYXRpb24gPSBuZXcgUGFnaW5hdGlvbkNvbXBvbmVudCh0aGlzLnBhZ2UpO1xuICBib2R5ID0gdGhpcy5nZXRDaGlsZCgnLmFkZi1kYXRhdGFibGUtYm9keScpO1xuICBnZXRFbXB0eUZvbGRlckxvY2F0b3IgPSB0aGlzLmdldENoaWxkKCcuYWRmLWVtcHR5LWZvbGRlcicpO1xuICBnZXRFbXB0eUNvbnRlbnRUaXRsZUxvY2F0b3IgPSB0aGlzLmdldENoaWxkKCdhZGYtZW1wdHktY29udGVudCAuYWRmLWVtcHR5LWNvbnRlbnRfX3RpdGxlJyk7XG4gIGdldEVtcHR5Q29udGVudFN1YlRpdGxlTG9jYXRvciA9IHRoaXMuZ2V0Q2hpbGQoJ2FkZi1lbXB0eS1jb250ZW50IC5hZGYtZW1wdHktY29udGVudF9fc3VidGl0bGUnKTtcbiAgZ2V0U2VsZWN0ZWRSb3cgPSB0aGlzLmdldENoaWxkKCcuYWRmLWRhdGF0YWJsZS1yb3cuYWRmLWlzLXNlbGVjdGVkJyk7XG4gIHNvcnRlZENvbHVtbkhlYWRlciA9IHRoaXMuZ2V0Q2hpbGQoYC5hZGYtZGF0YXRhYmxlX19oZWFkZXItLXNvcnRlZC1hc2MgLmFkZi1kYXRhdGFibGUtY2VsbC1oZWFkZXItY29udGVudCAuYWRmLWRhdGF0YWJsZS1jZWxsLXZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWRmLWRhdGF0YWJsZV9faGVhZGVyLS1zb3J0ZWQtZGVzYyAuYWRmLWRhdGF0YWJsZS1jZWxsLWhlYWRlci1jb250ZW50IC5hZGYtZGF0YXRhYmxlLWNlbGwtdmFsdWVgKTtcbiAgY29sdW1uSGVhZGVycyA9IHRoaXMuZ2V0Q2hpbGQoJy5hZGYtZGF0YXRhYmxlLXJvdyAuYWRmLWRhdGF0YWJsZS1jZWxsLWhlYWRlciAuYWRmLWRhdGF0YWJsZS1jZWxsLXZhbHVlJyk7XG4gIGVtcHR5TGlzdCA9IHRoaXMuZ2V0Q2hpbGQoJ2Rpdi5hZGYtbm8tY29udGVudC1jb250YWluZXInKTtcbiAgZW1wdHlMaXN0VGl0bGUgPSB0aGlzLmdldENoaWxkKCcuYWRmLWVtcHR5LWNvbnRlbnRfX3RpdGxlJyk7XG4gIGVtcHR5TGlzdFN1YnRpdGxlID0gdGhpcy5nZXRDaGlsZCgnLmFkZi1lbXB0eS1jb250ZW50X19zdWJ0aXRsZScpO1xuICBlbXB0eVNlYXJjaFRleHQgPSB0aGlzLmdldENoaWxkKCcuZW1wdHktc2VhcmNoX190ZXh0Jyk7XG4gIGVtcHR5TGlzdFRlc3QgPSB0aGlzLmdldENoaWxkKCdhZGYtY3VzdG9tLWVtcHR5LWNvbnRlbnQtdGVtcGxhdGUnKTtcbiAgcGFnaW5hdGlvbkJ1dHRvbiA9IHRoaXMucGFnZS5sb2NhdG9yKCcuYWRmLXBhZ2luYXRpb25fX2Jsb2NrIGJ1dHRvbicpLm50aCgwKTtcbiAgcGFnaW5hdGlvbk9wdGlvbnMgPSB0aGlzLnBhZ2UubG9jYXRvcignI2Nkay1vdmVybGF5LTAgYnV0dG9uJyk7XG4gIHNpdGVzVmlzaWJpbGl0eSA9IHRoaXMucGFnZS5sb2NhdG9yKCcuYWRmLWRhdGF0YWJsZS1ib2R5IFtkYXRhLWF1dG9tYXRpb24taWQqPVwiZGF0YXRhYmxlLXJvd1wiXSBbYXJpYS1sYWJlbD1cIlZpc2liaWxpdHlcIl0nKTtcbiAgc2l0ZXNOYW1lID0gdGhpcy5wYWdlLmxvY2F0b3IoJy5hZGYtZGF0YXRhYmxlLWJvZHkgW2RhdGEtYXV0b21hdGlvbi1pZCo9XCJkYXRhdGFibGUtcm93XCJdIFthcmlhLWxhYmVsPVwiTmFtZVwiXScpO1xuICBzaXRlc1JvbGUgPSB0aGlzLnBhZ2UubG9jYXRvcignLmFkZi1kYXRhdGFibGUtYm9keSBbZGF0YS1hdXRvbWF0aW9uLWlkKj1cImRhdGF0YWJsZS1yb3dcIl0gW2FyaWEtbGFiZWw9XCJNeSBSb2xlXCJdJyk7XG4gIGxvY2tPd25lciA9IHRoaXMucGFnZS5sb2NhdG9yKCcuYWNhLWxvY2tlZC1ieS0tbmFtZScpO1xuICB1bmNoZWNrZWRDaGVja2JveCA9IHRoaXMucGFnZS5sb2NhdG9yKCcubWF0LW1kYy1jaGVja2JveCcpO1xuICBjaGVja2VkQ2hlY2tib3ggPSB0aGlzLnBhZ2UubG9jYXRvcignLm1hdC1tZGMtY2hlY2tib3gtY2hlY2tlZCcpO1xuICBoaWdobGlnaHRlZFRleHQgPSAnLmFjYS1oaWdobGlnaHQnO1xuICBzZWFyY2hGaWxlTmFtZSA9ICcuc2VhcmNoLWZpbGUtbmFtZSc7XG4gIHNlYXJjaEZpbGVEZXNjcmlwdGlvbiA9ICdbZGF0YS1hdXRvbWF0aW9uLWlkPVwic2VhcmNoLXJlc3VsdHMtZW50cnktZGVzY3JpcHRpb25cIl0nO1xuICBzZWFyY2hGaWxlQ29udGVudCA9ICcuYWNhLXJlc3VsdC1jb250ZW50JztcblxuICAvKiogTG9jYXRvciBmb3Igcm93IChvciByb3dzKSAqL1xuICBnZXRSb3dMb2NhdG9yID0gdGhpcy5wYWdlLmdldEJ5Um9sZSgncm93Z3JvdXAnKS5udGgoMSkubG9jYXRvcignYWRmLWRhdGF0YWJsZS1yb3cnKTtcblxuICAvKiogTG9jYXRvciB0byBnZXQgXCJObyByZXN1bHRzIGZvdW5kXCIgbWVzc2FnZSAqL1xuICBnZXROb1Jlc3VsdHNGb3VuZE1lc3NhZ2UgPSB0aGlzLmdldENoaWxkKCdhZGYtY3VzdG9tLWVtcHR5LWNvbnRlbnQtdGVtcGxhdGUnLCB7IGhhc1RleHQ6ICdObyByZXN1bHRzIGZvdW5kJyB9KTtcblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgaW4gY2FzZXMgd2hlcmUgd2Ugd2FudCB0byBjaGVjayB0aGF0IHNvbWUgcmVjb3JkIGlzIHZpc2libGUgaW4gdGhlIGRhdGF0YWJsZS4gSXQgd2lsbCBjb25zaWRlciB3aG9sZSByb3dcbiAgICpcbiAgICogQHJldHVybnMgcmVmZXJlbmNlIHRvIGNlbGwgZWxlbWVudCB3aGljaCBjb250YWlucyB0ZXh0LlxuICAgKi9cbiAgZ2V0Um93QnlOYW1lID0gKG5hbWU6IHN0cmluZyB8IG51bWJlcik6IExvY2F0b3IgPT4gdGhpcy5nZXRDaGlsZChgYWRmLWRhdGF0YWJsZS1yb3dgLCB7IGhhc1RleHQ6IG5hbWUudG9TdHJpbmcoKSB9KTtcblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgaW4gY2FzZXMgd2hlcmUgd2Ugd2FudCB0byBjaGVjayB0aGF0IHNvbWUgcmVjb3JkIGlzIHZpc2libGUgaW4gdGhlIGRhdGF0YWJsZS5cbiAgICogQnV0IHdlIHdhbnQgdG8gY2hlY2sgaXQgYnkgY29sdW1uIGhlYWRlciB0aXRsZSBhbmQgdmFsdWUgb2YgdGhpcyBjb2x1bW4uXG4gICAqXG4gICAqIEByZXR1cm5zIHJlZmVyZW5jZSB0byBjZWxsIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgdGV4dC5cbiAgICovXG4gIGdldFJvd0J5Q29sdW1uVGl0bGVBbmRJdHNDZWxsVmFsdWUgPSAoY29sdW1uVGl0bGU6IHN0cmluZywgY2VsbFZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBMb2NhdG9yID0+XG4gICAgdGhpcy5wYWdlLmxvY2F0b3IoYC8vZGl2W2NvbnRhaW5zKEB0aXRsZSwgJyR7Y29sdW1uVGl0bGV9JyldLy9zcGFuW2NvbnRhaW5zKHRleHQoKSwgJyR7Y2VsbFZhbHVlfScpXS9hbmNlc3Rvcjo6YWRmLWRhdGF0YWJsZS1yb3dgKTtcblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgaW4gY2FzZXMgd2hlcmUgd2Ugd2FudCB0byByZXRyaWV2ZSBhIHJvdyBmcm9tIHRoZSBkYXRhdGFibGUgYmFzZWQgb24gaXRzIG51bWVyaWNhbCBvcmRlciB3aXRoaW4gdGhlIGFycmF5LlxuICAgKlxuICAgKiBAcmV0dXJucyByZWZlcmVuY2UgdG8gY2VsbCBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIHRleHQuXG4gICAqL1xuICBnZXROdGhSb3cgPSAob3JkZXJOdW06IG51bWJlcik6IExvY2F0b3IgPT4gdGhpcy5nZXRSb3dMb2NhdG9yLm50aChvcmRlck51bSk7XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIGluIGNhc2VzIHdoZXJlIHVzZXIgaGF2ZSBwb3NzaWJpbGl0eSB0byBuYXZpZ2F0ZSBcImluc2lkZVwiIHRoZSBlbGVtZW50IChpdCdzIGNsaWNrYWJsZSBhbmQgaGFzIGxpbmsgYXR0cmlidXRlKS5cbiAgICogUGVyZm9ybSBhY3Rpb24gLmNsaWNrKCkgdG8gbmF2aWdhdGUgaW5zaWRlIGl0XG4gICAqXG4gICAqIEByZXR1cm5zIHJlZmVyZW5jZSB0byBjZWxsIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgbGluay5cbiAgICovXG4gIGdldENlbGxMaW5rQnlOYW1lID0gKG5hbWU6IHN0cmluZyk6IExvY2F0b3IgPT4gdGhpcy5nZXRDaGlsZCgnLmFkZi1jZWxsLXZhbHVlIHNwYW5bcm9sZT1cImxpbmtcIl0nLCB7IGhhc1RleHQ6IG5hbWUgfSk7XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIGluIGNhc2VzIHdoZXJlIHdlIHdhbnQgdG8gbG9jYWxpemUgdGhlIGVsZW1lbnQgYnkgW2FyaWEtbGFiZWxdXG4gICAqXG4gICAqIEByZXR1cm5zIHJlZmVyZW5jZSB0byBjZWxsIGVsZW1lbnQuXG4gICAqL1xuICBnZXRCeUFyaWFMYWJlbFRpdGxlID0gKHRpdGxlOiBzdHJpbmcpOiBMb2NhdG9yID0+IHRoaXMuZ2V0Q2hpbGQoYFthcmlhLWxhYmVsPVwiJHt0aXRsZX1cIl1gKTtcblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgaW4gY2FzZXMgd2hlcmUgd2Ugd2FudCB0byBnZXQgdGhlIGJ1dHRvbiAoaGFtYnVyZ2VyIG1lbnUpIGZvciByb3cgZWxlbWVudFxuICAgKlxuICAgKiBAcmV0dXJucyByZWZlcmVuY2UgdG8gbWVudSBwbGFjZWQgaW4gcm93IGxvY2FsaXplZCBieSB0aGUgbmFtZVxuICAgKi9cbiAgZ2V0QWN0aW9uc0J1dHRvbkJ5TmFtZSA9IChuYW1lOiBzdHJpbmcpOiBMb2NhdG9yID0+XG4gICAgdGhpcy5nZXRSb3dCeU5hbWUobmFtZSkubG9jYXRvcignbWF0LWljb24nLCB7IGhhc1RleHQ6IG5ldyBSZWdFeHAoYF5cXFxccyptb3JlX3ZlcnRcXFxccyokYCwgJ2cnKSB9KTtcblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgaW4gY2FzZXMgd2hlcmUgd2Ugd2FudCB0byBnZXQgdGhlIGVkaXQgYnV0dG9uIGFuZCB0aGVyZSBpcyBubyBoYW1idXJnZXIgbWVudVxuICAgKlxuICAgKiBAcmV0dXJucyByZWZlcmVuY2UgdG8gZWRpdCBidXR0b24gcGxhY2VkIGluIHJvdyBsb2NhbGl6ZWQgYnkgdGhlIG5hbWVcbiAgICovXG4gIGdldEVkaXRCdXR0b25CeU5hbWUgPSAobmFtZTogc3RyaW5nKTogTG9jYXRvciA9PiB0aGlzLmdldFJvd0J5TmFtZShuYW1lKS5sb2NhdG9yKCdidXR0b24jZWRpdEJ1dHRvbicpO1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSB3YW50IHRvIGdldCB0aGUgYnV0dG9uIGFuZCB0aGVyZSBpcyBubyBoYW1idXJnZXIgbWVudVxuICAgKlxuICAgKiBAcmV0dXJucyByZWZlcmVuY2UgdG8gYnV0dG9uIHBsYWNlZCBpbiByb3cgbG9jYWxpemVkIGJ5IHRoZSBuYW1lXG4gICAqL1xuICBnZXRCdXR0b25CeU5hbWVGb3JTcGVjaWZpY1JvdyA9IChlbGVtZW50VGl0bGVJblJvdzogc3RyaW5nLCBidXR0b25UaXRsZTogc3RyaW5nKTogTG9jYXRvciA9PlxuICAgIHRoaXMuZ2V0Um93QnlOYW1lKGVsZW1lbnRUaXRsZUluUm93KS5sb2NhdG9yKCdidXR0b24nLCB7IGhhc1RleHQ6IGJ1dHRvblRpdGxlIH0pO1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBpbiBjYXNlcyB3aGVyZSB5b3Ugd2FudCB0byBnZXQgc29tZSBzcGVjaWZpYyBjZWxsIChieSBjb2x1bW4gbmFtZSkgZm9yIHJvdyB3aGljaCBjb250YWlucyBzb21lIG5hbWUvdGl0bGUvZXRjLlxuICAgKlxuICAgKiBAcmV0dXJucyByZWZlcmVuY2UgdG8gY2VsbCBlbGVtZW50XG4gICAqL1xuICBnZXRDZWxsQnlDb2x1bW5OYW1lQW5kUm93SXRlbSA9IChpdGVtOiBzdHJpbmcgfCBudW1iZXIsIGNvbHVtbk5hbWU6IHN0cmluZyk6IExvY2F0b3IgPT4gdGhpcy5nZXRSb3dCeU5hbWUoaXRlbSkubG9jYXRvcihgW3RpdGxlPVwiJHtjb2x1bW5OYW1lfVwiXWApO1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSB3YW50IHRvIGdldCB0aGUgY2hlY2tib3ggZm9yIHJvdyBlbGVtZW50XG4gICAqXG4gICAqIEByZXR1cm5zIHJlZmVyZW5jZSB0byBjaGVja2JveCBwbGFjZWQgaW4gcm93IGxvY2FsaXplZCBieSB0aGUgbmFtZVxuICAgKi9cbiAgZ2V0Q2hlY2tib3hGb3JFbGVtZW50ID0gKGl0ZW06IHN0cmluZyk6IExvY2F0b3IgPT4gdGhpcy5nZXRSb3dCeU5hbWUoaXRlbSkubG9jYXRvcignLm1hdC1tZGMtY2hlY2tib3gnKTtcblxuICBnZXRDb2x1bW5IZWFkZXJCeVRpdGxlTG9jYXRvciA9IChoZWFkZXJUaXRsZTogc3RyaW5nKTogTG9jYXRvciA9PiB0aGlzLmdldENoaWxkKCdbcm9sZT1cImNvbHVtbmhlYWRlclwiXScsIHsgaGFzVGV4dDogaGVhZGVyVGl0bGUgfSk7XG5cbiAgZ2V0U2VhcmNoUmVzdWx0TGlua0J5TmFtZSA9IChuYW1lOiBzdHJpbmcpOiBMb2NhdG9yID0+IHRoaXMuZ2V0Q2hpbGQoJy5hY2Etc2VhcmNoLXJlc3VsdHMtcm93IHNwYW5bcm9sZT1cImxpbmtcIl0nLCB7IGhhc1RleHQ6IG5hbWUgfSk7XG5cbiAgZ2V0Q29sdW1uVmFsdWVzQnlOYW1lID0gKG5hbWU6IHN0cmluZyk6IExvY2F0b3IgPT4gdGhpcy5nZXRDaGlsZChgZGl2W3RpdGxlPVwiJHtuYW1lfVwiXSBzcGFuYCk7XG5cbiAgZ2V0Q29sdW1uSGVhZGVyQnlOYW1lID0gKGhlYWRlclRpdGxlOiBzdHJpbmcpOiBMb2NhdG9yID0+XG4gICAgdGhpcy5nZXRDaGlsZCgnLmFkZi1kYXRhdGFibGUtcm93IC5hZGYtZGF0YXRhYmxlLWNlbGwtaGVhZGVyIC5hZGYtZGF0YXRhYmxlLWNlbGwtdmFsdWUnLCB7IGhhc1RleHQ6IGhlYWRlclRpdGxlIH0pO1xuXG4gIGFzeW5jIHNvcnRCeShsYWJlbDogc3RyaW5nLCBvcmRlcjogJ2FzYycgfCAnZGVzYycpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzb3J0Q29sdW1uID0gYXdhaXQgdGhpcy5nZXRTb3J0ZWRDb2x1bW5IZWFkZXJUZXh0KCk7XG4gICAgbGV0IHNvcnRPcmRlciA9IGF3YWl0IHRoaXMuZ2V0U29ydGluZ09yZGVyKCk7XG4gICAgaWYgKHNvcnRDb2x1bW4gIT09IGxhYmVsKSB7XG4gICAgICBhd2FpdCB0aGlzLmdldENvbHVtbkhlYWRlckJ5TmFtZShsYWJlbCkuY2xpY2soeyBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgIHNvcnRPcmRlciA9IGF3YWl0IHRoaXMuZ2V0U29ydGluZ09yZGVyKCk7XG4gICAgfVxuICAgIGlmIChzb3J0T3JkZXIgIT09IG9yZGVyKSB7XG4gICAgICBhd2FpdCB0aGlzLmdldENoaWxkKCdzcGFuW2NsYXNzKj1cImFkZi1kYXRhdGFibGVfX2hlYWRlci0tc29ydGVkXCJdJykuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB3aGVuIHdlIHdhbnQgdG8gcGVyZm9ybSByaWdodCBtb3VzZSBjbGljayBvbiB0aGUgZGF0YVRhYmxlIHJvdyBhbmQgcGVyZm9ybSBzb21lIGFjdGlvblxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBvZiB0aGUgZGF0YSB0YWJsZSBlbGVtZW50IHdpdGggd2hpY2ggd2Ugd2FudCB0byBjbGlja1xuICAgKiBAcGFyYW0gYWN0aW9uIHByb3ZpZGUgd2hpY2ggYWN0aW9uIHlvdSB3YW50IHRvIHBlcmZvcm1cbiAgICovXG4gIGFzeW5jIHBlcmZvcm1BY3Rpb25Gcm9tRXhwYW5kYWJsZU1lbnUobmFtZTogc3RyaW5nIHwgbnVtYmVyLCBhY3Rpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZ29UaHJvdWdoUGFnZXNMb29raW5nRm9yUm93V2l0aE5hbWUobmFtZSk7XG4gICAgY29uc3QgYWN0aW9uQnV0dG9uTG9jYXRvciA9IGF3YWl0IHRoaXMuZ2V0QWN0aW9uTG9jYXRvckZyb21FeHBhbmRhYmxlTWVudShuYW1lLCBhY3Rpb24pO1xuICAgIGF3YWl0IGFjdGlvbkJ1dHRvbkxvY2F0b3IuY2xpY2soKTtcbiAgICBhd2FpdCB0aGlzLnNwaW5uZXJXYWl0Rm9yUmVsb2FkKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2sgYWN0aW9uIGZyb20gdGhlIGV4cGFuZGFibGUga2ViYWIgbWVudSBmb3IgdGhlIGVsZW1lbnQgaW4gZGF0YXRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIHRpdGxlIG9mIHRoZSByZWNvcmQgeW91IHdvdWxkIGxpa2UgdG8gcHJvY2VlZFxuICAgKiBAcGFyYW0gYWN0aW9uIHByb3ZpZGUgYnV0dG9uIHRpdGxlIGZvciB0aGUgYWN0aW9uXG4gICAqIEBwYXJhbSBzdWJBY3Rpb24gaWYgdGhlIGFjdGlvbiBpcyBpbiBzdWIgbWVudSwgdGhlbiBwcm92aWRlIGl0IGhlcmVcbiAgICovXG4gIGFzeW5jIHBlcmZvcm1BY3Rpb25Gb3JFbGVtZW50KG5hbWU6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcsIHN1YkFjdGlvbj86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZ2V0QWN0aW9uc0J1dHRvbkJ5TmFtZShuYW1lKS5jbGljaygpO1xuICAgIGF3YWl0IHRoaXMuY29udGV4dE1lbnVBY3Rpb25zLmdldEJ1dHRvbkJ5VGV4dChhY3Rpb24pLmNsaWNrKCk7XG5cbiAgICBpZiAoc3ViQWN0aW9uKSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbnRleHRNZW51QWN0aW9ucy5nZXRCdXR0b25CeVRleHQoc3ViQWN0aW9uKS5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHdoZW4gd2Ugd2FudCB0byBwZXJmb3JtIGRvdWJsZSBjbGljayBvbiB0aGUgZGF0YVRhYmxlIHJvdyB0byBvcGVuIGEgZmlsZSBvciBmb2xkZXJcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgb2YgdGhlIGRhdGEgdGFibGUgZWxlbWVudCB3aXRoIHdoaWNoIHdlIHdhbnQgdG8gZG91YmxlIGNsaWNrXG4gICAqL1xuICBhc3luYyBwZXJmb3JtQ2xpY2tGb2xkZXJPckZpbGVUb09wZW4obmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5nZXRDZWxsTGlua0J5TmFtZShuYW1lKS5jbGljaygpO1xuICAgIGF3YWl0IHRoaXMuc3Bpbm5lcldhaXRGb3JSZWxvYWQoKTtcbiAgfVxuXG4gIGFzeW5jIGlzSXRlbVByZXNlbnQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgYXdhaXQgdGhpcy5nb1Rocm91Z2hQYWdlc0xvb2tpbmdGb3JSb3dXaXRoTmFtZShuYW1lKTtcbiAgICByZXR1cm4gdGhpcy5nZXRSb3dCeU5hbWUobmFtZSkuaXNWaXNpYmxlKCk7XG4gIH1cblxuICBhc3luYyBnZXRBY3Rpb25Mb2NhdG9yRnJvbUV4cGFuZGFibGVNZW51KG5hbWU6IHN0cmluZyB8IG51bWJlciwgYWN0aW9uOiBzdHJpbmcpOiBQcm9taXNlPExvY2F0b3I+IHtcbiAgICBhd2FpdCB0aGlzLmdldFJvd0J5TmFtZShuYW1lKS5jbGljayh7IGJ1dHRvbjogJ3JpZ2h0JyB9KTtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0TWVudUFjdGlvbnMuZ2V0QnV0dG9uQnlUZXh0KGFjdGlvbik7XG4gIH1cblxuICBhc3luYyBwZXJmb3JtQWN0aW9uSW5FeHBhbmRhYmxlTWVudShuYW1lOiBzdHJpbmcgfCBudW1iZXIsIGFjdGlvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5nZXRSb3dCeU5hbWUobmFtZSkuY2xpY2soeyBidXR0b246ICdyaWdodCcgfSk7XG4gICAgYXdhaXQgdGhpcy5jb250ZXh0TWVudUFjdGlvbnMuZ2V0QnV0dG9uQnlUZXh0KGFjdGlvbikuY2xpY2soKTtcbiAgfVxuXG4gIGFzeW5jIGdvVGhyb3VnaFBhZ2VzTG9va2luZ0ZvclJvd1dpdGhOYW1lKG5hbWU6IHN0cmluZyB8IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc3Bpbm5lcldhaXRGb3JSZWxvYWQoKTtcbiAgICBpZiAoYXdhaXQgdGhpcy5nZXRSb3dCeU5hbWUobmFtZSkuaXNWaXNpYmxlKCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChhd2FpdCB0aGlzLnBhZ2luYXRpb24uY3VycmVudFBhZ2VMb2NhdG9yLmlzVmlzaWJsZSgpKSB7XG4gICAgICBpZiAoKGF3YWl0IHRoaXMucGFnaW5hdGlvbi5jdXJyZW50UGFnZUxvY2F0b3IudGV4dENvbnRlbnQoKSkgPT09ICcgb2YgMSAnKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYXdhaXQgdGhpcy5wYWdpbmF0aW9uLnRvdGFsUGFnZUxvY2F0b3IuaXNWaXNpYmxlKCkpIHtcbiAgICAgIGNvbnN0IG1heFBhZ2VzID0gKGF3YWl0IHRoaXMucGFnaW5hdGlvbi50b3RhbFBhZ2VMb2NhdG9yPy50ZXh0Q29udGVudCgpKT8ubWF0Y2goL1xcZC8pWzBdO1xuICAgICAgZm9yIChsZXQgcGFnZSA9IDE7IHBhZ2UgPD0gTnVtYmVyKG1heFBhZ2VzKTsgcGFnZSsrKSB7XG4gICAgICAgIGlmIChhd2FpdCB0aGlzLmdldFJvd0J5TmFtZShuYW1lKS5pc1Zpc2libGUoKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhd2FpdCB0aGlzLnBhZ2luYXRpb24uZ2V0QXJyb3dMb2NhdG9yRm9yKFBhZ2luYXRpb25BY3Rpb25zVHlwZS5OZXh0UGFnZVNlbGVjdG9yKS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucGFnaW5hdGlvbi5nZXRBcnJvd0xvY2F0b3JGb3IoUGFnaW5hdGlvbkFjdGlvbnNUeXBlLk5leHRQYWdlU2VsZWN0b3IpLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5zcGlubmVyV2FpdEZvclJlbG9hZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbGVjdEl0ZW1zKC4uLm5hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBuYW1lcykge1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGF3YWl0IHRoaXMuaXNSb3dTZWxlY3RlZChuYW1lKTtcbiAgICAgIGlmICghaXNTZWxlY3RlZCkge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdldFJvd0J5TmFtZShuYW1lKTtcbiAgICAgICAgYXdhaXQgcm93LmhvdmVyKCk7XG4gICAgICAgIGF3YWl0IHJvdy5sb2NhdG9yKHRoaXMudW5jaGVja2VkQ2hlY2tib3gpLmNsaWNrKCk7XG4gICAgICAgIGF3YWl0IHJvdy5sb2NhdG9yKHRoaXMuY2hlY2tlZENoZWNrYm94KS53YWl0Rm9yKHsgc3RhdGU6ICdhdHRhY2hlZCcgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaXNSb3dTZWxlY3RlZChpdGVtTmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5nZXRSb3dCeU5hbWUoaXRlbU5hbWUpO1xuICAgIHJldHVybiByb3cubG9jYXRvcih0aGlzLmNoZWNrZWRDaGVja2JveCkuaXNWaXNpYmxlKCk7XG4gIH1cblxuICBhc3luYyBnZXRDb2x1bW5IZWFkZXJzKCk6IFByb21pc2U8QXJyYXk8c3RyaW5nPj4ge1xuICAgIGNvbnN0IGNvbHVtbk5hbWVMb2NhdG9yID0gdGhpcy5jb2x1bW5IZWFkZXJzO1xuICAgIGF3YWl0IHRoaXMuY29sdW1uSGVhZGVycy5udGgoMCkud2FpdEZvcih7IHN0YXRlOiAnYXR0YWNoZWQnIH0pO1xuICAgIHJldHVybiBjb2x1bW5OYW1lTG9jYXRvci5hbGxUZXh0Q29udGVudHMoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFNvcnRlZENvbHVtbkhlYWRlclRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRDb2x1bW5IZWFkZXIuaW5uZXJUZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1Mb2NhdGlvbkVsKG5hbWU6IHN0cmluZyk6IExvY2F0b3Ige1xuICAgIHJldHVybiB0aGlzLmdldFJvd0J5TmFtZShuYW1lKS5sb2NhdG9yKCcuYWNhLWxvY2F0aW9uLWxpbmsnKTtcbiAgfVxuXG4gIGFzeW5jIGdldEl0ZW1Mb2NhdGlvblRleHQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBhd2FpdCB0aGlzLmdldEl0ZW1Mb2NhdGlvbkVsKG5hbWUpLmxvY2F0b3IoJ2EnKS53YWl0Rm9yKHsgc3RhdGU6ICdhdHRhY2hlZCcgfSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUxvY2F0aW9uRWwobmFtZSkuaW5uZXJUZXh0KCk7XG4gIH1cblxuICBhc3luYyBnZXRJdGVtTG9jYXRpb25Ub29sdGlwKG5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLmdldEl0ZW1Mb2NhdGlvbkVsKG5hbWUpO1xuICAgIGF3YWl0IGxvY2F0aW9uLmhvdmVyKCk7XG4gICAgcmV0dXJuIGxvY2F0aW9uLmxvY2F0b3IoJ2EnKS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJywgeyB0aW1lb3V0OiB0aW1lb3V0cy5ub3JtYWwgfSk7XG4gIH1cblxuICBhc3luYyBjbGlja0l0ZW1Mb2NhdGlvbihuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmdldEl0ZW1Mb2NhdGlvbkVsKG5hbWUpLmNsaWNrKCk7XG4gIH1cblxuICBhc3luYyBnZXRTb3J0aW5nT3JkZXIoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzdHIgPSBhd2FpdCB0aGlzLnNvcnRlZENvbHVtbkhlYWRlci5sb2NhdG9yKCcuLi8uLicpLmdldEF0dHJpYnV0ZSgnY2xhc3MnKTtcbiAgICBpZiAoc3RyLmluY2x1ZGVzKCdhc2MnKSkge1xuICAgICAgcmV0dXJuICdhc2MnO1xuICAgIH0gZWxzZSBpZiAoc3RyLmluY2x1ZGVzKCdkZXNjJykpIHtcbiAgICAgIHJldHVybiAnZGVzYyc7XG4gICAgfVxuICAgIHJldHVybiAnbm9uZSc7XG4gIH1cblxuICBhc3luYyBnZXRSb3dBbGxJbm5lclRleHRzKG5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldFJvd0J5TmFtZShuYW1lKS5sb2NhdG9yKCdzcGFuJykuYWxsSW5uZXJUZXh0cygpKS50b1N0cmluZygpO1xuICB9XG5cbiAgYXN5bmMgZ2V0Rmlyc3RFbGVtZW50RGV0YWlsKG5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZmlyc3ROb2RlID0gdGhpcy5nZXRDb2x1bW5WYWx1ZXNCeU5hbWUobmFtZSkuZmlyc3QoKTtcbiAgICByZXR1cm4gZmlyc3ROb2RlLmlubmVyVGV4dCgpO1xuICB9XG5cbiAgYXN5bmMgaXNFbXB0eSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5lbXB0eUxpc3QuaXNWaXNpYmxlKCk7XG4gIH1cblxuICBhc3luYyBnZXRFbXB0eVN0YXRlVGl0bGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaXNFbXB0eSgpKSA/IHRoaXMuZW1wdHlMaXN0VGl0bGUuaW5uZXJUZXh0KCkgOiAnJztcbiAgfVxuXG4gIGFzeW5jIGdldEVtcHR5U3RhdGVTdWJ0aXRsZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pc0VtcHR5KCkpID8gdGhpcy5lbXB0eUxpc3RTdWJ0aXRsZS5pbm5lclRleHQoKSA6ICcnO1xuICB9XG5cbiAgYXN5bmMgZ2V0RW1wdHlMaXN0VGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pc0VtcHR5KCkpID8gdGhpcy5lbXB0eUxpc3RUZXN0LmlubmVyVGV4dCgpIDogJyc7XG4gIH1cblxuICBhc3luYyBnZXRSb3dzQ291bnQoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRSb3dMb2NhdG9yLmNvdW50KCk7XG4gIH1cblxuICBhc3luYyByaWdodENsaWNrT25JdGVtKGl0ZW1OYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmdldENlbGxCeUNvbHVtbk5hbWVBbmRSb3dJdGVtKGl0ZW1OYW1lLCAnTmFtZScpLmNsaWNrKHsgYnV0dG9uOiAncmlnaHQnIH0pO1xuICB9XG5cbiAgYXN5bmMgc2V0UGFnaW5hdGlvblRvNTAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wYWdpbmF0aW9uQnV0dG9uLmNsaWNrKCk7XG4gICAgYXdhaXQgdGhpcy5wYWdpbmF0aW9uT3B0aW9ucy5nZXRCeVRleHQoJzUwJykuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCB0byBjcmVhdGUgb2JqZWN0cyBmcm9tIG5hbWVzIGFuZCB2aXNpYmlsaXR5IG9mIHNpdGVzIGZyb20gZGF0YXRhYmxlXG4gICAqXG4gICAqIEByZXR1cm5zIGFuIG9iamVjdCB3aXRoIHNpdGVzJyBuYW1lcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB2aXNpYmlsaXR5IHZhbHVlc1xuICAgKi9cbiAgYXN5bmMgZ2V0U2l0ZXNOYW1lQW5kVmlzaWJpbGl0eSgpOiBQcm9taXNlPHsgW3NpdGVOYW1lOiBzdHJpbmddOiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IHJvd3NDb3VudCA9IGF3YWl0IHRoaXMuc2l0ZXNOYW1lLmNvdW50KCk7XG4gICAgY29uc3Qgc2l0ZXNJbmZvOiB7IFtzaXRlTmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3NDb3VudDsgaSsrKSB7XG4gICAgICBsZXQgc2l0ZVZpc2liaWxpdHlUZXh0ID0gYXdhaXQgdGhpcy5zaXRlc1Zpc2liaWxpdHkubnRoKGkpLnRleHRDb250ZW50KCk7XG4gICAgICBsZXQgc2l0ZU5hbWVUZXh0ID0gYXdhaXQgdGhpcy5zaXRlc05hbWUubnRoKGkpLnRleHRDb250ZW50KCk7XG4gICAgICBzaXRlVmlzaWJpbGl0eVRleHQgPSBzaXRlVmlzaWJpbGl0eVRleHQudHJpbSgpLnRvVXBwZXJDYXNlKCk7XG4gICAgICBzaXRlTmFtZVRleHQgPSBzaXRlTmFtZVRleHQudHJpbSgpO1xuICAgICAgc2l0ZXNJbmZvW3NpdGVOYW1lVGV4dF0gPSBzaXRlVmlzaWJpbGl0eVRleHQ7XG4gICAgfVxuICAgIHJldHVybiBzaXRlc0luZm87XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gY3JlYXRlIG9iamVjdHMgZnJvbSBuYW1lcyBhbmQgcm9sZXMgb2Ygc2l0ZXMgZnJvbSBkYXRhdGFibGVcbiAgICpcbiAgICogQHJldHVybnMgYW4gb2JqZWN0IHdpdGggc2l0ZXMnIG5hbWVzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHJvbGUgdmFsdWVzXG4gICAqL1xuICBhc3luYyBnZXRTaXRlc05hbWVBbmRSb2xlKCk6IFByb21pc2U8eyBbc2l0ZU5hbWU6IHN0cmluZ106IHN0cmluZyB9PiB7XG4gICAgY29uc3Qgcm93c0NvdW50ID0gYXdhaXQgdGhpcy5zaXRlc05hbWUuY291bnQoKTtcbiAgICBjb25zdCBzaXRlc0luZm86IHsgW3NpdGVOYW1lOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93c0NvdW50OyBpKyspIHtcbiAgICAgIGxldCBzaXRlTmFtZVRleHQgPSBhd2FpdCB0aGlzLnNpdGVzTmFtZS5udGgoaSkudGV4dENvbnRlbnQoKTtcbiAgICAgIGxldCBzaXRlUm9sZVRleHQgPSBhd2FpdCB0aGlzLnNpdGVzUm9sZS5udGgoaSkudGV4dENvbnRlbnQoKTtcbiAgICAgIHNpdGVOYW1lVGV4dCA9IHNpdGVOYW1lVGV4dC50cmltKCk7XG4gICAgICBzaXRlUm9sZVRleHQgPSBzaXRlUm9sZVRleHQudHJpbSgpO1xuICAgICAgc2l0ZXNJbmZvW3NpdGVOYW1lVGV4dF0gPSBzaXRlUm9sZVRleHQ7XG4gICAgfVxuICAgIHJldHVybiBzaXRlc0luZm87XG4gIH1cblxuICBhc3luYyBoYXNMb2NrSWNvbihpdGVtTmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5nZXRSb3dCeU5hbWUoaXRlbU5hbWUpO1xuICAgIHJldHVybiByb3cubG9jYXRvcignaW1nW3NyYyo9XCJsb2NrXCJdJykuaXNWaXNpYmxlKCk7XG4gIH1cblxuICBhc3luYyBnZXRMb2NrT3duZXIoaXRlbU5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5nZXRSb3dCeU5hbWUoaXRlbU5hbWUpO1xuICAgIHJldHVybiByb3cubG9jYXRvcih0aGlzLmxvY2tPd25lcikuaW5uZXJUZXh0KCk7XG4gIH1cblxuICBhc3luYyBoYXNIaWdobGlnaHRlZFRleHQobG9jYXRpb246ICduYW1lJyB8ICdkZXNjcmlwdGlvbicgfCAnY29udGVudCcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBzd2l0Y2ggKGxvY2F0aW9uKSB7XG4gICAgICBjYXNlICduYW1lJzpcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZS5sb2NhdG9yKHRoaXMuc2VhcmNoRmlsZU5hbWUpLmxvY2F0b3IodGhpcy5oaWdobGlnaHRlZFRleHQpLmlzVmlzaWJsZSgpO1xuICAgICAgY2FzZSAnZGVzY3JpcHRpb24nOlxuICAgICAgICByZXR1cm4gdGhpcy5wYWdlLmxvY2F0b3IodGhpcy5zZWFyY2hGaWxlRGVzY3JpcHRpb24pLmxvY2F0b3IodGhpcy5oaWdobGlnaHRlZFRleHQpLmlzVmlzaWJsZSgpO1xuICAgICAgY2FzZSAnY29udGVudCc6XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2UubG9jYXRvcih0aGlzLnNlYXJjaEZpbGVDb250ZW50KS5sb2NhdG9yKHRoaXMuaGlnaGxpZ2h0ZWRUZXh0KS5pc1Zpc2libGUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==