@sap_oss/wdio-qmate-service 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.
- package/.eslintignore +3 -0
- package/.eslintrc.yml +33 -0
- package/.reuse/dep5 +29 -0
- package/LICENSE +201 -0
- package/LICENSES/Apache-2.0.txt +73 -0
- package/README.md +20 -0
- package/docs/contact.md +10 -0
- package/docs/doc.md +5188 -0
- package/docs/gettingStarted/selectors.md +168 -0
- package/docs/gettingStarted/setup.md +8 -0
- package/docs/index.md +14 -0
- package/docs/style/custom.css +24 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +171 -0
- package/lib/index.js.map +1 -0
- package/lib/reuse/authenticator/authConfig.d.ts +54 -0
- package/lib/reuse/authenticator/authConfig.js +55 -0
- package/lib/reuse/authenticator/authConfig.js.map +1 -0
- package/lib/reuse/authenticator/authHandler.d.ts +6 -0
- package/lib/reuse/authenticator/authHandler.js +37 -0
- package/lib/reuse/authenticator/authHandler.js.map +1 -0
- package/lib/reuse/authenticator/basicUrlAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/basicUrlAuthenticator.js +36 -0
- package/lib/reuse/authenticator/basicUrlAuthenticator.js.map +1 -0
- package/lib/reuse/authenticator/customAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/customAuthenticator.js +60 -0
- package/lib/reuse/authenticator/customAuthenticator.js.map +1 -0
- package/lib/reuse/authenticator/formAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/formAuthenticator.js +57 -0
- package/lib/reuse/authenticator/formAuthenticator.js.map +1 -0
- package/lib/reuse/authenticator/plainAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/plainAuthenticator.js +20 -0
- package/lib/reuse/authenticator/plainAuthenticator.js.map +1 -0
- package/lib/reuse/data/authenticators.json +16 -0
- package/lib/reuse/helper/clientsideUI5scripts.d.ts +1 -0
- package/lib/reuse/helper/clientsideUI5scripts.js +388 -0
- package/lib/reuse/helper/clientsideUI5scripts.js.map +1 -0
- package/lib/reuse/helper/jsDocGen.d.ts +1 -0
- package/lib/reuse/helper/jsDocGen.js +45 -0
- package/lib/reuse/helper/jsDocGen.js.map +1 -0
- package/lib/reuse/index.d.ts +5 -0
- package/lib/reuse/index.js +89 -0
- package/lib/reuse/index.js.map +1 -0
- package/lib/reuse/modules/common/Common.d.ts +12 -0
- package/lib/reuse/modules/common/Common.js +21 -0
- package/lib/reuse/modules/common/Common.js.map +1 -0
- package/lib/reuse/modules/common/assertion.d.ts +65 -0
- package/lib/reuse/modules/common/assertion.js +91 -0
- package/lib/reuse/modules/common/assertion.js.map +1 -0
- package/lib/reuse/modules/common/constants/date.constants.d.ts +8 -0
- package/lib/reuse/modules/common/constants/date.constants.js +13 -0
- package/lib/reuse/modules/common/constants/date.constants.js.map +1 -0
- package/lib/reuse/modules/common/constants/userInteraction.constants.d.ts +9 -0
- package/lib/reuse/modules/common/constants/userInteraction.constants.js +14 -0
- package/lib/reuse/modules/common/constants/userInteraction.constants.js.map +1 -0
- package/lib/reuse/modules/common/date.d.ts +84 -0
- package/lib/reuse/modules/common/date.js +164 -0
- package/lib/reuse/modules/common/date.js.map +1 -0
- package/lib/reuse/modules/common/navigation.d.ts +26 -0
- package/lib/reuse/modules/common/navigation.js +56 -0
- package/lib/reuse/modules/common/navigation.js.map +1 -0
- package/lib/reuse/modules/common/types/date.types.d.ts +2 -0
- package/lib/reuse/modules/common/types/date.types.js +3 -0
- package/lib/reuse/modules/common/types/date.types.js.map +1 -0
- package/lib/reuse/modules/common/userInteraction.d.ts +104 -0
- package/lib/reuse/modules/common/userInteraction.js +199 -0
- package/lib/reuse/modules/common/userInteraction.js.map +1 -0
- package/lib/reuse/modules/nonUi5/NonUi5.d.ts +12 -0
- package/lib/reuse/modules/nonUi5/NonUi5.js +21 -0
- package/lib/reuse/modules/nonUi5/NonUi5.js.map +1 -0
- package/lib/reuse/modules/nonUi5/assertion.d.ts +62 -0
- package/lib/reuse/modules/nonUi5/assertion.js +127 -0
- package/lib/reuse/modules/nonUi5/assertion.js.map +1 -0
- package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.d.ts +6 -0
- package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.js +11 -0
- package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.js.map +1 -0
- package/lib/reuse/modules/nonUi5/element.d.ts +286 -0
- package/lib/reuse/modules/nonUi5/element.js +639 -0
- package/lib/reuse/modules/nonUi5/element.js.map +1 -0
- package/lib/reuse/modules/nonUi5/navigation.d.ts +17 -0
- package/lib/reuse/modules/nonUi5/navigation.js +44 -0
- package/lib/reuse/modules/nonUi5/navigation.js.map +1 -0
- package/lib/reuse/modules/nonUi5/userInteraction.d.ts +170 -0
- package/lib/reuse/modules/nonUi5/userInteraction.js +415 -0
- package/lib/reuse/modules/nonUi5/userInteraction.js.map +1 -0
- package/lib/reuse/modules/service/Service.d.ts +8 -0
- package/lib/reuse/modules/service/Service.js +17 -0
- package/lib/reuse/modules/service/Service.js.map +1 -0
- package/lib/reuse/modules/service/odata.d.ts +177 -0
- package/lib/reuse/modules/service/odata.js +347 -0
- package/lib/reuse/modules/service/odata.js.map +1 -0
- package/lib/reuse/modules/service/rest.d.ts +66 -0
- package/lib/reuse/modules/service/rest.js +168 -0
- package/lib/reuse/modules/service/rest.js.map +1 -0
- package/lib/reuse/modules/service/soap.d.ts +0 -0
- package/lib/reuse/modules/service/soap.js +2 -0
- package/lib/reuse/modules/service/soap.js.map +1 -0
- package/lib/reuse/modules/ui5/Ui5.d.ts +34 -0
- package/lib/reuse/modules/ui5/Ui5.js +41 -0
- package/lib/reuse/modules/ui5/Ui5.js.map +1 -0
- package/lib/reuse/modules/ui5/assertion.d.ts +183 -0
- package/lib/reuse/modules/ui5/assertion.js +493 -0
- package/lib/reuse/modules/ui5/assertion.js.map +1 -0
- package/lib/reuse/modules/ui5/confirmationDialog.d.ts +86 -0
- package/lib/reuse/modules/ui5/confirmationDialog.js +145 -0
- package/lib/reuse/modules/ui5/confirmationDialog.js.map +1 -0
- package/lib/reuse/modules/ui5/constants/mockserver.constants.d.ts +4 -0
- package/lib/reuse/modules/ui5/constants/mockserver.constants.js +9 -0
- package/lib/reuse/modules/ui5/constants/mockserver.constants.js.map +1 -0
- package/lib/reuse/modules/ui5/control.d.ts +84 -0
- package/lib/reuse/modules/ui5/control.js +132 -0
- package/lib/reuse/modules/ui5/control.js.map +1 -0
- package/lib/reuse/modules/ui5/date.d.ts +48 -0
- package/lib/reuse/modules/ui5/date.js +153 -0
- package/lib/reuse/modules/ui5/date.js.map +1 -0
- package/lib/reuse/modules/ui5/element.d.ts +160 -0
- package/lib/reuse/modules/ui5/element.js +349 -0
- package/lib/reuse/modules/ui5/element.js.map +1 -0
- package/lib/reuse/modules/ui5/errorDialog.d.ts +39 -0
- package/lib/reuse/modules/ui5/errorDialog.js +65 -0
- package/lib/reuse/modules/ui5/errorDialog.js.map +1 -0
- package/lib/reuse/modules/ui5/footerBar.d.ts +153 -0
- package/lib/reuse/modules/ui5/footerBar.js +240 -0
- package/lib/reuse/modules/ui5/footerBar.js.map +1 -0
- package/lib/reuse/modules/ui5/mockserver.d.ts +154 -0
- package/lib/reuse/modules/ui5/mockserver.js +665 -0
- package/lib/reuse/modules/ui5/mockserver.js.map +1 -0
- package/lib/reuse/modules/ui5/navigation.d.ts +103 -0
- package/lib/reuse/modules/ui5/navigation.js +275 -0
- package/lib/reuse/modules/ui5/navigation.js.map +1 -0
- package/lib/reuse/modules/ui5/navigationBar.d.ts +48 -0
- package/lib/reuse/modules/ui5/navigationBar.js +141 -0
- package/lib/reuse/modules/ui5/navigationBar.js.map +1 -0
- package/lib/reuse/modules/ui5/qunit.d.ts +17 -0
- package/lib/reuse/modules/ui5/qunit.js +52 -0
- package/lib/reuse/modules/ui5/qunit.js.map +1 -0
- package/lib/reuse/modules/ui5/session.d.ts +117 -0
- package/lib/reuse/modules/ui5/session.js +374 -0
- package/lib/reuse/modules/ui5/session.js.map +1 -0
- package/lib/reuse/modules/ui5/table.d.ts +61 -0
- package/lib/reuse/modules/ui5/table.js +188 -0
- package/lib/reuse/modules/ui5/table.js.map +1 -0
- package/lib/reuse/modules/ui5/types/mockserver.types.d.ts +2 -0
- package/lib/reuse/modules/ui5/types/mockserver.types.js +3 -0
- package/lib/reuse/modules/ui5/types/mockserver.types.js.map +1 -0
- package/lib/reuse/modules/ui5/userInteraction.d.ts +304 -0
- package/lib/reuse/modules/ui5/userInteraction.js +690 -0
- package/lib/reuse/modules/ui5/userInteraction.js.map +1 -0
- package/lib/reuse/modules/util/Util.d.ts +22 -0
- package/lib/reuse/modules/util/Util.js +27 -0
- package/lib/reuse/modules/util/Util.js.map +1 -0
- package/lib/reuse/modules/util/browser.d.ts +167 -0
- package/lib/reuse/modules/util/browser.js +367 -0
- package/lib/reuse/modules/util/browser.js.map +1 -0
- package/lib/reuse/modules/util/console.d.ts +56 -0
- package/lib/reuse/modules/util/console.js +152 -0
- package/lib/reuse/modules/util/console.js.map +1 -0
- package/lib/reuse/modules/util/constants/formatter.constants.d.ts +11 -0
- package/lib/reuse/modules/util/constants/formatter.constants.js +16 -0
- package/lib/reuse/modules/util/constants/formatter.constants.js.map +1 -0
- package/lib/reuse/modules/util/data.d.ts +36 -0
- package/lib/reuse/modules/util/data.js +87 -0
- package/lib/reuse/modules/util/data.js.map +1 -0
- package/lib/reuse/modules/util/file.d.ts +55 -0
- package/lib/reuse/modules/util/file.js +159 -0
- package/lib/reuse/modules/util/file.js.map +1 -0
- package/lib/reuse/modules/util/formatter.d.ts +90 -0
- package/lib/reuse/modules/util/formatter.js +210 -0
- package/lib/reuse/modules/util/formatter.js.map +1 -0
- package/lib/reuse/modules/util/function.d.ts +48 -0
- package/lib/reuse/modules/util/function.js +161 -0
- package/lib/reuse/modules/util/function.js.map +1 -0
- package/lib/reuse/modules/util/system.d.ts +17 -0
- package/lib/reuse/modules/util/system.js +58 -0
- package/lib/reuse/modules/util/system.js.map +1 -0
- package/lib/reuse/modules/util/types/formatter.types.d.ts +2 -0
- package/lib/reuse/modules/util/types/formatter.types.js +3 -0
- package/lib/reuse/modules/util/types/formatter.types.js.map +1 -0
- package/lib/scripts/clientsideUI5scripts.d.ts +1 -0
- package/lib/scripts/clientsideUI5scripts.js +315 -0
- package/lib/scripts/clientsideUI5scripts.js.map +1 -0
- package/lib/scripts/dataExchange/dataExchange.d.ts +1 -0
- package/lib/scripts/dataExchange/dataExchange.js +224 -0
- package/lib/scripts/dataExchange/dataExchange.js.map +1 -0
- package/lib/scripts/dataExchange/dataExchangeUtil.d.ts +63 -0
- package/lib/scripts/dataExchange/dataExchangeUtil.js +211 -0
- package/lib/scripts/dataExchange/dataExchangeUtil.js.map +1 -0
- package/lib/scripts/hooks/after.d.ts +8 -0
- package/lib/scripts/hooks/after.js +30 -0
- package/lib/scripts/hooks/after.js.map +1 -0
- package/lib/scripts/hooks/before.d.ts +8 -0
- package/lib/scripts/hooks/before.js +38 -0
- package/lib/scripts/hooks/before.js.map +1 -0
- package/lib/scripts/hooks/beforeSession.d.ts +8 -0
- package/lib/scripts/hooks/beforeSession.js +37 -0
- package/lib/scripts/hooks/beforeSession.js.map +1 -0
- package/lib/scripts/hooks/onComplete.d.ts +9 -0
- package/lib/scripts/hooks/onComplete.js +31 -0
- package/lib/scripts/hooks/onComplete.js.map +1 -0
- package/lib/scripts/hooks/onPrepare.d.ts +6 -0
- package/lib/scripts/hooks/onPrepare.js +36 -0
- package/lib/scripts/hooks/onPrepare.js.map +1 -0
- package/lib/scripts/hooks/utils/addLocatorCommands.d.ts +2 -0
- package/lib/scripts/hooks/utils/addLocatorCommands.js +193 -0
- package/lib/scripts/hooks/utils/addLocatorCommands.js.map +1 -0
- package/lib/scripts/hooks/utils/browserLog.d.ts +2 -0
- package/lib/scripts/hooks/utils/browserLog.js +39 -0
- package/lib/scripts/hooks/utils/browserLog.js.map +1 -0
- package/lib/scripts/hooks/utils/dataExchangeCommands.d.ts +9 -0
- package/lib/scripts/hooks/utils/dataExchangeCommands.js +46 -0
- package/lib/scripts/hooks/utils/dataExchangeCommands.js.map +1 -0
- package/lib/scripts/hooks/utils/decryption.d.ts +13 -0
- package/lib/scripts/hooks/utils/decryption.js +90 -0
- package/lib/scripts/hooks/utils/decryption.js.map +1 -0
- package/lib/scripts/hooks/utils/lib.d.ts +4 -0
- package/lib/scripts/hooks/utils/lib.js +330 -0
- package/lib/scripts/hooks/utils/lib.js.map +1 -0
- package/lib/scripts/hooks/utils/locatorCommands.d.ts +10 -0
- package/lib/scripts/hooks/utils/locatorCommands.js +216 -0
- package/lib/scripts/hooks/utils/locatorCommands.js.map +1 -0
- package/lib/scripts/locators/qmateLocator.d.ts +1 -0
- package/lib/scripts/locators/qmateLocator.js +1384 -0
- package/lib/scripts/locators/qmateLocator.js.map +1 -0
- package/lib/scripts/locators/uiveri5Locator.d.ts +1 -0
- package/lib/scripts/locators/uiveri5Locator.js +21 -0
- package/lib/scripts/locators/uiveri5Locator.js.map +1 -0
- package/mkdocs.yml +53 -0
- package/package.json +152 -0
- package/test/.eslintrc.yml +6 -0
- package/test/authenticator/package.json +13 -0
- package/test/authenticator/staticLogin/configCustom.js +22 -0
- package/test/authenticator/staticLogin/configCustomViaConfig.js +20 -0
- package/test/authenticator/staticLogin/configFiori.js +19 -0
- package/test/authenticator/staticLogin/configPlain.js +17 -0
- package/test/authenticator/staticLogin/configSapCloud.js +18 -0
- package/test/authenticator/staticLogin/html/custom.html +10 -0
- package/test/authenticator/staticLogin/html/fiori.html +10 -0
- package/test/authenticator/staticLogin/html/home.html +7 -0
- package/test/authenticator/staticLogin/html/sapCloud.html +10 -0
- package/test/authenticator/staticLogin/specs/custom.spec.js +6 -0
- package/test/authenticator/staticLogin/specs/customViaConfig.spec.js +10 -0
- package/test/authenticator/staticLogin/specs/fiori.spec.js +6 -0
- package/test/authenticator/staticLogin/specs/plain.spec.js +64 -0
- package/test/authenticator/staticLogin/specs/sapCloud.spec.js +6 -0
- package/test/authenticator/staticLogin/staticServerConfig.js +20 -0
- package/test/authenticator/systemLogin/configCustom.js +26 -0
- package/test/authenticator/systemLogin/configFiori.js +24 -0
- package/test/authenticator/systemLogin/configPlain.js +22 -0
- package/test/authenticator/systemLogin/configSapCloud.js +24 -0
- package/test/authenticator/systemLogin/specs/custom.spec.js +13 -0
- package/test/authenticator/systemLogin/specs/fiori.spec.js +12 -0
- package/test/authenticator/systemLogin/specs/plain.spec.js +21 -0
- package/test/authenticator/systemLogin/specs/sapCloud.spec.js +13 -0
- package/test/core/README.md +17 -0
- package/test/core/dataExchange/config.export.js +56 -0
- package/test/core/dataExchange/config.import.js +47 -0
- package/test/core/dataExchange/config.js +52 -0
- package/test/core/dataExchange/config.parallel.group.js +61 -0
- package/test/core/dataExchange/config.parallel.js +58 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/dummy1.txt +0 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchase-orders/Limit-Purchase-Order.json +29 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchase-orders/ServicePurchaseOrder.2Items.json +67 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchaseRequisition_HI.json +31 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/LimitPurchaseOrder.json +29 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/PurchaseOrderItems.json +58 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/PurchaseOrderWithScheduline.json +27 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServiceAndMaterialPurchaseOrder.json +65 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServicePurchaseOrder.json +39 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServicePurchaseOrder2Items.json +67 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/data.json +5 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/dummy1.txt +0 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/dummy2.txt +0 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/empty.json +0 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/purchaseRequisition.json +31 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/supplierInvoice.json +17 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/webUser.json +6 -0
- package/test/core/dataExchange/data/ui/moreDataFolder/anotherUser.json +6 -0
- package/test/core/dataExchange/data/ui/user.json +6 -0
- package/test/core/dataExchange/data/ui/webUser.json +6 -0
- package/test/core/dataExchange/specs/export.fast.spec.js +48 -0
- package/test/core/dataExchange/specs/export.slow.spec.js +50 -0
- package/test/core/dataExchange/specs/export.spec.js +103 -0
- package/test/core/dataExchange/specs/import.spec.js +144 -0
- package/test/core/dataExchange/specs/importExport.spec.js +196 -0
- package/test/core/dataExchange/utils.js +160 -0
- package/test/core/functional/README.md +30 -0
- package/test/core/functional/chaining/chaining.test.js +137 -0
- package/test/core/functional/chaining/test.conf.js +31 -0
- package/test/core/functional/locators/ancestorProperties.test.js +99 -0
- package/test/core/functional/locators/childProperties.test.js +40 -0
- package/test/core/functional/locators/descendantProperties.test.js +107 -0
- package/test/core/functional/locators/domProperties.test.js +60 -0
- package/test/core/functional/locators/elementProperties.test.js +114 -0
- package/test/core/functional/locators/mixedProperties.test.js +170 -0
- package/test/core/functional/locators/parentProperties.test.js +47 -0
- package/test/core/functional/locators/siblingProperties.test.js +120 -0
- package/test/core/functional/locators/test.locator.conf.js +38 -0
- package/test/core/functional/locators/utils.js +6 -0
- package/test/core/functional/nativeBrowser/runInBrowser.test.js +111 -0
- package/test/core/functional/nativeBrowser/test.conf.js +31 -0
- package/test/core/functional/nonUi5/basic.test.js +10 -0
- package/test/core/functional/nonUi5/getWithDomElement.test.js +51 -0
- package/test/core/functional/nonUi5/getWithDomElements.test.js +141 -0
- package/test/core/functional/nonUi5/test.conf.js +32 -0
- package/test/core/functional/ui5Properties/getAggregations.test.js +102 -0
- package/test/core/functional/ui5Properties/getAssociations.test.js +24 -0
- package/test/core/functional/ui5Properties/getBindingInfos.test.js +71 -0
- package/test/core/functional/ui5Properties/getProperties.test.js +226 -0
- package/test/core/functional/ui5Properties/test.conf.js +16 -0
- package/test/core/functional/uiveri5/sample.test.js +61 -0
- package/test/core/functional/uiveri5/test.conf.js +31 -0
- package/test/core/package-lock.json +0 -0
- package/test/core/package.json +12 -0
- package/test/core/testIntegration/config.js +17 -0
- package/test/core/testIntegration/configMultiCombo.js +17 -0
- package/test/core/testIntegration/configTable.js +18 -0
- package/test/core/testIntegration/filters1.spec.js +1849 -0
- package/test/core/testIntegration/multicombobox.spec.js +134 -0
- package/test/core/testIntegration/table.spec.js +80 -0
- package/test/helper/configurations/base.conf.js +43 -0
- package/test/helper/configurations/chrome.conf.js +47 -0
- package/test/helper/configurations/chrome.headless.conf.js +45 -0
- package/test/helper/configurations/sauce.labs.conf.js +37 -0
- package/test/helper/configurations/sauce.labs.tunnel.conf.js +39 -0
- package/test/helper/sleeper.js +19 -0
- package/test/helper/utils.js +15 -0
- package/test/helper/website/buttons.html +85 -0
- package/test/helper/website/checkBox.html +83 -0
- package/test/helper/website/dragAndDropFailing.html +83 -0
- package/test/helper/website/dragAndDropWdioExample.html +41 -0
- package/test/helper/website/dropdown.html +78 -0
- package/test/helper/website/forms.html +82 -0
- package/test/helper/website/hiddenAndVisible.html +60 -0
- package/test/helper/website/main.css +36 -0
- package/test/helper/website/scrollPage.html +261 -0
- package/test/helper/website/style.css +52 -0
- package/test/helper/website/tables.html +140 -0
- package/test/helper/website/waitForElements.html +73 -0
- package/test/reuse/common/assertion/expectDefined.spec.js +11 -0
- package/test/reuse/common/assertion/expectEqual.spec.js +52 -0
- package/test/reuse/common/assertion/expectFalse.spec.js +9 -0
- package/test/reuse/common/assertion/expectTrue.spec.js +9 -0
- package/test/reuse/common/assertion/expectUndefined.spec.js +11 -0
- package/test/reuse/common/assertion/expectUnequal.spec.js +25 -0
- package/test/reuse/common/assertion/expectUrlToBe.spec.js +27 -0
- package/test/reuse/common/assertion/test.assertion.conf.js +59 -0
- package/test/reuse/common/date/calculate.spec.js +163 -0
- package/test/reuse/common/date/getNextMonth.spec.js +105 -0
- package/test/reuse/common/date/getNextYear.spec.js +72 -0
- package/test/reuse/common/date/getPreviousMonth.spec.js +71 -0
- package/test/reuse/common/date/getPreviousYear.spec.js +72 -0
- package/test/reuse/common/date/getSpecific.spec.js +63 -0
- package/test/reuse/common/date/getToday.spec.js +78 -0
- package/test/reuse/common/date/getTomorrow.spec.js +72 -0
- package/test/reuse/common/date/test.date.conf.js +19 -0
- package/test/reuse/common/date/utils.js +6 -0
- package/test/reuse/common/navigation/navigateToUrl.spec.js +28 -0
- package/test/reuse/common/navigation/navigateToUrlAndRetry.spec.js +27 -0
- package/test/reuse/common/navigation/test.navigation.conf.js +25 -0
- package/test/reuse/common/userInteraction/clearAndFillActive.spec.js +100 -0
- package/test/reuse/common/userInteraction/clearAndFillActiveAndRetry.spec.js +106 -0
- package/test/reuse/common/userInteraction/fillActive.spec.js +230 -0
- package/test/reuse/common/userInteraction/fillActiveAndRetry.spec.js +172 -0
- package/test/reuse/common/userInteraction/pressKey.spec.js +105 -0
- package/test/reuse/common/userInteraction/test.userInteraction.conf.js +53 -0
- package/test/reuse/nonUi5/assertion/expectAttributeToBe.spec.js +45 -0
- package/test/reuse/nonUi5/assertion/expectAttributeToContain.spec.js +43 -0
- package/test/reuse/nonUi5/assertion/expectToBeNotVisible.spec.js +37 -0
- package/test/reuse/nonUi5/assertion/expectToBeVisible.spec.js +63 -0
- package/test/reuse/nonUi5/assertion/expectValueToBe.spec.js +25 -0
- package/test/reuse/nonUi5/assertion/test.assertion.conf.js +60 -0
- package/test/reuse/nonUi5/assertion/test.assertion.sauceLabs.conf.js +64 -0
- package/test/reuse/nonUi5/element/getAllDisplayed.spec.js +39 -0
- package/test/reuse/nonUi5/element/getAttributeValue.spec.js +58 -0
- package/test/reuse/nonUi5/element/getByChild.spec.js +70 -0
- package/test/reuse/nonUi5/element/getByClass.spec.js +64 -0
- package/test/reuse/nonUi5/element/getByCss.spec.js +65 -0
- package/test/reuse/nonUi5/element/getByCssContainingText.spec.js +83 -0
- package/test/reuse/nonUi5/element/getById.spec.js +35 -0
- package/test/reuse/nonUi5/element/getByName.spec.js +30 -0
- package/test/reuse/nonUi5/element/getByParent.spec.js +71 -0
- package/test/reuse/nonUi5/element/getByXPath.spec.js +30 -0
- package/test/reuse/nonUi5/element/getValue.spec.js +51 -0
- package/test/reuse/nonUi5/element/highlight.spec.js +18 -0
- package/test/reuse/nonUi5/element/isPresent.spec.js +39 -0
- package/test/reuse/nonUi5/element/isPresentByCss.spec.js +73 -0
- package/test/reuse/nonUi5/element/isPresentByXPath.spec.js +31 -0
- package/test/reuse/nonUi5/element/setInnerHTML.spec.js +23 -0
- package/test/reuse/nonUi5/element/test.element.conf.js +55 -0
- package/test/reuse/nonUi5/element/test.element.sauceLabs.conf.js +58 -0
- package/test/reuse/nonUi5/element/waitForAll.spec.js +24 -0
- package/test/reuse/nonUi5/element/waitToBeClickable.spec.js +24 -0
- package/test/reuse/nonUi5/element/waitToBePresent.spec.js +32 -0
- package/test/reuse/nonUi5/element/waitToBeVisible.spec.js +36 -0
- package/test/reuse/nonUi5/navigation/navigateToApplication.spec.js +13 -0
- package/test/reuse/nonUi5/navigation/test.navigation.conf.js +14 -0
- package/test/reuse/nonUi5/userInteraction/checkAttributeAndValue.spec.js +135 -0
- package/test/reuse/nonUi5/userInteraction/clear.spec.js +43 -0
- package/test/reuse/nonUi5/userInteraction/clearAndFill.spec.js +51 -0
- package/test/reuse/nonUi5/userInteraction/clearAndFillAndRetry.spec.js +58 -0
- package/test/reuse/nonUi5/userInteraction/clearAndRetry.spec.js +43 -0
- package/test/reuse/nonUi5/userInteraction/click.spec.js +60 -0
- package/test/reuse/nonUi5/userInteraction/clickAndRetry.spec.js +60 -0
- package/test/reuse/nonUi5/userInteraction/clickElementInSvg.spec.js +24 -0
- package/test/reuse/nonUi5/userInteraction/doubleClick.spec.js +22 -0
- package/test/reuse/nonUi5/userInteraction/dragAndDrop.spec.js +40 -0
- package/test/reuse/nonUi5/userInteraction/fill.spec.js +37 -0
- package/test/reuse/nonUi5/userInteraction/fillAndRetry.spec.js +39 -0
- package/test/reuse/nonUi5/userInteraction/mouseOverElement.spec.js +36 -0
- package/test/reuse/nonUi5/userInteraction/moveCursorAndClick.spec.js +24 -0
- package/test/reuse/nonUi5/userInteraction/rightClick.spec.js +13 -0
- package/test/reuse/nonUi5/userInteraction/scrollToElement.spec.js +35 -0
- package/test/reuse/nonUi5/userInteraction/test.userInteraction.conf.js +72 -0
- package/test/reuse/nonUi5/userInteraction/test.userInteraction.sauceLabs.conf.js +78 -0
- package/test/reuse/service/rest/db.json +8 -0
- package/test/reuse/service/rest/delete.spec.js +20 -0
- package/test/reuse/service/rest/get.spec.js +19 -0
- package/test/reuse/service/rest/init.spec.js +35 -0
- package/test/reuse/service/rest/patch.spec.js +29 -0
- package/test/reuse/service/rest/post.spec.js +37 -0
- package/test/reuse/service/rest/test.rest.conf.js +18 -0
- package/test/reuse/ui5/assertion/expectAttributeToBe.spec.js +106 -0
- package/test/reuse/ui5/assertion/expectAttributeToContain.spec.js +78 -0
- package/test/reuse/ui5/assertion/expectBindingContextPathToBe.spec.js +103 -0
- package/test/reuse/ui5/assertion/expectBindingPathToBe.spec.js +164 -0
- package/test/reuse/ui5/assertion/expectMessageToastTextToBe.spec.js +43 -0
- package/test/reuse/ui5/assertion/expectTextToBe.spec.js +39 -0
- package/test/reuse/ui5/assertion/expectToBeEnabled.spec.js +90 -0
- package/test/reuse/ui5/assertion/expectToBeNotEnabled.spec.js +62 -0
- package/test/reuse/ui5/assertion/expectToBeNotVisible.spec.js +52 -0
- package/test/reuse/ui5/assertion/expectToBeVisible.spec.js +69 -0
- package/test/reuse/ui5/assertion/expectToBeVisibleInViewport.spec.js +49 -0
- package/test/reuse/ui5/assertion/expectValidationError.spec.js +54 -0
- package/test/reuse/ui5/assertion/expectValidationSuccess.spec.js +53 -0
- package/test/reuse/ui5/assertion/expectValueToBe.spec.js +57 -0
- package/test/reuse/ui5/assertion/expectValueToBeDefined.spec.js +35 -0
- package/test/reuse/ui5/assertion/test.assertion.conf.js +28 -0
- package/test/reuse/ui5/assertion/test.assertion.sauceLab.conf.js +37 -0
- package/test/reuse/ui5/confirmationDialog/clickCancel.spec.js +88 -0
- package/test/reuse/ui5/confirmationDialog/clickCreate.spec.js +3 -0
- package/test/reuse/ui5/confirmationDialog/clickDelete.spec.js +89 -0
- package/test/reuse/ui5/confirmationDialog/clickNo.spec.js +96 -0
- package/test/reuse/ui5/confirmationDialog/clickOk.spec.js +66 -0
- package/test/reuse/ui5/confirmationDialog/clickRevokeApproval.spec.js +3 -0
- package/test/reuse/ui5/confirmationDialog/clickYes.spec.js +70 -0
- package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.conf.js +20 -0
- package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.sauceLab.conf.js +29 -0
- package/test/reuse/ui5/control/execute.spec.js +29 -0
- package/test/reuse/ui5/control/getAggregationProperty.spec.js +29 -0
- package/test/reuse/ui5/control/getAssociationProperty.spec.js +1 -0
- package/test/reuse/ui5/control/getBindingContextPathProperty.spec.js +30 -0
- package/test/reuse/ui5/control/getProperty.spec.js +30 -0
- package/test/reuse/ui5/control/getPropertyBinding.spec.js +30 -0
- package/test/reuse/ui5/control/test.control.conf.js +19 -0
- package/test/reuse/ui5/control/test.control.sauceLab.conf.js +30 -0
- package/test/reuse/ui5/date/fillRange.spec.js +53 -0
- package/test/reuse/ui5/date/pick.spec.js +136 -0
- package/test/reuse/ui5/date/pickRange.spec.js +143 -0
- package/test/reuse/ui5/date/test.date.conf.js +14 -0
- package/test/reuse/ui5/date/test.date.sauceLab.conf.js +26 -0
- package/test/reuse/ui5/element/getAllDisplayed.spec.js +71 -0
- package/test/reuse/ui5/element/getBindingValue.spec.js +78 -0
- package/test/reuse/ui5/element/getByChild.spec.js +124 -0
- package/test/reuse/ui5/element/getByParent.spec.js +134 -0
- package/test/reuse/ui5/element/getByText.spec.js +67 -0
- package/test/reuse/ui5/element/getDisplayed.spec.js +82 -0
- package/test/reuse/ui5/element/getId.spec.js +72 -0
- package/test/reuse/ui5/element/getPropertyValue.spec.js +91 -0
- package/test/reuse/ui5/element/highlight.spec.js +46 -0
- package/test/reuse/ui5/element/isVisible.spec.js +68 -0
- package/test/reuse/ui5/element/test.element.conf.js +22 -0
- package/test/reuse/ui5/element/test.element.sauceLab.conf.js +33 -0
- package/test/reuse/ui5/errorDialog/clickClose.spec.js +31 -0
- package/test/reuse/ui5/errorDialog/expectToBeVisible.spec.js +30 -0
- package/test/reuse/ui5/errorDialog/test.errorDialog.conf.js +13 -0
- package/test/reuse/ui5/errorDialog/test.errorDialog.sauceLab.conf.js +26 -0
- package/test/reuse/ui5/formatter/addRemoveLeadingZeros.spec.js +18 -0
- package/test/reuse/ui5/formatter/extractNumberFromString.spec.js +34 -0
- package/test/reuse/ui5/formatter/formatDate.spec.js +103 -0
- package/test/reuse/ui5/formatter/test.formatter.conf.js +14 -0
- package/test/reuse/ui5/formatter/test.formatter.sauceLab.conf.js +24 -0
- package/test/reuse/ui5/mockserver_qunit/Component.js +23 -0
- package/test/reuse/ui5/mockserver_qunit/LICENSE.txt +957 -0
- package/test/reuse/ui5/mockserver_qunit/NOTICE.txt +1 -0
- package/test/reuse/ui5/mockserver_qunit/controller/App.controller.js +37 -0
- package/test/reuse/ui5/mockserver_qunit/controller/BaseController.js +30 -0
- package/test/reuse/ui5/mockserver_qunit/controller/Home.controller.js +27 -0
- package/test/reuse/ui5/mockserver_qunit/controller/NotFound.controller.js +34 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/Employee.controller.js +64 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/EmployeeList.controller.js +22 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/Resume.controller.js +83 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/overview/EmployeeOverview.controller.js +11 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/overview/EmployeeOverviewContent.controller.js +192 -0
- package/test/reuse/ui5/mockserver_qunit/i18n/i18n.properties +42 -0
- package/test/reuse/ui5/mockserver_qunit/index.html +21 -0
- package/test/reuse/ui5/mockserver_qunit/initMockServer.js +16 -0
- package/test/reuse/ui5/mockserver_qunit/localService/metadata.xml +61 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockdata/Employees.json +155 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockdata/Resumes.json +65 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockserver.js +146 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockserverLoadAllData.js +75 -0
- package/test/reuse/ui5/mockserver_qunit/manifest.json +169 -0
- package/test/reuse/ui5/mockserver_qunit/test/flpSandboxMockServer.html +63 -0
- package/test/reuse/ui5/mockserver_qunit/test/flpSandboxMockServerAllData.html +68 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/config.js +92 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/qunitExecution/specs/runQUnitTests.spec.js +14 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testDisplayNotFound/data/setup.json +11 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testDisplayNotFound/specs/testDisplayNotFound.spec.js +71 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/mock/Employees.json +204 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/mock/Resumes.json +114 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/setup.json +11 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/testShowEmployeeList.json +1 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/specs/testShowEmployeeList.spec.js +118 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/constants.js +25 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/mockDataMapper.js +23 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/mockHelper.js +222 -0
- package/test/reuse/ui5/mockserver_qunit/test/unit/allTests.js +6 -0
- package/test/reuse/ui5/mockserver_qunit/test/unit/unitTests.qunit.html +38 -0
- package/test/reuse/ui5/mockserver_qunit/test/unit/utils/Conversions.js +13 -0
- package/test/reuse/ui5/mockserver_qunit/view/App.view.xml +9 -0
- package/test/reuse/ui5/mockserver_qunit/view/Home.view.xml +12 -0
- package/test/reuse/ui5/mockserver_qunit/view/NotFound.view.xml +11 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/Employee.view.xml +52 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/EmployeeList.view.xml +24 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/Resume.view.xml +35 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeHobbies.view.xml +3 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeNotes.view.xml +3 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeProjects.view.xml +3 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverview.view.xml +13 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverviewContent.view.xml +43 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverviewTop.view.xml +3 -0
- package/test/reuse/ui5/navigation/closePopups.spec.js +16 -0
- package/test/reuse/ui5/navigation/expectUnsupportedNavigationPopup.spec.js +81 -0
- package/test/reuse/ui5/navigation/navigateToApplication.spec.js +148 -0
- package/test/reuse/ui5/navigation/navigateToApplicationAndRetry.spec.js +153 -0
- package/test/reuse/ui5/navigation/navigateToApplicationWithQueryParams.spec.js +63 -0
- package/test/reuse/ui5/navigation/navigateToApplicationWithQueryParamsAndRetry.spec.js +64 -0
- package/test/reuse/ui5/navigation/navigateToSystemAndApplication.spec.js +45 -0
- package/test/reuse/ui5/navigation/navigateToSystemAndApplicationAndRetry.spec.js +43 -0
- package/test/reuse/ui5/navigation/test.navigation.conf.js +17 -0
- package/test/reuse/ui5/navigation/test.navigation.sauceLab.conf.js +33 -0
- package/test/reuse/ui5/navigation/test.navigation.static.conf.js +34 -0
- package/test/reuse/ui5/navigation/test.navigation.static.sauceLab.conf.js +41 -0
- package/test/reuse/ui5/navigation/website/main.css +36 -0
- package/test/reuse/ui5/navigation/website/main.html +50 -0
- package/test/reuse/ui5/navigationBar/clickBack.spec.js +38 -0
- package/test/reuse/ui5/navigationBar/clickUserIcon.spec.js +36 -0
- package/test/reuse/ui5/navigationBar/expectPageTitle.spec.js +22 -0
- package/test/reuse/ui5/navigationBar/expectShellHeader.spec.js +22 -0
- package/test/reuse/ui5/navigationBar/test.navigationBar.conf.js +17 -0
- package/test/reuse/ui5/navigationBar/test.navigationBar.sauceLab.conf.js +28 -0
- package/test/reuse/ui5/session/login.spec.js +78 -0
- package/test/reuse/ui5/session/loginFiori.spec.js +52 -0
- package/test/reuse/ui5/session/loginSapCloud.spec.js +51 -0
- package/test/reuse/ui5/session/logout.spec.js +48 -0
- package/test/reuse/ui5/session/switchUser.spec.js +48 -0
- package/test/reuse/ui5/session/test.session.conf.js +20 -0
- package/test/reuse/ui5/session/test.session.sauceLab.conf.js +29 -0
- package/test/reuse/ui5/table/clickSettingsButton.spec.js +58 -0
- package/test/reuse/ui5/table/sortColumnAscending.spec.js +84 -0
- package/test/reuse/ui5/table/sortColumnDescending.spec.js +84 -0
- package/test/reuse/ui5/table/test.table.conf.js +14 -0
- package/test/reuse/ui5/table/test.table.sauceLab.conf.js +25 -0
- package/test/reuse/ui5/table/test.table.sauceLab.tunnel.conf.js +25 -0
- package/test/reuse/ui5/userInteraction/clear.spec.js +75 -0
- package/test/reuse/ui5/userInteraction/clearAndFill.spec.js +157 -0
- package/test/reuse/ui5/userInteraction/clearAndFillAndRetry.spec.js +132 -0
- package/test/reuse/ui5/userInteraction/clearAndFillSmartFieldInput.spec.js +73 -0
- package/test/reuse/ui5/userInteraction/clearAndRetry.spec.js +57 -0
- package/test/reuse/ui5/userInteraction/click.spec.js +73 -0
- package/test/reuse/ui5/userInteraction/clickAndRetry.spec.js +52 -0
- package/test/reuse/ui5/userInteraction/clickSelectArrow.spec.js +87 -0
- package/test/reuse/ui5/userInteraction/clickSelectArrowAndRetry.spec.js +147 -0
- package/test/reuse/ui5/userInteraction/clickTab.spec.js +59 -0
- package/test/reuse/ui5/userInteraction/doubleClick.spec.js +73 -0
- package/test/reuse/ui5/userInteraction/dragAndDrop.spec.js +34 -0
- package/test/reuse/ui5/userInteraction/fill.spec.js +114 -0
- package/test/reuse/ui5/userInteraction/fillAndRetry.spec.js +120 -0
- package/test/reuse/ui5/userInteraction/mouseOverElement.spec.js +55 -0
- package/test/reuse/ui5/userInteraction/openF4Help.spec.js +56 -0
- package/test/reuse/ui5/userInteraction/rightClick.spec.js +72 -0
- package/test/reuse/ui5/userInteraction/scrollToElement.spec.js +89 -0
- package/test/reuse/ui5/userInteraction/searchFor.spec.js +155 -0
- package/test/reuse/ui5/userInteraction/selectBox.spec.js +128 -0
- package/test/reuse/ui5/userInteraction/selectCombobox.spec.js +115 -0
- package/test/reuse/ui5/userInteraction/selectMultiComboBox.spec.js +155 -0
- package/test/reuse/ui5/userInteraction/test.userInteraction.conf.js +35 -0
- package/test/reuse/ui5/userInteraction/test.userInteraction.sauceLab.conf.js +46 -0
- package/test/reuse/util/browser/back.spec.js +32 -0
- package/test/reuse/util/browser/clearBrowser.spec.js +35 -0
- package/test/reuse/util/browser/executeScript.spec.js +49 -0
- package/test/reuse/util/browser/getBaseUrl.spec.js +13 -0
- package/test/reuse/util/browser/getBrowserName.spec.js +18 -0
- package/test/reuse/util/browser/getCurrentUrl.spec.js +34 -0
- package/test/reuse/util/browser/getCurrentWindow.spec.js +42 -0
- package/test/reuse/util/browser/getUI5Version.spec.js +31 -0
- package/test/reuse/util/browser/logCurrentUrl.spec.js +23 -0
- package/test/reuse/util/browser/refresh.spec.js +52 -0
- package/test/reuse/util/browser/setBaseUrl.spec.js +13 -0
- package/test/reuse/util/browser/switchToDefaultContent.spec.js +34 -0
- package/test/reuse/util/browser/switchToIframe.spec.js +29 -0
- package/test/reuse/util/browser/switchToNewWindow.spec.js +142 -0
- package/test/reuse/util/browser/switchToWindow.spec.js +57 -0
- package/test/reuse/util/browser/test.browser.conf.js +27 -0
- package/test/reuse/util/data/data/test.json +3 -0
- package/test/reuse/util/data/data/test.secure.json +11 -0
- package/test/reuse/util/data/decrypt.spec.js +15 -0
- package/test/reuse/util/data/getData.spec.js +15 -0
- package/test/reuse/util/data/getSecureData.spec.js +57 -0
- package/test/reuse/util/data/test.data.conf.js +22 -0
- package/test/reuse/util/file/file.spec.js +90 -0
- package/test/reuse/util/file/pdfParser.spec.js +55 -0
- package/test/reuse/util/file/test.file.conf.js +15 -0
- package/test/reuse/util/file/testFiles/sample.pdf +198 -0
- package/test/reuse/util/file/testFiles/test.txt +5 -0
- package/test/reuse/util/file/testFiles/test2.txt +2 -0
- package/test/reuse/util/formatter/addRemoveLeadingZeros.spec.js +38 -0
- package/test/reuse/util/formatter/extractNumberFromString.spec.js +67 -0
- package/test/reuse/util/formatter/formatDate.spec.js +150 -0
- package/test/reuse/util/formatter/sliceStringAfter.spec.js +62 -0
- package/test/reuse/util/formatter/sliceStringAt.spec.js +62 -0
- package/test/reuse/util/formatter/stringifyJSON.spec.js +24 -0
- package/test/reuse/util/formatter/test.formatter.conf.js +20 -0
- package/test/reuse/util/formatter/trimString.spec.js +37 -0
- package/tsconfig.json +26 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ConfirmationDialog = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* @class confirmationDialog
|
|
15
|
+
* @memberof ui5
|
|
16
|
+
*/
|
|
17
|
+
class ConfirmationDialog {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.selectors = {
|
|
20
|
+
genericButton: (text) => {
|
|
21
|
+
return {
|
|
22
|
+
"elementProperties": {
|
|
23
|
+
"metadata": "sap.m.Button",
|
|
24
|
+
"mProperties": {
|
|
25
|
+
"text": text
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"parentProperties": {
|
|
29
|
+
"metadata": "sap.m.AssociativeOverflowToolbar"
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @function clickButton
|
|
37
|
+
* @memberOf ui5.confirmationDialog
|
|
38
|
+
* @description Clicks the button with the given text at the confirmation dialog.
|
|
39
|
+
* @param {String} text - The text of the button.
|
|
40
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
41
|
+
* @example await ui5.confirmationDialog.clickButton("Ok");
|
|
42
|
+
*/
|
|
43
|
+
clickButton(text, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
return ui5.userInteraction.click(this.selectors.genericButton(text), 0, timeout);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
;
|
|
49
|
+
/**
|
|
50
|
+
* @function clickOk
|
|
51
|
+
* @memberOf ui5.confirmationDialog
|
|
52
|
+
* @description Clicks the "OK" button at the confirmation dialog.
|
|
53
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
54
|
+
* @example await ui5.confirmationDialog.clickOk();
|
|
55
|
+
*/
|
|
56
|
+
clickOk(timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
// @ts-ignore
|
|
59
|
+
return this.clickButton(/ok/gi, timeout);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
;
|
|
63
|
+
/**
|
|
64
|
+
* @function clickCancel
|
|
65
|
+
* @memberOf ui5.confirmationDialog
|
|
66
|
+
* @description Clicks the "Cancel" button at the confirmation dialog.
|
|
67
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
68
|
+
* @example await ui5.confirmationDialog.clickCancel();
|
|
69
|
+
*/
|
|
70
|
+
clickCancel(timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
return this.clickButton("Cancel", timeout);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
;
|
|
76
|
+
/**
|
|
77
|
+
* @function clickYes
|
|
78
|
+
* @memberOf ui5.confirmationDialog
|
|
79
|
+
* @description Clicks the "Yes" button at the confirmation dialog.
|
|
80
|
+
* @param {Number} [timeout] - The timeout to wait (default value: 30 sec).
|
|
81
|
+
* @example await ui5.confirmationDialog.clickYes();
|
|
82
|
+
*/
|
|
83
|
+
clickYes(timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
return this.clickButton("Yes", timeout);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
;
|
|
89
|
+
/**
|
|
90
|
+
* @function clickNo
|
|
91
|
+
* @memberOf ui5.confirmationDialog
|
|
92
|
+
* @description Clicks the "Yes" button at the confirmation dialog.
|
|
93
|
+
* @param {Number} [timeout] - The timeout to wait (default value: 30 sec).
|
|
94
|
+
* @example await ui5.confirmationDialog.clickNo();
|
|
95
|
+
*/
|
|
96
|
+
clickNo(timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
return this.clickButton("No", timeout);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
;
|
|
102
|
+
/**
|
|
103
|
+
* @function clickCreate
|
|
104
|
+
* @memberOf ui5.confirmationDialog
|
|
105
|
+
* @description Clicks the create button in the confirmation dialog
|
|
106
|
+
* @param {Number} [timeout] - The timeout to wait (default value: 30 sec).
|
|
107
|
+
* @example await ui5.confirmationDialog.clickCreate();
|
|
108
|
+
*/
|
|
109
|
+
clickCreate(timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
110
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
return this.clickButton("Create", timeout);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
;
|
|
115
|
+
/**
|
|
116
|
+
* @function clickDelete
|
|
117
|
+
* @memberOf ui5.confirmationDialog
|
|
118
|
+
* @description Clicks the "Delete" button at the confirmation dialog.
|
|
119
|
+
* @param {Number} [timeout] - The timeout to wait (default value: 30 sec).
|
|
120
|
+
* @example await ui5.confirmationDialog.clickDelete();
|
|
121
|
+
*/
|
|
122
|
+
clickDelete(timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
return this.clickButton("Delete", timeout);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
;
|
|
128
|
+
/**
|
|
129
|
+
* @function clickRevokeApproval
|
|
130
|
+
* @memberOf ui5.confirmationDialog
|
|
131
|
+
* @description Clicks the "Revoke Approval" button at the confirmation dialog.
|
|
132
|
+
* @param {Number} [timeout] - The timeout to wait (default value: 30 sec).
|
|
133
|
+
* @example await ui5.confirmationDialog.clickRevokeApproval();
|
|
134
|
+
*/
|
|
135
|
+
clickRevokeApproval(timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
136
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
+
return this.clickButton("Revoke Approval", timeout);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
;
|
|
141
|
+
}
|
|
142
|
+
exports.ConfirmationDialog = ConfirmationDialog;
|
|
143
|
+
;
|
|
144
|
+
exports.default = new ConfirmationDialog();
|
|
145
|
+
//# sourceMappingURL=confirmationDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmationDialog.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/confirmationDialog.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AACb;;;GAGG;AACH,MAAa,kBAAkB;IAA/B;QAEE,cAAS,GAAG;YACV,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC9B,OAAO;oBACL,mBAAmB,EAAE;wBACnB,UAAU,EAAE,cAAc;wBAC1B,aAAa,EAAE;4BACb,MAAM,EAAE,IAAI;yBACb;qBACF;oBACD,kBAAkB,EAAE;wBAClB,UAAU,EAAE,kCAAkC;qBAC/C;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;IA4FJ,CAAC;IA1FC;;;;;;;OAOG;IACG,WAAW,CAAE,IAAY,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;;YAClF,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACnF,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;OAMG;IACG,OAAO,CAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;;YAChE,aAAa;YACb,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;OAMG;IACG,WAAW,CAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;;YACpE,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;OAMG;IACG,QAAQ,CAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;;YACjE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;OAMG;IACG,OAAO,CAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;;YAChE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;OAMG;IACG,WAAW,CAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;;YACpE,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;OAMG;IACG,WAAW,CAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;;YACpE,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;OAMG;IACG,mBAAmB,CAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;;YAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;KAAA;IAAA,CAAC;CAEH;AA5GD,gDA4GC;AAAA,CAAC;AACF,kBAAe,IAAI,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequestMethod = void 0;
|
|
4
|
+
var RequestMethod;
|
|
5
|
+
(function (RequestMethod) {
|
|
6
|
+
RequestMethod["GET"] = "GET";
|
|
7
|
+
RequestMethod["POST"] = "POST";
|
|
8
|
+
})(RequestMethod = exports.RequestMethod || (exports.RequestMethod = {}));
|
|
9
|
+
//# sourceMappingURL=mockserver.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockserver.constants.js","sourceRoot":"","sources":["../../../../../src/reuse/modules/ui5/constants/mockserver.constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,8BAAa,CAAA;AACf,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class control
|
|
3
|
+
* @memberof ui5
|
|
4
|
+
*/
|
|
5
|
+
export declare class Control {
|
|
6
|
+
private lib;
|
|
7
|
+
private locatorCommands;
|
|
8
|
+
/**
|
|
9
|
+
* @function execute
|
|
10
|
+
* @memberOf ui5.control
|
|
11
|
+
* @description Executes a native UI5 action as callback function in the browser on the given UI5 control.
|
|
12
|
+
* @param {Function} callbackFunction - The client script function to be used with the control instance.
|
|
13
|
+
* Caution: The first and last parameter is reserved for the mockserver instance and the promise resolve function - done.
|
|
14
|
+
* @param {String | Object} selectorOrElement - The selector object or the dom element (retrieved from getDisplayedElement).
|
|
15
|
+
* @param {Object} args - An object containing the arguments to pass to the callback function.
|
|
16
|
+
* @example const selector = {"elementProperties":{"metadata":"sap.m.StandardListItem", "id": "*categoryList-7"}};
|
|
17
|
+
* const args = {"property": "text"};
|
|
18
|
+
* const title = await ui5.control.execute(function (control, args, done) {
|
|
19
|
+
* done(control.getProperty(args.property));
|
|
20
|
+
* }, selector, args);
|
|
21
|
+
**/
|
|
22
|
+
execute(callbackFunction: Function, selectorOrElement: any, args?: any): Promise<any>;
|
|
23
|
+
/**
|
|
24
|
+
* @function getProperty
|
|
25
|
+
* @memberOf ui5.control
|
|
26
|
+
* @description Gets the UI5 control property of the given element.
|
|
27
|
+
* @param {Object} elem - The element.
|
|
28
|
+
* @param {String} propertyName - The property name of the control to retrieve the value from.
|
|
29
|
+
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
|
|
30
|
+
* const elem = await ui5.control.locator.getDisplayedElement(selector);
|
|
31
|
+
* const propertyName = "title";
|
|
32
|
+
* const val = await ui5.control.getProperty(elem, propertyName);
|
|
33
|
+
**/
|
|
34
|
+
getProperty(elem: Element, propertyName: string): Promise<any>;
|
|
35
|
+
/**
|
|
36
|
+
* @function getAggregationProperty
|
|
37
|
+
* @memberOf ui5.control
|
|
38
|
+
* @description Gets the UI5 control aggregation property of the given element.
|
|
39
|
+
* @param {Object} elem - The element.
|
|
40
|
+
* @param {String} propertyName - The aggregation property name of the control to retrieve the value from.
|
|
41
|
+
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "items":[{"path":"/Categories"}] }};
|
|
42
|
+
* const elem = await ui5.control.locator.getDisplayedElement(selector);
|
|
43
|
+
* const propertyName = "tooltip";
|
|
44
|
+
* const val = await ui5.control.getAggregationProperty(elem, propertyName);
|
|
45
|
+
**/
|
|
46
|
+
getAggregationProperty(elem: Element, propertyName: string): Promise<any>;
|
|
47
|
+
/**
|
|
48
|
+
* @function getAssociationProperty
|
|
49
|
+
* @memberOf ui5.control
|
|
50
|
+
* @description Get UI control property
|
|
51
|
+
* @param {Object} elem - The element.
|
|
52
|
+
* @param {String} propertyName - The association property name of the control to retrieve the value from.
|
|
53
|
+
* @example const selector = { "elementProperties":{"metadata":"sap.m.MultiComboBox","mProperties":{}};
|
|
54
|
+
* const elem = await ui5.control.locator.getDisplayedElement(selector);
|
|
55
|
+
* const propertyName = "selectedItems";
|
|
56
|
+
* const propertyValue = await ui5.control.getAssociationProperty(elem, propertyName);
|
|
57
|
+
**/
|
|
58
|
+
getAssociationProperty(elem: Element, propertyName: string): Promise<any>;
|
|
59
|
+
/**
|
|
60
|
+
* @function getBindingContextPathProperty
|
|
61
|
+
* @memberOf ui5.control
|
|
62
|
+
* @description Get UI control binding context path
|
|
63
|
+
* @param {Object} elem - The element.
|
|
64
|
+
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{"title":[{"path":"CategoryName"}] }};
|
|
65
|
+
* const elem = await ui5.control.locator.getDisplayedElement(selector);
|
|
66
|
+
* const context = await ui5.control.getBindingContextPathProperty(elem);
|
|
67
|
+
**/
|
|
68
|
+
getBindingContextPathProperty(elem: Element): Promise<any>;
|
|
69
|
+
/**
|
|
70
|
+
* @function getPropertyBinding
|
|
71
|
+
* @memberOf ui5.control
|
|
72
|
+
* @description Get UI control property
|
|
73
|
+
* @param {Object} elem - The element.
|
|
74
|
+
* @param {String} propertyName - The property name to retrieve from the control binding
|
|
75
|
+
* @returns {Array} Array of bindings for the specific property
|
|
76
|
+
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
|
|
77
|
+
* const elem = await ui5.control.locator.getDisplayedElement(selector);
|
|
78
|
+
* const propertyName = "title";
|
|
79
|
+
* const binding = await ui5.control.getPropertyBinding(elem, propertyName);
|
|
80
|
+
**/
|
|
81
|
+
getPropertyBinding(elem: Element, propertyName: string): Promise<any>;
|
|
82
|
+
}
|
|
83
|
+
declare const _default: Control;
|
|
84
|
+
export default _default;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Control = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* @class control
|
|
15
|
+
* @memberof ui5
|
|
16
|
+
*/
|
|
17
|
+
class Control {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.lib = require("../../../scripts/hooks/utils/lib");
|
|
20
|
+
this.locatorCommands = require("../../../scripts/hooks/utils/locatorCommands");
|
|
21
|
+
}
|
|
22
|
+
// =================================== EXECUTE ===================================
|
|
23
|
+
/**
|
|
24
|
+
* @function execute
|
|
25
|
+
* @memberOf ui5.control
|
|
26
|
+
* @description Executes a native UI5 action as callback function in the browser on the given UI5 control.
|
|
27
|
+
* @param {Function} callbackFunction - The client script function to be used with the control instance.
|
|
28
|
+
* Caution: The first and last parameter is reserved for the mockserver instance and the promise resolve function - done.
|
|
29
|
+
* @param {String | Object} selectorOrElement - The selector object or the dom element (retrieved from getDisplayedElement).
|
|
30
|
+
* @param {Object} args - An object containing the arguments to pass to the callback function.
|
|
31
|
+
* @example const selector = {"elementProperties":{"metadata":"sap.m.StandardListItem", "id": "*categoryList-7"}};
|
|
32
|
+
* const args = {"property": "text"};
|
|
33
|
+
* const title = await ui5.control.execute(function (control, args, done) {
|
|
34
|
+
* done(control.getProperty(args.property));
|
|
35
|
+
* }, selector, args);
|
|
36
|
+
**/
|
|
37
|
+
execute(callbackFunction, selectorOrElement, args) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
return this.lib.controlActionInBrowser(callbackFunction, selectorOrElement, args);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
;
|
|
43
|
+
// =================================== GET ===================================
|
|
44
|
+
/**
|
|
45
|
+
* @function getProperty
|
|
46
|
+
* @memberOf ui5.control
|
|
47
|
+
* @description Gets the UI5 control property of the given element.
|
|
48
|
+
* @param {Object} elem - The element.
|
|
49
|
+
* @param {String} propertyName - The property name of the control to retrieve the value from.
|
|
50
|
+
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
|
|
51
|
+
* const elem = await ui5.control.locator.getDisplayedElement(selector);
|
|
52
|
+
* const propertyName = "title";
|
|
53
|
+
* const val = await ui5.control.getProperty(elem, propertyName);
|
|
54
|
+
**/
|
|
55
|
+
getProperty(elem, propertyName) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
return this.locatorCommands.getUI5Property(propertyName, elem);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
;
|
|
61
|
+
/**
|
|
62
|
+
* @function getAggregationProperty
|
|
63
|
+
* @memberOf ui5.control
|
|
64
|
+
* @description Gets the UI5 control aggregation property of the given element.
|
|
65
|
+
* @param {Object} elem - The element.
|
|
66
|
+
* @param {String} propertyName - The aggregation property name of the control to retrieve the value from.
|
|
67
|
+
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "items":[{"path":"/Categories"}] }};
|
|
68
|
+
* const elem = await ui5.control.locator.getDisplayedElement(selector);
|
|
69
|
+
* const propertyName = "tooltip";
|
|
70
|
+
* const val = await ui5.control.getAggregationProperty(elem, propertyName);
|
|
71
|
+
**/
|
|
72
|
+
getAggregationProperty(elem, propertyName) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
return this.locatorCommands.getUI5Aggregation(propertyName, elem);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
;
|
|
78
|
+
/**
|
|
79
|
+
* @function getAssociationProperty
|
|
80
|
+
* @memberOf ui5.control
|
|
81
|
+
* @description Get UI control property
|
|
82
|
+
* @param {Object} elem - The element.
|
|
83
|
+
* @param {String} propertyName - The association property name of the control to retrieve the value from.
|
|
84
|
+
* @example const selector = { "elementProperties":{"metadata":"sap.m.MultiComboBox","mProperties":{}};
|
|
85
|
+
* const elem = await ui5.control.locator.getDisplayedElement(selector);
|
|
86
|
+
* const propertyName = "selectedItems";
|
|
87
|
+
* const propertyValue = await ui5.control.getAssociationProperty(elem, propertyName);
|
|
88
|
+
**/
|
|
89
|
+
getAssociationProperty(elem, propertyName) {
|
|
90
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
return this.locatorCommands.getUI5Association(propertyName, elem);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
;
|
|
95
|
+
/**
|
|
96
|
+
* @function getBindingContextPathProperty
|
|
97
|
+
* @memberOf ui5.control
|
|
98
|
+
* @description Get UI control binding context path
|
|
99
|
+
* @param {Object} elem - The element.
|
|
100
|
+
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{"title":[{"path":"CategoryName"}] }};
|
|
101
|
+
* const elem = await ui5.control.locator.getDisplayedElement(selector);
|
|
102
|
+
* const context = await ui5.control.getBindingContextPathProperty(elem);
|
|
103
|
+
**/
|
|
104
|
+
getBindingContextPathProperty(elem) {
|
|
105
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
return this.locatorCommands.getBindingContextPath(elem);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
;
|
|
110
|
+
/**
|
|
111
|
+
* @function getPropertyBinding
|
|
112
|
+
* @memberOf ui5.control
|
|
113
|
+
* @description Get UI control property
|
|
114
|
+
* @param {Object} elem - The element.
|
|
115
|
+
* @param {String} propertyName - The property name to retrieve from the control binding
|
|
116
|
+
* @returns {Array} Array of bindings for the specific property
|
|
117
|
+
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
|
|
118
|
+
* const elem = await ui5.control.locator.getDisplayedElement(selector);
|
|
119
|
+
* const propertyName = "title";
|
|
120
|
+
* const binding = await ui5.control.getPropertyBinding(elem, propertyName);
|
|
121
|
+
**/
|
|
122
|
+
getPropertyBinding(elem, propertyName) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
return this.locatorCommands.getBindingProperty(propertyName, elem);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
;
|
|
128
|
+
}
|
|
129
|
+
exports.Control = Control;
|
|
130
|
+
;
|
|
131
|
+
exports.default = new Control();
|
|
132
|
+
//# sourceMappingURL=control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/control.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AACb;;;GAGG;AACH,MAAa,OAAO;IAApB;QAEU,QAAG,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAClD,oBAAe,GAAG,OAAO,CAAC,8CAA8C,CAAC,CAAC;IAkGpF,CAAC;IAhGC,kFAAkF;IAClF;;;;;;;;;;;;;QAaI;IACE,OAAO,CAAE,gBAA0B,EAAE,iBAAsB,EAAE,IAAU;;YAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACpF,CAAC;KAAA;IAAA,CAAC;IAGF,8EAA8E;IAC9E;;;;;;;;;;QAUI;IACE,WAAW,CAAE,IAAa,EAAE,YAAoB;;YACpD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACjE,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;;;;;QAUI;IACE,sBAAsB,CAAE,IAAa,EAAE,YAAoB;;YAC/D,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;;;;;QAUI;IACE,sBAAsB,CAAE,IAAa,EAAE,YAAoB;;YAC/D,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;;;QAQI;IACE,6BAA6B,CAAE,IAAa;;YAChD,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;KAAA;IAAA,CAAC;IAGF;;;;;;;;;;;QAWI;IACE,kBAAkB,CAAE,IAAa,EAAE,YAAoB;;YAC3D,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;KAAA;IAAA,CAAC;CAEH;AArGD,0BAqGC;AAAA,CAAC;AACF,kBAAe,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class date
|
|
3
|
+
* @memberof ui5
|
|
4
|
+
*/
|
|
5
|
+
export declare class DateModule {
|
|
6
|
+
/**
|
|
7
|
+
* @function pick
|
|
8
|
+
* @memberOf ui5.date
|
|
9
|
+
* @description Picks the passed date using the "DatePicker" with the given selector.
|
|
10
|
+
* @param {Selector} selector - The selector describing the element.
|
|
11
|
+
* @param {Date} date - The date object.
|
|
12
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
13
|
+
* @example const today = await common.date.calculate("today");
|
|
14
|
+
* await ui5.date.pick(selector, date);
|
|
15
|
+
*/
|
|
16
|
+
pick(selector: any, date: Date, index?: number): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* @function pickRange
|
|
19
|
+
* @memberOf ui5.date
|
|
20
|
+
* @description Picks the passed date range using the "DatePicker" with the given selector.
|
|
21
|
+
* Note that this will only work within the current month!
|
|
22
|
+
* @param {Selector} selector - The selector describing the element.
|
|
23
|
+
* @param {Object[]} range - The array of date objects containing start- and end date.
|
|
24
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
25
|
+
* @example const start = await common.date.calculate("2020, 9, 20");
|
|
26
|
+
* const end = await common.date.calculate("2021, 1, 3");
|
|
27
|
+
* const range = [start, end];
|
|
28
|
+
* await ui5.date.pickRange(selector, range);
|
|
29
|
+
*/
|
|
30
|
+
pickRange(selector: any, range: Date[], index?: number): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* @function fillRange
|
|
33
|
+
* @memberOf ui5.date
|
|
34
|
+
* @description Enters the passed date range to the date input with the given selector by providing the start- and end date.
|
|
35
|
+
* @param {Selector} selector - The selector describing the element.
|
|
36
|
+
* @param {Object[]} range - The array of date objects containing start- and end date.
|
|
37
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
38
|
+
* @example const start = await common.date.calculate("2020, 9, 20", "dd.mm.yyyy");
|
|
39
|
+
* const end = await common.date.calculate("2021, 1, 3", "dd.mm.yyyy");
|
|
40
|
+
* const range = [start, end];
|
|
41
|
+
* await ui5.date.fillRange(selector, range);
|
|
42
|
+
*/
|
|
43
|
+
fillRange(selector: any, range: Date[], index?: number): Promise<void>;
|
|
44
|
+
private _openDatePicker;
|
|
45
|
+
private _selectDate;
|
|
46
|
+
}
|
|
47
|
+
declare const _default: DateModule;
|
|
48
|
+
export default _default;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DateModule = void 0;
|
|
13
|
+
const formatter_constants_1 = require("../util/constants/formatter.constants");
|
|
14
|
+
/**
|
|
15
|
+
* @class date
|
|
16
|
+
* @memberof ui5
|
|
17
|
+
*/
|
|
18
|
+
class DateModule {
|
|
19
|
+
// =================================== PICK ===================================
|
|
20
|
+
/**
|
|
21
|
+
* @function pick
|
|
22
|
+
* @memberOf ui5.date
|
|
23
|
+
* @description Picks the passed date using the "DatePicker" with the given selector.
|
|
24
|
+
* @param {Selector} selector - The selector describing the element.
|
|
25
|
+
* @param {Date} date - The date object.
|
|
26
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
27
|
+
* @example const today = await common.date.calculate("today");
|
|
28
|
+
* await ui5.date.pick(selector, date);
|
|
29
|
+
*/
|
|
30
|
+
pick(selector, date, index = 0) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
let id = yield ui5.element.getId(selector, index);
|
|
33
|
+
if (selector.elementProperties.metadata === "sap.ui.core.Icon") {
|
|
34
|
+
id = id.replace("-icon", "");
|
|
35
|
+
}
|
|
36
|
+
const tempSelector = {
|
|
37
|
+
"elementProperties": {
|
|
38
|
+
"metadata": "sap.m.DatePicker",
|
|
39
|
+
"id": id
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
yield this._openDatePicker(tempSelector);
|
|
43
|
+
yield this._selectDate(tempSelector, date);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
;
|
|
47
|
+
/**
|
|
48
|
+
* @function pickRange
|
|
49
|
+
* @memberOf ui5.date
|
|
50
|
+
* @description Picks the passed date range using the "DatePicker" with the given selector.
|
|
51
|
+
* Note that this will only work within the current month!
|
|
52
|
+
* @param {Selector} selector - The selector describing the element.
|
|
53
|
+
* @param {Object[]} range - The array of date objects containing start- and end date.
|
|
54
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
55
|
+
* @example const start = await common.date.calculate("2020, 9, 20");
|
|
56
|
+
* const end = await common.date.calculate("2021, 1, 3");
|
|
57
|
+
* const range = [start, end];
|
|
58
|
+
* await ui5.date.pickRange(selector, range);
|
|
59
|
+
*/
|
|
60
|
+
pickRange(selector, range, index = 0) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
let id = yield ui5.element.getId(selector, index);
|
|
63
|
+
if (selector.elementProperties.metadata === "sap.ui.core.Icon") {
|
|
64
|
+
id = id.replace("-icon", "");
|
|
65
|
+
}
|
|
66
|
+
const tempSelector = {
|
|
67
|
+
"elementProperties": {
|
|
68
|
+
"metadata": "sap.m.DateRangeSelection",
|
|
69
|
+
"id": id
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
yield this._openDatePicker(tempSelector);
|
|
73
|
+
yield this._selectDate(tempSelector, range[0]);
|
|
74
|
+
yield this._selectDate(tempSelector, range[1]);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
;
|
|
78
|
+
// =================================== FILL ===================================
|
|
79
|
+
/**
|
|
80
|
+
* @function fillRange
|
|
81
|
+
* @memberOf ui5.date
|
|
82
|
+
* @description Enters the passed date range to the date input with the given selector by providing the start- and end date.
|
|
83
|
+
* @param {Selector} selector - The selector describing the element.
|
|
84
|
+
* @param {Object[]} range - The array of date objects containing start- and end date.
|
|
85
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
86
|
+
* @example const start = await common.date.calculate("2020, 9, 20", "dd.mm.yyyy");
|
|
87
|
+
* const end = await common.date.calculate("2021, 1, 3", "dd.mm.yyyy");
|
|
88
|
+
* const range = [start, end];
|
|
89
|
+
* await ui5.date.fillRange(selector, range);
|
|
90
|
+
*/
|
|
91
|
+
fillRange(selector, range, index = 0) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
const value = range[0] + " - " + range[1];
|
|
94
|
+
yield ui5.userInteraction.clearAndFill(selector, value, index);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
;
|
|
98
|
+
// =================================== HELPER ===================================
|
|
99
|
+
_openDatePicker(selector) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
const id = selector.elementProperties.id;
|
|
102
|
+
const icon = yield nonUi5.element.getById(`${id}-icon`);
|
|
103
|
+
yield nonUi5.userInteraction.click(icon);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
_selectDate(selector, date) {
|
|
107
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
const year = date.getFullYear();
|
|
109
|
+
const month = date.getMonth();
|
|
110
|
+
let found = false;
|
|
111
|
+
const id = selector.elementProperties.id;
|
|
112
|
+
const value = yield ui5.element.getValue(selector);
|
|
113
|
+
const currentDate = new Date(value);
|
|
114
|
+
const currentYear = currentDate.getFullYear();
|
|
115
|
+
const currentMonth = currentDate.getMonth();
|
|
116
|
+
if (year !== currentYear) {
|
|
117
|
+
const yearOverview = yield nonUi5.element.getById(`${id}-cal--Head-B2`);
|
|
118
|
+
yield nonUi5.userInteraction.click(yearOverview);
|
|
119
|
+
while (!found) {
|
|
120
|
+
const yearSpanElem = yield nonUi5.element.getById(`${id}-cal--Head-B2`);
|
|
121
|
+
const yearSpan = yield yearSpanElem.getText();
|
|
122
|
+
const yearMin = yearSpan.slice(0, 4);
|
|
123
|
+
const yearMax = yearSpan.slice(7, 11);
|
|
124
|
+
if (year < Number(yearMin)) {
|
|
125
|
+
const prev = yield nonUi5.element.getById(`${id}-cal--Head-prev`);
|
|
126
|
+
yield nonUi5.userInteraction.click(prev);
|
|
127
|
+
}
|
|
128
|
+
else if (year > Number(yearMax)) {
|
|
129
|
+
const next = yield nonUi5.element.getById(`${id}-cal--Head-next`);
|
|
130
|
+
yield nonUi5.userInteraction.click(next);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
found = true;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const yearPick = yield nonUi5.element.getByCss(`[id*="${id}-cal--YP-y${year}"]`);
|
|
137
|
+
yield nonUi5.userInteraction.click(yearPick);
|
|
138
|
+
}
|
|
139
|
+
if (month !== currentMonth) {
|
|
140
|
+
const monthOverview = yield nonUi5.element.getById(`${id}-cal--Head-B1`);
|
|
141
|
+
yield nonUi5.userInteraction.click(monthOverview);
|
|
142
|
+
const monthPick = yield nonUi5.element.getByCss(`[id*="${id}-cal--MP-m${month}"]`);
|
|
143
|
+
yield nonUi5.userInteraction.click(monthPick);
|
|
144
|
+
}
|
|
145
|
+
const dayPick = yield nonUi5.element.getByCss(`[id="${id}-cal"] .sapUiCalItem[data-sap-day="${util.formatter.formatDate(date, formatter_constants_1.DateFormats.YEAR_MONTH_DAY_PLAIN)}"] .sapUiCalItemText`);
|
|
146
|
+
yield nonUi5.userInteraction.click(dayPick);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.DateModule = DateModule;
|
|
151
|
+
;
|
|
152
|
+
exports.default = new DateModule();
|
|
153
|
+
//# sourceMappingURL=date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/date.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AAEb,+EAAoE;AAEpE;;;GAGG;AACH,MAAa,UAAU;IAErB,+EAA+E;IAC/E;;;;;;;;;OASG;IACG,IAAI,CAAE,QAAa,EAAE,IAAU,EAAE,QAAgB,CAAC;;YACtD,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,KAAK,kBAAkB,EAAE;gBAC9D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;aAC9B;YAED,MAAM,YAAY,GAAG;gBACnB,mBAAmB,EAAG;oBACpB,UAAU,EAAG,kBAAkB;oBAC/B,IAAI,EAAG,EAAE;iBACV;aACF,CAAC;YAEF,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;;;;;;;OAYG;IACG,SAAS,CAAE,QAAa,EAAE,KAAa,EAAE,KAAK,GAAG,CAAC;;YACtD,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,KAAK,kBAAkB,EAAE;gBAC9D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;aAC9B;YAED,MAAM,YAAY,GAAG;gBACnB,mBAAmB,EAAG;oBACpB,UAAU,EAAG,0BAA0B;oBACvC,IAAI,EAAG,EAAE;iBACV;aACF,CAAC;YACF,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;KAAA;IAAA,CAAC;IAEF,+EAA+E;IAC/E;;;;;;;;;;;OAWG;IACG,SAAS,CAAE,QAAa,EAAE,KAAa,EAAE,QAAgB,CAAC;;YAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;KAAA;IAAA,CAAC;IAGF,iFAAiF;IACnE,eAAe,CAAC,QAAa;;YACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEa,WAAW,CAAC,QAAa,EAAE,IAAU;;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE9B,IAAI,KAAK,GAAG,KAAK,CAAC;YAElB,MAAM,EAAE,GAAG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAEzC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEnD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YAE5C,IAAI,IAAI,KAAK,WAAW,EAAE;gBACxB,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;gBACxE,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAEjD,OAAO,CAAC,KAAK,EAAE;oBACb,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;oBACxE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;oBAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE;wBAC1B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;wBAClE,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBAC1C;yBAAM,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE;wBACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;wBAClE,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBAC1C;yBAAM;wBACL,KAAK,GAAG,IAAI,CAAC;qBACd;iBACF;gBACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,IAAI,IAAI,CAAC,CAAC;gBACjF,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aAC9C;YAED,IAAI,KAAK,KAAK,YAAY,EAAE;gBAC1B,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;gBACzE,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAElD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC,CAAC;gBACnF,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aAC/C;YAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,sCAAsC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,iCAAW,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;YACvL,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;KAAA;CAEF;AAvID,gCAuIC;AAAA,CAAC;AACF,kBAAe,IAAI,UAAU,EAAE,CAAC"}
|