From c9ef6490e3727f373437b6f4917184d1702b89a3 Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 12 Sep 2024 16:44:24 +0530 Subject: [PATCH 1/5] Implemented: Added the support for using facility selector from dxp-component(#dxp/228) --- package-lock.json | 1255 +++------------------- package.json | 4 +- src/adapter/index.ts | 6 +- src/components/Menu.vue | 6 +- src/main.ts | 7 +- src/store/modules/order/actions.ts | 14 +- src/store/modules/shipment/actions.ts | 14 +- src/store/modules/user/UserState.ts | 1 - src/store/modules/user/actions.ts | 23 +- src/store/modules/user/getters.ts | 3 - src/store/modules/user/index.ts | 1 - src/store/modules/user/mutation-types.ts | 1 - src/store/modules/user/mutations.ts | 4 - src/views/AddProductModal.vue | 6 +- src/views/AddProductToPOModal.vue | 7 +- src/views/PurchaseOrderDetail.vue | 8 +- src/views/PurchaseOrders.vue | 10 +- src/views/Returns.vue | 11 +- src/views/Settings.vue | 31 +- src/views/ShipmentDetails.vue | 8 +- src/views/Shipments.vue | 11 +- 21 files changed, 242 insertions(+), 1189 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e26e718..ddb6d4c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,8 +13,8 @@ "@casl/ability": "^6.0.0", "@hotwax/app-version-info": "^1.0.0", "@hotwax/apps-theme": "^1.2.6", - "@hotwax/dxp-components": "1.13.0", - "@hotwax/oms-api": "1.14.0", + "@hotwax/dxp-components": "file:../dxp-components", + "@hotwax/oms-api": "file:../oms-api", "@ionic/core": "^7.6.0", "@ionic/vue": "^7.6.0", "@ionic/vue-router": "^7.6.0", @@ -51,6 +51,65 @@ "typescript": "~4.7.4" } }, + "../dxp-components": { + "name": "@hotwax/dxp-components", + "version": "1.15.2", + "license": "Apache-2.0", + "dependencies": { + "@hotwax/oms-api": "^1.8.1", + "@ionic/core": "^7.6.0", + "@ionic/vue": "^7.6.0", + "firebase": "^10.3.1", + "luxon": "^3.3.0", + "pinia": "2.0.36", + "pinia-plugin-persistedstate": "^3.1.0", + "register-service-worker": "^1.7.2", + "vue": "^3.3.4", + "vue-i18n": "^9.2.2", + "vue-markdown-render": "^2.2.1" + }, + "devDependencies": { + "@babel/types": "^7.22.11", + "@types/luxon": "^3.3.0", + "@types/node": "^20.5.7", + "@vitejs/plugin-vue": "^4.3.4", + "@vue/eslint-config-prettier": "^8.0.0", + "@vue/eslint-config-typescript": "^11.0.3", + "@vue/tsconfig": "^0.1.3", + "eslint": "^8.48.0", + "eslint-plugin-vue": "^9.17.0", + "rollup-plugin-typescript2": "^0.35.0", + "typescript": "~4.7.4", + "vite": "^4.4.9", + "vue-tsc": "^1.8.8" + } + }, + "../oms-api": { + "name": "@hotwax/oms-api", + "version": "1.15.0", + "license": "Apache-2.0", + "dependencies": { + "@types/node-json-transform": "^1.0.0", + "axios": "^0.21.1", + "axios-cache-adapter": "^2.7.3", + "deepmerge": "^4.3.0", + "http-status-codes": "^2.2.0", + "node-json-transform": "^1.1.2", + "qs": "^6.11.0" + }, + "devDependencies": { + "@babel/cli": "^7.18.10", + "@babel/core": "^7.18.10", + "@babel/preset-env": "^7.18.10", + "@babel/preset-typescript": "^7.18.6", + "@types/qs": "^6.9.7", + "@typescript-eslint/eslint-plugin": "^5.27.0", + "@typescript-eslint/parser": "^5.27.0", + "babel-plugin-module-resolver": "^4.1.0", + "eslint": "^8.16.0", + "typescript": "^4.7.2" + } + }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", @@ -2004,766 +2063,71 @@ "dev": true, "dependencies": { "ms": "^2.1.1" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@firebase/analytics": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.2.tgz", - "integrity": "sha512-6Gv/Fndih+dOEEfsBJEeKlwxw9EvCO9D/y+yJMasblvCmj78wUVtn+T96zguSrbhfZ2yBhLS1vukYiPg6hI49w==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/installations": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/analytics-compat": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.8.tgz", - "integrity": "sha512-scvzDPIsP9HcLWM77YQD7F3yLQksGvPUzyfqUrPo9XxIx26txJvGMJAS8O8BHa6jIvsjUenaTZ5oXEtKqNZQ9Q==", - "dependencies": { - "@firebase/analytics": "0.10.2", - "@firebase/analytics-types": "0.8.1", - "@firebase/component": "0.6.6", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/analytics-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/analytics-types": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.1.tgz", - "integrity": "sha512-niv/67/EOkTlGUxyiOYfIkysSMGYxkIUHJzT9pNkeIGt6zOz759oCUXOAwwjJzckh11dMBFjIYBmtWrdSgbmJw==" - }, - "node_modules/@firebase/analytics/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/app": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.10.0.tgz", - "integrity": "sha512-bemcsqQD4teEnCM/+FiK8LFjlfoIFewMY3LOIgxa59ISlkk4zlw4ezz1iLY45yQ6ip6WDwky7cx9UruFBAn6iw==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "idb": "7.1.1", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/app-check": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.3.tgz", - "integrity": "sha512-nvlsj5oZBtYDjFTygQJ6xpyiYj8Jao2bFFyNJkUUPdg/QB8uhqDeG74P+gUH6iY9qzd1g5ZokmmGsoIhv9tdSQ==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/app-check-compat": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.10.tgz", - "integrity": "sha512-v+jiLG3rQ1fhpIuNIm3WqrL4dkPUIkgOWoic7QABVsZKSAv2YhOFvAenp7IhSP/pz/aiPniJ8G7el/MWieECTg==", - "dependencies": { - "@firebase/app-check": "0.8.3", - "@firebase/app-check-types": "0.5.1", - "@firebase/component": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/app-check-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/app-check-interop-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.1.tgz", - "integrity": "sha512-NILZbe6RH3X1pZmJnfOfY2gLIrlKmrkUMMrrK6VSXHcSE0eQv28xFEcw16D198i9JYZpy5Kwq394My62qCMaIw==" - }, - "node_modules/@firebase/app-check-types": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.1.tgz", - "integrity": "sha512-NqeIcuGzZjl+khpXV0qsyOoaTqLeiG/K0kIDrebol+gb7xpmfOvXXqPEls+1WFBgHcPGdu+XRLhBA7xLzrVdpA==" - }, - "node_modules/@firebase/app-check/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/app-compat": { - "version": "0.2.30", - "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.30.tgz", - "integrity": "sha512-S3FI3yx36xq5NYWXv/rqZiEnkQ89QwfGdl26iWZ9skuOGM96DYQUxs/zs7NkfAQcfpXC8f5DuUrE0Rz/0XdTEg==", - "dependencies": { - "@firebase/app": "0.10.0", - "@firebase/component": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/app-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/app-types": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.1.tgz", - "integrity": "sha512-nFGqTYsnDFn1oXf1tCwPAc+hQPxyvBT/QB7qDjwK+IDYThOn63nGhzdUTXxVD9Ca8gUY/e5PQMngeo0ZW/E3uQ==" - }, - "node_modules/@firebase/app/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/auth": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.7.0.tgz", - "integrity": "sha512-xvyCR3Ivan74AwT/rQOqrYkyu4Ccz6GOFaohi1Pw3gLOpG2WIdC/phc4zdQkLJjmbGFcYNisHyqII2P/H9ZJow==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0", - "undici": "5.28.3" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@react-native-async-storage/async-storage": "^1.18.1" - }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } - } - }, - "node_modules/@firebase/auth-compat": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.5.tgz", - "integrity": "sha512-iAq/wCCEX4TPhZeCOmLxscHh6oZtvJ4g/FcRLynFntW3WOtrWF9/91jq+FsDSSJo9Av8MpnayCbbx+jpGSv4DQ==", - "dependencies": { - "@firebase/auth": "1.7.0", - "@firebase/auth-types": "0.12.1", - "@firebase/component": "0.6.6", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0", - "undici": "5.28.3" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/auth-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/auth-interop-types": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.2.tgz", - "integrity": "sha512-k3NA28Jfoo0+o391bFjoV9X5QLnUL1WbLhZZRbTQhZdmdGYJfX8ixtNNlHsYQ94bwG0QRbsmvkzDnzuhHrV11w==" - }, - "node_modules/@firebase/auth-types": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.1.tgz", - "integrity": "sha512-B3dhiWRWf/njWosx4zdhSEoD4WHJmr4zbnBw6t20mRG/IZ4u0rWUBlMP1vFjhMstKIow1XmoGhTwD65X5ZXLjw==", - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "1.x" - } - }, - "node_modules/@firebase/auth/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/component": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.6.tgz", - "integrity": "sha512-pp7sWqHmAAlA3os6ERgoM3k5Cxff510M9RLXZ9Mc8KFKMBc2ct3RkZTWUF7ixJNvMiK/iNgRLPDrLR2gtRJ9iQ==", - "dependencies": { - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/component/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/database": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.4.tgz", - "integrity": "sha512-k84cXh+dtpzvY6yOhfyr1B+I1vjvSMtmlqotE0lTNVylc8m5nmOohjzpTLEQDrBWvwACX/VP5fEyajAdmnOKqA==", - "dependencies": { - "@firebase/app-check-interop-types": "0.3.1", - "@firebase/auth-interop-types": "0.2.2", - "@firebase/component": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "faye-websocket": "0.11.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database-compat": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.4.tgz", - "integrity": "sha512-GEEDAvsSMAkqy0BIFSVtFzoOIIcKHFfDM4aXHtWL/JCaNn4OOjH7td73jDfN3ALvpIN4hQki0FcxQ89XjqaTjQ==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/database": "1.0.4", - "@firebase/database-types": "1.0.2", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/database-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.2.tgz", - "integrity": "sha512-JRigr5JNLEHqOkI99tAGHDZF47469/cJz1tRAgGs8Feh+3ZmQy/vVChSqwMp2DuVUGp9PlmGsNSlpINJ/hDuIA==", - "dependencies": { - "@firebase/app-types": "0.9.1", - "@firebase/util": "1.9.5" - } - }, - "node_modules/@firebase/database/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/firestore": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.5.1.tgz", - "integrity": "sha512-VQsMKJGuqlx8I+n+NhNrdFRBJU/B1O8mpGIAYABBmVxPyJax/ynuBMJkREmqzRWpbBj5IAtHe+vm4EvJlb6RLg==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "@firebase/webchannel-wrapper": "0.10.6", - "@grpc/grpc-js": "~1.9.0", - "@grpc/proto-loader": "^0.7.8", - "tslib": "^2.1.0", - "undici": "5.28.3" - }, - "engines": { - "node": ">=10.10.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/firestore-compat": { - "version": "0.3.28", - "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.28.tgz", - "integrity": "sha512-qaE9QYrWV0K+nh/HWf2EL/V2fPsuTZJ8K4S4e+xUOIxVulmXXwlKg4vgJgRF6r5AlABcSphKNbz/77fChgNwiQ==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/firestore": "4.5.1", - "@firebase/firestore-types": "3.0.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/firestore-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/firestore-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-3.0.1.tgz", - "integrity": "sha512-mVhPcHr5FICjF67m6JHgj+XRvAz/gZ62xifeGfcm00RFl6tNKfCzCfKeyB2BDIEc9dUnEstkmIXlmLIelOWoaA==", - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "1.x" - } - }, - "node_modules/@firebase/firestore/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/functions": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.11.3.tgz", - "integrity": "sha512-fpjc3VwxsgFBcR0wmof6kIng7NNvhjqetwWUTMs/ZeOI0QiZoUvSDaudFZvPfvXujSK/sr3tk9G1YzjbwCQkgQ==", - "dependencies": { - "@firebase/app-check-interop-types": "0.3.1", - "@firebase/auth-interop-types": "0.2.2", - "@firebase/component": "0.6.6", - "@firebase/messaging-interop-types": "0.2.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0", - "undici": "5.28.3" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/functions-compat": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.9.tgz", - "integrity": "sha512-yVcNBUljBFD6VPeTJcnWBEFZlVICKWuJzJmPuvgKEH++8z/CdgUKw0YslceaPQIWnstdviZDEF1cjJnR/bLvzQ==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/functions": "0.11.3", - "@firebase/functions-types": "0.6.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/functions-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/functions-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.1.tgz", - "integrity": "sha512-DirqgTXSBzyKsQwcKnx/YdGMaRdJhywnThrINP+Iog8QfQnrL7aprTXHDFHlpZEMwykS54YRk53xzz7j396QXQ==" - }, - "node_modules/@firebase/functions/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/installations": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.6.tgz", - "integrity": "sha512-dNGRGoHmstgEJqh9Kzk22fR2ZrVBH1JWliaL6binQ6pIzlWscreHNczzJDgOKoVT0PjWTrAmh/azztiX/e2uTw==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/util": "1.9.5", - "idb": "7.1.1", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/installations-compat": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.6.tgz", - "integrity": "sha512-uxBAt2WsuEMT5dalA/1O+Uyi9DS25zKHgIPdrQ7KO1ZUdBURiGScIyjdhIM/7NMSvHGYugK4PUVdK9NFIffeiw==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/installations": "0.6.6", - "@firebase/installations-types": "0.5.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/installations-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/installations-types": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.1.tgz", - "integrity": "sha512-OyREnRTfe2wIWTrzCz65ajyo4lFm6VgbeVqMMP+3GJLfCtNvY9VXkmqs3WFEsyYezzdcRqOt39FynZoLlkO+cQ==", - "peerDependencies": { - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/installations/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/logger": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.1.tgz", - "integrity": "sha512-tTIixB5UJbG9ZHSGZSZdX7THr3KWOLrejZ9B7jYsm6fpwgRNngKznQKA2wgYVyvBc1ta7dGFh9NtJ8n7qfiYIw==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/logger/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/messaging": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.7.tgz", - "integrity": "sha512-FNZiGMZWjU2D13U/XpoGDSfqCx2kqJ171P3VjquBJfd8SkYNyJMkKM82QvTjQaDd4nuWzgvTDR81DGJFUO6AOg==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/installations": "0.6.6", - "@firebase/messaging-interop-types": "0.2.1", - "@firebase/util": "1.9.5", - "idb": "7.1.1", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/messaging-compat": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.7.tgz", - "integrity": "sha512-29eeNzkjJPNc1RAVmxocaA8PzkbtuNvabX8jKw3N8VdAmyugx7+dYB+jCnereiWqIwivIZ2xSbCUQ24vC7+HaQ==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/messaging": "0.12.7", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/messaging-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/messaging-interop-types": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.1.tgz", - "integrity": "sha512-jfGJ7Jc32BDHXvXHyXi34mVLzZY8X0t929DTMwz7Tj2Hc40Zuzx8VRCIPLRrRUyvBrJCd5EpIcQgCygXhtaN1A==" - }, - "node_modules/@firebase/messaging/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/performance": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.6.tgz", - "integrity": "sha512-UOUHhvj2GJcjyJewdX1ShnON0/eqTswHvYzzQPC4nrIuMFvHwMGk8NpCaqh7JZmpaxh9AMr6kM+M/p37DrKWXA==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/installations": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/performance-compat": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.6.tgz", - "integrity": "sha512-JSGdNNHBAMRTocGpN+m+7tk+9rulBcwuG+Ejw/ooDj45FGcON1Eymxh/qbe5M6Dlj5P1ClbkHLj4yf7MiCHOag==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/performance": "0.6.6", - "@firebase/performance-types": "0.2.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/performance-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/performance-types": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.1.tgz", - "integrity": "sha512-kQ8pEr4d6ArhPoYrngcFlEJMNWMdEZTpvMAttWH0C2vegBgj47cm6xXFy9+0j27OBhOIiPn48Z+2WE2XNu33CQ==" - }, - "node_modules/@firebase/performance/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/remote-config": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.6.tgz", - "integrity": "sha512-qtanFS+AX5k/7e/+Azf27Hq4reX28QsUvRcYWyS5cOaRMS9jtll4MK4winWmzX8MdJY637nFzIx43PlMKVnaKw==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/installations": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/remote-config-compat": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.6.tgz", - "integrity": "sha512-cFdpmN/rzDhm4pbk0WpOzK9JQ9I1ZhXzhtYbKRBwUag3pG1odEfIORygMDCGQniPpcae/QGXho4srJHfoijKuw==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/logger": "0.4.1", - "@firebase/remote-config": "0.4.6", - "@firebase/remote-config-types": "0.3.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/remote-config-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/remote-config-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.1.tgz", - "integrity": "sha512-PgmfUugcJAinPLsJlYcBbNZe7KE2omdQw1WCT/z46nKkNVGkuHdVFSq54s3wiFa9BoHmLZ01u4hGXIhm6MdLOw==" - }, - "node_modules/@firebase/remote-config/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/storage": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.12.3.tgz", - "integrity": "sha512-JP/rN8fb4CgCo7k/I8OLVgRx5cgExsWOIUQ2O2VQwR6YKItuL375c9v7PDaOfEcFZea/fXtfJJ3Z2NaI9445CQ==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0", - "undici": "5.28.3" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/storage-compat": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.6.tgz", - "integrity": "sha512-AKv0vwktqdW4SDDDcHSN2ahi1Hpjs8rTM6sE7+yrWpm8cRght/PkqylsFnIe+a/toCNd8WeWaXq/oaXHPvRw1w==", - "dependencies": { - "@firebase/component": "0.6.6", - "@firebase/storage": "0.12.3", - "@firebase/storage-types": "0.8.1", - "@firebase/util": "1.9.5", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/storage-compat/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/storage-types": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.1.tgz", - "integrity": "sha512-yj0vypPT9UbbfYYwzpXPYchnjWqCADcTbGNawAIebww8rnQYPGbESYTKQdFRPXiLspYPB7xCHTXThmMJuvDcsQ==", - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "1.x" - } - }, - "node_modules/@firebase/storage/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/util": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.5.tgz", - "integrity": "sha512-PP4pAFISDxsf70l3pEy34Mf3GkkUcVQ3MdKp6aSVb7tcpfUQxnsdV7twDd8EkfB6zZylH6wpUAoangQDmCUMqw==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/util/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@firebase/webchannel-wrapper": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.10.6.tgz", - "integrity": "sha512-EnfRJvrnzkHwN3BPMCayCFT5lCqInzg3RdlRsDjDvB1EJli6Usj26T6lJ67BU2UcYXBS5xcp1Wj4+zRzj2NaZg==" + } }, - "node_modules/@grpc/grpc-js": { - "version": "1.9.14", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.14.tgz", - "integrity": "sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw==", - "dependencies": { - "@grpc/proto-loader": "^0.7.8", - "@types/node": ">=12.12.47" - }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, "engines": { - "node": "^8.13.0 || >=10.10.0" + "node": ">=10.0.0" } }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.12", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.12.tgz", - "integrity": "sha512-DCVwMxqYzpUCiDMl7hQ384FqP4T3DbNpXU8pt681l3UWCip1WUiD5JrkImUwCB9a7f2cq4CUTmi5r/xIMRPY1Q==", + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, "dependencies": { - "lodash.camelcase": "^4.3.0", - "long": "^5.0.0", - "protobufjs": "^7.2.4", - "yargs": "^17.7.2" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=6" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@grpc/proto-loader/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=12" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@grpc/proto-loader/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, "engines": { - "node": ">=12" + "node": ">= 4" } }, - "node_modules/@grpc/proto-loader/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "engines": { - "node": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@hapi/hoek": { @@ -2792,93 +2156,12 @@ "integrity": "sha512-zpUjGoY7LBlKeiP0V7tonrmoey8HQ5THQmyixQ+IDtrjmEJNBjynW/Ef3gC0FUNNPuVqxWPZdT5CVgaETLGTwg==" }, "node_modules/@hotwax/dxp-components": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@hotwax/dxp-components/-/dxp-components-1.13.0.tgz", - "integrity": "sha512-AkzHpGIWYFURIAKaqioNZdkaeJBaJHs+ep+5ibLyEj+Ex+GsyMsI9L1NVO+tl91ECkCNx02QjHPhMfpo0osQ3w==", - "dependencies": { - "@hotwax/oms-api": "^1.8.1", - "@ionic/core": "^7.6.0", - "@ionic/vue": "^7.6.0", - "firebase": "^10.3.1", - "luxon": "^3.3.0", - "pinia": "2.0.36", - "pinia-plugin-persistedstate": "^3.1.0", - "register-service-worker": "^1.7.2", - "vue": "^3.3.4", - "vue-i18n": "^9.2.2" - } - }, - "node_modules/@hotwax/dxp-components/node_modules/pinia": { - "version": "2.0.36", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.36.tgz", - "integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==", - "dependencies": { - "@vue/devtools-api": "^6.5.0", - "vue-demi": "*" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "@vue/composition-api": "^1.4.0", - "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.2.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@hotwax/dxp-components/node_modules/pinia-plugin-persistedstate": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.1.tgz", - "integrity": "sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==", - "peerDependencies": { - "pinia": "^2.0.0" - } - }, - "node_modules/@hotwax/dxp-components/node_modules/pinia/node_modules/vue-demi": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", - "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } + "resolved": "../dxp-components", + "link": true }, "node_modules/@hotwax/oms-api": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@hotwax/oms-api/-/oms-api-1.14.0.tgz", - "integrity": "sha512-dYkrFEi0oJHKiJ/VctKmyIY4WTVV2lmljm1EflgQ/LM7BTJ9jVEeT1zgYJ5vO906kW7SWM4pl7mZI3dDCt1YCQ==", - "dependencies": { - "@types/node-json-transform": "^1.0.0", - "axios": "^0.21.1", - "axios-cache-adapter": "^2.7.3", - "deepmerge": "^4.3.0", - "http-status-codes": "^2.2.0", - "node-json-transform": "^1.1.2", - "qs": "^6.11.0" - } + "resolved": "../oms-api", + "link": true }, "node_modules/@humanwhocodes/config-array": { "version": "0.5.0", @@ -2900,47 +2183,6 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "node_modules/@intlify/core-base": { - "version": "9.10.2", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.10.2.tgz", - "integrity": "sha512-HGStVnKobsJL0DoYIyRCGXBH63DMQqEZxDUGrkNI05FuTcruYUtOAxyL3zoAZu/uDGO6mcUvm3VXBaHG2GdZCg==", - "dependencies": { - "@intlify/message-compiler": "9.10.2", - "@intlify/shared": "9.10.2" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, - "node_modules/@intlify/message-compiler": { - "version": "9.10.2", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.10.2.tgz", - "integrity": "sha512-ntY/kfBwQRtX5Zh6wL8cSATujPzWW2ZQd1QwKyWwAy5fMqJyyixHMeovN4fmEyCqSu+hFfYOE63nU94evsy4YA==", - "dependencies": { - "@intlify/shared": "9.10.2", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, - "node_modules/@intlify/shared": { - "version": "9.10.2", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.10.2.tgz", - "integrity": "sha512-ttHCAJkRy7R5W2S9RVnN9KYQYPIpV2+GiS79T4EE37nrPyH6/1SrOh3bmdCRC1T3ocL8qCDx7x2lBJ0xaITU7Q==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, "node_modules/@ionic/core": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.8.0.tgz", @@ -3201,60 +2443,6 @@ "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", "dev": true }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -3657,7 +2845,8 @@ "node_modules/@types/node": { "version": "14.18.63", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", - "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "dev": true }, "node_modules/@types/node-forge": { "version": "1.3.10", @@ -3668,11 +2857,6 @@ "@types/node": "*" } }, - "node_modules/@types/node-json-transform": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/node-json-transform/-/node-json-transform-1.0.2.tgz", - "integrity": "sha512-gOq49i42EmHRKPTTD4cXru3MAFoDADqzUxzAweKtZZBmLJuAK0GsJHNX4HKdvZ/JJHf+F4TYgnvb7Ge0NlQiGw==" - }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", @@ -5409,6 +4593,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -5634,26 +4819,6 @@ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", "dev": true }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/axios-cache-adapter": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/axios-cache-adapter/-/axios-cache-adapter-2.7.3.tgz", - "integrity": "sha512-A+ZKJ9lhpjthOEp4Z3QR/a9xC4du1ALaAsejgRGrH9ef6kSDxdFrhRpulqsh9khsEnwXxGfgpUuDp1YXMNMEiQ==", - "dependencies": { - "cache-control-esm": "1.0.0", - "md5": "^2.2.1" - }, - "peerDependencies": { - "axios": "~0.21.1" - } - }, "node_modules/babel-loader": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", @@ -6020,11 +5185,6 @@ "node": ">= 0.8" } }, - "node_modules/cache-control-esm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cache-control-esm/-/cache-control-esm-1.0.0.tgz", - "integrity": "sha512-Fa3UV4+eIk4EOih8FTV6EEsVKO0W5XWtNs6FC3InTfVz+EjurjPfDXY5wZDo/lxjDxg5RjNcurLyxEJBcEUx9g==" - }, "node_modules/cachedir": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", @@ -6038,6 +5198,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, "dependencies": { "function-bind": "^1.1.2", "get-intrinsic": "^1.2.1", @@ -6151,14 +5312,6 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "engines": { - "node": "*" - } - }, "node_modules/check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", @@ -6783,14 +5936,6 @@ "node": ">= 8" } }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "engines": { - "node": "*" - } - }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -7508,6 +6653,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -7859,7 +7005,8 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/emojis-list": { "version": "3.0.0", @@ -8044,6 +7191,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, "engines": { "node": ">=6" } @@ -9025,6 +8173,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -9173,39 +8322,6 @@ "node": ">=8" } }, - "node_modules/firebase": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-10.10.0.tgz", - "integrity": "sha512-iJxnCKsBTYa4BSv8cscNbwciX42BvwoePTHg7iwWevb+GyVcZFmKi9eSkg/L7Jpu9mvAFv1jdDGbIaG3xRrE+w==", - "dependencies": { - "@firebase/analytics": "0.10.2", - "@firebase/analytics-compat": "0.2.8", - "@firebase/app": "0.10.0", - "@firebase/app-check": "0.8.3", - "@firebase/app-check-compat": "0.3.10", - "@firebase/app-compat": "0.2.30", - "@firebase/app-types": "0.9.1", - "@firebase/auth": "1.7.0", - "@firebase/auth-compat": "0.5.5", - "@firebase/database": "1.0.4", - "@firebase/database-compat": "1.0.4", - "@firebase/firestore": "4.5.1", - "@firebase/firestore-compat": "0.3.28", - "@firebase/functions": "0.11.3", - "@firebase/functions-compat": "0.3.9", - "@firebase/installations": "0.6.6", - "@firebase/installations-compat": "0.2.6", - "@firebase/messaging": "0.12.7", - "@firebase/messaging-compat": "0.2.7", - "@firebase/performance": "0.6.6", - "@firebase/performance-compat": "0.2.6", - "@firebase/remote-config": "0.4.6", - "@firebase/remote-config-compat": "0.2.6", - "@firebase/storage": "0.12.3", - "@firebase/storage-compat": "0.3.6", - "@firebase/util": "1.9.5" - } - }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -9239,6 +8355,7 @@ "version": "1.15.3", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "dev": true, "funding": [ { "type": "individual", @@ -9582,6 +8699,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9632,6 +8750,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -9640,6 +8759,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, "dependencies": { "function-bind": "^1.1.2", "has-proto": "^1.0.1", @@ -9803,6 +8923,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -9859,6 +8980,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, "dependencies": { "get-intrinsic": "^1.2.2" }, @@ -9870,6 +8992,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -9881,6 +9004,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -9913,6 +9037,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -10132,7 +9257,8 @@ "node_modules/http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true }, "node_modules/http-proxy": { "version": "1.18.1", @@ -10186,11 +9312,6 @@ "node": ">=0.10" } }, - "node_modules/http-status-codes": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", - "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==" - }, "node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -10227,7 +9348,8 @@ "node_modules/idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true }, "node_modules/ieee754": { "version": "1.2.1", @@ -10554,11 +9676,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -10647,6 +9764,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { "node": ">=8" } @@ -11472,12 +10590,8 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -11734,11 +10848,6 @@ "node": ">=8" } }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -11806,16 +10915,6 @@ "semver": "bin/semver.js" } }, - "node_modules/md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", @@ -12211,14 +11310,6 @@ "node": ">= 6.13.0" } }, - "node_modules/node-json-transform": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/node-json-transform/-/node-json-transform-1.1.2.tgz", - "integrity": "sha512-Y3twjldHF1htCiCu6elGwQDdNp5PD54U66waWa2XNKh+g2lXSnWo3nq9SZnZOV3odFAqkM/roiNZx078RE2new==", - "dependencies": { - "lodash": "^4.17.15" - } - }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", @@ -12328,6 +11419,7 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -13682,29 +12774,6 @@ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "dev": true }, - "node_modules/protobufjs": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", - "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -13768,6 +12837,7 @@ "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, "dependencies": { "side-channel": "^1.0.4" }, @@ -14059,6 +13129,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -14298,6 +13369,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -14536,6 +13608,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, "dependencies": { "define-data-property": "^1.1.1", "get-intrinsic": "^1.2.1", @@ -14618,6 +13691,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -14894,6 +13968,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -15001,6 +14076,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -15844,17 +14920,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/undici": { - "version": "5.28.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", - "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -16217,25 +15282,6 @@ "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", "dev": true }, - "node_modules/vue-i18n": { - "version": "9.10.2", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.10.2.tgz", - "integrity": "sha512-ECJ8RIFd+3c1d3m1pctQ6ywG5Yj8Efy1oYoAKQ9neRdkLbuKLVeW4gaY5HPkD/9ssf1pOnUrmIFjx2/gkGxmEw==", - "dependencies": { - "@intlify/core-base": "9.10.2", - "@intlify/shared": "9.10.2", - "@vue/devtools-api": "^6.5.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, "node_modules/vue-loader": { "version": "17.3.1", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.3.1.tgz", @@ -16859,6 +15905,7 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -16872,6 +15919,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, "engines": { "node": ">=0.8.0" } @@ -17283,6 +16331,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -17350,6 +16399,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -17364,6 +16414,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -17374,7 +16425,8 @@ "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/wrappy": { "version": "1.0.2", @@ -17438,6 +16490,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "engines": { "node": ">=10" } @@ -17613,4 +16666,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 624ba3c6..742031b8 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,8 @@ "@casl/ability": "^6.0.0", "@hotwax/app-version-info": "^1.0.0", "@hotwax/apps-theme": "^1.2.6", - "@hotwax/dxp-components": "^1.13.0", - "@hotwax/oms-api": "^1.14.0", + "@hotwax/dxp-components": "file:../dxp-components", + "@hotwax/oms-api": "file:../oms-api", "@ionic/core": "^7.6.0", "@ionic/vue": "^7.6.0", "@ionic/vue-router": "^7.6.0", diff --git a/src/adapter/index.ts b/src/adapter/index.ts index 8482fae0..99f678fd 100644 --- a/src/adapter/index.ts +++ b/src/adapter/index.ts @@ -1,5 +1,5 @@ -import { api, client, getConfig, getUserFacilities, hasError, initialise, logout, resetConfig, updateInstanceUrl, updateToken, setUserTimeZone, - getAvailableTimeZones, getProductIdentificationPref, setProductIdentificationPref} from '@hotwax/oms-api' +import { api, client, getConfig, getUserFacilities, getUserPreference, hasError, initialise, logout, resetConfig, updateInstanceUrl, updateToken, setUserTimeZone, + getAvailableTimeZones, getProductIdentificationPref, setProductIdentificationPref, setUserPreference} from '@hotwax/oms-api' export { api, @@ -7,6 +7,7 @@ export { getConfig, getUserFacilities, getProductIdentificationPref, + getUserPreference, hasError, initialise, logout, @@ -15,5 +16,6 @@ export { updateToken, setUserTimeZone, setProductIdentificationPref, + setUserPreference, getAvailableTimeZones } \ No newline at end of file diff --git a/src/components/Menu.vue b/src/components/Menu.vue index f188d99e..308fbf22 100644 --- a/src/components/Menu.vue +++ b/src/components/Menu.vue @@ -36,6 +36,7 @@ import { computed, defineComponent } from "vue"; import { mapGetters } from "vuex"; import { calendar, download, gitPullRequestOutline, settings } from "ionicons/icons"; import { useStore } from "@/store"; +import { useUserStore } from "@hotwax/dxp-components" import { useRouter } from "vue-router"; export default defineComponent({ @@ -55,12 +56,14 @@ export default defineComponent({ computed: { ...mapGetters({ isUserAuthenticated: 'user/isUserAuthenticated', - currentFacility: 'user/getCurrentFacility', }) }, setup() { const store = useStore(); const router = useRouter(); + const userStore = useUserStore() + let currentFacility: any = computed(() => userStore.getCurrentFacility) + const appPages = [ { title: "Shipments", @@ -97,6 +100,7 @@ export default defineComponent({ }) return { + currentFacility, selectedIndex, appPages, download, diff --git a/src/main.ts b/src/main.ts index b26f9a42..a9972a7d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -32,7 +32,7 @@ import permissionRules from '@/authorization/Rules'; import permissionActions from '@/authorization/Actions'; import { dxpComponents } from '@hotwax/dxp-components' import { login, logout, loader } from './user-utils'; -import { getConfig, initialise, setUserTimeZone, getAvailableTimeZones, getProductIdentificationPref, setProductIdentificationPref } from '@/adapter' +import { getConfig, initialise, setUserTimeZone, getAvailableTimeZones, getProductIdentificationPref, getUserFacilities, getUserPreference, setProductIdentificationPref, setUserPreference } from '@/adapter' import localeMessages from './locales'; const app = createApp(App) @@ -58,7 +58,10 @@ const app = createApp(App) localeMessages, setUserTimeZone, setProductIdentificationPref, - getAvailableTimeZones + getAvailableTimeZones, + getUserFacilities, + setUserPreference, + getUserPreference }); // Filters are removed in Vue 3 and global filter introduced https://v3.vuejs.org/guide/migration/filters.html#global-filters diff --git a/src/store/modules/order/actions.ts b/src/store/modules/order/actions.ts index 6f599645..04be72b5 100644 --- a/src/store/modules/order/actions.ts +++ b/src/store/modules/order/actions.ts @@ -4,10 +4,14 @@ import RootState from '@/store/RootState' import OrderState from './OrderState' import * as types from './mutation-types' import { hasError, showToast } from '@/utils' -import { getProductIdentificationValue, translate } from '@hotwax/dxp-components' +import { getProductIdentificationValue, translate, useUserStore } from '@hotwax/dxp-components' import emitter from "@/event-bus"; import store from "@/store"; +const getCurrentFacilityId = () => { + const currentFacility: any = useUserStore().getCurrentFacility; + return currentFacility?.facilityId +} const actions: ActionTree = { @@ -73,6 +77,7 @@ const actions: ActionTree = { const current = state.current as any const orders = state.purchaseOrders.list as any + const currentFacilityId = getCurrentFacilityId(); if (current.length && current[0]?.orderId === orderId) { return current } @@ -96,7 +101,7 @@ const actions: ActionTree = { }, "query": "docType:ORDER", "filter": [ - `orderTypeId: PURCHASE_ORDER AND orderId: ${orderId} AND orderStatusId: (ORDER_APPROVED OR ORDER_CREATED) AND facilityId: ${this.state.user.currentFacility.facilityId}` + `orderTypeId: PURCHASE_ORDER AND orderId: ${orderId} AND orderStatusId: (ORDER_APPROVED OR ORDER_CREATED) AND facilityId: ${currentFacilityId}` ] } } @@ -125,7 +130,7 @@ const actions: ActionTree = { try { const params = { orderId: payload.orderId, - facilityId: this.state.user.currentFacility.facilityId + facilityId: getCurrentFacilityId() } resp = await OrderService.createPurchaseShipment(params) @@ -176,7 +181,8 @@ const actions: ActionTree = { "fieldList": ["datetimeReceived", "productId", "quantityAccepted", "quantityRejected", "receivedByUserLoginId", "shipmentId", 'locationSeqId'], "orderBy": 'datetimeReceived DESC' } - const facilityLocations = await this.dispatch('user/getFacilityLocations', this.state.user.currentFacility.facilityId); + const currentFacilityId = getCurrentFacilityId() + const facilityLocations = await this.dispatch('user/getFacilityLocations', currentFacilityId); const locationSeqId = facilityLocations.length > 0 ? facilityLocations[0].locationSeqId : ""; resp = await OrderService.fetchPOHistory(params) if (resp.status === 200 && !hasError(resp) && resp.data?.count > 0) { diff --git a/src/store/modules/shipment/actions.ts b/src/store/modules/shipment/actions.ts index d26968fb..3348f217 100644 --- a/src/store/modules/shipment/actions.ts +++ b/src/store/modules/shipment/actions.ts @@ -4,10 +4,15 @@ import RootState from '@/store/RootState' import ShipmentState from './ShipmentState' import * as types from './mutation-types' import { hasError, showToast } from '@/utils' -import { getProductIdentificationValue, translate } from '@hotwax/dxp-components' +import { getProductIdentificationValue, translate, useUserStore } from '@hotwax/dxp-components' import emitter from '@/event-bus' import store from "@/store"; +const getCurrentFacilityId = () => { + const currentFacility: any = useUserStore().getCurrentFacility; + return currentFacility?.facilityId +} + const actions: ActionTree = { async findShipment ({ commit, state }, payload) { if (payload.viewIndex === 0) emitter.emit("presentLoader"); @@ -69,8 +74,8 @@ const actions: ActionTree = { const shipmentAttributes = await ShipmentService.fetchShipmentAttributes([shipmentDetail.shipmentId]) shipmentDetail.externalOrderId = shipmentAttributes?.[shipmentDetail.shipmentId]?.['EXTERNAL_ORDER_ID'] shipmentDetail.externalOrderName = shipmentAttributes?.[shipmentDetail.shipmentId]?.['EXTERNAL_ORDER_NAME'] - - const facilityLocations = await this.dispatch('user/getFacilityLocations', this.state.user.currentFacility.facilityId); + const currentFacilityId = getCurrentFacilityId(); + const facilityLocations = await this.dispatch('user/getFacilityLocations', currentFacilityId); if(facilityLocations.length){ const locationSeqId = facilityLocations[0].locationSeqId resp.data.items.map((item: any) => { @@ -102,6 +107,7 @@ const actions: ActionTree = { } }, receiveShipmentItem ({ commit }, payload) { + const currentFacilityId = getCurrentFacilityId(); return Promise.all(payload.items.map(async (item: any) => { if(!item.locationSeqId) { return Promise.reject("Missing locationSeqId on item") @@ -109,7 +115,7 @@ const actions: ActionTree = { const params = { shipmentId: payload.shipmentId, - facilityId: this.state.user.currentFacility.facilityId, + facilityId: currentFacilityId, shipmentItemSeqId: item.itemSeqId, productId: item.productId, quantityAccepted: item.quantityAccepted, diff --git a/src/store/modules/user/UserState.ts b/src/store/modules/user/UserState.ts index cb10271c..9662871a 100644 --- a/src/store/modules/user/UserState.ts +++ b/src/store/modules/user/UserState.ts @@ -1,7 +1,6 @@ export default interface UserState { token: string; current: any; - currentFacility: object | null; currentEComStore: object; instanceUrl: string; facilityLocationsByFacilityId: any; diff --git a/src/store/modules/user/actions.ts b/src/store/modules/user/actions.ts index 1faa9f19..3bb0d182 100644 --- a/src/store/modules/user/actions.ts +++ b/src/store/modules/user/actions.ts @@ -5,16 +5,15 @@ import UserState from './UserState' import * as types from './mutation-types' import { hasError, showToast } from '@/utils' import { Settings } from 'luxon'; -import { getUserFacilities, logout, updateInstanceUrl, updateToken, resetConfig } from '@/adapter' +import { logout, updateInstanceUrl, updateToken, resetConfig } from '@/adapter' import { getServerPermissionsFromRules, prepareAppPermissions, resetPermissions, setPermissions } from '@/authorization' -import { translate, useAuthStore, useProductIdentificationStore } from '@hotwax/dxp-components' +import { translate, useAuthStore, useProductIdentificationStore, useUserStore } from '@hotwax/dxp-components' import emitter from '@/event-bus' -import store from '@/store' const actions: ActionTree = { @@ -57,8 +56,8 @@ const actions: ActionTree = { //fetching user facilities const isAdminUser = appPermissions.some((appPermission: any) => appPermission?.action === "APP_RECVG_ADMIN"); - const baseURL = store.getters['user/getBaseUrl']; - const facilities = await getUserFacilities(token, baseURL, userProfile?.partyId, "", isAdminUser); + const facilities = await useUserStore().getUserFacilities(userProfile?.partyId, "", isAdminUser) + await useUserStore().getPreferredFacility('SELECTED_FACILITY') if (!facilities.length) throw 'Unable to login. User is not assocaited with any facility' @@ -71,9 +70,8 @@ const actions: ActionTree = { return uniqueFacilities }, []); - const currentFacility = userProfile.facilities[0]; - const currentEComStore = await UserService.getEComStores(token, currentFacility.facilityId); - + const currentFacility: any = useUserStore().getCurrentFacility + const currentEComStore = await UserService.getEComStores(token, currentFacility?.facilityId); const productStoreId = currentEComStore?.productStoreId; await useProductIdentificationStore().getIdentificationPref(productStoreId) @@ -87,7 +85,6 @@ const actions: ActionTree = { // TODO user single mutation commit(types.USER_INFO_UPDATED, userProfile); - commit(types.USER_CURRENT_FACILITY_UPDATED, currentFacility); commit(types.USER_CURRENT_ECOM_STORE_UPDATED, currentEComStore); commit(types.USER_PERMISSIONS_UPDATED, appPermissions); commit(types.USER_TOKEN_CHANGED, { newToken: token }) @@ -173,12 +170,10 @@ const actions: ActionTree = { /** * update current facility information */ - async setFacility ({ commit, dispatch }, payload) { - const eComStore = await UserService.getEComStores(undefined, payload.facility.facilityId); - + async setFacilityUpdates ({ commit, dispatch, state }, payload) { + const eComStore = await UserService.getEComStores(state.token, payload); commit(types.USER_CURRENT_ECOM_STORE_UPDATED, eComStore); - commit(types.USER_CURRENT_FACILITY_UPDATED, payload.facility); - await dispatch('getFacilityLocations', payload.facility.facilityId) + await dispatch('getFacilityLocations', payload) }, /** diff --git a/src/store/modules/user/getters.ts b/src/store/modules/user/getters.ts index 7a584b2b..02a01e2e 100644 --- a/src/store/modules/user/getters.ts +++ b/src/store/modules/user/getters.ts @@ -20,9 +20,6 @@ const getters: GetterTree = { getUserProfile (state) { return state.current }, - getCurrentFacility (state){ - return state.currentFacility - }, getInstanceUrl (state) { const baseUrl = process.env.VUE_APP_BASE_URL; return baseUrl ? baseUrl : state.instanceUrl; diff --git a/src/store/modules/user/index.ts b/src/store/modules/user/index.ts index c66cd8e1..0a1b3eda 100644 --- a/src/store/modules/user/index.ts +++ b/src/store/modules/user/index.ts @@ -10,7 +10,6 @@ const userModule: Module = { state: { token: '', current: {}, - currentFacility: {}, currentEComStore: {}, permissions: [], instanceUrl: '', diff --git a/src/store/modules/user/mutation-types.ts b/src/store/modules/user/mutation-types.ts index f8fe7be5..0d249e6a 100644 --- a/src/store/modules/user/mutation-types.ts +++ b/src/store/modules/user/mutation-types.ts @@ -2,7 +2,6 @@ export const SN_USER = 'user' export const USER_TOKEN_CHANGED = SN_USER + '/TOKEN_CHANGED' export const USER_END_SESSION = SN_USER + '/END_SESSION' export const USER_INFO_UPDATED = SN_USER + '/INFO_UPDATED' -export const USER_CURRENT_FACILITY_UPDATED = SN_USER + '/CURRENT_FACILITY_UPDATED' export const USER_INSTANCE_URL_UPDATED = SN_USER + '/INSTANCE_URL_UPDATED' export const USER_CURRENT_ECOM_STORE_UPDATED = SN_USER + '/CURRENT_ECOM_STORE_UPDATED' export const USER_FACILITY_LOCATIONS_BY_FACILITY_ID = SN_USER + '/FACILITY_LOCATIONS_BY_FACILITY_ID' diff --git a/src/store/modules/user/mutations.ts b/src/store/modules/user/mutations.ts index df65bfb1..d466be40 100644 --- a/src/store/modules/user/mutations.ts +++ b/src/store/modules/user/mutations.ts @@ -9,16 +9,12 @@ const mutations: MutationTree = { [types.USER_END_SESSION] (state) { state.token = '' state.current = {} - state.currentFacility = {}, state.facilityLocationsByFacilityId = {}, state.permissions = [] }, [types.USER_INFO_UPDATED] (state, payload) { state.current = payload }, - [types.USER_CURRENT_FACILITY_UPDATED] (state, payload) { - state.currentFacility = payload; - }, [types.USER_INSTANCE_URL_UPDATED] (state, payload) { state.instanceUrl = payload; }, diff --git a/src/views/AddProductModal.vue b/src/views/AddProductModal.vue index ffff1eff..7bc4c0a3 100644 --- a/src/views/AddProductModal.vue +++ b/src/views/AddProductModal.vue @@ -69,7 +69,7 @@ import { defineComponent, computed } from 'vue'; import { closeOutline, checkmarkCircle } from 'ionicons/icons'; import { mapGetters } from 'vuex' import { useStore } from "@/store"; -import { DxpShopifyImg, translate, getProductIdentificationValue, useProductIdentificationStore } from '@hotwax/dxp-components'; +import { DxpShopifyImg, translate, getProductIdentificationValue, useProductIdentificationStore, useUserStore } from '@hotwax/dxp-components'; import { showToast } from '@/utils' export default defineComponent({ @@ -104,7 +104,6 @@ export default defineComponent({ getProduct: 'product/getProduct', isScrollable: 'product/isScrollable', isProductAvailableInShipment: 'product/isProductAvailableInShipment', - currentFacility: 'user/getCurrentFacility', facilityLocationsByFacilityId: 'user/getFacilityLocationsByFacilityId' }) }, @@ -168,10 +167,13 @@ export default defineComponent({ }, setup() { const store = useStore(); + const userStore = useUserStore() const productIdentificationStore = useProductIdentificationStore(); let productIdentificationPref = computed(() => productIdentificationStore.getProductIdentificationPref) + let currentFacility: any = computed(() => userStore.getCurrentFacility) return { + currentFacility, closeOutline, checkmarkCircle, store, diff --git a/src/views/AddProductToPOModal.vue b/src/views/AddProductToPOModal.vue index a45a0065..79bc5930 100644 --- a/src/views/AddProductToPOModal.vue +++ b/src/views/AddProductToPOModal.vue @@ -60,7 +60,7 @@ import { defineComponent, computed } from 'vue'; import { closeOutline, checkmarkCircle } from 'ionicons/icons'; import { mapGetters } from 'vuex' import { useStore } from "@/store"; -import { DxpShopifyImg, translate, getProductIdentificationValue, useProductIdentificationStore } from '@hotwax/dxp-components'; +import { DxpShopifyImg, translate, getProductIdentificationValue, useProductIdentificationStore, useUserStore } from '@hotwax/dxp-components'; import { showToast } from '@/utils' export default defineComponent({ @@ -95,7 +95,6 @@ export default defineComponent({ getProduct: 'product/getProduct', isScrollable: 'product/isScrollable', isProductAvailableInOrder: 'order/isProductAvailableInOrder', - currentFacility: 'user/getCurrentFacility', facilityLocationsByFacilityId: 'user/getFacilityLocationsByFacilityId' }) }, @@ -159,9 +158,13 @@ export default defineComponent({ }, setup() { const store = useStore(); + const userStore = useUserStore() const productIdentificationStore = useProductIdentificationStore(); let productIdentificationPref = computed(() => productIdentificationStore.getProductIdentificationPref); + let currentFacility: any = computed(() => userStore.getCurrentFacility) + return { + currentFacility, closeOutline, checkmarkCircle, store, diff --git a/src/views/PurchaseOrderDetail.vue b/src/views/PurchaseOrderDetail.vue index c55fc3cf..30feb9dd 100644 --- a/src/views/PurchaseOrderDetail.vue +++ b/src/views/PurchaseOrderDetail.vue @@ -63,7 +63,7 @@
- +
@@ -180,7 +180,7 @@ import { import { defineComponent, computed } from 'vue'; import { addOutline, cameraOutline, checkmarkDone, copyOutline, eyeOffOutline, eyeOutline, locationOutline, saveOutline, timeOutline } from 'ionicons/icons'; import ReceivingHistoryModal from '@/views/ReceivingHistoryModal.vue' -import { DxpShopifyImg, translate, getProductIdentificationValue, useProductIdentificationStore } from '@hotwax/dxp-components'; +import { DxpShopifyImg, translate, getProductIdentificationValue, useProductIdentificationStore, useUserStore } from '@hotwax/dxp-components'; import { useStore, mapGetters } from 'vuex'; import { useRouter } from 'vue-router'; import Scanner from "@/components/Scanner.vue" @@ -229,7 +229,6 @@ export default defineComponent({ getProduct: 'product/getProduct', getPOItemAccepted: 'order/getPOItemAccepted', facilityLocationsByFacilityId: 'user/getFacilityLocationsByFacilityId', - currentFacility: 'user/getCurrentFacility', isForceScanEnabled: 'util/isForceScanEnabled', }) }, @@ -388,8 +387,10 @@ export default defineComponent({ setup() { const store = useStore(); const router = useRouter(); + const userStore = useUserStore() const productIdentificationStore = useProductIdentificationStore(); let productIdentificationPref = computed(() => productIdentificationStore.getProductIdentificationPref); + let currentFacility: any = computed(() => userStore.getCurrentFacility) return { Actions, @@ -398,6 +399,7 @@ export default defineComponent({ checkmarkDone, copyOutline, copyToClipboard, + currentFacility, eyeOffOutline, eyeOutline, hasPermission, diff --git a/src/views/PurchaseOrders.vue b/src/views/PurchaseOrders.vue index bb1b392e..a47b73f0 100644 --- a/src/views/PurchaseOrders.vue +++ b/src/views/PurchaseOrders.vue @@ -53,10 +53,10 @@ import { IonToolbar } from '@ionic/vue'; import { cloudDownloadOutline, reload } from 'ionicons/icons' -import { defineComponent } from 'vue'; +import { defineComponent, computed } from 'vue'; import { mapGetters, useStore } from 'vuex'; import PurchaseOrderItem from '@/components/PurchaseOrderItem.vue' -import { translate } from "@hotwax/dxp-components" +import { translate, useUserStore } from "@hotwax/dxp-components" export default defineComponent({ name: 'PurchaseOrders', @@ -85,7 +85,6 @@ export default defineComponent({ ...mapGetters({ orders: 'order/getPurchaseOrders', isScrollable: 'order/isScrollable', - currentFacility: 'user/getCurrentFacility' }) }, methods: { @@ -105,7 +104,7 @@ export default defineComponent({ "group.ngroups": true, } as any, "query": "*:*", - "filter": `docType: ORDER AND orderTypeId: PURCHASE_ORDER AND orderStatusId: (ORDER_APPROVED OR ORDER_CREATED) AND facilityId: ${this.currentFacility.facilityId}` + "filter": `docType: ORDER AND orderTypeId: PURCHASE_ORDER AND orderStatusId: (ORDER_APPROVED OR ORDER_CREATED) AND facilityId: ${this.currentFacility?.facilityId}` } } if(this.queryString) { @@ -135,9 +134,12 @@ export default defineComponent({ }, setup () { const store = useStore(); + const userStore = useUserStore() + let currentFacility: any = computed(() => userStore.getCurrentFacility) return { cloudDownloadOutline, + currentFacility, reload, store, translate diff --git a/src/views/Returns.vue b/src/views/Returns.vue index ae3522ca..e0fee177 100644 --- a/src/views/Returns.vue +++ b/src/views/Returns.vue @@ -53,10 +53,10 @@ import { IonToolbar } from '@ionic/vue'; import { cloudDownloadOutline, reload } from 'ionicons/icons' -import { defineComponent } from 'vue' +import { defineComponent, computed } from 'vue' import { mapGetters, useStore } from 'vuex' import ReturnListItem from '@/components/ReturnListItem.vue' -import { translate } from "@hotwax/dxp-components" +import { translate, useUserStore } from "@hotwax/dxp-components" export default defineComponent({ name: "Returns", @@ -77,7 +77,6 @@ export default defineComponent({ computed: { ...mapGetters({ returns: 'return/getReturns', - currentFacility: 'user/getCurrentFacility' }) }, data () { @@ -102,7 +101,7 @@ export default defineComponent({ const payload = { "entityName": "SalesReturnShipmentView", "inputFields": { - "destinationFacilityId": this.currentFacility.facilityId + "destinationFacilityId": this.currentFacility?.facilityId }, "fieldList" : [ "shipmentId","externalId","statusId","shopifyOrderName","hcOrderId","trackingCode", "destinationFacilityId" ], "noConditionFind": "Y", @@ -149,8 +148,12 @@ export default defineComponent({ }, setup() { const store = useStore(); + const userStore = useUserStore() + let currentFacility: any = computed(() => userStore.getCurrentFacility) + return { cloudDownloadOutline, + currentFacility, reload, store, translate diff --git a/src/views/Settings.vue b/src/views/Settings.vue index 87dbb0c5..0c8cfa94 100644 --- a/src/views/Settings.vue +++ b/src/views/Settings.vue @@ -37,22 +37,7 @@
- - - - - {{ translate("Facility") }} - - - - {{ translate('Specify which facility you want to operate from. Order, inventory and other configuration data will be specific to the facility you select.') }} - - - - {{ facility.facilityName }} - - - +

@@ -130,7 +115,6 @@ export default defineComponent({ computed: { ...mapGetters({ userProfile: 'user/getUserProfile', - currentFacility: 'user/getCurrentFacility', currentEComStore: 'user/getCurrentEComStore', isForceScanEnabled: 'util/isForceScanEnabled', barcodeIdentificationPref: 'util/getBarcodeIdentificationPref' @@ -143,16 +127,9 @@ export default defineComponent({ async timeZoneUpdated(tzId: string) { await this.store.dispatch("user/setUserTimeZone", tzId) }, - setFacility (facility: any) { - // Checking if current facility is not equal to the facility selected to avoid extra api call on logging in again after logout. - if(this.currentFacility.facilityId != facility['detail'].value && this.userProfile?.facilities) { - this.userProfile?.facilities?.map((fac: any) => { - if (fac.facilityId == facility['detail'].value) { - this.store.dispatch('shipment/clearShipments'); - this.store.dispatch('user/setFacility', {'facility': fac}); - } - }) - } + async handleFacilityUpdate(selectedFacilityId: any) { + this.store.dispatch('shipment/clearShipments'); + await this.store.dispatch('user/setFacilityUpdates', selectedFacilityId); }, async presentAlert () { const alert = await alertController.create({ diff --git a/src/views/ShipmentDetails.vue b/src/views/ShipmentDetails.vue index 2497d3ba..195bfe12 100644 --- a/src/views/ShipmentDetails.vue +++ b/src/views/ShipmentDetails.vue @@ -46,7 +46,7 @@
- + {{ item.locationSeqId }} @@ -116,7 +116,7 @@ import { defineComponent, computed } from 'vue'; import { add, checkmarkDone, cameraOutline, locationOutline } from 'ionicons/icons'; import { mapGetters, useStore } from "vuex"; import AddProductModal from '@/views/AddProductModal.vue' -import { DxpShopifyImg, translate, getProductIdentificationValue, useProductIdentificationStore } from '@hotwax/dxp-components'; +import { DxpShopifyImg, translate, getProductIdentificationValue, useProductIdentificationStore, useUserStore } from '@hotwax/dxp-components'; import { useRouter } from 'vue-router'; import Scanner from "@/components/Scanner.vue"; import LocationPopover from '@/components/LocationPopover.vue' @@ -165,7 +165,6 @@ export default defineComponent({ user: 'user/getCurrentFacility', getProduct: 'product/getProduct', facilityLocationsByFacilityId: 'user/getFacilityLocationsByFacilityId', - currentFacility: 'user/getCurrentFacility', isForceScanEnabled: 'util/isForceScanEnabled', }), }, @@ -302,14 +301,17 @@ export default defineComponent({ setup() { const store = useStore(); const router = useRouter(); + const userStore = useUserStore() const productIdentificationStore = useProductIdentificationStore(); let productIdentificationPref = computed(() => productIdentificationStore.getProductIdentificationPref) + let currentFacility: any = computed(() => userStore.getCurrentFacility) return { Actions, add, cameraOutline, checkmarkDone, + currentFacility, hasPermission, locationOutline, store, diff --git a/src/views/Shipments.vue b/src/views/Shipments.vue index 178f0636..c2ccc40f 100644 --- a/src/views/Shipments.vue +++ b/src/views/Shipments.vue @@ -53,10 +53,10 @@ import { IonToolbar } from '@ionic/vue'; import { cloudDownloadOutline, reload } from 'ionicons/icons' -import { defineComponent } from 'vue' +import { defineComponent, computed } from 'vue' import { mapGetters, useStore } from 'vuex' import ShipmentListItem from '@/components/ShipmentListItem.vue' -import { translate } from "@hotwax/dxp-components" +import { translate, useUserStore } from "@hotwax/dxp-components" export default defineComponent({ name: "Shipments", @@ -77,7 +77,6 @@ export default defineComponent({ computed: { ...mapGetters({ shipments: 'shipment/getShipments', - user: 'user/getCurrentFacility' }) }, data() { @@ -103,7 +102,7 @@ export default defineComponent({ const viewIndex = vIndex ? vIndex : 0; const payload = { "inputFields": { - "destinationFacilityId": this.user.facilityId, + "destinationFacilityId": this.currentFacility.facilityId, "statusId": "PURCH_SHIP_SHIPPED", "grp_op": "AND", "shipmentTypeId_value": "INCOMING_SHIPMENT", @@ -146,8 +145,12 @@ export default defineComponent({ }, setup() { const store = useStore(); + const userStore = useUserStore() + let currentFacility: any = computed(() => userStore.getCurrentFacility) + return { cloudDownloadOutline, + currentFacility, reload, store, translate From 72eb48f64bc82948a55c36a81d6a9c6f8c865690 Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 17 Oct 2024 11:39:58 +0530 Subject: [PATCH 2/5] Improved: updated locale files & change code wrt to updated emit from dxp --- src/locales/en.json | 4 ++++ src/store/modules/user/actions.ts | 2 +- src/views/Settings.vue | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index 8d36c657..9d4c7878 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -35,6 +35,7 @@ "facility location": "facility location", "Facility locations were not found corresponding to destination facility of return shipment. Please add facility locations to avoid receive return shipment failure.": "Facility locations were not found corresponding to destination facility of return shipment. Please add facility locations to avoid receive return shipment failure.", "Failed to update barcode identification preference.": "Failed to update barcode identification preference.", + "Fetching facilities": "Fetching facilities", "Fetching time zones": "Fetching time zones", "Force scan": "Force scan", "Force scan preference updated successfully.": "Force scan preference updated successfully.", @@ -55,6 +56,7 @@ "Logging out": "Logging out", "Logout": "Logout", "Make sure you have entered all the inventory you received. You cannot edit this information after proceeding.": "Make sure you have entered all the inventory you received. { space } You cannot edit this information after proceeding.", + "No facilities found": "No facilities found", "No more shipments found": "No more shipments found", "None": "None", "No results found": "No results found", @@ -106,6 +108,7 @@ "secondary identifier": "secondary identifier", "Secondary identifier": "Secondary identifier", "Search": "Search", + "Search facilities": "Search facilities", "Search purchase orders": "Search purchase orders", "Search returns": "Search returns", "Search time zones": "Search time zones", @@ -115,6 +118,7 @@ "Select": "Select", "Select all": "Select all", "Select facility": "Select facility", + "Select Facility": "Select Facility", "Selected TimeZone": "Selected TimeZone", "Select a different time zone": "Select a different time zone", "Select time zone": "Select time zone", diff --git a/src/store/modules/user/actions.ts b/src/store/modules/user/actions.ts index 3bb0d182..67a9a65e 100644 --- a/src/store/modules/user/actions.ts +++ b/src/store/modules/user/actions.ts @@ -57,7 +57,7 @@ const actions: ActionTree = { //fetching user facilities const isAdminUser = appPermissions.some((appPermission: any) => appPermission?.action === "APP_RECVG_ADMIN"); const facilities = await useUserStore().getUserFacilities(userProfile?.partyId, "", isAdminUser) - await useUserStore().getPreferredFacility('SELECTED_FACILITY') + await useUserStore().getFacilityPreference('SELECTED_FACILITY') if (!facilities.length) throw 'Unable to login. User is not assocaited with any facility' diff --git a/src/views/Settings.vue b/src/views/Settings.vue index 0c8cfa94..671b1601 100644 --- a/src/views/Settings.vue +++ b/src/views/Settings.vue @@ -127,9 +127,9 @@ export default defineComponent({ async timeZoneUpdated(tzId: string) { await this.store.dispatch("user/setUserTimeZone", tzId) }, - async handleFacilityUpdate(selectedFacilityId: any) { + async handleFacilityUpdate(selectedFacility: any) { this.store.dispatch('shipment/clearShipments'); - await this.store.dispatch('user/setFacilityUpdates', selectedFacilityId); + await this.store.dispatch('user/setFacilityUpdates', selectedFacility?.facilityId); }, async presentAlert () { const alert = await alertController.create({ From 3d1599f21e8777edf1dadd0de494706e8359f4df Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 7 Nov 2024 18:10:43 +0530 Subject: [PATCH 3/5] Improved: added util function for fetching current facility in action & changed functions name(#dxp/288) - Updated the dxp-components & oms-api to latest versions. --- package-lock.json | 8 ++++---- package.json | 2 +- src/store/modules/order/actions.ts | 6 +----- src/store/modules/shipment/actions.ts | 7 +------ src/utils/index.ts | 9 +++++++-- src/views/Settings.vue | 6 +++--- 6 files changed, 17 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index f2a96165..a2307432 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@casl/ability": "^6.0.0", "@hotwax/app-version-info": "^1.0.0", "@hotwax/apps-theme": "^1.2.6", - "@hotwax/dxp-components": "^1.15.5", + "@hotwax/dxp-components": "^1.16.0", "@hotwax/oms-api": "^1.16.0", "@ionic/core": "^7.6.0", "@ionic/vue": "^7.6.0", @@ -2792,9 +2792,9 @@ "integrity": "sha512-zpUjGoY7LBlKeiP0V7tonrmoey8HQ5THQmyixQ+IDtrjmEJNBjynW/Ef3gC0FUNNPuVqxWPZdT5CVgaETLGTwg==" }, "node_modules/@hotwax/dxp-components": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@hotwax/dxp-components/-/dxp-components-1.15.5.tgz", - "integrity": "sha512-aOzipZwVk/fL6K7/BShsvE3eYqH8LagEQQpaNCPFtSs18KHgolGQxcKT3dQ1KRLTCmoKJugc7ut9uyxZVL5krg==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@hotwax/dxp-components/-/dxp-components-1.16.0.tgz", + "integrity": "sha512-9HUrR58Sk9H3wryYGWfGfctcM9hRqq9pnLbaShnNf0mZeK/vTAIqqTPHcObfeKXkSaPtrqS6E/1Y/+Ysmv6v5A==", "dependencies": { "@hotwax/oms-api": "^1.8.1", "@ionic/core": "^7.6.0", diff --git a/package.json b/package.json index f62d7d9b..2dfaec47 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@casl/ability": "^6.0.0", "@hotwax/app-version-info": "^1.0.0", "@hotwax/apps-theme": "^1.2.6", - "@hotwax/dxp-components": "^1.15.5", + "@hotwax/dxp-components": "^1.16.0", "@hotwax/oms-api": "^1.16.0", "@ionic/core": "^7.6.0", "@ionic/vue": "^7.6.0", diff --git a/src/store/modules/order/actions.ts b/src/store/modules/order/actions.ts index 84c98fe0..c09d7cb9 100644 --- a/src/store/modules/order/actions.ts +++ b/src/store/modules/order/actions.ts @@ -3,15 +3,11 @@ import { ActionTree } from 'vuex' import RootState from '@/store/RootState' import OrderState from './OrderState' import * as types from './mutation-types' -import { hasError, showToast } from '@/utils' +import { hasError, showToast, getCurrentFacilityId } from '@/utils' import { getProductIdentificationValue, translate, useUserStore } from '@hotwax/dxp-components' import emitter from "@/event-bus"; import store from "@/store"; -const getCurrentFacilityId = () => { - const currentFacility: any = useUserStore().getCurrentFacility; - return currentFacility?.facilityId -} const actions: ActionTree = { diff --git a/src/store/modules/shipment/actions.ts b/src/store/modules/shipment/actions.ts index f2330c2f..f8cb2ade 100644 --- a/src/store/modules/shipment/actions.ts +++ b/src/store/modules/shipment/actions.ts @@ -3,16 +3,11 @@ import { ActionTree } from 'vuex' import RootState from '@/store/RootState' import ShipmentState from './ShipmentState' import * as types from './mutation-types' -import { hasError, showToast } from '@/utils' +import { hasError, showToast, getCurrentFacilityId } from '@/utils' import { getProductIdentificationValue, translate, useUserStore } from '@hotwax/dxp-components' import emitter from '@/event-bus' import store from "@/store"; -const getCurrentFacilityId = () => { - const currentFacility: any = useUserStore().getCurrentFacility; - return currentFacility?.facilityId -} - const actions: ActionTree = { async findShipment ({ commit, state }, payload) { if (payload.viewIndex === 0) emitter.emit("presentLoader"); diff --git a/src/utils/index.ts b/src/utils/index.ts index b699b0ca..4a3b0039 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,5 +1,5 @@ import { toastController } from '@ionic/vue'; -import { translate } from '@hotwax/dxp-components' +import { translate, useUserStore } from '@hotwax/dxp-components' import { Plugins } from '@capacitor/core'; import { DateTime } from "luxon"; @@ -52,4 +52,9 @@ const handleDateTimeInput = (dateTimeValue: any) => { return DateTime.fromISO(dateTime).toMillis() } -export { handleDateTimeInput, showToast, hasError, copyToClipboard } +const getCurrentFacilityId = () => { + const currentFacility: any = useUserStore().getCurrentFacility; + return currentFacility?.facilityId +} + +export { handleDateTimeInput, getCurrentFacilityId, showToast, hasError, copyToClipboard } diff --git a/src/views/Settings.vue b/src/views/Settings.vue index 20ae2e61..9fcc3891 100644 --- a/src/views/Settings.vue +++ b/src/views/Settings.vue @@ -37,7 +37,7 @@
- +

@@ -126,9 +126,9 @@ export default defineComponent({ async timeZoneUpdated(tzId: string) { await this.store.dispatch("user/setUserTimeZone", tzId) }, - async handleFacilityUpdate(selectedFacility: any) { + async updateFacility(facility: any) { this.store.dispatch('shipment/clearShipments'); - await this.store.dispatch('user/setFacilityUpdates', selectedFacility?.facilityId); + await this.store.dispatch('user/setFacility', facility?.facilityId); }, async presentAlert () { const alert = await alertController.create({ From ae761428ff09dc30941f1e80090209427f41be03 Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Mon, 18 Nov 2024 11:01:11 +0530 Subject: [PATCH 4/5] Reverted: removed the unnecessary changes in the getOrderDetail action(#dxp/288) --- src/store/modules/order/actions.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/store/modules/order/actions.ts b/src/store/modules/order/actions.ts index c09d7cb9..978472fe 100644 --- a/src/store/modules/order/actions.ts +++ b/src/store/modules/order/actions.ts @@ -70,22 +70,8 @@ const actions: ActionTree = { }, async getOrderDetail({ commit, state }, { orderId }) { let resp; - - const current = state.current as any - const orders = state.purchaseOrders.list as any const currentFacilityId = getCurrentFacilityId(); - if (current.length && current[0]?.orderId === orderId) { return current } - - else if(orders.length > 0) { - return orders.some((order: any) => { - if (order.doclist.docs[0]?.orderId === orderId) { - this.dispatch('product/fetchProductInformation', { order: order.doclist.docs }); - commit(types.ORDER_CURRENT_UPDATED, { ...state.current, orderId: order.doclist.docs[0]?.orderId, externalOrderId: order.doclist.docs[0]?.externalOrderId, orderStatusId: order.doclist.docs[0]?.orderStatusId, orderStatusDesc: order.doclist.docs[0]?.orderStatusDesc, items: JSON.parse(JSON.stringify(order.doclist.docs)) }) - return current; - } - }) - } try { const payload = { "json": { From 7a2be33ffdca114e689a7f44aebfa8d1ab3b9377 Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Mon, 18 Nov 2024 19:04:37 +0530 Subject: [PATCH 5/5] Improved: used getCurrentFacilityId util function to get current facility instead of useUserStore from dxp-component in various files(#dxp/288) --- src/services/ProductService.ts | 4 ++-- src/store/modules/order/actions.ts | 12 +++++------- src/store/modules/shipment/actions.ts | 8 +++----- src/store/modules/user/actions.ts | 4 ++-- src/views/ReturnDetails.vue | 1 - src/views/ShipmentDetails.vue | 6 +----- 6 files changed, 13 insertions(+), 22 deletions(-) diff --git a/src/services/ProductService.ts b/src/services/ProductService.ts index 160f6616..bb73840a 100644 --- a/src/services/ProductService.ts +++ b/src/services/ProductService.ts @@ -1,5 +1,5 @@ import { api, hasError } from '@/adapter'; -import store from '@/store'; +import { getCurrentFacilityId } from '@/utils'; const fetchProducts = async (query: any): Promise => { return api({ @@ -14,7 +14,7 @@ const getInventoryAvailableByFacility = async (productId: any): Promise => let productQoh = '' const payload = { productId: productId, - facilityId: store.getters['user/getCurrentFacility']?.facilityId + facilityId: getCurrentFacilityId() } try { diff --git a/src/store/modules/order/actions.ts b/src/store/modules/order/actions.ts index a5da893a..2a775561 100644 --- a/src/store/modules/order/actions.ts +++ b/src/store/modules/order/actions.ts @@ -4,7 +4,7 @@ import RootState from '@/store/RootState' import OrderState from './OrderState' import * as types from './mutation-types' import { hasError, showToast, getCurrentFacilityId } from '@/utils' -import { getProductIdentificationValue, translate, useUserStore } from '@hotwax/dxp-components' +import { getProductIdentificationValue, translate } from '@hotwax/dxp-components' import emitter from "@/event-bus"; import store from "@/store"; @@ -70,7 +70,6 @@ const actions: ActionTree = { }, async getOrderDetail({ commit, state }, { orderId }) { let resp; - const currentFacilityId = getCurrentFacilityId(); try { const payload = { @@ -83,7 +82,7 @@ const actions: ActionTree = { }, "query": "docType:ORDER", "filter": [ - `orderTypeId: PURCHASE_ORDER AND orderId: ${orderId} AND orderStatusId: (ORDER_APPROVED OR ORDER_CREATED OR ORDER_COMPLETED) AND facilityId: ${currentFacilityId}` + `orderTypeId: PURCHASE_ORDER AND orderId: ${orderId} AND orderStatusId: (ORDER_APPROVED OR ORDER_CREATED OR ORDER_COMPLETED) AND facilityId: ${getCurrentFacilityId()}` ] } } @@ -161,7 +160,7 @@ const actions: ActionTree = { const params = { orderId: payload.orderId, - destinationFacilityId: this.state.user.currentFacility.facilityId, + destinationFacilityId: getCurrentFacilityId(), "type": "PURCHASE_SHIPMENT", "status": "PURCH_SHIP_CREATED", "items": payload.items @@ -169,7 +168,7 @@ const actions: ActionTree = { resp = await OrderService.createIncomingShipment({"payload": params}) if (resp.status === 200 && !hasError(resp) && resp.data.shipmentId) { - const facilityLocations = await this.dispatch('user/getFacilityLocations', this.state.user.currentFacility.facilityId); + const facilityLocations = await this.dispatch('user/getFacilityLocations', getCurrentFacilityId()); if (facilityLocations.length){ const locationSeqId = facilityLocations[0].locationSeqId payload.items.map((item: any) => { @@ -209,8 +208,7 @@ const actions: ActionTree = { "orderBy": 'datetimeReceived DESC', "viewSize": "250" } - const currentFacilityId = getCurrentFacilityId() - const facilityLocations = await this.dispatch('user/getFacilityLocations', currentFacilityId); + const facilityLocations = await this.dispatch('user/getFacilityLocations', getCurrentFacilityId()); const locationSeqId = facilityLocations.length > 0 ? facilityLocations[0].locationSeqId : ""; resp = await OrderService.fetchPOHistory(params) if (resp.status === 200 && !hasError(resp) && resp.data?.count > 0) { diff --git a/src/store/modules/shipment/actions.ts b/src/store/modules/shipment/actions.ts index f920aa16..181a286f 100644 --- a/src/store/modules/shipment/actions.ts +++ b/src/store/modules/shipment/actions.ts @@ -72,8 +72,7 @@ const actions: ActionTree = { const shipmentAttributes = await ShipmentService.fetchShipmentAttributes([shipmentDetail.shipmentId]) shipmentDetail.externalOrderId = shipmentAttributes?.[shipmentDetail.shipmentId]?.['EXTERNAL_ORDER_ID'] shipmentDetail.externalOrderName = shipmentAttributes?.[shipmentDetail.shipmentId]?.['EXTERNAL_ORDER_NAME'] - const currentFacilityId = getCurrentFacilityId(); - const facilityLocations = await this.dispatch('user/getFacilityLocations', currentFacilityId); + const facilityLocations = await this.dispatch('user/getFacilityLocations', getCurrentFacilityId()); if(facilityLocations.length){ const locationSeqId = facilityLocations[0].locationSeqId resp.data.items.map((item: any) => { @@ -106,7 +105,6 @@ const actions: ActionTree = { } }, async receiveShipmentItem ({ commit }, payload) { - const currentFacilityId = getCurrentFacilityId(); let areAllSuccess = true; for (const item of payload.items) { @@ -119,7 +117,7 @@ const actions: ActionTree = { const params = { shipmentId: payload.shipmentId, - facilityId: currentFacilityId, + facilityId: getCurrentFacilityId(), shipmentItemSeqId: item.itemSeqId, productId: item.productId, quantityAccepted: item.quantityAccepted, @@ -154,7 +152,7 @@ const actions: ActionTree = { const uploadData = payload.items.map((item: any) => { return { shipmentId: payload.shipmentId, - facilityId: this.state.user.currentFacility.facilityId, + facilityId: getCurrentFacilityId(), shipmentItemSeqId: item.itemSeqId, productId: item.productId, quantityAccepted: item.quantityAccepted, diff --git a/src/store/modules/user/actions.ts b/src/store/modules/user/actions.ts index e3169ac8..63dae224 100644 --- a/src/store/modules/user/actions.ts +++ b/src/store/modules/user/actions.ts @@ -3,7 +3,7 @@ import { ActionTree } from 'vuex' import RootState from '@/store/RootState' import UserState from './UserState' import * as types from './mutation-types' -import { hasError, showToast } from '@/utils' +import { getCurrentFacilityId, hasError, showToast } from '@/utils' import { Settings } from 'luxon'; import { logout, updateInstanceUrl, updateToken, resetConfig } from '@/adapter' import { @@ -71,7 +71,7 @@ const actions: ActionTree = { return uniqueFacilities }, []); - const currentFacility: any = useUserStore().getCurrentFacility + const currentFacility: any = getCurrentFacilityId(); const currentEComStore = await UserService.getEComStores(token, currentFacility?.facilityId); const productStoreId = currentEComStore?.productStoreId; diff --git a/src/views/ReturnDetails.vue b/src/views/ReturnDetails.vue index 7b64e230..8c319927 100644 --- a/src/views/ReturnDetails.vue +++ b/src/views/ReturnDetails.vue @@ -167,7 +167,6 @@ export default defineComponent({ computed: { ...mapGetters({ current: 'return/getCurrent', - user: 'user/getCurrentFacility', getProduct: 'product/getProduct', facilityLocationsByFacilityId: 'user/getFacilityLocationsByFacilityId', returns: 'return/getReturns', diff --git a/src/views/ShipmentDetails.vue b/src/views/ShipmentDetails.vue index 97d2c374..1a25b800 100644 --- a/src/views/ShipmentDetails.vue +++ b/src/views/ShipmentDetails.vue @@ -120,7 +120,7 @@ import { defineComponent, computed } from 'vue'; import { add, checkmarkDone, checkmarkDoneCircleOutline, cameraOutline, cubeOutline, locationOutline, warningOutline } from 'ionicons/icons'; import { mapGetters, useStore } from "vuex"; import AddProductModal from '@/views/AddProductModal.vue' -import { DxpShopifyImg, translate, getProductIdentificationValue, useProductIdentificationStore, useUserStore } from '@hotwax/dxp-components'; +import { DxpShopifyImg, translate, getProductIdentificationValue, useProductIdentificationStore } from '@hotwax/dxp-components'; import { useRouter } from 'vue-router'; import Scanner from "@/components/Scanner.vue"; import ImageModal from '@/components/ImageModal.vue'; @@ -167,7 +167,6 @@ export default defineComponent({ computed: { ...mapGetters({ current: 'shipment/getCurrent', - user: 'user/getCurrentFacility', getProduct: 'product/getProduct', facilityLocationsByFacilityId: 'user/getFacilityLocationsByFacilityId', isForceScanEnabled: 'util/isForceScanEnabled', @@ -354,10 +353,8 @@ export default defineComponent({ setup() { const store = useStore(); const router = useRouter(); - const userStore = useUserStore() const productIdentificationStore = useProductIdentificationStore(); let productIdentificationPref = computed(() => productIdentificationStore.getProductIdentificationPref) - let currentFacility: any = computed(() => userStore.getCurrentFacility) return { Actions, @@ -366,7 +363,6 @@ export default defineComponent({ checkmarkDone, checkmarkDoneCircleOutline, cubeOutline, - currentFacility, hasPermission, locationOutline, store,