@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
@@ -166,6 +166,8 @@ function getUserState(user) {
166
166
  */
167
167
  const crypto = require('crypto');
168
168
  class Utils {
169
+ static string257Long = 'x'.repeat(257);
170
+ static string513Long = 'x'.repeat(513);
169
171
  static random() {
170
172
  return crypto.getRandomValues(new Uint32Array(1))[0].toString(36).substring(0, 5).toLowerCase();
171
173
  }
@@ -279,8 +281,6 @@ class Utils {
279
281
  });
280
282
  }
281
283
  }
282
- Utils.string257Long = 'x'.repeat(257);
283
- Utils.string513Long = 'x'.repeat(513);
284
284
 
285
285
  /*!
286
286
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -492,13 +492,13 @@ const logColor = '\x1b[35m%s\x1b[0m';
492
492
  const warnColor = '\x1b[33m%s\x1b[0m';
493
493
  const errorColor = '\x1b[31m%s\x1b[0m';
494
494
  class LogLevelsEnum extends Number {
495
+ static TRACE = 5;
496
+ static DEBUG = 4;
497
+ static INFO = 3;
498
+ static WARN = 2;
499
+ static ERROR = 1;
500
+ static SILENT = 0;
495
501
  }
496
- LogLevelsEnum.TRACE = 5;
497
- LogLevelsEnum.DEBUG = 4;
498
- LogLevelsEnum.INFO = 3;
499
- LogLevelsEnum.WARN = 2;
500
- LogLevelsEnum.ERROR = 1;
501
- LogLevelsEnum.SILENT = 0;
502
502
  const logLevels = [
503
503
  { level: LogLevelsEnum.TRACE, name: 'TRACE' },
504
504
  { level: LogLevelsEnum.DEBUG, name: 'DEBUG' },
@@ -509,6 +509,7 @@ const logLevels = [
509
509
  ];
510
510
  /* eslint-disable no-console */
