@redhat-developer/page-objects 1.0.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 (127) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +5 -0
  3. package/out/components/AbstractElement.d.ts +35 -0
  4. package/out/components/AbstractElement.js +69 -0
  5. package/out/components/ElementWithContextMenu.d.ts +11 -0
  6. package/out/components/ElementWithContextMenu.js +38 -0
  7. package/out/components/WebviewMixin.d.ts +29 -0
  8. package/out/components/WebviewMixin.js +70 -0
  9. package/out/components/activityBar/ActionsControl.d.ts +18 -0
  10. package/out/components/activityBar/ActionsControl.js +27 -0
  11. package/out/components/activityBar/ActivityBar.d.ts +30 -0
  12. package/out/components/activityBar/ActivityBar.js +71 -0
  13. package/out/components/activityBar/ViewControl.d.ts +23 -0
  14. package/out/components/activityBar/ViewControl.js +56 -0
  15. package/out/components/bottomBar/AbstractViews.d.ts +38 -0
  16. package/out/components/bottomBar/AbstractViews.js +88 -0
  17. package/out/components/bottomBar/BottomBarPanel.d.ts +47 -0
  18. package/out/components/bottomBar/BottomBarPanel.js +123 -0
  19. package/out/components/bottomBar/ProblemsView.d.ts +88 -0
  20. package/out/components/bottomBar/ProblemsView.js +149 -0
  21. package/out/components/bottomBar/Views.d.ts +75 -0
  22. package/out/components/bottomBar/Views.js +195 -0
  23. package/out/components/bottomBar/WebviewView.d.ts +12 -0
  24. package/out/components/bottomBar/WebviewView.js +21 -0
  25. package/out/components/dialog/ModalDialog.d.ts +32 -0
  26. package/out/components/dialog/ModalDialog.js +56 -0
  27. package/out/components/editor/Breakpoint.d.ts +18 -0
  28. package/out/components/editor/Breakpoint.js +38 -0
  29. package/out/components/editor/ContentAssist.d.ts +34 -0
  30. package/out/components/editor/ContentAssist.js +94 -0
  31. package/out/components/editor/CustomEditor.d.ts +26 -0
  32. package/out/components/editor/CustomEditor.js +45 -0
  33. package/out/components/editor/DiffEditor.d.ts +19 -0
  34. package/out/components/editor/DiffEditor.js +31 -0
  35. package/out/components/editor/Editor.d.ts +17 -0
  36. package/out/components/editor/Editor.js +29 -0
  37. package/out/components/editor/EditorAction.d.ts +10 -0
  38. package/out/components/editor/EditorAction.js +17 -0
  39. package/out/components/editor/EditorView.d.ts +153 -0
  40. package/out/components/editor/EditorView.js +350 -0
  41. package/out/components/editor/SettingsEditor.d.ts +121 -0
  42. package/out/components/editor/SettingsEditor.js +278 -0
  43. package/out/components/editor/TextEditor.d.ts +265 -0
  44. package/out/components/editor/TextEditor.js +707 -0
  45. package/out/components/editor/WebView.d.ts +11 -0
  46. package/out/components/editor/WebView.js +38 -0
  47. package/out/components/menu/ContextMenu.d.ts +37 -0
  48. package/out/components/menu/ContextMenu.js +123 -0
  49. package/out/components/menu/MacTitleBar.d.ts +16 -0
  50. package/out/components/menu/MacTitleBar.js +41 -0
  51. package/out/components/menu/Menu.d.ts +38 -0
  52. package/out/components/menu/Menu.js +53 -0
  53. package/out/components/menu/MenuItem.d.ts +24 -0
  54. package/out/components/menu/MenuItem.js +36 -0
  55. package/out/components/menu/TitleBar.d.ts +36 -0
  56. package/out/components/menu/TitleBar.js +78 -0
  57. package/out/components/menu/WindowControls.d.ts +28 -0
  58. package/out/components/menu/WindowControls.js +59 -0
  59. package/out/components/sidebar/SideBarView.d.ts +18 -0
  60. package/out/components/sidebar/SideBarView.js +29 -0
  61. package/out/components/sidebar/ViewContent.d.ts +57 -0
  62. package/out/components/sidebar/ViewContent.js +76 -0
  63. package/out/components/sidebar/ViewItem.d.ts +97 -0
  64. package/out/components/sidebar/ViewItem.js +192 -0
  65. package/out/components/sidebar/ViewSection.d.ts +98 -0
  66. package/out/components/sidebar/ViewSection.js +164 -0
  67. package/out/components/sidebar/ViewTitlePart.d.ts +35 -0
  68. package/out/components/sidebar/ViewTitlePart.js +59 -0
  69. package/out/components/sidebar/WelcomeContent.d.ts +47 -0
  70. package/out/components/sidebar/WelcomeContent.js +72 -0
  71. package/out/components/sidebar/debug/DebugView.d.ts +33 -0
  72. package/out/components/sidebar/debug/DebugView.js +70 -0
  73. package/out/components/sidebar/extensions/ExtensionsViewItem.d.ts +48 -0
  74. package/out/components/sidebar/extensions/ExtensionsViewItem.js +93 -0
  75. package/out/components/sidebar/extensions/ExtensionsViewSection.d.ts +33 -0
  76. package/out/components/sidebar/extensions/ExtensionsViewSection.js +117 -0
  77. package/out/components/sidebar/scm/NewScmView.d.ts +34 -0
  78. package/out/components/sidebar/scm/NewScmView.js +155 -0
  79. package/out/components/sidebar/scm/ScmView.d.ts +110 -0
  80. package/out/components/sidebar/scm/ScmView.js +275 -0
  81. package/out/components/sidebar/tree/TreeSection.d.ts +14 -0
  82. package/out/components/sidebar/tree/TreeSection.js +55 -0
  83. package/out/components/sidebar/tree/custom/CustomTreeItem.d.ts +15 -0
  84. package/out/components/sidebar/tree/custom/CustomTreeItem.js +36 -0
  85. package/out/components/sidebar/tree/custom/CustomTreeSection.d.ts +26 -0
  86. package/out/components/sidebar/tree/custom/CustomTreeSection.js +66 -0
  87. package/out/components/sidebar/tree/debug/BreakpointSectionItem.d.ts +33 -0
  88. package/out/components/sidebar/tree/debug/BreakpointSectionItem.js +63 -0
  89. package/out/components/sidebar/tree/debug/DebugBreakpointSection.d.ts +7 -0
  90. package/out/components/sidebar/tree/debug/DebugBreakpointSection.js +12 -0
  91. package/out/components/sidebar/tree/debug/DebugVariablesSection.d.ts +7 -0
  92. package/out/components/sidebar/tree/debug/DebugVariablesSection.js +12 -0
  93. package/out/components/sidebar/tree/debug/SectionBreakpoint.d.ts +3 -0
  94. package/out/components/sidebar/tree/debug/SectionBreakpoint.js +8 -0
  95. package/out/components/sidebar/tree/debug/VariableSectionItem.d.ts +33 -0
  96. package/out/components/sidebar/tree/debug/VariableSectionItem.js +60 -0
  97. package/out/components/sidebar/tree/default/DefaultTreeItem.d.ts +14 -0
  98. package/out/components/sidebar/tree/default/DefaultTreeItem.js +39 -0
  99. package/out/components/sidebar/tree/default/DefaultTreeSection.d.ts +9 -0
  100. package/out/components/sidebar/tree/default/DefaultTreeSection.js +44 -0
  101. package/out/components/statusBar/StatusBar.d.ts +96 -0
  102. package/out/components/statusBar/StatusBar.js +159 -0
  103. package/out/components/workbench/DebugToolbar.d.ts +52 -0
  104. package/out/components/workbench/DebugToolbar.js +93 -0
  105. package/out/components/workbench/Notification.d.ts +78 -0
  106. package/out/components/workbench/Notification.js +134 -0
  107. package/out/components/workbench/NotificationsCenter.d.ts +27 -0
  108. package/out/components/workbench/NotificationsCenter.js +57 -0
  109. package/out/components/workbench/Workbench.d.ts +69 -0
  110. package/out/components/workbench/Workbench.js +135 -0
  111. package/out/components/workbench/input/Input.d.ts +107 -0
  112. package/out/components/workbench/input/Input.js +249 -0
  113. package/out/components/workbench/input/InputBox.d.ts +30 -0
  114. package/out/components/workbench/input/InputBox.js +75 -0
  115. package/out/components/workbench/input/QuickOpenBox.d.ts +15 -0
  116. package/out/components/workbench/input/QuickOpenBox.js +41 -0
  117. package/out/conditions/WaitForAttribute.d.ts +8 -0
  118. package/out/conditions/WaitForAttribute.js +17 -0
  119. package/out/errors/NullAttributeError.d.ts +3 -0
  120. package/out/errors/NullAttributeError.js +11 -0
  121. package/out/index.d.ts +67 -0
  122. package/out/index.js +95 -0
  123. package/out/locators/loader.d.ts +20 -0
  124. package/out/locators/loader.js +108 -0
  125. package/out/locators/locators.d.ts +463 -0
  126. package/out/locators/locators.js +52 -0
  127. package/package.json +48 -0
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NullAttributeError = void 0;
4
+ class NullAttributeError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = 'NullAttributeError';
8
+ }
9
+ }
10
+ exports.NullAttributeError = NullAttributeError;
11
+ //# sourceMappingURL=NullAttributeError.js.map
package/out/index.d.ts ADDED
@@ -0,0 +1,67 @@
1
+ import { WebDriver } from 'selenium-webdriver';
2
+ export * from 'selenium-webdriver';
3
+ export * from './locators/locators';
4
+ export * from './errors/NullAttributeError';
5
+ export * from './components/menu/Menu';
6
+ export * from './components/menu/MenuItem';
7
+ export * from './components/menu/TitleBar';
8
+ export * from './components/menu/MacTitleBar';
9
+ export * from './components/menu/ContextMenu';
10
+ export * from './components/menu/WindowControls';
11
+ export * from './components/activityBar/ActivityBar';
12
+ export * from './components/activityBar/ViewControl';
13
+ export * from './components/activityBar/ActionsControl';
14
+ export * from './components/sidebar/SideBarView';
15
+ export * from './components/sidebar/ViewTitlePart';
16
+ export * from './components/sidebar/ViewContent';
17
+ export * from './components/sidebar/ViewSection';
18
+ export * from './components/sidebar/ViewItem';
19
+ export * from './components/sidebar/WelcomeContent';
20
+ export * from './components/sidebar/tree/TreeSection';
21
+ export * from './components/sidebar/tree/default/DefaultTreeSection';
22
+ export * from './components/sidebar/tree/default/DefaultTreeItem';
23
+ export * from './components/sidebar/tree/custom/CustomTreeSection';
24
+ export * from './components/sidebar/tree/custom/CustomTreeItem';
25
+ export * from './components/sidebar/tree/debug/DebugBreakpointSection';
26
+ export * from './components/sidebar/tree/debug/BreakpointSectionItem';
27
+ export * from './components/sidebar/tree/debug/DebugVariablesSection';
28
+ export * from './components/sidebar/tree/debug/VariableSectionItem';
29
+ export * from './components/sidebar/extensions/ExtensionsViewSection';
30
+ export * from './components/sidebar/extensions/ExtensionsViewItem';
31
+ export { ScmView, ScmProvider, ScmChange } from './components/sidebar/scm/ScmView';
32
+ export * from './components/sidebar/scm/NewScmView';
33
+ export * from './components/sidebar/debug/DebugView';
34
+ export * from './components/bottomBar/BottomBarPanel';
35
+ export * from './components/bottomBar/ProblemsView';
36
+ export * from './components/bottomBar/WebviewView';
37
+ export * from './components/bottomBar/Views';
38
+ export * from './components/statusBar/StatusBar';
39
+ export * from './components/editor/EditorView';
40
+ export * from './components/editor/EditorAction';
41
+ export * from './components/editor/Breakpoint';
42
+ export * from './components/editor/TextEditor';
43
+ export * from './components/editor/Editor';
44
+ export * from './components/editor/SettingsEditor';
45
+ export * from './components/editor/DiffEditor';
46
+ export * from './components/editor/WebView';
47
+ export * from './components/editor/ContentAssist';
48
+ export * from './components/editor/CustomEditor';
49
+ export { Notification, NotificationType } from './components/workbench/Notification';
50
+ export * from './components/workbench/NotificationsCenter';
51
+ export * from './components/workbench/input/Input';
52
+ export * from './components/workbench/input/InputBox';
53
+ export * from './components/workbench/input/QuickOpenBox';
54
+ export * from './components/workbench/Workbench';
55
+ export * from './components/workbench/DebugToolbar';
56
+ export * from './components/dialog/ModalDialog';
57
+ export * from './conditions/WaitForAttribute';
58
+ /**
59
+ * Initialize the page objects for your tests
60
+ *
61
+ * @param currentVersion version of the locators to load
62
+ * @param baseVersion base version of the locators if you have multiple versions with diffs, otherwise leave the same as currentVersion
63
+ * @param locatorFolder folder that contains locator files
64
+ * @param driver WebDriver instance
65
+ * @param browserID identifier/name of the browser (i.e. vscode)
66
+ */
67
+ export declare function initPageObjects(currentVersion: string, baseVersion: string, locatorFolder: string, driver: WebDriver, browserID: string): void;
package/out/index.js ADDED
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.initPageObjects = exports.NotificationType = exports.Notification = exports.ScmChange = exports.ScmProvider = exports.ScmView = void 0;
18
+ const AbstractElement_1 = require("./components/AbstractElement");
19
+ const loader_1 = require("./locators/loader");
20
+ __exportStar(require("selenium-webdriver"), exports);
21
+ __exportStar(require("./locators/locators"), exports);
22
+ __exportStar(require("./errors/NullAttributeError"), exports);
23
+ __exportStar(require("./components/menu/Menu"), exports);
24
+ __exportStar(require("./components/menu/MenuItem"), exports);
25
+ __exportStar(require("./components/menu/TitleBar"), exports);
26
+ __exportStar(require("./components/menu/MacTitleBar"), exports);
27
+ __exportStar(require("./components/menu/ContextMenu"), exports);
28
+ __exportStar(require("./components/menu/WindowControls"), exports);
29
+ __exportStar(require("./components/activityBar/ActivityBar"), exports);
30
+ __exportStar(require("./components/activityBar/ViewControl"), exports);
31
+ __exportStar(require("./components/activityBar/ActionsControl"), exports);
32
+ __exportStar(require("./components/sidebar/SideBarView"), exports);
33
+ __exportStar(require("./components/sidebar/ViewTitlePart"), exports);
34
+ __exportStar(require("./components/sidebar/ViewContent"), exports);
35
+ __exportStar(require("./components/sidebar/ViewSection"), exports);
36
+ __exportStar(require("./components/sidebar/ViewItem"), exports);
37
+ __exportStar(require("./components/sidebar/WelcomeContent"), exports);
38
+ __exportStar(require("./components/sidebar/tree/TreeSection"), exports);
39
+ __exportStar(require("./components/sidebar/tree/default/DefaultTreeSection"), exports);
40
+ __exportStar(require("./components/sidebar/tree/default/DefaultTreeItem"), exports);
41
+ __exportStar(require("./components/sidebar/tree/custom/CustomTreeSection"), exports);
42
+ __exportStar(require("./components/sidebar/tree/custom/CustomTreeItem"), exports);
43
+ __exportStar(require("./components/sidebar/tree/debug/DebugBreakpointSection"), exports);
44
+ __exportStar(require("./components/sidebar/tree/debug/BreakpointSectionItem"), exports);
45
+ __exportStar(require("./components/sidebar/tree/debug/DebugVariablesSection"), exports);
46
+ __exportStar(require("./components/sidebar/tree/debug/VariableSectionItem"), exports);
47
+ __exportStar(require("./components/sidebar/extensions/ExtensionsViewSection"), exports);
48
+ __exportStar(require("./components/sidebar/extensions/ExtensionsViewItem"), exports);
49
+ var ScmView_1 = require("./components/sidebar/scm/ScmView");
50
+ Object.defineProperty(exports, "ScmView", { enumerable: true, get: function () { return ScmView_1.ScmView; } });
51
+ Object.defineProperty(exports, "ScmProvider", { enumerable: true, get: function () { return ScmView_1.ScmProvider; } });
52
+ Object.defineProperty(exports, "ScmChange", { enumerable: true, get: function () { return ScmView_1.ScmChange; } });
53
+ __exportStar(require("./components/sidebar/scm/NewScmView"), exports);
54
+ __exportStar(require("./components/sidebar/debug/DebugView"), exports);
55
+ __exportStar(require("./components/bottomBar/BottomBarPanel"), exports);
56
+ __exportStar(require("./components/bottomBar/ProblemsView"), exports);
57
+ __exportStar(require("./components/bottomBar/WebviewView"), exports);
58
+ __exportStar(require("./components/bottomBar/Views"), exports);
59
+ __exportStar(require("./components/statusBar/StatusBar"), exports);
60
+ __exportStar(require("./components/editor/EditorView"), exports);
61
+ __exportStar(require("./components/editor/EditorAction"), exports);
62
+ __exportStar(require("./components/editor/Breakpoint"), exports);
63
+ __exportStar(require("./components/editor/TextEditor"), exports);
64
+ __exportStar(require("./components/editor/Editor"), exports);
65
+ __exportStar(require("./components/editor/SettingsEditor"), exports);
66
+ __exportStar(require("./components/editor/DiffEditor"), exports);
67
+ __exportStar(require("./components/editor/WebView"), exports);
68
+ __exportStar(require("./components/editor/ContentAssist"), exports);
69
+ __exportStar(require("./components/editor/CustomEditor"), exports);
70
+ var Notification_1 = require("./components/workbench/Notification");
71
+ Object.defineProperty(exports, "Notification", { enumerable: true, get: function () { return Notification_1.Notification; } });
72
+ Object.defineProperty(exports, "NotificationType", { enumerable: true, get: function () { return Notification_1.NotificationType; } });
73
+ __exportStar(require("./components/workbench/NotificationsCenter"), exports);
74
+ __exportStar(require("./components/workbench/input/Input"), exports);
75
+ __exportStar(require("./components/workbench/input/InputBox"), exports);
76
+ __exportStar(require("./components/workbench/input/QuickOpenBox"), exports);
77
+ __exportStar(require("./components/workbench/Workbench"), exports);
78
+ __exportStar(require("./components/workbench/DebugToolbar"), exports);
79
+ __exportStar(require("./components/dialog/ModalDialog"), exports);
80
+ __exportStar(require("./conditions/WaitForAttribute"), exports);
81
+ /**
82
+ * Initialize the page objects for your tests
83
+ *
84
+ * @param currentVersion version of the locators to load
85
+ * @param baseVersion base version of the locators if you have multiple versions with diffs, otherwise leave the same as currentVersion
86
+ * @param locatorFolder folder that contains locator files
87
+ * @param driver WebDriver instance
88
+ * @param browserID identifier/name of the browser (i.e. vscode)
89
+ */
90
+ function initPageObjects(currentVersion, baseVersion, locatorFolder, driver, browserID) {
91
+ const locators = new loader_1.LocatorLoader(currentVersion, baseVersion, locatorFolder).loadLocators();
92
+ AbstractElement_1.AbstractElement.init(locators, driver, browserID, currentVersion);
93
+ }
94
+ exports.initPageObjects = initPageObjects;
95
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,20 @@
1
+ import { Locators } from './locators';
2
+ /**
3
+ * Utility for loading locators for a given vscode version
4
+ */
5
+ export declare class LocatorLoader {
6
+ private baseVersion;
7
+ private baseFolder;
8
+ private version;
9
+ private locators;
10
+ /**
11
+ * Construct new loader for a given vscode version
12
+ * @param version select version of vscode
13
+ */
14
+ constructor(version: string, baseVersion: string, baseFolder: string);
15
+ /**
16
+ * Loads locators for the selected vscode version
17
+ * @returns object containing all locators
18
+ */
19
+ loadLocators(): Locators;
20
+ }
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.LocatorLoader = void 0;
30
+ const fs = __importStar(require("fs-extra"));
31
+ const path = __importStar(require("path"));
32
+ const compare_versions_1 = require("compare-versions");
33
+ const clone_deep_1 = __importDefault(require("clone-deep"));
34
+ /**
35
+ * Utility for loading locators for a given vscode version
36
+ */
37
+ class LocatorLoader {
38
+ baseVersion;
39
+ baseFolder;
40
+ version;
41
+ locators;
42
+ /**
43
+ * Construct new loader for a given vscode version
44
+ * @param version select version of vscode
45
+ */
46
+ constructor(version, baseVersion, baseFolder) {
47
+ this.version = version;
48
+ if (version.endsWith('-insider')) {
49
+ this.version = version.substring(0, version.indexOf('-insider'));
50
+ }
51
+ this.baseVersion = baseVersion;
52
+ this.baseFolder = path.resolve(baseFolder);
53
+ const temp = require(path.resolve(baseFolder, baseVersion));
54
+ this.locators = temp.locators;
55
+ }
56
+ /**
57
+ * Loads locators for the selected vscode version
58
+ * @returns object containing all locators
59
+ */
60
+ loadLocators() {
61
+ let versions = fs.readdirSync(this.baseFolder)
62
+ .filter((file) => file.endsWith('.js'))
63
+ .map((file) => path.basename(file, '.js'));
64
+ if ((0, compare_versions_1.compareVersions)(this.baseVersion, this.version) === 0) {
65
+ return this.locators;
66
+ }
67
+ if ((0, compare_versions_1.compareVersions)(this.baseVersion, this.version) < 0) {
68
+ versions = versions.filter((ver) => (0, compare_versions_1.compareVersions)(this.baseVersion, ver) < 0 &&
69
+ (0, compare_versions_1.compareVersions)(ver, this.version) <= 0)
70
+ .sort(compare_versions_1.compareVersions);
71
+ }
72
+ else {
73
+ versions = versions.filter((ver) => (0, compare_versions_1.compareVersions)(this.baseVersion, ver) > 0 &&
74
+ (0, compare_versions_1.compareVersions)(ver, this.version) >= 0)
75
+ .sort(compare_versions_1.compareVersions).reverse();
76
+ }
77
+ for (let version of versions) {
78
+ const diff = require(path.join(this.baseFolder, version)).diff;
79
+ const newLocators = mergeLocators(this.locators, diff);
80
+ this.locators = newLocators;
81
+ }
82
+ return this.locators;
83
+ }
84
+ }
85
+ exports.LocatorLoader = LocatorLoader;
86
+ function mergeLocators(original, diff) {
87
+ const target = (0, clone_deep_1.default)(original);
88
+ const targetDiff = diff.locators;
89
+ merge(target, targetDiff);
90
+ return target;
91
+ }
92
+ function merge(target, obj) {
93
+ for (const key in obj) {
94
+ if (key === '__proto__' || !Object.prototype.hasOwnProperty.call(obj, key)) {
95
+ continue;
96
+ }
97
+ let oldVal = obj[key];
98
+ let newVal = target[key];
99
+ if (typeof (newVal) === 'object' && typeof (oldVal) === 'object') {
100
+ target[key] = merge(newVal, oldVal);
101
+ }
102
+ else {
103
+ target[key] = (0, clone_deep_1.default)(oldVal);
104
+ }
105
+ }
106
+ return target;
107
+ }
108
+ //# sourceMappingURL=loader.js.map