511
511
  class GenericLogger {
512
+ level;
512
513
  constructor(logLevel) {
513
514
  this.level = logLevels.find(({ name }) => name === logLevel)?.level || LogLevelsEnum.ERROR;
514
515
  }
@@ -580,6 +581,8 @@ class GenericLogger {
580
581
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
581
582
  */
582
583
  class PlaywrightBase {
584
+ page;
585
+ logger;
583
586
  constructor(page) {
584
587
  this.page = page;
585
588
  this.logger = new GenericLogger(process.env.PLAYWRIGHT_CUSTOM_LOG_LEVEL);
@@ -610,10 +613,11 @@ class PlaywrightBase {
610
613
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
611
614
  */
612
615
  class BaseComponent extends PlaywrightBase {
616
+ rootElement;
617
+ overlayElement = this.page.locator('.cdk-overlay-backdrop-showing');
618
+ progressBar = this.page.locator('mat-progress-bar');
613
619
  constructor(page, rootElement) {
614
620
  super(page);
615
- this.overlayElement = this.page.locator('.cdk-overlay-backdrop-showing');
616
- this.progressBar = this.page.locator('mat-progress-bar');
617
621
  this.rootElement = rootElement;
618
622
  }
619
623
  /**
@@ -677,12 +681,13 @@ class BaseComponent extends PlaywrightBase {
677
681
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
678
682
  */
679
683
  class SnackBarComponent extends BaseComponent {
684
+ static rootElement = 'adf-snackbar-content';
685
+ message = this.getChild('[data-automation-id="adf-snackbar-message-content"]').first();
686
+ actionButton = this.getChild('[data-automation-id="adf-snackbar-message-content-action-button"]');
687
+ closeIcon = this.getChild('.adf-snackbar-message-content-action-icon');
688
+ getByMessageLocator = (message) => this.getChild(`[data-automation-id='adf-snackbar-message-content']`, { hasText: message }).first();
680
689
  constructor(page, rootElement = SnackBarComponent.rootElement) {
681
690
  super(page, rootElement);
682
- this.message = this.getChild('[data-automation-id="adf-snackbar-message-content"]').first();
683
- this.actionButton = this.getChild('[data-automation-id="adf-snackbar-message-content-action-button"]');
684
- this.closeIcon = this.getChild('.adf-snackbar-message-content-action-icon');
685
- this.getByMessageLocator = (message) => this.getChild(`[data-automation-id='adf-snackbar-message-content']`, { hasText: message }).first();
686
691
  }
687
692
  async getSnackBarMessage() {
688
693
  return this.message.textContent();
@@ -702,7 +707,6 @@ class SnackBarComponent extends BaseComponent {
702
707
  await this.actionButton.click();
703
708
  }
704
709
  }
705
- SnackBarComponent.rootElement = 'adf-snackbar-content';
706
710
 
707
711
  /*!
708
712
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -728,17 +732,18 @@ SnackBarComponent.rootElement = 'adf-snackbar-content';
728
732
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
729
733
  */
730
734
  class MatMenuComponent extends BaseComponent {
735
+ static rootElement = '.mat-mdc-menu-content';
731
736
  constructor(page) {
732
737
  super(page, MatMenuComponent.rootElement);
733
- this.getMenuItemsLocator = this.getChild('button');
734
- this.getMenuItemTextLocator = this.getChild('[data-automation-id="menu-item-title"]');
735
- this.createFolder = this.getChild('[id="app.create.folder"]');
736
- this.createFolderFromTemplate = this.getChild('[id="app.create.folderFromTemplate"]');
737
- this.createFileFromTemplate = this.getChild('[id="app.create.fileFromTemplate"]');
738
- this.createLibrary = this.getChild('[id="app.create.library"]');
739
- this.getButtonByText = (text) => this.getChild('button', { hasText: text });
740
- this.getMenuItemFromHeaderMenu = (text) => this.page.getByRole('menuitem', { name: text, exact: true });
741
738
  }
739
+ getMenuItemsLocator = this.getChild('button');
740
+ getMenuItemTextLocator = this.getChild('[data-automation-id="menu-item-title"]');
741
+ createFolder = this.getChild('[id="app.create.folder"]');
742
+ createFolderFromTemplate = this.getChild('[id="app.create.folderFromTemplate"]');
743
+ createFileFromTemplate = this.getChild('[id="app.create.fileFromTemplate"]');
744
+ createLibrary = this.getChild('[id="app.create.library"]');
745
+ getButtonByText = (text) => this.getChild('button', { hasText: text });
746
+ getMenuItemFromHeaderMenu = (text) => this.page.getByRole('menuitem', { name: text, exact: true });
742
747
  async clickMenuItem(menuItem) {
743
748
  const menuElement = this.getButtonByText(menuItem);
744
749
  await menuElement.click();
@@ -758,7 +763,7 @@ class MatMenuComponent extends BaseComponent {
758
763
  await this.page.locator('.mat-mdc-menu-content').waitFor({ state: 'attached' });
759
764
  const menus = await this.page.$$('.mat-mdc-menu-content .mat-mdc-menu-item');
760
765
  const actualMoreActions = await Promise.all(menus.map(async (button) => {
761
- const title = await (await button.$('.mdc-list-item__primary-text span')).innerText();
766
+ const title = await (await button.$('.mat-mdc-menu-item-text span')).innerText();
762
767
  return title || '';
763
768
  }));
764
769
  for (const action of expectedToolbarMore) {
@@ -766,7 +771,6 @@ class MatMenuComponent extends BaseComponent {
766
771
  }
767
772
  }
768
773
  }
769
- MatMenuComponent.rootElement = '.mat-mdc-menu-content';
770
774
 
771
775
  /*!
772
776
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -798,20 +802,21 @@ var PaginationActionsType;
798
802
  PaginationActionsType["NextPageSelector"] = "Next page button";
799
803
  })(PaginationActionsType || (PaginationActionsType = {}));
800
804
  class PaginationComponent extends BaseComponent {
805
+ static rootElement = 'adf-pagination';
801
806
  constructor(page) {
802
807
  super(page, PaginationComponent.rootElement);
803
- this.range = this.getChild('.adf-pagination__range');
804
- this.maxItems = this.getChild('.adf-pagination__max-items');
805
- this.currentPage = this.getChild('.adf-pagination__current-page');
806
- this.totalPages = this.getChild('.adf-pagination__total-pages');
807
- this.previousButton = this.getChild('.adf-pagination__previous-button');
808
- this.nextButton = this.getChild('.adf-pagination__next-button');
809
- this.maxItemsButton = this.getChild('.adf-pagination__max-items + button[mat-icon-button]');
810
- this.itemsPerPageMenu = new MatMenuComponent(this.page);
811
- this.currentPageLocator = this.getChild('.adf-pagination__current-page');
812
- this.totalPageLocator = this.getChild('.adf-pagination__total-pages');
813
- this.getArrowLocatorFor = (action) => this.getChild(`[aria-label="${action}"]`);
814
808
  }
809
+ range = this.getChild('.adf-pagination__range');
810
+ maxItems = this.getChild('.adf-pagination__max-items');
811
+ currentPage = this.getChild('.adf-pagination__current-page');
812
+ totalPages = this.getChild('.adf-pagination__total-pages');
813
+ previousButton = this.getChild('.adf-pagination__previous-button');
814
+ nextButton = this.getChild('.adf-pagination__next-button');
815
+ maxItemsButton = this.getChild('.adf-pagination__max-items + button[mat-icon-button]');
816
+ itemsPerPageMenu = new MatMenuComponent(this.page);
817
+ currentPageLocator = this.getChild('.adf-pagination__current-page');
818
+ totalPageLocator = this.getChild('.adf-pagination__total-pages');
819
+ getArrowLocatorFor = (action) => this.getChild(`[aria-label="${action}"]`);
815
820
  async setItemsPerPage(amount) {
816
821
  await this.getArrowLocatorFor(PaginationActionsType.PageSizeSelector).click();
817
822
  await this.itemsPerPageMenu.getButtonByText(amount.toString()).click();
@@ -936,7 +941,6 @@ class PaginationComponent extends BaseComponent {
936
941
  return this.nextButton.isVisible();
937
942
  }
938
943
  }
939
- PaginationComponent.rootElement = 'adf-pagination';
940
944
 
941
945
  /*!
942
946
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -962,110 +966,112 @@ PaginationComponent.rootElement = 'adf-pagination';
962
966
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
963
967
  */
964
968
  class DataTableComponent extends BaseComponent {
969
+ static rootElement = 'adf-datatable';
970
+ contextMenuActions = new MatMenuComponent(this.page);
965
971
  constructor(page, rootElement = DataTableComponent.rootElement) {
966
972
  super(page, rootElement);
967
- this.contextMenuActions = new MatMenuComponent(this.page);
968
- this.pagination = new PaginationComponent(this.page);
969
- this.body = this.getChild('.adf-datatable-body');
970
- this.getEmptyFolderLocator = this.getChild('.adf-empty-folder');
971
- this.getEmptyContentTitleLocator = this.getChild('adf-empty-content .adf-empty-content__title');
972
- this.getEmptyContentSubTitleLocator = this.getChild('adf-empty-content .adf-empty-content__subtitle');
973
- this.getSelectedRow = this.getChild('.adf-datatable-row.adf-is-selected');
974
- this.sortedColumnHeader = this.getChild(`.adf-datatable__header--sorted-asc .adf-datatable-cell-header-content .adf-datatable-cell-value,
975
- .adf-datatable__header--sorted-desc .adf-datatable-cell-header-content .adf-datatable-cell-value`);
976
- this.columnHeaders = this.getChild('.adf-datatable-row .adf-datatable-cell-header .adf-datatable-cell-value');
977
- this.emptyList = this.getChild('div.adf-no-content-container');
978
- this.emptyListTitle = this.getChild('.adf-empty-content__title');
979
- this.emptyListSubtitle = this.getChild('.adf-empty-content__subtitle');
980
- this.emptySearchText = this.getChild('.empty-search__text');
981
- this.emptyListTest = this.getChild('adf-custom-empty-content-template');
982
- this.paginationButton = this.page.locator('.adf-pagination__block button').nth(0);
983
- this.paginationOptions = this.page.locator('#cdk-overlay-0 button');
984
- this.sitesVisibility = this.page.locator('.adf-datatable-body [data-automation-id*="datatable-row"] [aria-label="Visibility"]');
985
- this.sitesName = this.page.locator('.adf-datatable-body [data-automation-id*="datatable-row"] [aria-label="Name"]');
986
- this.sitesRole = this.page.locator('.adf-datatable-body [data-automation-id*="datatable-row"] [aria-label="My Role"]');
987
- this.lockOwner = this.page.locator('.aca-locked-by--name');
988
- this.uncheckedCheckbox = this.page.locator('.mat-mdc-checkbox');
989
- this.checkedCheckbox = this.page.locator('.mat-mdc-checkbox-checked');
990
- this.highlightedText = '.aca-highlight';
991
- this.searchFileName = '.search-file-name';
992
- this.searchFileDescription = '[data-automation-id="search-results-entry-description"]';
993
- this.searchFileContent = '.aca-result-content';
994
- /** Locator for row (or rows) */
995
- this.getRowLocator = this.page.getByRole('rowgroup').nth(1).locator('adf-datatable-row');
996
- /** Locator to get "No results found" message */
997
- this.getNoResultsFoundMessage = this.getChild('adf-custom-empty-content-template', { hasText: 'No results found' });
998
- /**
999
- * Method used in cases where we want to check that some record is visible in the datatable. It will consider whole row
1000
- *
1001
- * @returns reference to cell element which contains text.
1002
- */
1003
- this.getRowByName = (name) => this.getChild(`adf-datatable-row`, { hasText: name.toString() });
1004
- /**
1005
- * Method used in cases where we want to check that some record is visible in the datatable.
1006
- * But we want to check it by column header title and value of this column.
1007
- *
1008
- * @returns reference to cell element which contains text.
1009
- */
1010
- this.getRowByColumnTitleAndItsCellValue = (columnTitle, cellValue) => this.page.locator(`//div[contains(@title, '${columnTitle}')]//span[contains(text(), '${cellValue}')]/ancestor::adf-datatable-row`);
1011
- /**
1012
- * Method used in cases where we want to retrieve a row from the datatable based on its numerical order within the array.
1013
- *
1014
- * @returns reference to cell element which contains text.
1015
- */
1016
- this.getNthRow = (orderNum) => this.getRowLocator.nth(orderNum);
1017
- /**
1018
- * Method used in cases where user have possibility to navigate "inside" the element (it's clickable and has link attribute).
1019
- * Perform action .click() to navigate inside it
1020
- *
1021
- * @returns reference to cell element which contains link.
1022
- */
1023
- this.getCellLinkByName = (name) => this.getChild('.adf-cell-value span[role="link"]', { hasText: name });
1024
- /**
1025
- * Method used in cases where we want to localize the element by [aria-label]
1026
- *
1027
- * @returns reference to cell element.
1028
- */
1029
- this.getByAriaLabelTitle = (title) => this.getChild(`[aria-label="${title}"]`);
1030
- /**
1031
- * Method used in cases where we want to get the button (hamburger menu) for row element
1032
- *
1033
- * @returns reference to menu placed in row localized by the name
1034
- */
1035
- this.getActionsButtonByName = (name) => this.getRowByName(name).locator('mat-icon', { hasText: new RegExp(`^\\s*more_vert\\s*$`, 'g') });
1036
- /**
1037
- * Method used in cases where we want to get the edit button and there is no hamburger menu
1038
- *
1039
- * @returns reference to edit button placed in row localized by the name
1040
- */
1041
- this.getEditButtonByName = (name) => this.getRowByName(name).locator('button#editButton');
1042
- /**
1043
- * Method used in cases where we want to get the button and there is no hamburger menu
1044
- *
1045
- * @returns reference to button placed in row localized by the name
1046
- */
1047
- this.getButtonByNameForSpecificRow = (elementTitleInRow, buttonTitle) => this.getRowByName(elementTitleInRow).locator('button', { hasText: buttonTitle });
1048
- /**
1049
- * Method used in cases where you want to get some specific cell (by column name) for row which contains some name/title/etc.
1050
- *
1051
- * @returns reference to cell element
1052
- */
1053
- this.getCellByColumnNameAndRowItem = (item, columnName) => this.getRowByName(item).locator(`[title="${columnName}"]`);
1054
- /**
1055
- * Method used in cases where we want to get the checkbox for row element
1056
- *
1057
- * @returns reference to checkbox placed in row localized by the name
1058
- */
1059
- this.getCheckboxForElement = (item) => this.getRowByName(item).locator('.mat-mdc-checkbox');
1060
- this.getColumnHeaderByTitleLocator = (headerTitle) => this.getChild('[role="columnheader"]', { hasText: headerTitle });
1061
- this.getSearchResultLinkByName = (name) => this.getChild('.aca-search-results-row span[role="link"]', { hasText: name });
1062
- this.getColumnValuesByName = (name) => this.getChild(`div[title="${name}"] span`);
1063
- this.getColumnHeaderByName = (headerTitle) => this.getChild('.adf-datatable-row .adf-datatable-cell-header .adf-datatable-cell-value', { hasText: headerTitle });
1064
973
  }
974
+ pagination = new PaginationComponent(this.page);
975
+ body = this.getChild('.adf-datatable-body');
976
+ getEmptyFolderLocator = this.getChild('.adf-empty-folder');
977
+ getEmptyContentTitleLocator = this.getChild('adf-empty-content .adf-empty-content__title');
978
+ getEmptyContentSubTitleLocator = this.getChild('adf-empty-content .adf-empty-content__subtitle');
979
+ getSelectedRow = this.getChild('.adf-datatable-row.adf-is-selected');
980
+ sortedColumnHeader = this.getChild(`.adf-datatable__header--sorted-asc .adf-datatable-cell-header-content .adf-datatable-cell-value,
981
+ .adf-datatable__header--sorted-desc .adf-datatable-cell-header-content .adf-datatable-cell-value`);
982
+ columnHeaders = this.getChild('.adf-datatable-row .adf-datatable-cell-header .adf-datatable-cell-value');
983
+ emptyList = this.getChild('div.adf-no-content-container');
984
+ emptyListTitle = this.getChild('.adf-empty-content__title');
985
+ emptyListSubtitle = this.getChild('.adf-empty-content__subtitle');
986
+ emptySearchText = this.getChild('.empty-search__text');
987
+ emptyListTest = this.getChild('adf-custom-empty-content-template');
988
+ paginationButton = this.page.locator('.adf-pagination__block button').nth(0);
989
+ paginationOptions = this.page.locator('#cdk-overlay-0 button');
990
+ sitesVisibility = this.page.locator('.adf-datatable-body [data-automation-id*="datatable-row"] [aria-label="Visibility"]');
991
+ sitesName = this.page.locator('.adf-datatable-body [data-automation-id*="datatable-row"] [aria-label="Name"]');
992
+ sitesRole = this.page.locator('.adf-datatable-body [data-automation-id*="datatable-row"] [aria-label="My Role"]');
993
+ lockOwner = this.page.locator('.aca-locked-by--name');
994
+ uncheckedCheckbox = this.page.locator('.mat-mdc-checkbox');
995
+ checkedCheckbox = this.page.locator('.mat-mdc-checkbox-checked');
996
+ highlightedText = '.aca-highlight';
997
+ searchFileName = '.search-file-name';
998
+ searchFileDescription = '[data-automation-id="search-results-entry-description"]';
999
+ searchFileContent = '.aca-result-content';
1000
+ /** Locator for row (or rows) */
1001
+ getRowLocator = this.page.getByRole('rowgroup').nth(1).locator('adf-datatable-row');
1002
+ /** Locator to get "No results found" message */
1003
+ getNoResultsFoundMessage = this.getChild('adf-custom-empty-content-template', { hasText: 'No results found' });
1004
+ /**
1005
+ * Method used in cases where we want to check that some record is visible in the datatable. It will consider whole row
1006
+ *
1007
+ * @returns reference to cell element which contains text.
1008
+ */
1009
+ getRowByName = (name) => this.getChild(`adf-datatable-row`, { hasText: name.toString() });
1010
+ /**
1011
+ * Method used in cases where we want to check that some record is visible in the datatable.
1012
+ * But we want to check it by column header title and value of this column.
1013
+ *
1014
+ * @returns reference to cell element which contains text.
1015
+ */
1016
+ getRowByColumnTitleAndItsCellValue = (columnTitle, cellValue) => this.page.locator(`//div[contains(@title, '${columnTitle}')]//span[contains(text(), '${cellValue}')]/ancestor::adf-datatable-row`);
1017
+ /**
1018
+ * Method used in cases where we want to retrieve a row from the datatable based on its numerical order within the array.
1019
+ *
1020
+ * @returns reference to cell element which contains text.
1021
+ */
1022
+ getNthRow = (orderNum) => this.getRowLocator.nth(orderNum);
1023
+ /**
1024
+ * Method used in cases where user have possibility to navigate "inside" the element (it's clickable and has link attribute).
1025
+ * Perform action .click() to navigate inside it
1026
+ *
1027
+ * @returns reference to cell element which contains link.
1028
+ */
1029
+ getCellLinkByName = (name) => this.getChild('.adf-cell-value span[role="link"]', { hasText: name });
1030
+ /**
1031
+ * Method used in cases where we want to localize the element by [aria-label]
1032
+ *
1033
+ * @returns reference to cell element.
1034
+ */
1035
+ getByAriaLabelTitle = (title) => this.getChild(`[aria-label="${title}"]`);
1036
+ /**
1037
+ * Method used in cases where we want to get the button (hamburger menu) for row element
1038
+ *
1039
+ * @returns reference to menu placed in row localized by the name
1040
+ */
1041
+ getActionsButtonByName = (name) => this.getRowByName(name).locator('mat-icon', { hasText: new RegExp(`^\\s*more_vert\\s*$`, 'g') });
1042
+ /**
1043
+ * Method used in cases where we want to get the edit button and there is no hamburger menu
1044
+ *
1045
+ * @returns reference to edit button placed in row localized by the name
1046
+ */
1047
+ getEditButtonByName = (name) => this.getRowByName(name).locator('button#editButton');
1048
+ /**
1049
+ * Method used in cases where we want to get the button and there is no hamburger menu
1050
+ *
1051
+ * @returns reference to button placed in row localized by the name
1052
+ */
1053
+ getButtonByNameForSpecificRow = (elementTitleInRow, buttonTitle) => this.getRowByName(elementTitleInRow).locator('button', { hasText: buttonTitle });
1054
+ /**
1055
+ * Method used in cases where you want to get some specific cell (by column name) for row which contains some name/title/etc.
1056
+ *
1057
+ * @returns reference to cell element
1058
+ */
1059
+ getCellByColumnNameAndRowItem = (item, columnName) => this.getRowByName(item).locator(`[title="${columnName}"]`);
1060
+ /**
1061
+ * Method used in cases where we want to get the checkbox for row element
1062
+ *
1063
+ * @returns reference to checkbox placed in row localized by the name
1064
+ */
1065
+ getCheckboxForElement = (item) => this.getRowByName(item).locator('.mat-mdc-checkbox');
1066
+ getColumnHeaderByTitleLocator = (headerTitle) => this.getChild('[role="columnheader"]', { hasText: headerTitle });
1067
+ getSearchResultLinkByName = (name) => this.getChild('.aca-search-results-row span[role="link"]', { hasText: name });
1068
+ getColumnValuesByName = (name) => this.getChild(`div[title="${name}"] span`);
1069
+ getColumnHeaderByName = (headerTitle) => this.getChild('.adf-datatable-row .adf-datatable-cell-header .adf-datatable-cell-value', { hasText: headerTitle });
1065
1070
  async sortBy(label, order) {
1066
1071
  const sortColumn = await this.getSortedColumnHeaderText();
1067
1072
  let sortOrder = await this.getSortingOrder();
1068
1073
  if (sortColumn !== label) {
1074
+ await this.getColumnHeaderByName(label).hover();
1069
1075
  await this.getColumnHeaderByName(label).click({ force: true });
1070
1076
  sortOrder = await this.getSortingOrder();
1071
1077
  }
@@ -1273,7 +1279,6 @@ class DataTableComponent extends BaseComponent {
1273
1279
  }
1274
1280
  }
1275
1281
  }
1276
- DataTableComponent.rootElement = 'adf-datatable';
1277
1282
 
1278
1283
  /*!
1279
1284
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1299,10 +1304,11 @@ DataTableComponent.rootElement = 'adf-datatable';
1299
1304
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1300
1305
  */
1301
1306
  class ToolbarComponent extends BaseComponent {
1307
+ static rootElement = 'adf-toolbar';
1308
+ createRuleButton = this.getChild('[data-automation-id="manage-rules-create-button"]');
1309
+ linkRulesButton = this.getChild('[data-automation-id="manage-rules-link-button"]');
1302
1310
  constructor(page) {
1303
1311
  super(page, ToolbarComponent.rootElement);
1304
- this.createRuleButton = this.getChild('[data-automation-id="manage-rules-create-button"]');
1305
- this.linkRulesButton = this.getChild('[data-automation-id="manage-rules-link-button"]');
1306
1312
  }
1307
1313
  async clickCreateRuleButton() {
1308
1314
  await this.createRuleButton.click();
@@ -1311,7 +1317,6 @@ class ToolbarComponent extends BaseComponent {
1311
1317
  await this.linkRulesButton.click();
1312
1318
  }
1313
1319
  }
1314
- ToolbarComponent.rootElement = 'adf-toolbar';
1315
1320
 
1316
1321
  /*!
1317
1322
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1361,17 +1366,18 @@ ToolbarComponent.rootElement = 'adf-toolbar';
1361
1366
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1362
1367
  */
1363
1368
  class AdfFolderDialogComponent extends BaseComponent {
1369
+ static rootElement = 'adf-folder-dialog';
1370
+ folderNameInputLocator = this.getChild('[id="adf-folder-name-input"]');
1371
+ folderNameInputHint = this.getChild('mat-hint');
1372
+ folderTitleInput = this.getChild('[id="adf-folder-title-input"]');
1373
+ folderDescriptionInput = this.getChild('[id="adf-folder-description-input"]');
1374
+ createButton = this.getChild('[id="adf-folder-create-button"]');
1375
+ cancelButton = this.getChild('[id="adf-folder-cancel-button"]');
1364
1376
  constructor(page) {
1365
1377
  super(page, AdfFolderDialogComponent.rootElement);
1366
- this.folderNameInputLocator = this.getChild('[id="adf-folder-name-input"]');
1367
- this.folderNameInputHint = this.getChild('mat-hint');
1368
- this.folderTitleInput = this.getChild('[id="adf-folder-title-input"]');
1369
- this.folderDescriptionInput = this.getChild('[id="adf-folder-description-input"]');
1370
- this.createButton = this.getChild('[id="adf-folder-create-button"]');
1371
- this.cancelButton = this.getChild('[id="adf-folder-cancel-button"]');
1372
- this.getLabelText = (text) => this.getChild('label', { hasText: text });
1373
- this.getRequiredMarker = (text) => this.getLabelText(text).locator('.mat-mdc-form-field-required-marker');
1374
1378
  }
1379
+ getLabelText = (text) => this.getChild('label', { hasText: text });
1380
+ getRequiredMarker = (text) => this.getLabelText(text).locator('.mat-mdc-form-field-required-marker');
1375
1381
  /**
1376
1382
  * This method is used when we want to fill in Create new Folder Dialog and choose Create button
1377
1383
  *
@@ -1390,7 +1396,6 @@ class AdfFolderDialogComponent extends BaseComponent {
1390
1396
  await this.createButton.click();
1391
1397
  }
1392
1398
  }
1393
- AdfFolderDialogComponent.rootElement = 'adf-folder-dialog';
1394
1399
 
1395
1400
  /*!
1396
1401
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1416,15 +1421,16 @@ AdfFolderDialogComponent.rootElement = 'adf-folder-dialog';
1416
1421
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1417
1422
  */
1418
1423
  class AdfLibraryDialogComponent extends BaseComponent {
1424
+ static rootElement = 'adf-library-dialog';
1425
+ createButton = this.getChild('[data-automation-id="create-library-id"]');
1426
+ cancelButton = this.getChild('[data-automation-id="cancel-library-id"]');
1419
1427
  constructor(page) {
1420
1428
  super(page, AdfLibraryDialogComponent.rootElement);
1421
- this.createButton = this.getChild('[data-automation-id="create-library-id"]');
1422
- this.cancelButton = this.getChild('[data-automation-id="cancel-library-id"]');
1423
- this.getLabelText = (text) => this.getChild('label', { hasText: text });
1424
- this.getRequiredMarker = (text) => this.getLabelText(text).locator('.mat-mdc-form-field-required-marker');
1425
- this.getDialogTitle = (text) => this.getChild('.mat-mdc-dialog-title', { hasText: text });
1426
- this.getErrorByText = (text) => this.page.locator('mat-error', { hasText: text });
1427
1429
  }
1430
+ getLabelText = (text) => this.getChild('label', { hasText: text });
1431
+ getRequiredMarker = (text) => this.getLabelText(text).locator('.mat-mdc-form-field-required-marker');
1432
+ getDialogTitle = (text) => this.getChild('.mat-mdc-dialog-title', { hasText: text });
1433
+ getErrorByText = (text) => this.page.locator('mat-error', { hasText: text });
1428
1434
  /**
1429
1435
  * This method is used when we want to fill in Create Library Dialog and choose Create button
1430
1436
  *
@@ -1451,7 +1457,6 @@ class AdfLibraryDialogComponent extends BaseComponent {
1451
1457
  return this.getErrorByText(errorText).isVisible();
1452
1458
  }
1453
1459
  }
1454
- AdfLibraryDialogComponent.rootElement = 'adf-library-dialog';
1455
1460
 
1456
1461
  /*!
1457
1462
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1477,12 +1482,13 @@ AdfLibraryDialogComponent.rootElement = 'adf-library-dialog';
1477
1482
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1478
1483
  */
1479
1484
  class PasswordOverlayDialogComponent extends BaseComponent {
1485
+ static rootElement = '.cdk-overlay-pane';
1486
+ closeButton = this.getChild('[data-automation-id="adf-password-dialog-close"]');
1487
+ submitButton = this.getChild('[data-automation-id="adf-password-dialog-submit"]');
1488
+ passwordInput = this.getChild('[data-automation-id="adf-password-dialog-input"]');
1489
+ errorMessage = this.getChild('[data-automation-id="adf-password-dialog-error"]');
1480
1490
  constructor(page, rootElement = PasswordOverlayDialogComponent.rootElement) {
1481
1491
  super(page, rootElement);
1482
- this.closeButton = this.getChild('[data-automation-id="adf-password-dialog-close"]');
1483
- this.submitButton = this.getChild('[data-automation-id="adf-password-dialog-submit"]');
1484
- this.passwordInput = this.getChild('[data-automation-id="adf-password-dialog-input"]');
1485
- this.errorMessage = this.getChild('[data-automation-id="adf-password-dialog-error"]');
1486
1492
  }
1487
1493
  async waitForDialogToOpen() {
1488
1494
  await this.spinnerWaitForReload();
@@ -1519,7 +1525,6 @@ class PasswordOverlayDialogComponent extends BaseComponent {
1519
1525
  await this.passwordInput.fill(password);
1520
1526
  }
1521
1527
  }
1522
- PasswordOverlayDialogComponent.rootElement = '.cdk-overlay-pane';
1523
1528
 
1524
1529
  /*!
1525
1530
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1545,19 +1550,20 @@ PasswordOverlayDialogComponent.rootElement = '.cdk-overlay-pane';
1545
1550
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1546
1551
  */
1547
1552
  class ViewerOverlayDialogComponent extends BaseComponent {
1553
+ static rootElement = '.cdk-overlay-pane';
1554
+ closeButton = this.getChild('[data-automation-id="adf-password-dialog-close"]');
1555
+ submitButton = this.getChild('[data-automation-id="adf-password-dialog-submit"]');
1556
+ passwordInput = this.getChild('[data-automation-id="adf-password-dialog-input"]');
1557
+ errorMessage = this.getChild('[data-automation-id="adf-password-dialog-error"]');
1558
+ copyDialog = this.getChild('[data-automation-id="content-node-selector-title"]');
1559
+ copyMenuButton = this.getChild('[id="app.viewer.copy"]');
1560
+ deleteMenuButton = this.getChild('[id="app.viewer.delete"]');
1561
+ favoriteMenuButton = this.getChild('[id="app.viewer.favorite.add"]');
1562
+ removeFavoriteMenuButton = this.getChild('[id="app.viewer.favorite.remove"]');
1563
+ shareDialogTitle = this.getChild('[data-automation-id="adf-share-dialog-title"]');
1564
+ shareDialogClose = this.getChild('[data-automation-id="adf-share-dialog-close"]');
1548
1565
  constructor(page, rootElement = ViewerOverlayDialogComponent.rootElement) {
1549
1566
  super(page, rootElement);
1550
- this.closeButton = this.getChild('[data-automation-id="adf-password-dialog-close"]');
1551
- this.submitButton = this.getChild('[data-automation-id="adf-password-dialog-submit"]');
1552
- this.passwordInput = this.getChild('[data-automation-id="adf-password-dialog-input"]');
1553
- this.errorMessage = this.getChild('[data-automation-id="adf-password-dialog-error"]');
1554
- this.copyDialog = this.getChild('[data-automation-id="content-node-selector-title"]');
1555
- this.copyMenuButton = this.getChild('[id="app.viewer.copy"]');
1556
- this.deleteMenuButton = this.getChild('[id="app.viewer.delete"]');
1557
- this.favoriteMenuButton = this.getChild('[id="app.viewer.favorite.add"]');
1558
- this.removeFavoriteMenuButton = this.getChild('[id="app.viewer.favorite.remove"]');
1559
- this.shareDialogTitle = this.getChild('[data-automation-id="adf-share-dialog-title"]');
1560
- this.shareDialogClose = this.getChild('[data-automation-id="adf-share-dialog-close"]');
1561
1567
  }
1562
1568
  async isCopyDialogOpen() {
1563
1569
  await this.copyDialog.waitFor({ state: 'attached', timeout: timeouts.medium });
@@ -1572,7 +1578,6 @@ class ViewerOverlayDialogComponent extends BaseComponent {
1572
1578
  await this.copyMenuButton.click();
1573
1579
  }
1574
1580
  }
1575
- ViewerOverlayDialogComponent.rootElement = '.cdk-overlay-pane';
1576
1581
 
1577
1582
  /*!
1578
1583
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1598,19 +1603,20 @@ ViewerOverlayDialogComponent.rootElement = '.cdk-overlay-pane';
1598
1603
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1599
1604
  */
1600
1605
  class ContentNodeSelectorDialog extends BaseComponent {
1606
+ static rootElement = 'adf-content-node-selector';
1601
1607
  constructor(page) {
1602
1608
  super(page, ContentNodeSelectorDialog.rootElement);
1603
- this.cancelButton = this.getChild('[data-automation-id="content-node-selector-actions-cancel"]');
1604
- this.actionButton = this.getChild('[data-automation-id="content-node-selector-actions-choose"]');
1605
- this.locationDropDown = this.getChild('[id="site-dropdown-container"] mat-form-field');
1606
- this.selectedRow = this.getChild('.adf-is-selected');
1607
- this.getOptionLocator = (optionName) => this.page.locator('.mat-mdc-select-panel .mdc-list-item__primary-text', { hasText: optionName });
1608
- this.getRowByName = (name) => this.getChild(`adf-datatable-row`, { hasText: name.toString() });
1609
- this.getDialogTitle = (text) => this.getChild('[data-automation-id="content-node-selector-title"]', { hasText: text });
1610
- this.getBreadcrumb = (text) => this.getChild('[data-automation-id="current-folder"]', { hasText: text });
1611
- this.getFolderIcon = this.getChild('[data-automation-id="dropdown-breadcrumb-trigger"]');
1612
- this.loadMoreButton = this.getChild('[data-automation-id="adf-infinite-pagination-button"]');
1613
1609
  }
1610
+ cancelButton = this.getChild('[data-automation-id="content-node-selector-actions-cancel"]');
1611
+ actionButton = this.getChild('[data-automation-id="content-node-selector-actions-choose"]');
1612
+ locationDropDown = this.getChild('[id="site-dropdown-container"] mat-form-field');
1613
+ selectedRow = this.getChild('.adf-is-selected');
1614
+ getOptionLocator = (optionName) => this.page.locator('.mat-mdc-select-panel .mdc-list-item__primary-text', { hasText: optionName });
1615
+ getRowByName = (name) => this.getChild(`adf-datatable-row`, { hasText: name.toString() });
1616
+ getDialogTitle = (text) => this.getChild('[data-automation-id="content-node-selector-title"]', { hasText: text });
1617
+ getBreadcrumb = (text) => this.getChild('[data-automation-id="current-folder"]', { hasText: text });
1618
+ getFolderIcon = this.getChild('[data-automation-id="dropdown-breadcrumb-trigger"]');
1619
+ loadMoreButton = this.getChild('[data-automation-id="adf-infinite-pagination-button"]');
1614
1620
  async loadMoreNodes() {
1615
1621
  await this.spinnerWaitForReload();
1616
1622
  while (await this.loadMoreButton.isVisible()) {
@@ -1637,7 +1643,6 @@ class ContentNodeSelectorDialog extends BaseComponent {
1637
1643
  });
1638
1644
  }
1639
1645
  }
1640
- ContentNodeSelectorDialog.rootElement = 'adf-content-node-selector';
1641
1646
 
1642
1647
  /*!
1643
1648
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1663,14 +1668,15 @@ ContentNodeSelectorDialog.rootElement = 'adf-content-node-selector';
1663
1668
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1664
1669
  */
1665
1670
  class CreateFromTemplateDialogComponent extends BaseComponent {
1671
+ static rootElement = 'app-create-from-template-dialog';
1666
1672
  constructor(page) {
1667
1673
  super(page, CreateFromTemplateDialogComponent.rootElement);
1668
- this.cancelButton = this.getChild('[data-automation-id="create-from-template-dialog-cancel-button"]');
1669
- this.createButton = this.getChild('[data-automation-id="create-from-template-dialog-create-button"]');
1670
- this.getDialogTitle = (text) => this.getChild('.mat-dialog-title', { hasText: text });
1671
- this.getDialogLabel = (text) => this.getChild('label', { hasText: text });
1672
- this.getErrorByText = (text) => this.page.locator('mat-error', { hasText: text });
1673
1674
  }
1675
+ cancelButton = this.getChild('[data-automation-id="create-from-template-dialog-cancel-button"]');
1676
+ createButton = this.getChild('[data-automation-id="create-from-template-dialog-create-button"]');
1677
+ getDialogTitle = (text) => this.getChild('.mat-dialog-title', { hasText: text });
1678
+ getDialogLabel = (text) => this.getChild('label', { hasText: text });
1679
+ getErrorByText = (text) => this.page.locator('mat-error', { hasText: text });
1674
1680
  async isErrorMessageDisplayed(errorText) {
1675
1681
  await this.getErrorByText(errorText).waitFor({ state: 'visible', timeout: timeouts.large });
1676
1682
  return this.getErrorByText(errorText).isVisible();
@@ -1689,7 +1695,6 @@ class CreateFromTemplateDialogComponent extends BaseComponent {
1689
1695
  await this.createButton.click();
1690
1696
  }
1691
1697
  }
1692
- CreateFromTemplateDialogComponent.rootElement = 'app-create-from-template-dialog';
1693
1698
 
1694
1699
  /*!
1695
1700
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1715,15 +1720,15 @@ CreateFromTemplateDialogComponent.rootElement = 'app-create-from-template-dialog
1715
1720
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1716
1721
  */
1717
1722
  class AdfConfirmDialogComponent extends BaseComponent {
1723
+ static rootElement = 'adf-confirm-dialog';
1718
1724
  constructor(page) {
1719
1725
  super(page, AdfConfirmDialogComponent.rootElement);
1720
- this.getDialogTitle = (text) => this.getChild('[data-automation-id="adf-confirm-dialog-title"]', { hasText: text });
1721
- this.getDialogContent = (text) => this.getChild('[data-automation-id="adf-confirm-dialog-base-message"]', { hasText: text });
1722
- this.okButton = this.getChild('[data-automation-id="adf-confirm-dialog-confirmation"]');
1723
- this.cancelButton = this.getChild('[data-automation-id="adf-confirm-dialog-reject"]');
1724
1726
  }
1727
+ getDialogTitle = (text) => this.getChild('[data-automation-id="adf-confirm-dialog-title"]', { hasText: text });
1728
+ getDialogContent = (text) => this.getChild('[data-automation-id="adf-confirm-dialog-base-message"]', { hasText: text });
1729
+ okButton = this.getChild('[data-automation-id="adf-confirm-dialog-confirmation"]');
1730
+ cancelButton = this.getChild('[data-automation-id="adf-confirm-dialog-reject"]');
1725
1731
  }
1726
- AdfConfirmDialogComponent.rootElement = 'adf-confirm-dialog';
1727
1732
 
1728
1733
  /*!
1729
1734
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1749,12 +1754,13 @@ AdfConfirmDialogComponent.rootElement = 'adf-confirm-dialog';
1749
1754
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1750
1755
  */
1751
1756
  class DateTimePicker extends BaseComponent {
1757
+ static rootElement = '.mat-calendar';
1758
+ calendar = this.getChild('.mat-datepicker-popup');
1759
+ dayPicker = this.getChild('mat-month-view');
1760
+ nextMonthBtn = this.getChild('.mat-calendar-next-button');
1761
+ rootElemLocator = this.page.locator('.mat-datepicker-popup');
1752
1762
  constructor(page) {
1753
1763
  super(page, DateTimePicker.rootElement);
1754
- this.calendar = this.getChild('.mat-datepicker-popup');
1755
- this.dayPicker = this.getChild('mat-month-view');
1756
- this.nextMonthBtn = this.getChild('.mat-calendar-next-button');
1757
- this.rootElemLocator = this.page.locator('.mat-datepicker-popup');
1758
1764
  }
1759
1765
  async isCalendarOpen() {
1760
1766
  const element = this.rootElemLocator;
@@ -1774,7 +1780,6 @@ class DateTimePicker extends BaseComponent {
1774
1780
  await firstActiveDayElem.click();
1775
1781
  }
1776
1782
  }
1777
- DateTimePicker.rootElement = '.mat-calendar';
1778
1783
 
1779
1784
  /*!
1780
1785
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1800,22 +1805,23 @@ DateTimePicker.rootElement = '.mat-calendar';
1800
1805
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1801
1806
  */
1802
1807
  class ShareDialogComponent extends BaseComponent {
1808
+ static rootElement = 'adf-share-dialog';
1803
1809
  constructor(page) {
1804
1810
  super(page, ShareDialogComponent.rootElement);
1805
- this.closeButton = this.getChild('[data-automation-id="adf-share-dialog-close"]');
1806
- this.dialogTitle = this.getChild('[data-automation-id="adf-share-dialog-title"]');
1807
- this.infoText = this.getChild('.adf-share-link__info').first();
1808
- this.labels = '.adf-share-link__label';
1809
- this.shareToggle = this.getChild(`[data-automation-id='adf-share-toggle']`);
1810
- this.url = this.getChild(`[data-automation-id='adf-share-link']`);
1811
- this.urlAction = this.getChild('.adf-input-action');
1812
- this.expireToggle = this.getChild(`[data-automation-id='adf-expire-toggle']`);
1813
- this.expireInput = this.getChild('input[formcontrolname="time"]');
1814
- this.datetimePickerButton = this.getChild('.mat-datepicker-toggle');
1815
- this.dateTimePicker = new DateTimePicker(this.page);
1816
- this.getDialogLabel = () => this.getChild('label').innerText();
1817
- this.getErrorByText = (text) => this.page.locator('mat-error', { hasText: text });
1818
1811
  }
1812
+ closeButton = this.getChild('[data-automation-id="adf-share-dialog-close"]');
1813
+ dialogTitle = this.getChild('[data-automation-id="adf-share-dialog-title"]');
1814
+ infoText = this.getChild('.adf-share-link__info').first();
1815
+ labels = '.adf-share-link__label';
1816
+ shareToggle = this.getChild(`[data-automation-id='adf-share-toggle']`);
1817
+ url = this.getChild(`[data-automation-id='adf-share-link']`);
1818
+ urlAction = this.getChild('.adf-input-action');
1819
+ expireToggle = this.getChild(`[data-automation-id='adf-expire-toggle']`);
1820
+ expireInput = this.getChild('input[formcontrolname="time"]');
1821
+ datetimePickerButton = this.getChild('.mat-datepicker-toggle');
1822
+ dateTimePicker = new DateTimePicker(this.page);
1823
+ getDialogLabel = () => this.getChild('label').innerText();
1824
+ getErrorByText = (text) => this.page.locator('mat-error', { hasText: text });
1819
1825
  async getLabels() {
1820
1826
  return this.page.$$eval('.adf-share-link__label', (elements) => elements.map((element) => element.textContent));
1821
1827
  }
@@ -1855,7 +1861,6 @@ class ShareDialogComponent extends BaseComponent {
1855
1861
  return this.expireInput.inputValue();
1856
1862
  }
1857
1863
  }
1858
- ShareDialogComponent.rootElement = 'adf-share-dialog';
1859
1864
 
1860
1865
  /*!
1861
1866
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1881,17 +1886,17 @@ ShareDialogComponent.rootElement = 'adf-share-dialog';
1881
1886
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1882
1887
  */
1883
1888
  class UploadNewVersionDialog extends BaseComponent {
1889
+ static rootElement = 'adf-new-version-uploader-dialog';
1890
+ cancelButton = this.getChild('#adf-new-version-cancel');
1891
+ uploadButton = this.getChild('[data-automation-id="adf-new-version-file-upload"]');
1892
+ majorOption = this.getChild('#adf-new-version-major');
1893
+ minorOption = this.getChild('#adf-new-version-minor');
1894
+ description = this.getChild('#adf-new-version-text-area');
1895
+ title = this.getChild(' [data-automation-id="new-version-uploader-dialog-title"]');
1884
1896
  constructor(page) {
1885
1897
  super(page, UploadNewVersionDialog.rootElement);
1886
- this.cancelButton = this.getChild('#adf-new-version-cancel');
1887
- this.uploadButton = this.getChild('[data-automation-id="adf-new-version-file-upload"]');
1888
- this.majorOption = this.getChild('#adf-new-version-major');
1889
- this.minorOption = this.getChild('#adf-new-version-minor');
1890
- this.description = this.getChild('#adf-new-version-text-area');
1891
- this.title = this.getChild(' [data-automation-id="new-version-uploader-dialog-title"]');
1892
1898
  }
1893
1899
  }
1894
- UploadNewVersionDialog.rootElement = 'adf-new-version-uploader-dialog';
1895
1900
 
1896
1901
  /*!
1897
1902
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1917,6 +1922,7 @@ UploadNewVersionDialog.rootElement = 'adf-new-version-uploader-dialog';
1917
1922
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1918
1923
  */
1919
1924
  class ManageVersionsDialog extends BaseComponent {
1925
+ static rootElement = '.adf-new-version-uploader-dialog';
1920
1926
  async viewFileVersion(version) {
1921
1927
  const versionActionsButton = this.page.locator(`[id="adf-version-list-action-menu-button-${version}"]`);
1922
1928
  await versionActionsButton.click();
@@ -1925,7 +1931,6 @@ class ManageVersionsDialog extends BaseComponent {
1925
1931
  super(page, ManageVersionsDialog.rootElement);
1926
1932
  }
1927
1933
  }
1928
- ManageVersionsDialog.rootElement = '.adf-new-version-uploader-dialog';
1929
1934
 
1930
1935
  /*!
1931
1936
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1951,15 +1956,15 @@ ManageVersionsDialog.rootElement = '.adf-new-version-uploader-dialog';
1951
1956
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1952
1957
  */
1953
1958
  class UploadDialog extends BaseComponent {
1959
+ static rootElement = '.adf-upload-dialog';
1960
+ uploadDialog = this.page.locator('.adf-upload-dialog');
1961
+ closeButton = this.getChild('#adf-upload-dialog-close');
1962
+ minimizeButton = this.page.locator('[data-automation-id="adf-upload-dialog__toggle-minimize"]');
1963
+ uploadDialogMinimized = this.page.locator('.adf-upload-dialog--minimized');
1954
1964
  constructor(page) {
1955
1965
  super(page, UploadDialog.rootElement);
1956
- this.uploadDialog = this.page.locator('.adf-upload-dialog');
1957
- this.closeButton = this.getChild('#adf-upload-dialog-close');
1958
- this.minimizeButton = this.page.locator('[data-automation-id="adf-upload-dialog__toggle-minimize"]');
1959
- this.uploadDialogMinimized = this.page.locator('.adf-upload-dialog--minimized');
1960
1966
  }
1961
1967
  }
1962
- UploadDialog.rootElement = '.adf-upload-dialog';
1963
1968
 
1964
1969
  /*!
1965
1970
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -1985,13 +1990,14 @@ UploadDialog.rootElement = '.adf-upload-dialog';
1985
1990
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
1986
1991
  */
1987
1992
  class AdfDeleteTrashComponent extends BaseComponent {
1993
+ static rootElement = 'adf-confirm-dialog';
1988
1994
  constructor(page) {
1989
1995
  super(page, AdfDeleteTrashComponent.rootElement);
1990
- this.dialogTitle = this.getChild('[data-automation-id="adf-confirm-dialog-title"]');
1991
- this.dialogDescription = this.getChild('[data-automation-id="adf-confirm-dialog-base-message"]');
1992
- this.deleteButton = this.getChild('[id="adf-confirm-accept"]');
1993
- this.keepButton = this.getChild('[id="adf-confirm-cancel"]');
1994
1996
  }
1997
+ dialogTitle = this.getChild('[data-automation-id="adf-confirm-dialog-title"]');
1998
+ dialogDescription = this.getChild('[data-automation-id="adf-confirm-dialog-base-message"]');
1999
+ deleteButton = this.getChild('[id="adf-confirm-accept"]');
2000
+ keepButton = this.getChild('[id="adf-confirm-cancel"]');
1995
2001
  async waitForDialog() {
1996
2002
  await this.dialogTitle.waitFor();
1997
2003
  }
@@ -2011,7 +2017,6 @@ class AdfDeleteTrashComponent extends BaseComponent {
2011
2017
  return this.keepButton.isEnabled();
2012
2018
  }
2013
2019
  }
2014
- AdfDeleteTrashComponent.rootElement = 'adf-confirm-dialog';
2015
2020
 
2016
2021
  /*!
2017
2022
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2037,18 +2042,19 @@ AdfDeleteTrashComponent.rootElement = 'adf-confirm-dialog';
2037
2042
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2038
2043
  */
2039
2044
  class LinkRulesDialog extends BaseComponent {
2045
+ static rootElement = 'aca-rule-set-picker';
2040
2046
  constructor(page) {
2041
2047
  super(page, LinkRulesDialog.rootElement);
2042
- this.cancelButton = this.getChild('[data-automation-id="content-node-selector-actions-cancel"]');
2043
- this.selectFolderButton = this.getChild('button', { hasText: ' Select folder ' });
2044
- this.emptyLinkRules = this.getChild('.adf-empty-content__title');
2045
- this.getOptionLocator = (optionName) => this.page.locator('.mat-mdc-select-panel .mdc-list-item__primary-text', { hasText: optionName });
2046
- this.getRowByName = (name) => this.getChild(`adf-datatable-row`, { hasText: name.toString() });
2047
- this.getDialogTitle = (text) => this.getChild('[data-automation-id="content-node-selector-title"]', { hasText: text });
2048
- this.getBreadcrumb = (text) => this.getChild('[data-automation-id="current-folder"]', { hasText: text });
2049
- this.getFolderIcon = this.getChild('.adf-dropdown-breadcrumb-icon', { hasText: 'folder' });
2050
- this.getLibraryIcon = this.getChild('.adf-empty-content__icon', { hasText: 'library_books' });
2051
2048
  }
2049
+ cancelButton = this.getChild('[data-automation-id="content-node-selector-actions-cancel"]');
2050
+ selectFolderButton = this.getChild('button', { hasText: ' Select folder ' });
2051
+ emptyLinkRules = this.getChild('.adf-empty-content__title');
2052
+ getOptionLocator = (optionName) => this.page.locator('.mat-mdc-select-panel .mdc-list-item__primary-text', { hasText: optionName });
2053
+ getRowByName = (name) => this.getChild(`adf-datatable-row`, { hasText: name.toString() });
2054
+ getDialogTitle = (text) => this.getChild('[data-automation-id="content-node-selector-title"]', { hasText: text });
2055
+ getBreadcrumb = (text) => this.getChild('[data-automation-id="current-folder"]', { hasText: text });
2056
+ getFolderIcon = this.getChild('.adf-dropdown-breadcrumb-icon', { hasText: 'folder' });
2057
+ getLibraryIcon = this.getChild('.adf-empty-content__icon', { hasText: 'library_books' });
2052
2058
  async selectDestination(folderName) {
2053
2059
  const row = this.getRowByName(folderName);
2054
2060
  await expect(row).toBeVisible();
@@ -2066,7 +2072,6 @@ class LinkRulesDialog extends BaseComponent {
2066
2072
  await this.getLibraryIcon.waitFor();
2067
2073
  }
2068
2074
  }
2069
- LinkRulesDialog.rootElement = 'aca-rule-set-picker';
2070
2075
 
2071
2076
  /*!
2072
2077
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2092,18 +2097,18 @@ LinkRulesDialog.rootElement = 'aca-rule-set-picker';
2092
2097
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2093
2098
  */
2094
2099
  class EditDialog extends BaseComponent {
2100
+ static rootElement = 'mat-dialog-container';
2101
+ editDialog = this.getChild('');
2102
+ titleInput = this.getChild('[data-automation-id="adf-folder-dialog-title"]');
2103
+ cancelButton = this.getChild('#adf-folder-cancel-button');
2104
+ updateButton = this.getChild('#adf-folder-create-button');
2105
+ descriptionInput = this.getChild('#adf-folder-description-input');
2106
+ nameInput = this.getChild('#adf-folder-name-input');
2107
+ fieldHint = this.getChild('mat-hint');
2095
2108
  constructor(page) {
2096
2109
  super(page, EditDialog.rootElement);
2097
- this.editDialog = this.getChild('');
2098
- this.titleInput = this.getChild('[data-automation-id="adf-folder-dialog-title"]');
2099
- this.cancelButton = this.getChild('#adf-folder-cancel-button');
2100
- this.updateButton = this.getChild('#adf-folder-create-button');
2101
- this.descriptionInput = this.getChild('#adf-folder-description-input');
2102
- this.nameInput = this.getChild('#adf-folder-name-input');
2103
- this.fieldHint = this.getChild('mat-hint');
2104
2110
  }
2105
2111
  }
2106
- EditDialog.rootElement = 'mat-dialog-container';
2107
2112
 
2108
2113
  /*!
2109
2114
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2153,28 +2158,29 @@ EditDialog.rootElement = 'mat-dialog-container';
2153
2158
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2154
2159
  */
2155
2160
  class ManageRulesDialogComponent extends BaseComponent {
2161
+ static rootElement = 'aca-edit-rule-dialog';
2162
+ createRuleButton = this.getChild('[data-automation-id="edit-rule-dialog-submit"]');
2163
+ cancelRuleButton = this.getChild('.aca-edit-rule-dialog__footer button').filter({ hasText: 'Cancel' });
2164
+ ruleNameInputLocator = this.getChild('[id="rule-details-name-input"]');
2165
+ ruleDescriptionInputLocator = this.getChild('[id="rule-details-description-textarea"]');
2166
+ addConditionButton = this.getChild('[data-automation-id="add-condition-button"]');
2167
+ addConditionGroupButton = this.getChild('[data-automation-id="add-group-button"]');
2168
+ fieldDropDown = this.getChild('[data-automation-id="field-select"]');
2169
+ comparatorDropDown = this.getChild('[data-automation-id="comparator-select"]');
2170
+ valueField = this.getChild('[data-automation-id="value-input"]');
2171
+ whenCreatedCheckbox = this.getChild('[data-automation-id="rule-trigger-checkbox-inbound"]');
2172
+ whenUpdatedCheckbox = this.getChild('[data-automation-id="rule-trigger-checkbox-update"]');
2173
+ whenDeletedCheckbox = this.getChild('[data-automation-id="rule-trigger-checkbox-outbound"]');
2174
+ destinationFolderButton = this.getChild('[data-automation-id="card-textitem-clickable-icon-destination-folder"]');
2175
+ ruleInBackgroundCheckbox = this.getChild('[data-automation-id="rule-option-checkbox-asynchronous"]');
2176
+ ruleSubfoldersCheckbox = this.getChild('[data-automation-id="rule-option-checkbox-inheritable"]');
2177
+ ruleDisableCheckbox = this.getChild('[data-automation-id="rule-option-checkbox-disabled"] input');
2178
+ actionsEllipsisButtons = this.getChild('[data-automation-id="rule-action-list-action-menu"]');
2179
+ actionsEllipsisDelete = this.page.locator('[data-automation-id="rule-action-list-remove-action-button"]');
2180
+ conditionsEllipsisButtons = this.getChild('[data-automation-id="condition-actions-button"]');
2181
+ conditionsEllipsisDelete = this.page.locator('button[title="Remove"]');
2156
2182
  constructor(page) {
2157
2183
  super(page, ManageRulesDialogComponent.rootElement);
2158
- this.createRuleButton = this.getChild('[data-automation-id="edit-rule-dialog-submit"]');
2159
- this.cancelRuleButton = this.getChild('.aca-edit-rule-dialog__footer button').filter({ hasText: 'Cancel' });
2160
- this.ruleNameInputLocator = this.getChild('[id="rule-details-name-input"]');
2161
- this.ruleDescriptionInputLocator = this.getChild('[id="rule-details-description-textarea"]');
2162
- this.addConditionButton = this.getChild('[data-automation-id="add-condition-button"]');
2163
- this.addConditionGroupButton = this.getChild('[data-automation-id="add-group-button"]');
2164
- this.fieldDropDown = this.getChild('[data-automation-id="field-select"]');
2165
- this.comparatorDropDown = this.getChild('[data-automation-id="comparator-select"]');
2166
- this.valueField = this.getChild('[data-automation-id="value-input"]');
2167
- this.whenCreatedCheckbox = this.getChild('[data-automation-id="rule-trigger-checkbox-inbound"]');
2168
- this.whenUpdatedCheckbox = this.getChild('[data-automation-id="rule-trigger-checkbox-update"]');
2169
- this.whenDeletedCheckbox = this.getChild('[data-automation-id="rule-trigger-checkbox-outbound"]');
2170
- this.destinationFolderButton = this.getChild('[data-automation-id="card-textitem-clickable-icon-destination-folder"]');
2171
- this.ruleInBackgroundCheckbox = this.getChild('[data-automation-id="rule-option-checkbox-asynchronous"]');
2172
- this.ruleSubfoldersCheckbox = this.getChild('[data-automation-id="rule-option-checkbox-inheritable"]');
2173
- this.ruleDisableCheckbox = this.getChild('[data-automation-id="rule-option-checkbox-disabled"]');
2174
- this.actionsEllipsisButtons = this.getChild('[data-automation-id="rule-action-list-action-menu"]');
2175
- this.actionsEllipsisDelete = this.page.locator('[data-automation-id="rule-action-list-remove-action-button"]');
2176
- this.conditionsEllipsisButtons = this.getChild('[data-automation-id="condition-actions-button"]');
2177
- this.conditionsEllipsisDelete = this.page.locator('button[title="Remove"]');
2178
2184
  }
2179
2185
  async deleteActions(noActions) {
2180
2186
  for (let i = 0; i < noActions; i++) {
@@ -2189,7 +2195,6 @@ class ManageRulesDialogComponent extends BaseComponent {
2189
2195
  }
2190
2196
  }
2191
2197
  }
2192
- ManageRulesDialogComponent.rootElement = 'aca-edit-rule-dialog';
2193
2198
 
2194
2199
  /*!
2195
2200
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2215,20 +2220,21 @@ ManageRulesDialogComponent.rootElement = 'aca-edit-rule-dialog';
2215
2220
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2216
2221
  */
2217
2222
  class ManageRules extends BaseComponent {
2223
+ static rootElement = '.aca-manage-rules';
2224
+ getGroupsList = (optionName) => this.getChild('.aca-rule-list-item__header', { hasText: optionName });
2225
+ ruleToggle = this.getChild('.aca-manage-rules__container .mdc-switch').first();
2226
+ ruleToggleFalse = this.getChild('aca-rule-list-grouping aca-rule-list-item .mdc-switch--unselected').first();
2227
+ ruleDetailsTitle = this.getChild('.aca-manage-rules__container__rule-details__header__title__name');
2228
+ ruleDetailsDeleteButton = this.getChild('#delete-rule-btn');
2229
+ ruleDetailsEditButton = this.getChild('#edit-rule-btn');
2230
+ ruleDetailsWhenText = this.getChild('[data-automation-id="rule-details-triggers-component"]');
2231
+ ruleDetailsPerformActionsDiv = this.getChild('adf-card-view-textitem mat-form-field input');
2232
+ rulesEmptyListTitle = this.getChild('.adf-empty-content__title');
2233
+ ruleActions = this.getChild('aca-rule-action');
2234
+ ruleConditionsInGroup = this.getChild('aca-rule-composite-condition aca-rule-simple-condition');
2235
+ ruleDescription = this.getChild('.aca-manage-rules__container__rule-details__header__title__description');
2218
2236
  constructor(page) {
2219
2237
  super(page, ManageRules.rootElement);
2220
- this.getGroupsList = (optionName) => this.getChild('.aca-rule-list-item__header', { hasText: optionName });
2221
- this.ruleToggle = this.getChild('.aca-manage-rules__container .mdc-switch').first();
2222
- this.ruleToggleFalse = this.getChild('aca-rule-list-grouping aca-rule-list-item .mdc-switch--unselected').first();
2223
- this.ruleDetailsTitle = this.getChild('.aca-manage-rules__container__rule-details__header__title__name');
2224
- this.ruleDetailsDeleteButton = this.getChild('#delete-rule-btn');
2225
- this.ruleDetailsEditButton = this.getChild('#edit-rule-btn');
2226
- this.ruleDetailsWhenText = this.getChild('[data-automation-id="rule-details-triggers-component"]');
2227
- this.ruleDetailsPerformActionsDiv = this.getChild('adf-card-view-textitem mat-form-field input');
2228
- this.rulesEmptyListTitle = this.getChild('.adf-empty-content__title');
2229
- this.ruleActions = this.getChild('aca-rule-action');
2230
- this.ruleConditionsInGroup = this.getChild('aca-rule-composite-condition aca-rule-simple-condition');
2231
- this.ruleDescription = this.getChild('.aca-manage-rules__container__rule-details__header__title__description');
2232
2238
  }
2233
2239
  async checkAspects(aspects) {
2234
2240
  for (let i = 0; i < aspects.length; i++) {
@@ -2256,7 +2262,6 @@ class ManageRules extends BaseComponent {
2256
2262
  });
2257
2263
  }
2258
2264
  }
2259
- ManageRules.rootElement = '.aca-manage-rules';
2260
2265
 
2261
2266
  /*!
2262
2267
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2306,6 +2311,7 @@ ManageRules.rootElement = '.aca-manage-rules';
2306
2311
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2307
2312
  */
2308
2313
  class SpinnerComponent extends BaseComponent {
2314
+ static rootElement = 'mat-progress-spinner';
2309
2315
  constructor(page, rootElement = SpinnerComponent.rootElement) {
2310
2316
  super(page, rootElement);
2311
2317
  }
@@ -2319,7 +2325,6 @@ class SpinnerComponent extends BaseComponent {
2319
2325
  }
2320
2326
  }
2321
2327
  }
2322
- SpinnerComponent.rootElement = 'mat-progress-spinner';
2323
2328
 
2324
2329
  /*!
2325
2330
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2369,21 +2374,22 @@ var ActionType;
2369
2374
  ActionType["TransformAndCopyImage"] = "Transform and copy image";
2370
2375
  })(ActionType || (ActionType = {}));
2371
2376
  class ActionsDropdownComponent extends BaseComponent {
2377
+ static rootElement = 'aca-edit-rule-dialog aca-rule-action-list';
2378
+ getOptionLocator = (optionName) => this.page.locator('.mat-mdc-select-panel .mdc-list-item__primary-text', { hasText: optionName }).first();
2379
+ ruleActionLocator = this.getChild('aca-rule-action');
2380
+ addActionButtonLocator = this.getChild('[data-automation-id="rule-action-list-add-action-button"]');
2381
+ actionDropdownLocator = this.getChild('[data-automation-id="rule-action-select"]');
2382
+ actionAspectNameLocator = '[data-automation-id="header-aspect-name"] .adf-property-field';
2383
+ actionCheckInInputLocator = '[data-automation-id="header-description"] input';
2384
+ actionAutoDeclareLocator = '[data-automation-id="header-version"] mat-select';
2385
+ actionSimpleWorkflowStepInputLocator = '[data-automation-id="header-approve-step"] input';
2386
+ actionSimpleWorkflowApproveFolderLocator = `[data-automation-id="header-approve-folder"] mat-icon`;
2387
+ actionSimpleWorkflowActionChoiceLocator = '[data-automation-id="content-node-selector-actions-choose"]';
2388
+ actionSimpleWorkflowLabelApproveLocator = `[data-automation-id="card-boolean-label-approve-move"]`;
2389
+ actionSimpleWorkflowSRejectStepLocator = '[data-automation-id="header-reject-step"] input';
2390
+ actionSimpleWorkflowRejectFolderLocator = `[data-automation-id="header-reject-folder"] input`;
2372
2391
  constructor(page) {
2373
2392
  super(page, ActionsDropdownComponent.rootElement);
2374
- this.getOptionLocator = (optionName) => this.page.locator('.mat-mdc-select-panel .mdc-list-item__primary-text', { hasText: optionName }).first();
2375
- this.ruleActionLocator = this.getChild('aca-rule-action');
2376
- this.addActionButtonLocator = this.getChild('[data-automation-id="rule-action-list-add-action-button"]');
2377
- this.actionDropdownLocator = this.getChild('[data-automation-id="rule-action-select"]');
2378
- this.actionAspectNameLocator = '[data-automation-id="header-aspect-name"] .adf-property-field';
2379
- this.actionCheckInInputLocator = '[data-automation-id="header-description"] input';
2380
- this.actionAutoDeclareLocator = '[data-automation-id="header-version"] mat-select';
2381
- this.actionSimpleWorkflowStepInputLocator = '[data-automation-id="header-approve-step"] input';
2382
- this.actionSimpleWorkflowApproveFolderLocator = `[data-automation-id="header-approve-folder"] mat-icon`;
2383
- this.actionSimpleWorkflowActionChoiceLocator = '[data-automation-id="content-node-selector-actions-choose"]';
2384
- this.actionSimpleWorkflowLabelApproveLocator = `[data-automation-id="card-boolean-label-approve-move"]`;
2385
- this.actionSimpleWorkflowSRejectStepLocator = '[data-automation-id="header-reject-step"] input';
2386
- this.actionSimpleWorkflowRejectFolderLocator = `[data-automation-id="header-reject-folder"] input`;
2387
2393
  }
2388
2394
  async selectAction(action, index) {
2389
2395
  if (index > 0) {
@@ -2417,7 +2423,6 @@ class ActionsDropdownComponent extends BaseComponent {
2417
2423
  await this.page.locator(this.actionSimpleWorkflowActionChoiceLocator).click();
2418
2424
  }
2419
2425
  }
2420
- ActionsDropdownComponent.rootElement = 'aca-edit-rule-dialog aca-rule-action-list';
2421
2426
 
2422
2427
  /*!
2423
2428
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2460,10 +2465,7 @@ var Comparator;
2460
2465
  Comparator["EndsWith"] = "Ends with";
2461
2466
  })(Comparator || (Comparator = {}));
2462
2467
  class ConditionComponent extends ManageRulesDialogComponent {
2463
- constructor() {
2464
- super(...arguments);
2465
- this.getOptionLocator = (optionName) => this.page.locator(`.cdk-overlay-pane .mat-mdc-option span`, { hasText: optionName });
2466
- }
2468
+ getOptionLocator = (optionName) => this.page.locator(`.cdk-overlay-pane .mat-mdc-option span`, { hasText: optionName });
2467
2469
  async selectField(fields, index) {
2468
2470
  await this.fieldDropDown.nth(index).click();
2469
2471
  const option = this.getOptionLocator(fields);
@@ -2517,38 +2519,57 @@ class ConditionComponent extends ManageRulesDialogComponent {
2517
2519
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2518
2520
  */
2519
2521
  class AdfInfoDrawerComponent extends BaseComponent {
2522
+ static rootElement = 'adf-info-drawer';
2520
2523
  constructor(page) {
2521
2524
  super(page, AdfInfoDrawerComponent.rootElement);
2522
- this.getNameField = (labelText) => this.getChild(`[data-automation-id="library-name-properties-wrapper"] input[placeholder='${labelText}']`);
2523
- this.getIdField = (labelText) => this.getChild(`[data-automation-id="library-id-properties-wrapper"] input[placeholder='${labelText}']`);
2524
- this.getVisibilityField = (labelText) => this.getChild(`[data-automation-id="library-visibility-properties-wrapper"] mat-select[ng-reflect-placeholder='${labelText}']`);
2525
- this.getDescriptionField = this.getChild('[data-automation-id="library-description-properties-wrapper"] textarea');
2526
- this.propertiesTab = this.page.getByRole('tab', { name: 'Properties' });
2527
- this.commentsTab = this.page.getByRole('tab', { name: 'Comments' });
2528
- this.infoDrawerTabs = this.getChild('.adf-info-drawer-tab');
2529
- this.commentInputField = this.page.locator('#comment-input');
2530
- this.commentsHeader = this.getChild('#comment-header');
2531
- this.addCommentButton = this.getChild('[data-automation-id="comments-input-add"]');
2532
- this.commentsList = this.getChild('.adf-comment-list-item');
2533
- this.commentUsername = this.getChild('.adf-comment-user-name');
2534
- this.commentTextContent = this.getChild('.adf-comment-message');
2535
- this.commentTimestamp = this.getChild('.adf-comment-message-time');
2536
- this.infoDrawerPanel = this.page.locator('.adf-info-drawer');
2537
- this.headerTitle = this.page.locator('.adf-info-drawer-layout-header-title').getByRole('heading');
2538
- this.editButton = this.page.getByRole('button', { name: 'Edit' });
2539
- this.cancelButton = this.page.getByRole('button', { name: 'Cancel' });
2540
- this.updateButton = this.page.getByRole('button', { name: 'Update' });
2541
- this.hintMessage = this.page.locator('mat-hint');
2542
- this.errorMessage = this.page.locator('mat-error');
2543
- this.expandDetailsButton = this.getChild(`button[title='Expand panel']`);
2544
- this.expandedDetailsTabs = this.page.locator('.aca-details-container .mdc-tab__text-label');
2545
- this.expandedDetailsPermissionsTab = this.expandedDetailsTabs.getByText('Permissions');
2546
- this.nameField = this.page.locator('input[placeholder=Name]');
2547
- this.idField = this.page.locator(`input[placeholder='Library ID']`);
2548
- this.descriptionField = this.page.locator('textarea[placeholder=Description]');
2549
- this.visibilityField = this.infoDrawerPanel.getByRole('combobox');
2550
- this.selectVisibility = (visibilityOption) => this.page.getByRole('listbox').getByRole('option', { name: visibilityOption }).click();
2551
2525
  }
2526
+ categoriesManagement = this.getChild('adf-categories-management');
2527
+ tagsCreator = this.getChild('adf-tags-creator');
2528
+ getNameField = (labelText) => this.getChild(`[data-automation-id="library-name-properties-wrapper"] input[placeholder='${labelText}']`);
2529
+ getIdField = (labelText) => this.getChild(`[data-automation-id="library-id-properties-wrapper"] input[placeholder='${labelText}']`);
2530
+ getVisibilityField = (labelText) => this.getChild(`[data-automation-id="library-visibility-properties-wrapper"] mat-select[ng-reflect-placeholder='${labelText}']`);
2531
+ getDescriptionField = this.getChild('[data-automation-id="library-description-properties-wrapper"] textarea');
2532
+ propertiesTab = this.page.getByRole('tab', { name: 'Properties' });
2533
+ commentsTab = this.page.getByRole('tab', { name: 'Comments' });
2534
+ infoDrawerTabs = this.getChild('.adf-info-drawer-tab');
2535
+ commentInputField = this.page.locator('#comment-input');
2536
+ commentsHeader = this.getChild('#comment-header');
2537
+ addCommentButton = this.getChild('[data-automation-id="comments-input-add"]');
2538
+ commentsList = this.getChild('.adf-comment-list-item');
2539
+ commentUsername = this.getChild('.adf-comment-user-name');
2540
+ commentTextContent = this.getChild('.adf-comment-message');
2541
+ commentTimestamp = this.getChild('.adf-comment-message-time');
2542
+ infoDrawerPanel = this.page.locator('.adf-info-drawer');
2543
+ headerTitle = this.page.locator('.adf-info-drawer-layout-header-title').getByRole('heading');
2544
+ editButton = this.page.getByRole('button', { name: 'Edit' });
2545
+ cancelButton = this.page.getByRole('button', { name: 'Cancel' });
2546
+ updateButton = this.page.getByRole('button', { name: 'Update' });
2547
+ hintMessage = this.page.locator('mat-hint');
2548
+ errorMessage = this.page.locator('mat-error');
2549
+ expandDetailsButton = this.getChild(`button[title='Expand panel']`);
2550
+ expandedDetailsTabs = this.page.locator('.aca-details-container .mdc-tab__text-label');
2551
+ expandedDetailsPermissionsTab = this.expandedDetailsTabs.getByText('Permissions');
2552
+ nameField = this.page.locator('input[placeholder=Name]');
2553
+ idField = this.page.locator(`input[placeholder='Library ID']`);
2554
+ descriptionField = this.page.locator('textarea[placeholder=Description]');
2555
+ visibilityField = this.infoDrawerPanel.getByRole('combobox');
2556
+ selectVisibility = (visibilityOption) => this.page.getByRole('listbox').getByRole('option', { name: visibilityOption }).click();
2557
+ tagsAccordion = this.getChild('[data-automation-id="adf-content-metadata-tags-panel"]');
2558
+ categoriesAccordion = this.getChild('[data-automation-id="adf-content-metadata-categories-panel"]');
2559
+ tagsAccordionPenButton = this.tagsAccordion.locator('[data-automation-id="showing-tag-input-button"]');
2560
+ categoriesAccordionPenButton = this.categoriesAccordion.locator('[data-automation-id="meta-data-categories-edit"]');
2561
+ tagsInput = this.tagsCreator.locator('input');
2562
+ createTagButton = this.tagsCreator.locator('[role="button"]');
2563
+ tagsChips = this.tagsCreator.locator('mat-chip');
2564
+ tagsChipsXButton = this.tagsChips.locator('button');
2565
+ tagsAccordionCancelButton = this.getChild('[data-automation-id="reset-tags-metadata"]');
2566
+ tagsAccordionConfirmButton = this.getChild('[data-automation-id="save-tags-metadata"]');
2567
+ categoriesAccordionCancelButton = this.getChild('[data-automation-id="reset-metadata"]');
2568
+ categoriesAccordionConfirmButton = this.getChild('[data-automation-id="save-categories-metadata"]');
2569
+ categoriesInput = this.categoriesManagement.locator('input');
2570
+ categoriesListItems = this.categoriesManagement.locator('mat-list-item');
2571
+ categoriesItemRemoveButton = this.categoriesManagement.locator('[data-automation-id="categories-remove-category-button"]');
2572
+ categoriesCreatedList = this.getChild('.adf-metadata-categories');
2552
2573
  async checkCommentsHeaderCount() {
2553
2574
  const commentsCountTextContent = await this.commentsHeader.textContent();
2554
2575
  const commentsCountString = commentsCountTextContent.match(/\d+/g)[0];
@@ -2572,7 +2593,6 @@ class AdfInfoDrawerComponent extends BaseComponent {
2572
2593
  return this.infoDrawerTabs.count();
2573
2594
  }
2574
2595
  }
2575
- AdfInfoDrawerComponent.rootElement = 'adf-info-drawer';
2576
2596
 
2577
2597
  /*!
2578
2598
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2598,27 +2618,28 @@ AdfInfoDrawerComponent.rootElement = 'adf-info-drawer';
2598
2618
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2599
2619
  */
2600
2620
  class AcaHeader extends BaseComponent {
2621
+ static rootElement = 'aca-toolbar';
2622
+ moreActionsButton = this.getChild('button[id="app.viewer.toolbar.more"]');
2623
+ toolbarMoreActions = this.getChild('button[id="app.toolbar.more"]');
2624
+ createButton = this.getChild('[id="app.toolbar.create"]');
2625
+ viewDetails = this.getChild('[title="View Details"]');
2626
+ viewButton = this.getChild('button[title="View"]');
2627
+ searchButton = this.getChild('button[id="app.toolbar.search"]');
2628
+ fullScreenButton = this.getChild('button[id="app.viewer.fullscreen"]');
2629
+ shareButton = this.getChild('button[id="share-action-button"]');
2630
+ downloadButtonViewer = this.getChild('button[id="app.viewer.download"]');
2631
+ downloadButton = this.getChild('button[id="app.toolbar.download"]');
2632
+ sharedDownloadButton = this.getChild('button[id="app.viewer.shared.download"]');
2633
+ uploadButton = this.getChild('button[id="app.toolbar.upload"]');
2634
+ uploadFileButton = this.page.locator('button[id="app.create.uploadFile"]');
2635
+ uploadInput = this.page.locator('input[id="app-upload-files"]');
2636
+ uploadNewVersionButton = this.page.locator('#app-upload-file-version');
2637
+ permanentlyDeleteButton = this.getChild('button[id="app.toolbar.purgeDeletedNodes"]');
2638
+ restoreButton = this.getChild('button[id="app.toolbar.restoreDeletedNodes"]');
2601
2639
  constructor(page) {
2602
2640
  super(page, AcaHeader.rootElement);
2603
- this.moreActionsButton = this.getChild('button[id="app.viewer.toolbar.more"]');
2604
- this.toolbarMoreActions = this.getChild('button[id="app.toolbar.more"]');
2605
- this.createButton = this.getChild('[id="app.toolbar.create"]');
2606
- this.viewDetails = this.getChild('[title="View Details"]');
2607
- this.viewButton = this.getChild('button[title="View"]');
2608
- this.searchButton = this.getChild('button[id="app.toolbar.search"]');
2609
- this.fullScreenButton = this.getChild('button[id="app.viewer.fullscreen"]');
2610
- this.shareButton = this.getChild('button[id="share-action-button"]');
2611
- this.downloadButtonViewer = this.getChild('button[id="app.viewer.download"]');
2612
- this.downloadButton = this.getChild('button[id="app.toolbar.download"]');
2613
- this.sharedDownloadButton = this.getChild('button[id="app.viewer.shared.download"]');
2614
- this.uploadButton = this.getChild('button[id="app.toolbar.upload"]');
2615
- this.uploadFileButton = this.page.locator('button[id="app.create.uploadFile"]');
2616
- this.uploadInput = this.page.locator('input[id="app-upload-files"]');
2617
- this.uploadNewVersionButton = this.page.locator('#app-upload-file-version');
2618
- this.permanentlyDeleteButton = this.getChild('button[id="app.toolbar.purgeDeletedNodes"]');
2619
- this.restoreButton = this.getChild('button[id="app.toolbar.restoreDeletedNodes"]');
2620
- this.matMenu = new MatMenuComponent(this.page);
2621
2641
  }
2642
+ matMenu = new MatMenuComponent(this.page);
2622
2643
  async clickViewerMoreActions() {
2623
2644
  await this.moreActionsButton.waitFor({ state: 'attached' });
2624
2645
  await this.moreActionsButton.click();
@@ -2646,7 +2667,6 @@ class AcaHeader extends BaseComponent {
2646
2667
  await this.matMenu.createFileFromTemplate.click();
2647
2668
  }
2648
2669
  }
2649
- AcaHeader.rootElement = 'aca-toolbar';
2650
2670
 
2651
2671
  /*!
2652
2672
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2672,17 +2692,26 @@ AcaHeader.rootElement = 'aca-toolbar';
2672
2692
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2673
2693
  */
2674
2694
  class ViewerComponent extends BaseComponent {
2695
+ static rootElement = 'adf-viewer';
2696
+ viewerLocator = this.getChild('.adf-viewer-render-layout-content');
2697
+ closeButtonLocator = this.getChild('.adf-viewer-close-button');
2698
+ fileTitleButtonLocator = this.getChild('.adf-viewer__file-title');
2699
+ pdfViewerContentPages = this.getChild('.adf-pdf-viewer__content .page');
2700
+ shareButton = this.getChild('button[id="share-action-button"]');
2701
+ downloadButton = this.getChild('button[id="app.viewer.download"]');
2702
+ allButtons = this.getChild('button');
2703
+ unknownFormat = this.getChild(`adf-viewer-unknown-format .adf-viewer__unknown-format-view`);
2704
+ viewerImage = this.viewerLocator.locator('.cropper-canvas img');
2705
+ viewerDocument = this.viewerLocator.locator('.adf-pdf-viewer__content [role="document"]');
2706
+ documentThumbnailButton = this.getChild('[data-automation-id="adf-thumbnails-button"]');
2707
+ thumbnailsPages = this.getChild('[data-automation-id="adf-thumbnails-content"] adf-pdf-thumb');
2708
+ thumbnailsCloseButton = this.getChild('[data-automation-id="adf-thumbnails-close"]');
2709
+ viewerPage = this.getChild('[data-automation-id="adf-page-selector"]');
2710
+ viewerMedia = this.getChild('adf-media-player');
2711
+ viewerSpinner = this.getChild('.adf-viewer-render__loading-screen');
2712
+ toolbar = new AcaHeader(this.page);
2675
2713
  constructor(page) {
2676
2714
  super(page, ViewerComponent.rootElement);
2677
- this.viewerLocator = this.getChild('.adf-viewer-render-layout-content');
2678
- this.closeButtonLocator = this.getChild('.adf-viewer-close-button');
2679
- this.fileTitleButtonLocator = this.getChild('.adf-viewer__file-title');
2680
- this.pdfViewerContentPages = this.getChild('.adf-pdf-viewer__content .page');
2681
- this.shareButton = this.getChild('button[id="share-action-button"]');
2682
- this.downloadButton = this.getChild('button[id="app.viewer.download"]');
2683
- this.allButtons = this.getChild('button');
2684
- this.unknownFormat = this.getChild(`adf-viewer-unknown-format .adf-viewer__unknown-format-view`);
2685
- this.toolbar = new AcaHeader(this.page);
2686
2715
  }
2687
2716
  async isPdfViewerContentDisplayed() {
2688
2717
  const count = await this.pdfViewerContentPages.count();
@@ -2698,6 +2727,15 @@ class ViewerComponent extends BaseComponent {
2698
2727
  await this.waitForViewerToOpen();
2699
2728
  return this.viewerLocator.isVisible();
2700
2729
  }
2730
+ async waitForViewerLoaderToFinish() {
2731
+ await this.viewerSpinner.waitFor({ state: 'hidden', timeout: timeouts.extraLarge });
2732
+ }
2733
+ async checkViewerActivePage(pageNumber) {
2734
+ await expect(this.viewerPage).toHaveValue(pageNumber.toString());
2735
+ }
2736
+ async clickViewerThumbnailPage(pageNumber) {
2737
+ await this.thumbnailsPages.nth(pageNumber - 1).click();
2738
+ }
2701
2739
  async isCloseButtonDisplayed() {
2702
2740
  await this.closeButtonLocator.waitFor({ state: 'visible', timeout: timeouts.normal });
2703
2741
  return this.closeButtonLocator.isEnabled({ timeout: timeouts.normal });
@@ -2734,7 +2772,6 @@ class ViewerComponent extends BaseComponent {
2734
2772
  return this.unknownFormat.locator(`.adf-viewer__unknown-label`).innerText();
2735
2773
  }
2736
2774
  }
2737
- ViewerComponent.rootElement = 'adf-viewer';
2738
2775
 
2739
2776
  /*!
2740
2777
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2760,18 +2797,19 @@ ViewerComponent.rootElement = 'adf-viewer';
2760
2797
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2761
2798
  */
2762
2799
  class SearchInputComponent extends BaseComponent {
2800
+ static rootElement = 'aca-page-layout';
2801
+ searchInput = this.page.locator('#app-control-input');
2802
+ searchButton = this.page.locator('.aca-search-input--search-button');
2803
+ searchCloseButton = this.page.locator('.aca-search-input--close-button');
2804
+ /**
2805
+ * Method used in cases where user have possibility to navigate "inside" the element (it's clickable and has link attribute).
2806
+ * Perform action .click() to navigate inside it
2807
+ *
2808
+ * @returns reference to cell element which contains link.
2809
+ */
2810
+ getCellLinkByName = (name) => this.getChild('.adf-datatable-row[role="row"]', { hasText: name });
2763
2811
  constructor(page, rootElement = SearchInputComponent.rootElement) {
2764
2812
  super(page, rootElement);
2765
- this.searchInput = this.page.locator('#app-control-input');
2766
- this.searchButton = this.page.locator('.aca-search-input--search-button');
2767
- this.searchCloseButton = this.page.locator('.aca-search-input--close-button');
2768
- /**
2769
- * Method used in cases where user have possibility to navigate "inside" the element (it's clickable and has link attribute).
2770
- * Perform action .click() to navigate inside it
2771
- *
2772
- * @returns reference to cell element which contains link.
2773
- */
2774
- this.getCellLinkByName = (name) => this.getChild('.adf-datatable-row[role="row"]', { hasText: name });
2775
2813
  }
2776
2814
  async performDoubleClickFolderOrFileToOpen(name) {
2777
2815
  await this.getCellLinkByName(name).waitFor({ state: 'visible', timeout: timeouts.medium });
@@ -2779,7 +2817,6 @@ class SearchInputComponent extends BaseComponent {
2779
2817
  await this.spinnerWaitForReload();
2780
2818
  }
2781
2819
  }
2782
- SearchInputComponent.rootElement = 'aca-page-layout';
2783
2820
 
2784
2821
  /*!
2785
2822
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2805,15 +2842,16 @@ SearchInputComponent.rootElement = 'aca-page-layout';
2805
2842
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2806
2843
  */
2807
2844
  class SearchOverlayComponent extends BaseComponent {
2845
+ static rootElement = '.cdk-overlay-pane';
2846
+ searchFilesOption = this.getChild('input#content-input');
2847
+ searchFoldersOption = this.getChild('input#folder-input');
2848
+ searchLibrariesOption = this.getChild('input#libraries-input');
2849
+ searchInput = this.page.locator('#app-control-input');
2850
+ searchButton = this.page.locator('app-search-input-control button[title="Search"]');
2851
+ searchInputControl = this.page.locator('.app-search-control');
2852
+ searchOptions = this.page.locator('.app-search-options');
2808
2853
  constructor(page, rootElement = SearchOverlayComponent.rootElement) {
2809
2854
  super(page, rootElement);
2810
- this.searchFilesOption = this.getChild('input#content-input');
2811
- this.searchFoldersOption = this.getChild('input#folder-input');
2812
- this.searchLibrariesOption = this.getChild('input#libraries-input');
2813
- this.searchInput = this.page.locator('#app-control-input');
2814
- this.searchButton = this.page.locator('.aca-search-input--search-button');
2815
- this.searchInputControl = this.page.locator('.app-search-control');
2816
- this.searchOptions = this.page.locator('.app-search-options');
2817
2855
  }
2818
2856
  async isFoldersOptionChecked() {
2819
2857
  const optClass = await this.searchFoldersOption.getAttribute('class');
@@ -2860,7 +2898,6 @@ class SearchOverlayComponent extends BaseComponent {
2860
2898
  await this.searchButton.click({ force: true });
2861
2899
  }
2862
2900
  }
2863
- SearchOverlayComponent.rootElement = '.cdk-overlay-pane';
2864
2901
 
2865
2902
  /*!
2866
2903
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2886,12 +2923,13 @@ SearchOverlayComponent.rootElement = '.cdk-overlay-pane';
2886
2923
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2887
2924
  */
2888
2925
  class SearchSortingPicker extends BaseComponent {
2926
+ static rootElement = '#aca-button-action-menu';
2927
+ actionMenu = this.page.locator('[data-automation-id="auto_header_content_id_$thumbnail"]');
2928
+ sortOrderButton = this.page.locator('#aca-button-sorting-menu');
2929
+ sortByDropdownExpanded = this.page.locator('.mat-mdc-menu-panel').first();
2930
+ sortByList = this.page.locator('.mat-mdc-menu-panel button');
2889
2931
  constructor(page, rootElement = SearchSortingPicker.rootElement) {
2890
2932
  super(page, rootElement);
2891
- this.actionMenu = this.page.locator('[data-automation-id="auto_header_content_id_$thumbnail"]');
2892
- this.sortOrderButton = this.page.locator('#aca-button-sorting-menu');
2893
- this.sortByDropdownExpanded = this.page.locator('.mat-mdc-menu-panel').first();
2894
- this.sortByList = this.page.locator('.mat-mdc-menu-panel button');
2895
2933
  }
2896
2934
  async waitForSortByDropdownToExpand() {
2897
2935
  await this.sortByDropdownExpanded.waitFor();
@@ -2930,7 +2968,6 @@ class SearchSortingPicker extends BaseComponent {
2930
2968
  await this.progressBarWaitForReload();
2931
2969
  }
2932
2970
  }
2933
- SearchSortingPicker.rootElement = '#aca-button-action-menu';
2934
2971
 
2935
2972
  /*!
2936
2973
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2956,24 +2993,24 @@ SearchSortingPicker.rootElement = '#aca-button-action-menu';
2956
2993
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
2957
2994
  */
2958
2995
  class SearchFilters extends BaseComponent {
2996
+ static rootElement = '.aca-content__advanced-filters';
2959
2997
  constructor(page) {
2960
2998
  super(page, SearchFilters.rootElement);
2961
- this.filtersButtons = this.page.locator('adf-search-widget-chip');
2962
- this.logicFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Logic' });
2963
- this.propertiesFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Properties' });
2964
- this.dateFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Date' });
2965
- this.locationFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Location' });
2966
- this.tagsFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Tags' });
2967
- this.categoriesFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Categories' });
2968
- this.resetButton = this.page.locator('button', { hasText: 'Reset' });
2969
- this.menuCardTitle = this.page.locator('.adf-search-filter-title');
2970
- this.menuCardClose = this.page.locator('.adf-search-filter-title-action');
2971
- this.menuCardClear = this.page.locator('#cancel-filter-button');
2972
- this.menuCardApply = this.page.locator('#apply-filter-button');
2973
- this.dropdownOptions = this.page.locator(`mat-option`);
2974
2999
  }
3000
+ filtersButtons = this.page.locator('adf-search-widget-chip');
3001
+ logicFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Logic' });
3002
+ propertiesFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Properties' });
3003
+ dateFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Date' });
3004
+ locationFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Location' });
3005
+ tagsFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Tags' });
3006
+ categoriesFilter = this.page.locator('adf-search-widget-chip', { hasText: 'Categories' });
3007
+ resetButton = this.page.locator('button', { hasText: 'Reset' });
3008
+ menuCardTitle = this.page.locator('.adf-search-filter-title');
3009
+ menuCardClose = this.page.locator('.adf-search-filter-title-action');
3010
+ menuCardClear = this.page.locator('#cancel-filter-button');
3011
+ menuCardApply = this.page.locator('#apply-filter-button');
3012
+ dropdownOptions = this.page.locator(`mat-option`);
2975
3013
  }
2976
- SearchFilters.rootElement = '.aca-content__advanced-filters';
2977
3014
 
2978
3015
  /*!
2979
3016
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2999,12 +3036,12 @@ SearchFilters.rootElement = '.aca-content__advanced-filters';
2999
3036
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3000
3037
  */
3001
3038
  class SearchFiltersCategories extends BaseComponent {
3039
+ static rootElement = '.adf-search-filter-menu-card';
3002
3040
  constructor(page) {
3003
3041
  super(page, SearchFiltersCategories.rootElement);
3004
- this.addOptionInput = this.getChild(`[data-automation-id$='adf-search-chip-autocomplete-input']`);
3005
3042
  }
3043
+ addOptionInput = this.getChild(`[data-automation-id$='adf-search-chip-autocomplete-input']`);
3006
3044
  }
3007
- SearchFiltersCategories.rootElement = '.adf-search-filter-menu-card';
3008
3045
 
3009
3046
  /*!
3010
3047
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3030,22 +3067,23 @@ SearchFiltersCategories.rootElement = '.adf-search-filter-menu-card';
3030
3067
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3031
3068
  */
3032
3069
  class SearchFiltersDate extends BaseComponent {
3070
+ static rootElement = '.adf-search-filter-menu-card';
3033
3071
  constructor(page) {
3034
3072
  super(page, SearchFiltersDate.rootElement);
3035
- this.createdTab = this.getChild(`[role='tab']`, { hasText: 'Created' });
3036
- this.modifiedTab = this.getChild(`[role='tab']`, { hasText: 'Modified' });
3037
- this.createdTabTitle = this.createdTab.locator(`div`);
3038
- this.modifiedTabTitle = this.modifiedTab.locator(`div`);
3039
- this.anytimeButton = this.getChild(`[data-automation-id$='date-range-anytime']`);
3040
- this.anytimeRadioButton = this.anytimeButton.locator(`input`);
3041
- this.inTheLastButton = this.getChild(`[data-automation-id$='date-range-in-last']`);
3042
- this.inTheLastInput = this.getChild(`[data-automation-id$='date-range-in-last-input']`);
3043
- this.inTheLastDropdown = this.getChild(`[data-automation-id$='date-range-in-last-dropdown']`);
3044
- this.betweenButton = this.getChild(`[data-automation-id$='date-range-between']`);
3045
- this.betweenRadioButton = this.betweenButton.locator(`input`);
3046
- this.betweenStartDate = this.getChild(`[data-automation-id$='date-range-between-start-input']`);
3047
- this.betweenEndDate = this.getChild(`[data-automation-id$='date-range-between-end-input']`);
3048
3073
  }
3074
+ createdTab = this.getChild(`[role='tab']`, { hasText: 'Created' });
3075
+ modifiedTab = this.getChild(`[role='tab']`, { hasText: 'Modified' });
3076
+ createdTabTitle = this.createdTab.locator(`div`);
3077
+ modifiedTabTitle = this.modifiedTab.locator(`div`);
3078
+ anytimeButton = this.getChild(`[data-automation-id$='date-range-anytime']`);
3079
+ anytimeRadioButton = this.anytimeButton.locator(`input`);
3080
+ inTheLastButton = this.getChild(`[data-automation-id$='date-range-in-last']`);
3081
+ inTheLastInput = this.getChild(`[data-automation-id$='date-range-in-last-input']`);
3082
+ inTheLastDropdown = this.getChild(`[data-automation-id$='date-range-in-last-dropdown']`);
3083
+ betweenButton = this.getChild(`[data-automation-id$='date-range-between']`);
3084
+ betweenRadioButton = this.betweenButton.locator(`input`);
3085
+ betweenStartDate = this.getChild(`[data-automation-id$='date-range-between-start-input']`);
3086
+ betweenEndDate = this.getChild(`[data-automation-id$='date-range-between-end-input']`);
3049
3087
  async openCreatedModifiedTab(page, tab) {
3050
3088
  switch (tab) {
3051
3089
  case 'Created':
@@ -3116,7 +3154,6 @@ class SearchFiltersDate extends BaseComponent {
3116
3154
  return this.createdTab.getAttribute('aria-selected');
3117
3155
  }
3118
3156
  }
3119
- SearchFiltersDate.rootElement = '.adf-search-filter-menu-card';
3120
3157
 
3121
3158
  /*!
3122
3159
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3142,10 +3179,11 @@ SearchFiltersDate.rootElement = '.adf-search-filter-menu-card';
3142
3179
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3143
3180
  */
3144
3181
  class SearchFiltersLocation extends BaseComponent {
3182
+ static rootElement = '.adf-search-filter-menu-card';
3145
3183
  constructor(page) {
3146
3184
  super(page, SearchFiltersLocation.rootElement);
3147
- this.addOptionInput = this.getChild(`[data-automation-id$='adf-search-chip-autocomplete-input']`);
3148
3185
  }
3186
+ addOptionInput = this.getChild(`[data-automation-id$='adf-search-chip-autocomplete-input']`);
3149
3187
  async filterByLocation(page, location) {
3150
3188
  await page.searchFilters.locationFilter.click();
3151
3189
  await page.searchFiltersLocation.addOptionInput.fill(location);
@@ -3154,7 +3192,6 @@ class SearchFiltersLocation extends BaseComponent {
3154
3192
  await page.dataTable.progressBarWaitForReload();
3155
3193
  }
3156
3194
  }
3157
- SearchFiltersLocation.rootElement = '.adf-search-filter-menu-card';
3158
3195
 
3159
3196
  /*!
3160
3197
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3180,15 +3217,15 @@ SearchFiltersLocation.rootElement = '.adf-search-filter-menu-card';
3180
3217
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3181
3218
  */
3182
3219
  class SearchFiltersLogic extends BaseComponent {
3220
+ static rootElement = '.adf-search-filter-menu-card';
3183
3221
  constructor(page) {
3184
3222
  super(page, SearchFiltersLogic.rootElement);
3185
- this.matchAllInput = this.getChild(`[placeholder$='Results will match all words entered here']`);
3186
- this.matchAnyInput = this.getChild(`[placeholder$='Results will match any words entered here']`);
3187
- this.excludeInput = this.getChild(`[placeholder$='Results will exclude matches with these words']`);
3188
- this.matchExactInput = this.getChild(`[placeholder$='Results will match this entire phrase']`);
3189
3223
  }
3224
+ matchAllInput = this.getChild(`[placeholder$='Results will match all words entered here']`);
3225
+ matchAnyInput = this.getChild(`[placeholder$='Results will match any words entered here']`);
3226
+ excludeInput = this.getChild(`[placeholder$='Results will exclude matches with these words']`);
3227
+ matchExactInput = this.getChild(`[placeholder$='Results will match this entire phrase']`);
3190
3228
  }
3191
- SearchFiltersLogic.rootElement = '.adf-search-filter-menu-card';
3192
3229
 
3193
3230
  /*!
3194
3231
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3214,20 +3251,21 @@ SearchFiltersLogic.rootElement = '.adf-search-filter-menu-card';
3214
3251
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3215
3252
  */
3216
3253
  class SearchFiltersProperties extends BaseComponent {
3254
+ static rootElement = '.adf-search-filter-menu-card';
3217
3255
  constructor(page) {
3218
3256
  super(page, SearchFiltersProperties.rootElement);
3219
- this.operatorButton = this.getChild(`.adf-search-properties-file-size-operator`);
3220
- this.fileSizeInput = this.getChild(`[placeholder$='Enter file size']`);
3221
- this.unitButton = this.getChild(`.adf-search-properties-file-size-unit`);
3222
- this.fileTypeInput = this.getChild(`[placeholder$='File Type']`);
3223
- this.atLeastOption = this.page.locator(`mat-option`, { hasText: 'At Least' });
3224
- this.atMostOption = this.page.locator(`mat-option`, { hasText: 'At Most' });
3225
- this.exactlyOption = this.page.locator(`mat-option`, { hasText: 'Exactly' });
3226
- this.kbUnit = this.page.locator(`mat-option`, { hasText: 'KB' });
3227
- this.mbUnit = this.page.locator(`mat-option`, { hasText: 'MB' });
3228
- this.gbUnit = this.page.locator(`mat-option`, { hasText: 'GB' });
3229
- this.dropdownOptions = this.page.locator(`mat-option`);
3230
3257
  }
3258
+ operatorButton = this.getChild(`.adf-search-properties-file-size-operator`);
3259
+ fileSizeInput = this.getChild(`[placeholder$='Enter file size']`);
3260
+ unitButton = this.getChild(`.adf-search-properties-file-size-unit`);
3261
+ fileTypeInput = this.getChild(`[placeholder$='File Type']`);
3262
+ atLeastOption = this.page.locator(`mat-option`, { hasText: 'At Least' });
3263
+ atMostOption = this.page.locator(`mat-option`, { hasText: 'At Most' });
3264
+ exactlyOption = this.page.locator(`mat-option`, { hasText: 'Exactly' });
3265
+ kbUnit = this.page.locator(`mat-option`, { hasText: 'KB' });
3266
+ mbUnit = this.page.locator(`mat-option`, { hasText: 'MB' });
3267
+ gbUnit = this.page.locator(`mat-option`, { hasText: 'GB' });
3268
+ dropdownOptions = this.page.locator(`mat-option`);
3231
3269
  async setPropertiesParameters(page, operator, unit, fileSizeInputText, fileTypeInputText) {
3232
3270
  await page.searchFilters.propertiesFilter.click();
3233
3271
  if (operator) {
@@ -3269,7 +3307,6 @@ class SearchFiltersProperties extends BaseComponent {
3269
3307
  await page.dataTable.progressBarWaitForReload();
3270
3308
  }
3271
3309
  }
3272
- SearchFiltersProperties.rootElement = '.adf-search-filter-menu-card';
3273
3310
 
3274
3311
  /*!
3275
3312
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3295,10 +3332,11 @@ SearchFiltersProperties.rootElement = '.adf-search-filter-menu-card';
3295
3332
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3296
3333
  */
3297
3334
  class SearchFiltersTags extends BaseComponent {
3335
+ static rootElement = '.adf-search-filter-menu-card';
3298
3336
  constructor(page) {
3299
3337
  super(page, SearchFiltersTags.rootElement);
3300
- this.addOptionInput = this.getChild(`[data-automation-id$='adf-search-chip-autocomplete-input']`);
3301
3338
  }
3339
+ addOptionInput = this.getChild(`[data-automation-id$='adf-search-chip-autocomplete-input']`);
3302
3340
  async filterByTag(page, tag) {
3303
3341
  await page.searchFilters.tagsFilter.click();
3304
3342
  await page.searchFiltersTags.addOptionInput.fill(tag);
@@ -3307,7 +3345,6 @@ class SearchFiltersTags extends BaseComponent {
3307
3345
  await page.dataTable.progressBarWaitForReload();
3308
3346
  }
3309
3347
  }
3310
- SearchFiltersTags.rootElement = '.adf-search-filter-menu-card';
3311
3348
 
3312
3349
  /*!
3313
3350
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3333,11 +3370,12 @@ SearchFiltersTags.rootElement = '.adf-search-filter-menu-card';
3333
3370
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3334
3371
  */
3335
3372
  class Breadcrumb extends BaseComponent {
3373
+ static rootElement = 'adf-breadcrumb';
3374
+ items = this.getChild('.adf-breadcrumb-item');
3375
+ currentItem = this.getChild('.adf-breadcrumb-item-current');
3376
+ getItemByTitle = (name) => this.getChild(`.adf-breadcrumb-item[title=${name}]`);
3336
3377
  constructor(page) {
3337
3378
  super(page, Breadcrumb.rootElement);
3338
- this.items = this.getChild('.adf-breadcrumb-item');
3339
- this.currentItem = this.getChild('.adf-breadcrumb-item-current');
3340
- this.getItemByTitle = (name) => this.getChild(`.adf-breadcrumb-item[title=${name}]`);
3341
3379
  }
3342
3380
  async getAllItems() {
3343
3381
  const itemElements = await this.page.$$('adf-breadcrumb .adf-breadcrumb-item');
@@ -3352,7 +3390,6 @@ class Breadcrumb extends BaseComponent {
3352
3390
  await elem.click();
3353
3391
  }
3354
3392
  }
3355
- Breadcrumb.rootElement = 'adf-breadcrumb';
3356
3393
 
3357
3394
  /*!
3358
3395
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3378,18 +3415,19 @@ Breadcrumb.rootElement = 'adf-breadcrumb';
3378
3415
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3379
3416
  */
3380
3417
  class SidenavComponent extends BaseComponent {
3418
+ static rootElement = 'app-sidenav';
3419
+ personalFiles = this.getChild(`[data-automation-id='app.navbar.personalFiles']`);
3420
+ myLibraries = this.getChild(`[data-automation-id='app.navbar.libraries.files']`);
3421
+ favoriteLibraries = this.getChild(`[data-automation-id='app.navbar.libraries.favorite']`);
3422
+ shared = this.getChild(`[data-automation-id='app.navbar.shared']`);
3423
+ recentFiles = this.getChild(`[data-automation-id='app.navbar.recentFiles']`);
3424
+ favorites = this.getChild(`[data-automation-id='app.navbar.favorites']`);
3425
+ trash = this.getChild(`[data-automation-id='app.navbar.trashcan']`);
3426
+ sidenavToggle = this.getChild(`.aca-sidenav-header-title-logo`);
3427
+ sidenavExpand = this.page.getByTitle('Expand navigation menu');
3428
+ expandedSidenav = this.page.locator(`[data-automation-id='expanded']`);
3381
3429
  constructor(page) {
3382
3430
  super(page, SidenavComponent.rootElement);
3383
- this.personalFiles = this.getChild(`[data-automation-id='app.navbar.personalFiles']`);
3384
- this.myLibraries = this.getChild(`[data-automation-id='app.navbar.libraries.files']`);
3385
- this.favoriteLibraries = this.getChild(`[data-automation-id='app.navbar.libraries.favorite']`);
3386
- this.shared = this.getChild(`[data-automation-id='app.navbar.shared']`);
3387
- this.recentFiles = this.getChild(`[data-automation-id='app.navbar.recentFiles']`);
3388
- this.favorites = this.getChild(`[data-automation-id='app.navbar.favorites']`);
3389
- this.trash = this.getChild(`[data-automation-id='app.navbar.trashcan']`);
3390
- this.sidenavToggle = this.getChild(`.aca-sidenav-header-title-logo`);
3391
- this.sidenavExpand = this.page.getByTitle('Expand navigation menu');
3392
- this.expandedSidenav = this.page.locator(`[data-automation-id='expanded']`);
3393
3431
  }
3394
3432
  async isActive(name) {
3395
3433
  const cssClass = await this.getLinkLabel(name).getAttribute('class');
@@ -3419,6 +3457,7 @@ class SidenavComponent extends BaseComponent {
3419
3457
  }
3420
3458
  }
3421
3459
  async isSidenavExpanded() {
3460
+ await this.page.waitForTimeout(timeouts.tiny);
3422
3461
  return this.expandedSidenav.isVisible();
3423
3462
  }
3424
3463
  async expandSideNav() {
@@ -3436,7 +3475,6 @@ class SidenavComponent extends BaseComponent {
3436
3475
  }
3437
3476
  }
3438
3477
  }
3439
- SidenavComponent.rootElement = 'app-sidenav';
3440
3478
 
3441
3479
  /*!
3442
3480
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3462,13 +3500,13 @@ SidenavComponent.rootElement = 'app-sidenav';
3462
3500
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3463
3501
  */
3464
3502
  class ErrorComponent extends BaseComponent {
3503
+ static rootElement = 'aca-page-layout';
3504
+ genericError = this.getChild('aca-generic-error');
3505
+ genericErrorTitle = this.getChild('.generic-error__title');
3465
3506
  constructor(page) {
3466
3507
  super(page, ErrorComponent.rootElement);
3467
- this.genericError = this.getChild('aca-generic-error');
3468
- this.genericErrorTitle = this.getChild('.generic-error__title');
3469
3508
  }
3470
3509
  }
3471
- ErrorComponent.rootElement = 'aca-page-layout';
3472
3510
 
3473
3511
  /*!
3474
3512
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3518,6 +3556,10 @@ ErrorComponent.rootElement = 'aca-page-layout';
3518
3556
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3519
3557
  */
3520
3558
  class BasePage extends PlaywrightBase {
3559
+ pageUrl;
3560
+ urlRequest;
3561
+ snackBar;
3562
+ spinner;
3521
3563
  constructor(page, pageUrl, urlRequest) {
3522
3564
  super(page);
3523
3565
  this.pageUrl = pageUrl;
@@ -3596,15 +3638,16 @@ class BasePage extends PlaywrightBase {
3596
3638
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3597
3639
  */
3598
3640
  class LoginPage extends BasePage {
3641
+ static pageUrl = 'login';
3599
3642
  constructor(page) {
3600
3643
  super(page, LoginPage.pageUrl);
3601
- this.username = this.page.locator('#username');
3602
- this.password = this.page.locator('#password');
3603
- this.submitButton = this.page.locator('#login-button');
3604
- this.userProfileButton = this.page.locator('aca-user-menu button');
3605
- this.userLogOutButton = this.page.locator('aca-logout button');
3606
- this.passwordVisibility = this.page.locator('.adf-login-password-icon');
3607
3644
  }
3645
+ username = this.page.locator('#username');
3646
+ password = this.page.locator('#password');
3647
+ submitButton = this.page.locator('#login-button');
3648
+ userProfileButton = this.page.locator('aca-user-menu button');
3649
+ userLogOutButton = this.page.locator('aca-logout button');
3650
+ passwordVisibility = this.page.locator('.adf-login-password-icon');
3608
3651
  async loginUser(userData, options) {
3609
3652
  if (options?.withNavigation) {
3610
3653
  await this.navigate();
@@ -3630,7 +3673,6 @@ class LoginPage extends BasePage {
3630
3673
  }
3631
3674
  }
3632
3675
  }
3633
- LoginPage.pageUrl = 'login';
3634
3676
 
3635
3677
  /*!
3636
3678
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3656,18 +3698,18 @@ LoginPage.pageUrl = 'login';
3656
3698
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3657
3699
  */
3658
3700
  class NodesPage extends BasePage {
3701
+ static pageUrl = 'nodes';
3659
3702
  constructor(page) {
3660
3703
  super(page, NodesPage.pageUrl);
3661
- this.toolbar = new ToolbarComponent(this.page);
3662
- this.manageRulesDialog = new ManageRulesDialogComponent(this.page);
3663
- this.actionsDropdown = new ActionsDropdownComponent(this.page);
3664
- this.conditionsDropdown = new ConditionComponent(this.page);
3665
- this.manageRules = new ManageRules(this.page);
3666
- this.contentNodeSelectorDialog = new ContentNodeSelectorDialog(this.page);
3667
- this.linkRulesDialog = new LinkRulesDialog(this.page);
3668
3704
  }
3705
+ toolbar = new ToolbarComponent(this.page);
3706
+ manageRulesDialog = new ManageRulesDialogComponent(this.page);
3707
+ actionsDropdown = new ActionsDropdownComponent(this.page);
3708
+ conditionsDropdown = new ConditionComponent(this.page);
3709
+ manageRules = new ManageRules(this.page);
3710
+ contentNodeSelectorDialog = new ContentNodeSelectorDialog(this.page);
3711
+ linkRulesDialog = new LinkRulesDialog(this.page);
3669
3712
  }
3670
- NodesPage.pageUrl = 'nodes';
3671
3713
 
3672
3714
  /*!
3673
3715
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3693,30 +3735,31 @@ NodesPage.pageUrl = 'nodes';
3693
3735
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3694
3736
  */
3695
3737
  class PersonalFilesPage extends BasePage {
3738
+ static pageUrl = 'personal-files';
3696
3739
  constructor(page) {
3697
3740
  super(page, PersonalFilesPage.pageUrl);
3698
- this.acaHeader = new AcaHeader(this.page);
3699
- this.matMenu = new MatMenuComponent(this.page);
3700
- this.folderDialog = new AdfFolderDialogComponent(this.page);
3701
- this.contentNodeSelector = new ContentNodeSelectorDialog(this.page);
3702
- this.dataTable = new DataTableComponent(this.page);
3703
- this.viewer = new ViewerComponent(this.page);
3704
- this.passwordDialog = new PasswordOverlayDialogComponent(this.page);
3705
- this.viewerDialog = new ViewerOverlayDialogComponent(this.page);
3706
- this.breadcrumb = new Breadcrumb(this.page);
3707
- this.sidenav = new SidenavComponent(this.page);
3708
- this.createFromTemplateDialogComponent = new CreateFromTemplateDialogComponent(this.page);
3709
- this.pagination = new PaginationComponent(this.page);
3710
- this.errorDialog = new ErrorComponent(this.page);
3711
- this.shareDialog = new ShareDialogComponent(this.page);
3712
- this.confirmDialog = new AdfConfirmDialogComponent(this.page);
3713
- this.infoDrawer = new AdfInfoDrawerComponent(this.page);
3714
- this.uploadNewVersionDialog = new UploadNewVersionDialog(this.page);
3715
- this.manageVersionsDialog = new ManageVersionsDialog(this.page);
3716
- this.uploadDialog = new UploadDialog(this.page);
3717
- this.snackBar = new SnackBarComponent(this.page);
3718
- this.editDialog = new EditDialog(this.page);
3719
3741
  }
3742
+ acaHeader = new AcaHeader(this.page);
3743
+ matMenu = new MatMenuComponent(this.page);
3744
+ folderDialog = new AdfFolderDialogComponent(this.page);
3745
+ contentNodeSelector = new ContentNodeSelectorDialog(this.page);
3746
+ dataTable = new DataTableComponent(this.page);
3747
+ viewer = new ViewerComponent(this.page);
3748
+ passwordDialog = new PasswordOverlayDialogComponent(this.page);
3749
+ viewerDialog = new ViewerOverlayDialogComponent(this.page);
3750
+ breadcrumb = new Breadcrumb(this.page);
3751
+ sidenav = new SidenavComponent(this.page);
3752
+ createFromTemplateDialogComponent = new CreateFromTemplateDialogComponent(this.page);
3753
+ pagination = new PaginationComponent(this.page);
3754
+ errorDialog = new ErrorComponent(this.page);
3755
+ shareDialog = new ShareDialogComponent(this.page);
3756
+ confirmDialog = new AdfConfirmDialogComponent(this.page);
3757
+ infoDrawer = new AdfInfoDrawerComponent(this.page);
3758
+ uploadNewVersionDialog = new UploadNewVersionDialog(this.page);
3759
+ manageVersionsDialog = new ManageVersionsDialog(this.page);
3760
+ uploadDialog = new UploadDialog(this.page);
3761
+ snackBar = new SnackBarComponent(this.page);
3762
+ editDialog = new EditDialog(this.page);
3720
3763
  async selectCreateFolder() {
3721
3764
  await this.acaHeader.createButton.click();
3722
3765
  await this.matMenu.createFolder.click();
@@ -3749,7 +3792,6 @@ class PersonalFilesPage extends BasePage {
3749
3792
  await this.matMenu.clickMenuItem(action);
3750
3793
  }
3751
3794
  }
3752
- PersonalFilesPage.pageUrl = 'personal-files';
3753
3795
 
3754
3796
  /*!
3755
3797
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3775,22 +3817,23 @@ PersonalFilesPage.pageUrl = 'personal-files';
3775
3817
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3776
3818
  */
3777
3819
  class MyLibrariesPage extends BasePage {
3820
+ static pageUrl = 'libraries';
3778
3821
  constructor(page) {
3779
3822
  super(page, MyLibrariesPage.pageUrl);
3780
- this.acaHeader = new AcaHeader(this.page);
3781
- this.matMenu = new MatMenuComponent(this.page);
3782
- this.libraryDialog = new AdfLibraryDialogComponent(this.page);
3783
- this.dataTable = new DataTableComponent(this.page);
3784
- this.libraryDetails = new AdfInfoDrawerComponent(this.page);
3785
- this.viewer = new ViewerComponent(this.page);
3786
- this.viewerDialog = new ViewerOverlayDialogComponent(this.page);
3787
- this.copyMoveDialog = new ContentNodeSelectorDialog(this.page);
3788
- this.breadcrumb = new Breadcrumb(this.page);
3789
- this.sidenav = new SidenavComponent(this.page);
3790
- this.contentNodeSelector = new ContentNodeSelectorDialog(this.page);
3791
- this.createFromTemplateDialogComponent = new CreateFromTemplateDialogComponent(this.page);
3792
- this.confirmDialogComponent = new AdfConfirmDialogComponent(this.page);
3793
3823
  }
3824
+ acaHeader = new AcaHeader(this.page);
3825
+ matMenu = new MatMenuComponent(this.page);
3826
+ libraryDialog = new AdfLibraryDialogComponent(this.page);
3827
+ dataTable = new DataTableComponent(this.page);
3828
+ libraryDetails = new AdfInfoDrawerComponent(this.page);
3829
+ viewer = new ViewerComponent(this.page);
3830
+ viewerDialog = new ViewerOverlayDialogComponent(this.page);
3831
+ copyMoveDialog = new ContentNodeSelectorDialog(this.page);
3832
+ breadcrumb = new Breadcrumb(this.page);
3833
+ sidenav = new SidenavComponent(this.page);
3834
+ contentNodeSelector = new ContentNodeSelectorDialog(this.page);
3835
+ createFromTemplateDialogComponent = new CreateFromTemplateDialogComponent(this.page);
3836
+ confirmDialogComponent = new AdfConfirmDialogComponent(this.page);
3794
3837
  async selectCreateLibrary() {
3795
3838
  await this.acaHeader.createButton.click();
3796
3839
  await this.matMenu.createLibrary.click();
@@ -3800,7 +3843,6 @@ class MyLibrariesPage extends BasePage {
3800
3843
  await this.matMenu.clickMenuItem(buttonLabel);
3801
3844
  }
3802
3845
  }
3803
- MyLibrariesPage.pageUrl = 'libraries';
3804
3846
 
3805
3847
  /*!
3806
3848
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3826,21 +3868,21 @@ MyLibrariesPage.pageUrl = 'libraries';
3826
3868
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3827
3869
  */
3828
3870
  class RecentFilesPage extends BasePage {
3871
+ static pageUrl = 'recent-files';
3829
3872
  constructor(page) {
3830
3873
  super(page, RecentFilesPage.pageUrl);
3831
- this.acaHeader = new AcaHeader(this.page);
3832
- this.matMenu = new MatMenuComponent(this.page);
3833
- this.folderDialog = new AdfFolderDialogComponent(this.page);
3834
- this.dataTable = new DataTableComponent(this.page);
3835
- this.viewer = new ViewerComponent(this.page);
3836
- this.sidenav = new SidenavComponent(this.page);
3837
- this.breadcrumb = new Breadcrumb(this.page);
3838
- this.infoDrawer = new AdfInfoDrawerComponent(this.page);
3839
- this.contentNodeSelector = new ContentNodeSelectorDialog(this.page);
3840
- this.manageVersionsDialog = new ManageVersionsDialog(this.page);
3841
3874
  }
3875
+ acaHeader = new AcaHeader(this.page);
3876
+ matMenu = new MatMenuComponent(this.page);
3877
+ folderDialog = new AdfFolderDialogComponent(this.page);
3878
+ dataTable = new DataTableComponent(this.page);
3879
+ viewer = new ViewerComponent(this.page);
3880
+ sidenav = new SidenavComponent(this.page);
3881
+ breadcrumb = new Breadcrumb(this.page);
3882
+ infoDrawer = new AdfInfoDrawerComponent(this.page);
3883
+ contentNodeSelector = new ContentNodeSelectorDialog(this.page);
3884
+ manageVersionsDialog = new ManageVersionsDialog(this.page);
3842
3885
  }
3843
- RecentFilesPage.pageUrl = 'recent-files';
3844
3886
 
3845
3887
  /*!
3846
3888
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3866,21 +3908,21 @@ RecentFilesPage.pageUrl = 'recent-files';
3866
3908
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3867
3909
  */
3868
3910
  class SharedPage extends BasePage {
3911
+ static pageUrl = 'shared';
3869
3912
  constructor(page) {
3870
3913
  super(page, SharedPage.pageUrl);
3871
- this.acaHeader = new AcaHeader(this.page);
3872
- this.matMenu = new MatMenuComponent(this.page);
3873
- this.folderDialog = new AdfFolderDialogComponent(this.page);
3874
- this.dataTable = new DataTableComponent(this.page);
3875
- this.viewer = new ViewerComponent(this.page);
3876
- this.viewerDialog = new ViewerOverlayDialogComponent(this.page);
3877
- this.sidenav = new SidenavComponent(this.page);
3878
- this.breadcrumb = new Breadcrumb(this.page);
3879
- this.infoDrawer = new AdfInfoDrawerComponent(this.page);
3880
- this.manageVersionsDialog = new ManageVersionsDialog(this.page);
3881
3914
  }
3915
+ acaHeader = new AcaHeader(this.page);
3916
+ matMenu = new MatMenuComponent(this.page);
3917
+ folderDialog = new AdfFolderDialogComponent(this.page);
3918
+ dataTable = new DataTableComponent(this.page);
3919
+ viewer = new ViewerComponent(this.page);
3920
+ viewerDialog = new ViewerOverlayDialogComponent(this.page);
3921
+ sidenav = new SidenavComponent(this.page);
3922
+ breadcrumb = new Breadcrumb(this.page);
3923
+ infoDrawer = new AdfInfoDrawerComponent(this.page);
3924
+ manageVersionsDialog = new ManageVersionsDialog(this.page);
3882
3925
  }
3883
- SharedPage.pageUrl = 'shared';
3884
3926
 
3885
3927
  /*!
3886
3928
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3906,28 +3948,29 @@ SharedPage.pageUrl = 'shared';
3906
3948
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3907
3949
  */
3908
3950
  class SearchPage extends BasePage {
3951
+ static pageUrl = 'search';
3909
3952
  constructor(page) {
3910
3953
  super(page, SearchPage.pageUrl);
3911
- this.acaHeader = new AcaHeader(this.page);
3912
- this.matMenu = new MatMenuComponent(this.page);
3913
- this.folderDialog = new AdfFolderDialogComponent(this.page);
3914
- this.dataTable = new DataTableComponent(this.page);
3915
- this.viewer = new ViewerComponent(this.page);
3916
- this.searchInput = new SearchInputComponent(this.page);
3917
- this.searchOverlay = new SearchOverlayComponent(this.page);
3918
- this.searchSortingPicker = new SearchSortingPicker(this.page);
3919
- this.searchFilters = new SearchFilters(this.page);
3920
- this.searchFiltersTags = new SearchFiltersTags(this.page);
3921
- this.searchFiltersCategories = new SearchFiltersCategories(this.page);
3922
- this.searchFiltersDate = new SearchFiltersDate(this.page);
3923
- this.searchFiltersLocation = new SearchFiltersLocation(this.page);
3924
- this.searchFiltersProperties = new SearchFiltersProperties(this.page);
3925
- this.searchFiltersLogic = new SearchFiltersLogic(this.page);
3926
- this.sidenav = new SidenavComponent(this.page);
3927
- this.confirmDialogComponent = new AdfConfirmDialogComponent(this.page);
3928
- this.uploadNewVersionDialog = new UploadNewVersionDialog(this.page);
3929
- this.manageVersionsDialog = new ManageVersionsDialog(this.page);
3930
3954
  }
3955
+ acaHeader = new AcaHeader(this.page);
3956
+ matMenu = new MatMenuComponent(this.page);
3957
+ folderDialog = new AdfFolderDialogComponent(this.page);
3958
+ dataTable = new DataTableComponent(this.page);
3959
+ viewer = new ViewerComponent(this.page);
3960
+ searchInput = new SearchInputComponent(this.page);
3961
+ searchOverlay = new SearchOverlayComponent(this.page);
3962
+ searchSortingPicker = new SearchSortingPicker(this.page);
3963
+ searchFilters = new SearchFilters(this.page);
3964
+ searchFiltersTags = new SearchFiltersTags(this.page);
3965
+ searchFiltersCategories = new SearchFiltersCategories(this.page);
3966
+ searchFiltersDate = new SearchFiltersDate(this.page);
3967
+ searchFiltersLocation = new SearchFiltersLocation(this.page);
3968
+ searchFiltersProperties = new SearchFiltersProperties(this.page);
3969
+ searchFiltersLogic = new SearchFiltersLogic(this.page);
3970
+ sidenav = new SidenavComponent(this.page);
3971
+ confirmDialogComponent = new AdfConfirmDialogComponent(this.page);
3972
+ uploadNewVersionDialog = new UploadNewVersionDialog(this.page);
3973
+ manageVersionsDialog = new ManageVersionsDialog(this.page);
3931
3974
  async searchWithin(searchText, searchType) {
3932
3975
  await this.acaHeader.searchButton.click();
3933
3976
  await this.clickSearchButton();
@@ -3954,7 +3997,6 @@ class SearchPage extends BasePage {
3954
3997
  await this.searchInput.searchButton.click({ force: true });
3955
3998
  }
3956
3999
  }
3957
- SearchPage.pageUrl = 'search';
3958
4000
 
3959
4001
  /*!
3960
4002
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3980,25 +4022,25 @@ SearchPage.pageUrl = 'search';
3980
4022
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
3981
4023
  */
3982
4024
  class FavoritesPage extends BasePage {
4025
+ static pageUrl = 'favorites';
3983
4026
  constructor(page) {
3984
4027
  super(page, FavoritesPage.pageUrl);
3985
- this.acaHeader = new AcaHeader(this.page);
3986
- this.matMenu = new MatMenuComponent(this.page);
3987
- this.folderDialog = new AdfFolderDialogComponent(this.page);
3988
- this.dataTable = new DataTableComponent(this.page);
3989
- this.viewer = new ViewerComponent(this.page);
3990
- this.viewerDialog = new ViewerOverlayDialogComponent(this.page);
3991
- this.sidenav = new SidenavComponent(this.page);
3992
- this.pagination = new PaginationComponent(this.page);
3993
- this.breadcrumb = new Breadcrumb(this.page);
3994
- this.infoDrawer = new AdfInfoDrawerComponent(this.page);
3995
- this.manageVersionsDialog = new ManageVersionsDialog(this.page);
3996
4028
  }
4029
+ acaHeader = new AcaHeader(this.page);
4030
+ matMenu = new MatMenuComponent(this.page);
4031
+ folderDialog = new AdfFolderDialogComponent(this.page);
4032
+ dataTable = new DataTableComponent(this.page);
4033
+ viewer = new ViewerComponent(this.page);
4034
+ viewerDialog = new ViewerOverlayDialogComponent(this.page);
4035
+ sidenav = new SidenavComponent(this.page);
4036
+ pagination = new PaginationComponent(this.page);
4037
+ breadcrumb = new Breadcrumb(this.page);
4038
+ infoDrawer = new AdfInfoDrawerComponent(this.page);
4039
+ manageVersionsDialog = new ManageVersionsDialog(this.page);
3997
4040
  async waitForPageLoad() {
3998
4041
  await this.page.waitForURL(`**/${FavoritesPage.pageUrl}`);
3999
4042
  }
4000
4043
  }
4001
- FavoritesPage.pageUrl = 'favorites';
4002
4044
 
4003
4045
  /*!
4004
4046
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -4024,21 +4066,21 @@ FavoritesPage.pageUrl = 'favorites';
4024
4066
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
4025
4067
  */
4026
4068
  class TrashPage extends BasePage {
4069
+ static pageUrl = 'trashcan';
4027
4070
  constructor(page) {
4028
4071
  super(page, TrashPage.pageUrl);
4029
- this.acaHeader = new AcaHeader(this.page);
4030
- this.matMenu = new MatMenuComponent(this.page);
4031
- this.folderDialog = new AdfFolderDialogComponent(this.page);
4032
- this.dataTable = new DataTableComponent(this.page);
4033
- this.viewer = new ViewerComponent(this.page);
4034
- this.viewerDialog = new ViewerOverlayDialogComponent(this.page);
4035
- this.sidenav = new SidenavComponent(this.page);
4036
- this.breadcrumb = new Breadcrumb(this.page);
4037
- this.pagination = new PaginationComponent(this.page);
4038
- this.deleteDialog = new AdfDeleteTrashComponent(this.page);
4039
4072
  }
4073
+ acaHeader = new AcaHeader(this.page);
4074
+ matMenu = new MatMenuComponent(this.page);
4075
+ folderDialog = new AdfFolderDialogComponent(this.page);
4076
+ dataTable = new DataTableComponent(this.page);
4077
+ viewer = new ViewerComponent(this.page);
4078
+ viewerDialog = new ViewerOverlayDialogComponent(this.page);
4079
+ sidenav = new SidenavComponent(this.page);
4080
+ breadcrumb = new Breadcrumb(this.page);
4081
+ pagination = new PaginationComponent(this.page);
4082
+ deleteDialog = new AdfDeleteTrashComponent(this.page);
4040
4083
  }
4041
- TrashPage.pageUrl = 'trashcan';
4042
4084
 
4043
4085
  /*!
4044
4086
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -4064,19 +4106,19 @@ TrashPage.pageUrl = 'trashcan';
4064
4106
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
4065
4107
  */
4066
4108
  class FavoritesLibrariesPage extends BasePage {
4109
+ static pageUrl = 'favorite/libraries';
4067
4110
  constructor(page) {
4068
4111
  super(page, FavoritesLibrariesPage.pageUrl);
4069
- this.acaHeader = new AcaHeader(this.page);
4070
- this.matMenu = new MatMenuComponent(this.page);
4071
- this.folderDialog = new AdfFolderDialogComponent(this.page);
4072
- this.dataTable = new DataTableComponent(this.page);
4073
- this.viewer = new ViewerComponent(this.page);
4074
- this.viewerDialog = new ViewerOverlayDialogComponent(this.page);
4075
- this.sidenav = new SidenavComponent(this.page);
4076
- this.confirmDialogComponent = new AdfConfirmDialogComponent(this.page);
4077
4112
  }
4113
+ acaHeader = new AcaHeader(this.page);
4114
+ matMenu = new MatMenuComponent(this.page);
4115
+ folderDialog = new AdfFolderDialogComponent(this.page);
4116
+ dataTable = new DataTableComponent(this.page);
4117
+ viewer = new ViewerComponent(this.page);
4118
+ viewerDialog = new ViewerOverlayDialogComponent(this.page);
4119
+ sidenav = new SidenavComponent(this.page);
4120
+ confirmDialogComponent = new AdfConfirmDialogComponent(this.page);
4078
4121
  }
4079
- FavoritesLibrariesPage.pageUrl = 'favorite/libraries';
4080
4122
 
4081
4123
  /*!
4082
4124
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -4392,6 +4434,13 @@ const getGlobalConfig = {
4392
4434
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
4393
4435
  */
4394
4436
  class Person {
4437
+ id;
4438
+ password;
4439
+ firstName;
4440
+ lastName;
4441
+ email;
4442
+ enabled;
4443
+ properties;
4395
4444
  constructor(user) {
4396
4445
  this.id = user.username;
4397
4446
  this.password = user.password || user.username;
@@ -4434,6 +4483,26 @@ const config = {
4434
4483
  contextRoot: 'alfresco'
4435
4484
  };
4436
4485
  class ApiClientFactory {
4486
+ alfrescoApi;
4487
+ sites;
4488
+ upload;
4489
+ nodes;
4490
+ people;
4491
+ adminUsers;
4492
+ adminTenant;
4493
+ groups;
4494
+ queries;
4495
+ search;
4496
+ securityGroupsApi;
4497
+ securityMarksApi;
4498
+ contentClient;
4499
+ share;
4500
+ favorites;
4501
+ trashCan;
4502
+ commentsApi;
4503
+ queriesApi;
4504
+ categoriesApi;
4505
+ tagsApi;
4437
4506
  constructor() {
4438
4507
  this.alfrescoApi = new AlfrescoApi(config);
4439
4508
  }
@@ -4534,6 +4603,7 @@ class ApiClientFactory {
4534
4603
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
4535
4604
  */
4536
4605
  class RulesApi {
4606
+ apiService;
4537
4607
  constructor() {
4538
4608
  this.apiService = new ApiClientFactory();
4539
4609
  }
@@ -4672,92 +4742,96 @@ class RulesApi {
4672
4742
  }
4673
4743
  }
4674
4744
  class ActionTypes {
4745
+ key;
4746
+ value;
4747
+ static ADDFEATURES = new ActionTypes('ADDFEATURES', {
4748
+ actionDefinitionId: 'add-features',
4749
+ params: { 'aspect-name': 'cm:thumbnailed' }
4750
+ });
4751
+ static CHECKIN = new ActionTypes('CHECKIN', {
4752
+ actionDefinitionId: 'check-in',
4753
+ params: {
4754
+ description: 'test',
4755
+ minorChange: true
4756
+ }
4757
+ });
4758
+ static SPECIALISETYPE = new ActionTypes('SPECIALISETYPE', {
4759
+ actionDefinitionId: 'specialise-type',
4760
+ params: { 'type-name': 'sys:base' }
4761
+ });
4762
+ static RECORDABLEVERSION = new ActionTypes('RECORDABLEVERSION', {
4763
+ actionDefinitionId: 'recordable-version-config',
4764
+ params: { version: 'ALL' }
4765
+ });
4766
+ static SETPROPERTYVALUE = new ActionTypes('SETPROPERTYVALUE', {
4767
+ actionDefinitionId: 'set-property-value',
4768
+ params: { property: 'dl:ganttPercentComplete', value: 'test' }
4769
+ });
4770
+ static actions = [
4771
+ ActionTypes.ADDFEATURES.value,
4772
+ ActionTypes.CHECKIN.value,
4773
+ ActionTypes.RECORDABLEVERSION.value,
4774
+ ActionTypes.SPECIALISETYPE.value,
4775
+ ActionTypes.SETPROPERTYVALUE.value
4776
+ ];
4675
4777
  constructor(key, value) {
4676
4778
  this.key = key;
4677
4779
  this.value = value;
4678
4780
  }
4679
4781
  }
4680
- ActionTypes.ADDFEATURES = new ActionTypes('ADDFEATURES', {
4681
- actionDefinitionId: 'add-features',
4682
- params: { 'aspect-name': 'cm:thumbnailed' }
4683
- });
4684
- ActionTypes.CHECKIN = new ActionTypes('CHECKIN', {
4685
- actionDefinitionId: 'check-in',
4686
- params: {
4687
- description: 'test',
4688
- minorChange: true
4689
- }
4690
- });
4691
- ActionTypes.SPECIALISETYPE = new ActionTypes('SPECIALISETYPE', {
4692
- actionDefinitionId: 'specialise-type',
4693
- params: { 'type-name': 'sys:base' }
4694
- });
4695
- ActionTypes.RECORDABLEVERSION = new ActionTypes('RECORDABLEVERSION', {
4696
- actionDefinitionId: 'recordable-version-config',
4697
- params: { version: 'ALL' }
4698
- });
4699
- ActionTypes.SETPROPERTYVALUE = new ActionTypes('SETPROPERTYVALUE', {
4700
- actionDefinitionId: 'set-property-value',
4701
- params: { property: 'dl:ganttPercentComplete', value: 'test' }
4702
- });
4703
- ActionTypes.actions = [
4704
- ActionTypes.ADDFEATURES.value,
4705
- ActionTypes.CHECKIN.value,
4706
- ActionTypes.RECORDABLEVERSION.value,
4707
- ActionTypes.SPECIALISETYPE.value,
4708
- ActionTypes.SETPROPERTYVALUE.value
4709
- ];
4710
4782
  class ConditionsTypes {
4783
+ key;
4784
+ value;
4785
+ static MIMETYPE = new ConditionsTypes('MIMETYPE', {
4786
+ inverted: false,
4787
+ booleanMode: 'and',
4788
+ simpleConditions: [
4789
+ {
4790
+ field: 'mimetype',
4791
+ comparator: 'equals',
4792
+ parameter: 'video/3gpp'
4793
+ }
4794
+ ]
4795
+ });
4796
+ static CMNAME = new ConditionsTypes('CM:NAME', {
4797
+ inverted: false,
4798
+ booleanMode: 'and',
4799
+ simpleConditions: [
4800
+ {
4801
+ field: 'cm:name',
4802
+ comparator: 'equals',
4803
+ parameter: 'testname'
4804
+ }
4805
+ ]
4806
+ });
4807
+ static SIZE = new ConditionsTypes('SIZE', {
4808
+ inverted: false,
4809
+ booleanMode: 'and',
4810
+ simpleConditions: [
4811
+ {
4812
+ field: 'size',
4813
+ comparator: 'equals',
4814
+ parameter: '345'
4815
+ }
4816
+ ]
4817
+ });
4818
+ static TAG = new ConditionsTypes('TAG', {
4819
+ inverted: false,
4820
+ booleanMode: 'and',
4821
+ simpleConditions: [
4822
+ {
4823
+ field: 'tag',
4824
+ comparator: 'equals',
4825
+ parameter: 'testtag'
4826
+ }
4827
+ ]
4828
+ });
4829
+ static conditions = [ConditionsTypes.MIMETYPE.value, ConditionsTypes.CMNAME.value, ConditionsTypes.SIZE.value, ConditionsTypes.TAG.value];
4711
4830
  constructor(key, value) {
4712
4831
  this.key = key;
4713
4832
  this.value = value;
4714
4833
  }
4715
4834
  }
4716
- ConditionsTypes.MIMETYPE = new ConditionsTypes('MIMETYPE', {
4717
- inverted: false,
4718
- booleanMode: 'and',
4719
- simpleConditions: [
4720
- {
4721
- field: 'mimetype',
4722
- comparator: 'equals',
4723
- parameter: 'video/3gpp'
4724
- }
4725
- ]
4726
- });
4727
- ConditionsTypes.CMNAME = new ConditionsTypes('CM:NAME', {
4728
- inverted: false,
4729
- booleanMode: 'and',
4730
- simpleConditions: [
4731
- {
4732
- field: 'cm:name',
4733
- comparator: 'equals',
4734
- parameter: 'testname'
4735
- }
4736
- ]
4737
- });
4738
- ConditionsTypes.SIZE = new ConditionsTypes('SIZE', {
4739
- inverted: false,
4740
- booleanMode: 'and',
4741
- simpleConditions: [
4742
- {
4743
- field: 'size',
4744
- comparator: 'equals',
4745
- parameter: '345'
4746
- }
4747
- ]
4748
- });
4749
- ConditionsTypes.TAG = new ConditionsTypes('TAG', {
4750
- inverted: false,
4751
- booleanMode: 'and',
4752
- simpleConditions: [
4753
- {
4754
- field: 'tag',
4755
- comparator: 'equals',
4756
- parameter: 'testtag'
4757
- }
4758
- ]
4759
- });
4760
- ConditionsTypes.conditions = [ConditionsTypes.MIMETYPE.value, ConditionsTypes.CMNAME.value, ConditionsTypes.SIZE.value, ConditionsTypes.TAG.value];
4761
4835
 
4762
4836
  /*!
4763
4837
  * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -4783,6 +4857,7 @@ ConditionsTypes.conditions = [ConditionsTypes.MIMETYPE.value, ConditionsTypes.CM
4783
4857
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
4784
4858
  */
4785
4859
  class FileActionsApi {
4860
+ apiService;
4786
4861
  constructor() {
4787
4862
  this.apiService = new ApiClientFactory();
4788
4863
  }
@@ -4868,7 +4943,7 @@ class FileActionsApi {
4868
4943
  return Promise.resolve(isLocked);
4869
4944
  }
4870
4945
  };
4871
- return Utils.retryCall(locked, data.retry);
4946
+ return await Utils.retryCall(locked, data.retry);
4872
4947
  }
4873
4948
  catch { }
4874
4949
  return isLocked;
@@ -4945,6 +5020,7 @@ class FileActionsApi {
4945
5020
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
4946
5021
  */
4947
5022
  class SharedLinksApi {
5023
+ apiService;
4948
5024
  constructor() {
4949
5025
  this.apiService = new ApiClientFactory();
4950
5026
  }
@@ -5004,7 +5080,7 @@ class SharedLinksApi {
5004
5080
  return Promise.reject(foundItems);
5005
5081
  }
5006
5082
  };
5007
- return Utils.retryCall(sharedFile);
5083
+ return await Utils.retryCall(sharedFile);
5008
5084
  }
5009
5085
  catch (error) {
5010
5086
  console.error(`SharedLinksApi waitForFilesToBeShared : catch : ${error}`);
@@ -5045,7 +5121,7 @@ class SharedLinksApi {
5045
5121
  return Promise.resolve(foundItems);
5046
5122
  }
5047
5123
  };
5048
- return Utils.retryCall(sharedFile);
5124
+ return await Utils.retryCall(sharedFile);
5049
5125
  }
5050
5126
  catch (error) {
5051
5127
  console.error(`SharedLinksApi waitForFilesToNotBeShared : catch : ${error}`);
@@ -5078,6 +5154,7 @@ class SharedLinksApi {
5078
5154
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
5079
5155
  */
5080
5156
  class FavoritesPageApi {
5157
+ apiService;
5081
5158
  constructor() {
5082
5159
  this.apiService = new ApiClientFactory();
5083
5160
  }
@@ -5138,7 +5215,7 @@ class FavoritesPageApi {
5138
5215
  return Promise.resolve(isFavorite);
5139
5216
  }
5140
5217
  };
5141
- return Utils.retryCall(favorite);
5218
+ return await Utils.retryCall(favorite);
5142
5219
  }
5143
5220
  catch (error) { }
5144
5221
  return isFavorite;
@@ -5162,7 +5239,7 @@ class FavoritesPageApi {
5162
5239
  return Promise.resolve(totalItems);
5163
5240
  }
5164
5241
  };
5165
- return Utils.retryCall(favoriteFiles);
5242
+ return await Utils.retryCall(favoriteFiles);
5166
5243
  }
5167
5244
  catch { }
5168
5245
  }
@@ -5271,6 +5348,7 @@ function flattenNodeContentTree(content, relativePath = '/') {
5271
5348
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
5272
5349
  */
5273
5350
  class NodesApi {
5351
+ apiService;
5274
5352
  constructor() {
5275
5353
  this.apiService = new ApiClientFactory();
5276
5354
  }
@@ -5281,7 +5359,7 @@ class NodesApi {
5281
5359
  }
5282
5360
  async createFolder(name, parentId = '-my-', title = '', description = '', author = '', aspectNames = null) {
5283
5361
  try {
5284
- return this.createNode('cm:folder', name, parentId, title, description, null, author, null, aspectNames);
5362
+ return await this.createNode('cm:folder', name, parentId, title, description, null, author, null, aspectNames);
5285
5363
  }
5286
5364
  catch (error) {
5287
5365
  console.error(`${this.constructor.name} ${this.createFolder.name}`, error);
@@ -5290,7 +5368,7 @@ class NodesApi {
5290
5368
  }
5291
5369
  async createFile(name, parentId = '-my-', title = '', description = '', author = '', majorVersion = true, aspectNames = null) {
5292
5370
  try {
5293
- return this.createNode('cm:content', name, parentId, title, description, null, author, majorVersion, aspectNames);
5371
+ return await this.createNode('cm:content', name, parentId, title, description, null, author, majorVersion, aspectNames);
5294
5372
  }
5295
5373
  catch (error) {
5296
5374
  console.error(`${this.constructor.name} ${this.createFile.name}`, error);
@@ -5299,7 +5377,7 @@ class NodesApi {
5299
5377
  }
5300
5378
  async createFiles(names, relativePath = '/') {
5301
5379
  try {
5302
- return this.createContent({ files: names }, relativePath);
5380
+ return await this.createContent({ files: names }, relativePath);
5303
5381
  }
5304
5382
  catch (error) {
5305
5383
  console.error(`${this.constructor.name} ${this.createFiles.name}: ${error}`);
@@ -5308,7 +5386,7 @@ class NodesApi {
5308
5386
  }
5309
5387
  async createFolders(names, relativePath = '/') {
5310
5388
  try {
5311
- return this.createContent({ folders: names }, relativePath);
5389
+ return await this.createContent({ folders: names }, relativePath);
5312
5390
  }
5313
5391
  catch (error) {
5314
5392
  console.error(`${this.constructor.name} ${this.createFolders.name}: ${error}`);
@@ -5610,7 +5688,7 @@ class NodesApi {
5610
5688
  }
5611
5689
  }
5612
5690
  async createLinkToFileName(originalFileName, originalFileParentId, destinationParentId) {
5613
- destinationParentId ?? (destinationParentId = originalFileParentId);
5691
+ destinationParentId ??= originalFileParentId;
5614
5692
  try {
5615
5693
  const nodeId = await this.getNodeIdFromParent(originalFileName, originalFileParentId);
5616
5694
  return this.createFileLink(nodeId, destinationParentId);
@@ -5621,7 +5699,7 @@ class NodesApi {
5621
5699
  }
5622
5700
  }
5623
5701
  async createLinkToFolderName(originalFolderName, originalFolderParentId, destinationParentId) {
5624
- destinationParentId ?? (destinationParentId = originalFolderParentId);
5702
+ destinationParentId ??= originalFolderParentId;
5625
5703
  try {
5626
5704
  const nodeId = await this.getNodeIdFromParent(originalFolderName, originalFolderParentId);
5627
5705
  return this.createFolderLink(nodeId, destinationParentId);
@@ -5696,6 +5774,7 @@ class NodesApi {
5696
5774
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
5697
5775
  */
5698
5776
  class SitesApi {
5777
+ apiService;
5699
5778
  constructor() {
5700
5779
  this.apiService = new ApiClientFactory();
5701
5780
  }
@@ -5849,6 +5928,7 @@ class SitesApi {
5849
5928
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
5850
5929
  */
5851
5930
  class SearchPageApi {
5931
+ apiService;
5852
5932
  constructor() {
5853
5933
  this.apiService = new ApiClientFactory();
5854
5934
  }
@@ -5890,7 +5970,7 @@ class SearchPageApi {
5890
5970
  return Promise.resolve(totalItems);
5891
5971
  }
5892
5972
  };
5893
- return Utils.retryCall(searchFiles);
5973
+ return await Utils.retryCall(searchFiles);
5894
5974
  }
5895
5975
  catch { }
5896
5976
  }
@@ -5920,9 +6000,7 @@ class SearchPageApi {
5920
6000
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
5921
6001
  */
5922
6002
  class TrashcanApi {
5923
- constructor() {
5924
- this.apiService = new ApiClientFactory();
5925
- }
6003
+ apiService = new ApiClientFactory();
5926
6004
  static async initialize(userName, password) {
5927
6005
  const classObj = new TrashcanApi();
5928
6006
  await classObj.apiService.setUpAcaBackend(userName, password);
@@ -5973,6 +6051,7 @@ class TrashcanApi {
5973
6051
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
5974
6052
  */
5975
6053
  class QueriesApi {
6054
+ apiService;
5976
6055
  constructor() {
5977
6056
  this.apiService = new ApiClientFactory();
5978
6057
  }
@@ -5992,7 +6071,7 @@ class QueriesApi {
5992
6071
  return Promise.resolve(totalItems);
5993
6072
  }
5994
6073
  };
5995
- return Utils.retryCall(sites);
6074
+ return await Utils.retryCall(sites);
5996
6075
  }
5997
6076
  catch (error) {
5998
6077
  console.error(`QueriesApi waitForSites : catch : `);
@@ -6040,6 +6119,7 @@ class QueriesApi {
6040
6119
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
6041
6120
  */
6042
6121
  class CategoriesApi {
6122
+ apiService;
6043
6123
  constructor() {
6044
6124
  this.apiService = new ApiClientFactory();
6045
6125
  }
@@ -6104,6 +6184,7 @@ class CategoriesApi {
6104
6184
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
6105
6185
  */
6106
6186
  class TagsApi {
6187
+ apiService;
6107
6188
  constructor() {
6108
6189
  this.apiService = new ApiClientFactory();
6109
6190
  }
@@ -6130,9 +6211,39 @@ class TagsApi {
6130
6211
  return null;
6131
6212
  }
6132
6213
  }
6133
- async deleteTag(tagId) {
6214
+ async deleteTags(tagIds) {
6215
+ try {
6216
+ for (const tagId of tagIds) {
6217
+ await this.apiService.tagsApi.deleteTag(tagId);
6218
+ }
6219
+ }
6220
+ catch (error) {
6221
+ console.error(error);
6222
+ }
6223
+ }
6224
+ async listTagsForNode(nodeId) {
6134
6225
  try {
6135
- return this.apiService.tagsApi.deleteTag(tagId);
6226
+ return this.apiService.tagsApi.listTagsForNode(nodeId);
6227
+ }
6228
+ catch (error) {
6229
+ console.error(error);
6230
+ return null;
6231
+ }
6232
+ }
6233
+ async listTags(params) {
6234
+ try {
6235
+ return this.apiService.tagsApi.listTags(params);
6236
+ }
6237
+ catch (error) {
6238
+ console.error(error);
6239
+ return null;
6240
+ }
6241
+ }
6242
+ async deleteTagsByTagName(tagName) {
6243
+ try {
6244
+ const response = await this.listTags({ tag: tagName, matching: true });
6245
+ const tagIds = response.list.entries.map((entry) => entry.entry.id);
6246
+ await this.deleteTags(tagIds);
6136
6247
  }
6137
6248
  catch (error) {
6138
6249
  console.error(error);
@@ -6196,11 +6307,17 @@ function generateRandomCharset(length = 8, charSet) {
6196
6307
  return text;
6197
6308
  }
6198
6309
  class UserModel {
6310
+ firstName = generateRandomCharset(7, LOWER_CASE_ALPHA);
6311
+ lastName = generateRandomCharset(7, LOWER_CASE_ALPHA);
6312
+ password = generateRandomCharset(7, LOWER_CASE_ALPHA);
6313
+ email;
6314
+ username;
6315
+ idIdentityService;
6316
+ type = 'enterprise';
6317
+ tenantId;
6318
+ company;
6319
+ id;
6199
6320
  constructor(details = {}) {
6200
- this.firstName = generateRandomCharset(7, LOWER_CASE_ALPHA);
6201
- this.lastName = generateRandomCharset(7, LOWER_CASE_ALPHA);
6202
- this.password = generateRandomCharset(7, LOWER_CASE_ALPHA);
6203
- this.type = 'enterprise';
6204
6321
  const EMAIL_DOMAIN = 'alfresco';
6205
6322
  this.firstName = details.firstName ?? this.firstName;
6206
6323
  this.lastName = details.lastName ?? this.lastName;
@@ -6845,6 +6962,30 @@ const TEST_FILES = {
6845
6962
  path: resolve(__dirname, 'file-jpg-1mb.jpg'),
6846
6963
  name: 'file-jpg-1mb'
6847
6964
  },
6965
+ PNG_FILE: {
6966
+ path: resolve(__dirname, 'file-png.png'),
6967
+ name: 'file-png'
6968
+ },
6969
+ GIF_FILE: {
6970
+ path: resolve(__dirname, 'file-gif.gif'),
6971
+ name: 'file-gif'
6972
+ },
6973
+ PPTX_FILE: {
6974
+ path: resolve(__dirname, 'file-pptx.pptx'),
6975
+ name: 'file-pptx'
6976
+ },
6977
+ MP3_FILE: {
6978
+ path: resolve(__dirname, 'file-mp3.mp3'),
6979
+ name: 'file-mp3'
6980
+ },
6981
+ MP4_FILE: {
6982
+ path: resolve(__dirname, 'file-mp4.mp4'),
6983
+ name: 'file-mp4'
6984
+ },
6985
+ WEBM_FILE: {
6986
+ path: resolve(__dirname, 'file-webm.webm'),
6987
+ name: 'file-webm'
6988
+ },
6848
6989
  PDF_PROTECTED2: {
6849
6990
  path: resolve(__dirname, 'protected.pdf'),
6850
6991
  name: 'file-protected',