From 6368fa389073896509732a389e0730b46eff0845 Mon Sep 17 00:00:00 2001 From: nerim Date: Mon, 8 Jan 2024 17:36:16 +0100 Subject: [PATCH] Make pagination to work and integrate with backend --- ...eployment-details.fd87698951c89fbe5e69.js} | 16 +- ...57421.js => index.00751d4e28bf7cf9b010.js} | 24 +-- .../static/index.078542b7141079d77ac1.css | 186 +++++++++--------- connect_ext_ppr/static/index.html | 2 +- ...> request-details.d2e1e1181d6531e0ff8b.js} | 8 +- .../MarketplacesTab.vue | 3 +- .../CreateDeploymentRequestDialog/PprTab.vue | 3 +- .../CreateDeploymentRequestDialog/index.vue | 5 +- .../components/DeploymentConfigurationTab.vue | 13 +- .../components/DeploymentMarketplacesTab.vue | 19 +- ui/src/components/DeploymentRequestsTab.vue | 15 +- ui/src/components/DeploymentRequestsTable.vue | 11 +- ui/src/components/DeploymentsTable.vue | 12 +- ui/src/components/PprTab.vue | 16 +- ui/src/components/RequestMarketplacesTab.vue | 20 +- ui/src/components/RequestTasksTab.vue | 22 +-- ui/src/components/cDataTable.vue | 14 +- ui/src/tools/rest.js | 13 +- ui/src/utils.js | 84 +++++++- 19 files changed, 281 insertions(+), 205 deletions(-) rename connect_ext_ppr/static/{deployment-details.6821e06b1fbacca9d4c7.js => deployment-details.fd87698951c89fbe5e69.js} (85%) rename connect_ext_ppr/static/{index.8af7ae08238431f57421.js => index.00751d4e28bf7cf9b010.js} (96%) rename connect_ext_ppr/static/{request-details.eba3a5545dfa7b83b78d.js => request-details.d2e1e1181d6531e0ff8b.js} (86%) diff --git a/connect_ext_ppr/static/deployment-details.6821e06b1fbacca9d4c7.js b/connect_ext_ppr/static/deployment-details.fd87698951c89fbe5e69.js similarity index 85% rename from connect_ext_ppr/static/deployment-details.6821e06b1fbacca9d4c7.js rename to connect_ext_ppr/static/deployment-details.fd87698951c89fbe5e69.js index c068d4e..861de77 100644 --- a/connect_ext_ppr/static/deployment-details.6821e06b1fbacca9d4c7.js +++ b/connect_ext_ppr/static/deployment-details.fd87698951c89fbe5e69.js @@ -145,7 +145,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*********************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_ActionsMenu_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/ActionsMenu.vue */ \"./ui/src/components/ActionsMenu.vue\");\n/* harmony import */ var _components_cChip_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/cChip.vue */ \"./ui/src/components/cChip.vue\");\n/* harmony import */ var _components_cDialog_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~components/cDialog.vue */ \"./ui/src/components/cDialog.vue\");\n/* harmony import */ var _components_UploadFile_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~components/UploadFile.vue */ \"./ui/src/components/UploadFile.vue\");\n/* harmony import */ var _components_ErrorSnackbar_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~components/ErrorSnackbar.vue */ \"./ui/src/components/ErrorSnackbar.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ~helpers */ \"./ui/src/tools/helpers.js\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/file_upload/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/download/baseline.svg\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst prepareRow = (0,_utils__WEBPACK_IMPORTED_MODULE_8__.template)({\n configId: ['id'],\n fileName: ['file', 'name'],\n fileId: ['file', 'id'],\n fileLocation: ['file', 'location'],\n fileSize: ['file', 'size'],\n addedAt: ['events', 'created', 'at'],\n addedByName: ['events', 'created', 'by', 'name'],\n addedById: ['events', 'created', 'by', 'id'],\n configState: ['state'],\n});\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n TableActionsList: _components_ActionsMenu_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cChip: _components_cChip_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n cDialog: _components_cDialog_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n UploadFile: _components_UploadFile_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n ErrorSnackbar: _components_ErrorSnackbar_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n },\n\n props: {\n deploymentId: String,\n accountId: String,\n },\n\n data() {\n return {\n localValue: [],\n inputFile: null,\n loading: true,\n icons: {\n googleFileUploadBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n googleDownloadBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n },\n\n headers: [\n {\n text: 'file',\n value: 'file',\n align: 'left',\n },\n {\n text: 'file size',\n value: 'fileSize',\n align: 'left',\n },\n {\n text: 'added at',\n value: 'addedAt',\n align: 'left',\n },\n {\n text: 'added by',\n value: 'addedBy',\n align: 'left',\n },\n {\n notResizable: true,\n text: '',\n value: 'actions',\n width: 80,\n },\n ],\n\n uploadConfigurationDialogIsShown: false,\n isUploadingFile: false,\n uploadErrorText: '',\n showErrorSnackbar: false,\n errorSnackbarText: '',\n };\n },\n\n computed: {\n getUploadDialogActions: vm => [\n {\n label: 'Cancel',\n color: 'black',\n closeAfterHandle: true,\n }, {\n label: 'Upload',\n disabled: !vm.inputFile,\n handler: vm.uploadFile,\n closeAfterHandle: false,\n loading: vm.isUploadingFile,\n },\n ],\n },\n\n methods: {\n prepareRow,\n getFileSize: _helpers__WEBPACK_IMPORTED_MODULE_10__.getFileSize,\n downloadFile(item) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_10__.downloader)({ url: item.fileLocation });\n },\n\n showUploadConfigurationDialog() {\n this.uploadConfigurationDialogIsShown = true;\n },\n\n uploadFile() {\n this.isUploadingFile = true;\n const uri = `media/folders/accounts/${this.accountId}/${this.deploymentId}/configurations/files`;\n this.$refs.fileUpload.startUploadFile(uri);\n },\n\n async uploadSuccess({ response }) {\n try {\n await this.createConfig(response);\n this.uploadConfigurationDialogIsShown = false;\n } catch (e) {\n this.uploadErrorText = e.message;\n } finally {\n this.isUploadingFile = false;\n }\n },\n\n createConfig(response) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_9__.createDeploymentConfigurations)(this.deploymentId, {\n file: {\n id: response.id,\n name: response.name,\n location: response.file,\n size: response.size,\n mime_type: 'application/json',\n },\n }).then(() => this.getConfigs());\n },\n\n async getConfigs() {\n this.loading = true;\n try {\n this.localValue = await (0,_utils__WEBPACK_IMPORTED_MODULE_9__.getDeploymentConfigurations)(this.deploymentId);\n } catch (e) {\n this.showErrorSnackbar = true;\n this.errorSnackbarText = e.message;\n } finally {\n this.loading = false;\n }\n },\n\n async deleteConfig(configId) {\n try {\n await (0,_utils__WEBPACK_IMPORTED_MODULE_9__.deleteDeploymentConfiguration)(this.deploymentId, configId);\n await this.getConfigs();\n } catch (e) {\n this.showErrorSnackbar = true;\n this.errorSnackbarText = e.message;\n }\n },\n },\n\n created() {\n this.getConfigs();\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentConfigurationTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_ActionsMenu_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/ActionsMenu.vue */ \"./ui/src/components/ActionsMenu.vue\");\n/* harmony import */ var _components_cChip_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/cChip.vue */ \"./ui/src/components/cChip.vue\");\n/* harmony import */ var _components_cDialog_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~components/cDialog.vue */ \"./ui/src/components/cDialog.vue\");\n/* harmony import */ var _components_UploadFile_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~components/UploadFile.vue */ \"./ui/src/components/UploadFile.vue\");\n/* harmony import */ var _components_ErrorSnackbar_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~components/ErrorSnackbar.vue */ \"./ui/src/components/ErrorSnackbar.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ~helpers */ \"./ui/src/tools/helpers.js\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/file_upload/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/download/baseline.svg\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst prepareRow = (0,_utils__WEBPACK_IMPORTED_MODULE_8__.template)({\n configId: ['id'],\n fileName: ['file', 'name'],\n fileId: ['file', 'id'],\n fileLocation: ['file', 'location'],\n fileSize: ['file', 'size'],\n addedAt: ['events', 'created', 'at'],\n addedByName: ['events', 'created', 'by', 'name'],\n addedById: ['events', 'created', 'by', 'id'],\n configState: ['state'],\n});\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n TableActionsList: _components_ActionsMenu_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cChip: _components_cChip_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n cDialog: _components_cDialog_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n UploadFile: _components_UploadFile_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n ErrorSnackbar: _components_ErrorSnackbar_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n },\n\n props: {\n deploymentId: String,\n accountId: String,\n },\n\n data() {\n return {\n localValue: [],\n inputFile: null,\n loading: true,\n icons: {\n googleFileUploadBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n googleDownloadBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n },\n\n headers: [\n {\n text: 'file',\n value: 'file',\n align: 'left',\n },\n {\n text: 'file size',\n value: 'fileSize',\n align: 'left',\n },\n {\n text: 'added at',\n value: 'addedAt',\n align: 'left',\n },\n {\n text: 'added by',\n value: 'addedBy',\n align: 'left',\n },\n {\n notResizable: true,\n text: '',\n value: 'actions',\n width: 80,\n },\n ],\n\n uploadConfigurationDialogIsShown: false,\n isUploadingFile: false,\n uploadErrorText: '',\n showErrorSnackbar: false,\n errorSnackbarText: '',\n localParams: { limit: 10, offset: 0 },\n };\n },\n\n computed: {\n getUploadDialogActions: vm => [\n {\n label: 'Cancel',\n color: 'black',\n closeAfterHandle: true,\n }, {\n label: 'Upload',\n disabled: !vm.inputFile,\n handler: vm.uploadFile,\n closeAfterHandle: false,\n loading: vm.isUploadingFile,\n },\n ],\n },\n\n methods: {\n prepareRow,\n getFileSize: _helpers__WEBPACK_IMPORTED_MODULE_10__.getFileSize,\n downloadFile(item) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_10__.downloader)({ url: item.fileLocation });\n },\n\n showUploadConfigurationDialog() {\n this.uploadConfigurationDialogIsShown = true;\n },\n\n uploadFile() {\n this.isUploadingFile = true;\n const uri = `media/folders/accounts/${this.accountId}/${this.deploymentId}/configurations/files`;\n this.$refs.fileUpload.startUploadFile(uri);\n },\n\n async uploadSuccess({ response }) {\n try {\n await this.createConfig(response);\n this.uploadConfigurationDialogIsShown = false;\n } catch (e) {\n this.uploadErrorText = e.message;\n } finally {\n this.isUploadingFile = false;\n }\n },\n\n createConfig(response) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_9__.createDeploymentConfigurations)(this.deploymentId, {\n file: {\n id: response.id,\n name: response.name,\n location: response.file,\n size: response.size,\n mime_type: 'application/json',\n },\n }).then(() => this.getConfigs());\n },\n\n async getConfigs() {\n this.loading = true;\n try {\n const conf = await (0,_utils__WEBPACK_IMPORTED_MODULE_9__.getDeploymentConfigurations)(this.deploymentId, this.localParams);\n this.localValue = conf.collection;\n } catch (e) {\n this.showErrorSnackbar = true;\n this.errorSnackbarText = e.message;\n } finally {\n this.loading = false;\n }\n },\n\n async deleteConfig(configId) {\n try {\n await (0,_utils__WEBPACK_IMPORTED_MODULE_9__.deleteDeploymentConfiguration)(this.deploymentId, configId);\n await this.getConfigs();\n } catch (e) {\n this.showErrorSnackbar = true;\n this.errorSnackbarText = e.message;\n }\n },\n\n load(params) {\n this.localParams = params;\n\n return (0,_utils__WEBPACK_IMPORTED_MODULE_9__.getDeploymentConfigurations)(this.deploymentId, params);\n },\n },\n\n created() {\n this.getConfigs();\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentConfigurationTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -165,7 +165,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \********************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n\n\n\n\n\n\n\n\n\n\nconst enrichByBatchInfo = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.enrich)('id', ['pricelist', 'id'], 'pricelist');\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n },\n\n props: {\n deploymentId: String,\n },\n\n data: () => ({\n loading: true,\n marketplaces: [],\n headers: [\n { text: 'Marketplace', value: 'marketplace' },\n { text: 'External ID', value: 'externalId' },\n { text: 'Pricing Batch', value: 'priceList' },\n { text: 'Applied PPR', value: 'ppr' },\n ],\n }),\n\n methods: {\n prepareRow(item) {\n return {\n id: item.id,\n name: item.name,\n icon: item.icon,\n externalId: item.external_id,\n appliedPprVersion: item.ppr?.version || 0,\n priceList: item.pricelist,\n };\n },\n },\n\n async created() {\n const marketplaces = await (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getDeploymentMarketplaces)(this.deploymentId);\n const batches = await (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getDeploymentBatches)(this.deploymentId);\n\n this.marketplaces = enrichByBatchInfo(batches, marketplaces);\n this.loading = false;\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentMarketplacesTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n },\n\n props: {\n deploymentId: String,\n },\n\n data: () => ({\n loading: true,\n marketplaces: [],\n headers: [\n { text: 'Marketplace', value: 'marketplace' },\n { text: 'External ID', value: 'externalId' },\n { text: 'Pricing Batch', value: 'priceList' },\n { text: 'Applied PPR', value: 'ppr' },\n ],\n }),\n\n methods: {\n prepareRow(item) {\n return {\n id: item.id,\n name: item.name,\n icon: item.icon,\n externalId: item.external_id,\n appliedPprVersion: item.ppr?.version || 0,\n priceList: item.pricelist,\n };\n },\n\n load(params) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getDeploymentMarketplaces)(this.deploymentId, params);\n },\n },\n\n\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentMarketplacesTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -185,7 +185,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \****************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/add/baseline.svg\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_cChip_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cChip.vue */ \"./ui/src/components/cChip.vue\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _components_CreateDeploymentRequestDialog_index_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/CreateDeploymentRequestDialog/index.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/index.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n cChip: _components_cChip_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n CreateDeploymentRequestDialog: _components_CreateDeploymentRequestDialog_index_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n },\n\n props: {\n deployment: {\n type: Object,\n required: true,\n },\n },\n\n data: () => ({\n loading: true,\n requests: [],\n\n icons: { googleAddBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"] },\n\n isCreateRequestDialogOpen: false,\n\n headers: [\n {\n text: 'Request',\n value: 'id',\n },\n {\n text: 'PPR',\n value: 'ppr',\n width: 105,\n },\n {\n text: 'Created',\n value: 'created',\n width: 137,\n },\n {\n text: 'Status',\n value: 'status',\n width: 140,\n },\n ],\n }),\n\n computed: {\n deploymentId: vm => vm.deployment.id,\n },\n\n methods: {\n prepareRow(item) {\n return {\n id: item.id,\n status: item.status,\n created: item.events.created?.at,\n ppr: item.ppr.version,\n manual: item.manually,\n };\n },\n\n openUploadPPRDialog() {\n this.isCreateRequestDialogOpen = true;\n },\n\n async loadRequests() {\n this.loading = true;\n this.requests = await (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getDeploymentRequests)(this.deploymentId);\n this.loading = false;\n },\n },\n\n created() {\n this.loadRequests();\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentRequestsTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/add/baseline.svg\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_cChip_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cChip.vue */ \"./ui/src/components/cChip.vue\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _components_CreateDeploymentRequestDialog_index_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/CreateDeploymentRequestDialog/index.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/index.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n cChip: _components_cChip_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n CreateDeploymentRequestDialog: _components_CreateDeploymentRequestDialog_index_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n },\n\n props: {\n deployment: {\n type: Object,\n required: true,\n },\n },\n\n data: () => ({\n loading: true,\n requests: [],\n\n icons: { googleAddBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"] },\n\n isCreateRequestDialogOpen: false,\n\n headers: [\n {\n text: 'Request',\n value: 'id',\n },\n {\n text: 'PPR',\n value: 'ppr',\n width: 105,\n },\n {\n text: 'Created',\n value: 'created',\n width: 137,\n },\n {\n text: 'Status',\n value: 'status',\n width: 140,\n },\n ],\n\n localParams: { limit: 10, offset: 0 },\n }),\n\n computed: {\n deploymentId: vm => vm.deployment.id,\n },\n\n methods: {\n prepareRow(item) {\n return {\n id: item.id,\n status: item.status,\n created: item.events.created?.at,\n ppr: item.ppr.version,\n manual: item.manually,\n };\n },\n\n openUploadPPRDialog() {\n this.isCreateRequestDialogOpen = true;\n },\n\n async loadRequests() {\n this.loading = true;\n const rq = await (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getDeploymentRequests)(this.deploymentId, this.localParams);\n this.requests = rq.collection;\n this.loading = false;\n },\n\n load(params) {\n this.localParams = params;\n\n return (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getDeploymentRequests)(this.deploymentId, params);\n },\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentRequestsTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -285,7 +285,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/description/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/download/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/file_upload/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/info_outline/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/refresh/baseline.svg\");\n/* harmony import */ var remove_markdown__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! remove-markdown */ \"./node_modules/remove-markdown/index.js\");\n/* harmony import */ var remove_markdown__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(remove_markdown__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_ActionsMenu_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/ActionsMenu.vue */ \"./ui/src/components/ActionsMenu.vue\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/cIcon.vue */ \"./ui/src/components/cIcon.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _components_PprSummaryDialog_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~components/PprSummaryDialog.vue */ \"./ui/src/components/PprSummaryDialog.vue\");\n/* harmony import */ var _components_PprUploadDialog_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~components/PprUploadDialog.vue */ \"./ui/src/components/PprUploadDialog.vue\");\n/* harmony import */ var _components_ErrorSnackbar_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~components/ErrorSnackbar.vue */ \"./ui/src/components/ErrorSnackbar.vue\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ~helpers */ \"./ui/src/tools/helpers.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst prepareRow = (0,_utils__WEBPACK_IMPORTED_MODULE_10__.template)({\n id: ['id'],\n ppr: ['version'],\n createdAt: ['events', 'created', 'at'],\n fileSize: (0,_utils__WEBPACK_IMPORTED_MODULE_10__.pathTo)(['file', 'size'], _helpers__WEBPACK_IMPORTED_MODULE_9__.getFileSize),\n description: (0,_utils__WEBPACK_IMPORTED_MODULE_10__.propTo)('description', (remove_markdown__WEBPACK_IMPORTED_MODULE_0___default())),\n status: ['status'],\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n ActionsMenu: _components_ActionsMenu_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n PprUploadDialog: _components_PprUploadDialog_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n cIcon: _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n PprSummaryDialog: _components_PprSummaryDialog_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n ErrorSnackbar: _components_ErrorSnackbar_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n },\n\n props: {\n accountId: String,\n deploymentId: String,\n },\n\n data() {\n return {\n localValue: [],\n currentPPR: null,\n isPPRSummaryDialogOpen: false,\n isUploadPPRDialogOpen: false,\n\n isRegeneratingPPR: false,\n\n loading: true,\n icons: {\n googleDescriptionBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n googleDownloadBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n googleFileUploadBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n googleInfoOutlineBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n googleRefreshBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n },\n\n headers: [\n {\n text: 'PPR',\n value: 'ppr',\n align: 'left',\n width: 135,\n },\n {\n text: 'created',\n value: 'createdAt',\n align: 'left',\n width: 142,\n },\n {\n text: 'file size',\n value: 'fileSize',\n align: 'left',\n width: 99,\n },\n {\n text: 'description',\n value: 'description',\n align: 'left',\n },\n {\n text: 'status',\n value: 'status',\n align: 'left',\n width: 139,\n },\n {\n notResizable: true,\n text: '',\n value: 'actions',\n width: 80,\n },\n ],\n\n showErrorSnackbar: false,\n errorSnackbarText: '',\n };\n },\n\n methods: {\n prepareRow,\n downloadPPR({ id }) {\n this.currentPPR = this.localValue.find(ppr => ppr.id === id);\n (0,_helpers__WEBPACK_IMPORTED_MODULE_9__.downloader)({ url: this.currentPPR.file.location });\n },\n\n openPPRSummary({ id }) {\n this.currentPPR = this.localValue.find(ppr => ppr.id === id);\n this.isPPRSummaryDialogOpen = true;\n },\n\n async regeneratePPR() {\n try {\n this.isRegeneratingPPR = true;\n await (0,_utils__WEBPACK_IMPORTED_MODULE_11__.regeneratePPR)(this.deploymentId);\n await this.loadPPRs();\n } catch (e) {\n this.showErrorSnackbar = true;\n this.errorSnackbarText = e.message;\n } finally {\n this.isRegeneratingPPR = false;\n }\n },\n\n async loadPPRs() {\n try {\n this.loading = true;\n this.localValue = await (0,_utils__WEBPACK_IMPORTED_MODULE_11__.getPPRs)(this.deploymentId);\n } catch (e) {\n this.showErrorSnackbar = true;\n this.errorSnackbarText = e.message;\n } finally {\n this.loading = false;\n }\n },\n\n openUploadPPRDialog() {\n this.isUploadPPRDialogOpen = true;\n },\n },\n\n created() {\n this.loadPPRs();\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/PprTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/description/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/download/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/file_upload/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/info_outline/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/refresh/baseline.svg\");\n/* harmony import */ var remove_markdown__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! remove-markdown */ \"./node_modules/remove-markdown/index.js\");\n/* harmony import */ var remove_markdown__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(remove_markdown__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_ActionsMenu_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/ActionsMenu.vue */ \"./ui/src/components/ActionsMenu.vue\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/cIcon.vue */ \"./ui/src/components/cIcon.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _components_PprSummaryDialog_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~components/PprSummaryDialog.vue */ \"./ui/src/components/PprSummaryDialog.vue\");\n/* harmony import */ var _components_PprUploadDialog_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~components/PprUploadDialog.vue */ \"./ui/src/components/PprUploadDialog.vue\");\n/* harmony import */ var _components_ErrorSnackbar_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~components/ErrorSnackbar.vue */ \"./ui/src/components/ErrorSnackbar.vue\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ~helpers */ \"./ui/src/tools/helpers.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst prepareRow = (0,_utils__WEBPACK_IMPORTED_MODULE_10__.template)({\n id: ['id'],\n ppr: ['version'],\n createdAt: ['events', 'created', 'at'],\n fileSize: (0,_utils__WEBPACK_IMPORTED_MODULE_10__.pathTo)(['file', 'size'], _helpers__WEBPACK_IMPORTED_MODULE_9__.getFileSize),\n description: (0,_utils__WEBPACK_IMPORTED_MODULE_10__.propTo)('description', (remove_markdown__WEBPACK_IMPORTED_MODULE_0___default())),\n status: ['status'],\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n ActionsMenu: _components_ActionsMenu_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n PprUploadDialog: _components_PprUploadDialog_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n cIcon: _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n PprSummaryDialog: _components_PprSummaryDialog_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n ErrorSnackbar: _components_ErrorSnackbar_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n },\n\n props: {\n accountId: String,\n deploymentId: String,\n },\n\n data() {\n return {\n localValue: [],\n currentPPR: null,\n isPPRSummaryDialogOpen: false,\n isUploadPPRDialogOpen: false,\n\n isRegeneratingPPR: false,\n\n loading: true,\n icons: {\n googleDescriptionBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n googleDownloadBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n googleFileUploadBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n googleInfoOutlineBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n googleRefreshBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n },\n\n headers: [\n {\n text: 'PPR',\n value: 'ppr',\n align: 'left',\n width: 135,\n },\n {\n text: 'created',\n value: 'createdAt',\n align: 'left',\n width: 142,\n },\n {\n text: 'file size',\n value: 'fileSize',\n align: 'left',\n width: 99,\n },\n {\n text: 'description',\n value: 'description',\n align: 'left',\n },\n {\n text: 'status',\n value: 'status',\n align: 'left',\n width: 139,\n },\n {\n notResizable: true,\n text: '',\n value: 'actions',\n width: 80,\n },\n ],\n\n showErrorSnackbar: false,\n errorSnackbarText: '',\n localParams: { limit: 10, offset: 0 },\n };\n },\n\n methods: {\n prepareRow,\n downloadPPR({ id }) {\n this.currentPPR = this.localValue.find(ppr => ppr.id === id);\n (0,_helpers__WEBPACK_IMPORTED_MODULE_9__.downloader)({ url: this.currentPPR.file.location });\n },\n\n openPPRSummary({ id }) {\n this.currentPPR = this.localValue.find(ppr => ppr.id === id);\n this.isPPRSummaryDialogOpen = true;\n },\n\n async regeneratePPR() {\n try {\n this.isRegeneratingPPR = true;\n await (0,_utils__WEBPACK_IMPORTED_MODULE_11__.regeneratePPR)(this.deploymentId);\n await this.loadPPRs();\n } catch (e) {\n this.showErrorSnackbar = true;\n this.errorSnackbarText = e.message;\n } finally {\n this.isRegeneratingPPR = false;\n }\n },\n\n async loadPPRs() {\n try {\n this.loading = true;\n const pprs = await (0,_utils__WEBPACK_IMPORTED_MODULE_11__.getPPRs)(this.deploymentId, this.localParams);\n this.localValue = pprs.collection;\n } catch (e) {\n this.showErrorSnackbar = true;\n this.errorSnackbarText = e.message;\n } finally {\n this.loading = false;\n }\n },\n\n openUploadPPRDialog() {\n this.isUploadPPRDialogOpen = true;\n },\n\n load(params) {\n this.localParams = params;\n\n return (0,_utils__WEBPACK_IMPORTED_MODULE_11__.getPPRs)(this.deploymentId, params);\n },\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/PprTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -785,7 +785,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \**********************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"deployment-configuration-tab\" },\n [\n _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"hide-go-to-page-section\": \"\",\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n showManagePanel: \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"buttons\",\n fn: function () {\n return [\n _c(\"c-button\", {\n attrs: {\n mode: \"solid\",\n color: \"accent\",\n small: \"\",\n label: \"Upload configuration file\",\n icon: _vm.icons.googleFileUploadBaseline,\n },\n on: { click: _vm.showUploadConfigurationDialog },\n }),\n ]\n },\n proxy: true,\n },\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"file\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [_vm._v(_vm._s(row.fileName))]),\n row.configState === \"active\"\n ? _c(\"c-chip\", {\n staticClass: \"_ml_8 color_border-radius\",\n attrs: {\n text: \"Active\",\n color: \"orange\",\n },\n })\n : _vm._e(),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"fileSize\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(_vm._s(_vm.getFileSize(row.fileSize))),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"addedAt\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm._f(\"utcToLocal\")(row.addedAt))\n ),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"addedBy\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.addedById },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.addedByName))]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"actions\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"c-button\", {\n attrs: {\n icon: _vm.icons.googleDownloadBaseline,\n size: \"18px\",\n },\n on: {\n click: function ($event) {\n return _vm.downloadFile(row)\n },\n },\n }),\n _c(\n \"table-actions-list\",\n { staticClass: \"_ml_4\" },\n [\n _c(\"c-button\", {\n staticClass: \"list-item\",\n attrs: {\n color: \"red\",\n label: \"Delete\",\n \"upper-case\": false,\n },\n on: {\n click: function ($event) {\n return _vm.deleteConfig(row.configId)\n },\n },\n }),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.localValue,\n callback: function ($$v) {\n _vm.localValue = $$v\n },\n expression: \"localValue\",\n },\n }),\n _c(\n \"c-dialog\",\n {\n attrs: {\n title: \"Upload Configuration File\",\n width: \"500px\",\n actions: _vm.getUploadDialogActions,\n \"error-text\": _vm.uploadErrorText,\n },\n model: {\n value: _vm.uploadConfigurationDialogIsShown,\n callback: function ($$v) {\n _vm.uploadConfigurationDialogIsShown = $$v\n },\n expression: \"uploadConfigurationDialogIsShown\",\n },\n },\n [\n _c(\"p\", [\n _vm._v(\n \"This file will become active after the upload is complete.\"\n ),\n ]),\n _c(\"upload-file\", {\n ref: \"fileUpload\",\n attrs: {\n \"message-text\": \"Drag files here or browse\",\n \"accepted-files\": \".json\",\n label: \"Upload file\",\n },\n on: { \"upload-success\": _vm.uploadSuccess },\n model: {\n value: _vm.inputFile,\n callback: function ($$v) {\n _vm.inputFile = $$v\n },\n expression: \"inputFile\",\n },\n }),\n ],\n 1\n ),\n _c(\"error-snackbar\", {\n attrs: { text: _vm.errorSnackbarText },\n model: {\n value: _vm.showErrorSnackbar,\n callback: function ($$v) {\n _vm.showErrorSnackbar = $$v\n },\n expression: \"showErrorSnackbar\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentConfigurationTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"deployment-configuration-tab\" },\n [\n _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"hide-go-to-page-section\": \"\",\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n \"show-manage-panel\": \"\",\n update: _vm.load,\n },\n scopedSlots: _vm._u([\n {\n key: \"buttons\",\n fn: function () {\n return [\n _c(\"c-button\", {\n attrs: {\n mode: \"solid\",\n color: \"accent\",\n small: \"\",\n label: \"Upload configuration file\",\n icon: _vm.icons.googleFileUploadBaseline,\n },\n on: { click: _vm.showUploadConfigurationDialog },\n }),\n ]\n },\n proxy: true,\n },\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"file\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [_vm._v(_vm._s(row.fileName))]),\n row.configState === \"active\"\n ? _c(\"c-chip\", {\n staticClass: \"_ml_8 color_border-radius\",\n attrs: {\n text: \"Active\",\n color: \"orange\",\n },\n })\n : _vm._e(),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"fileSize\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(_vm._s(_vm.getFileSize(row.fileSize))),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"addedAt\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm._f(\"utcToLocal\")(row.addedAt))\n ),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"addedBy\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.addedById },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.addedByName))]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"actions\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"c-button\", {\n attrs: {\n icon: _vm.icons.googleDownloadBaseline,\n size: \"18px\",\n },\n on: {\n click: function ($event) {\n return _vm.downloadFile(row)\n },\n },\n }),\n _c(\n \"table-actions-list\",\n { staticClass: \"_ml_4\" },\n [\n _c(\"c-button\", {\n staticClass: \"list-item\",\n attrs: {\n color: \"red\",\n label: \"Delete\",\n \"upper-case\": false,\n },\n on: {\n click: function ($event) {\n return _vm.deleteConfig(row.configId)\n },\n },\n }),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.localValue,\n callback: function ($$v) {\n _vm.localValue = $$v\n },\n expression: \"localValue\",\n },\n }),\n _c(\n \"c-dialog\",\n {\n attrs: {\n title: \"Upload Configuration File\",\n width: \"500px\",\n actions: _vm.getUploadDialogActions,\n \"error-text\": _vm.uploadErrorText,\n },\n model: {\n value: _vm.uploadConfigurationDialogIsShown,\n callback: function ($$v) {\n _vm.uploadConfigurationDialogIsShown = $$v\n },\n expression: \"uploadConfigurationDialogIsShown\",\n },\n },\n [\n _c(\"p\", [\n _vm._v(\n \"This file will become active after the upload is complete.\"\n ),\n ]),\n _c(\"upload-file\", {\n ref: \"fileUpload\",\n attrs: {\n \"message-text\": \"Drag files here or browse\",\n \"accepted-files\": \".json\",\n label: \"Upload file\",\n },\n on: { \"upload-success\": _vm.uploadSuccess },\n model: {\n value: _vm.inputFile,\n callback: function ($$v) {\n _vm.inputFile = $$v\n },\n expression: \"inputFile\",\n },\n }),\n ],\n 1\n ),\n _c(\"error-snackbar\", {\n attrs: { text: _vm.errorSnackbarText },\n model: {\n value: _vm.showErrorSnackbar,\n callback: function ($$v) {\n _vm.showErrorSnackbar = $$v\n },\n expression: \"showErrorSnackbar\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentConfigurationTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -795,7 +795,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*********************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"marketplaces-tab\" },\n [\n _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n \"hide-all-pagination-sections\": \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"marketplace\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.id },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.name))]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n staticClass: \"object-image\",\n class: {\n \"picture-placeholder\":\n !row.icon,\n },\n attrs: {\n height: 32,\n src: row.icon,\n width: 32,\n size: \"contain\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"externalId\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.externalId\n ? _c(\"span\", [_vm._v(_vm._s(row.externalId))])\n : _c(\n \"div\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"ppr\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.appliedPprVersion\n ? _c(\"span\", [\n _vm._v(\n \"Version \" +\n _vm._s(row.appliedPprVersion)\n ),\n ])\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"priceList\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.priceList\n ? _c(\"detail-item\", {\n attrs: {\n \"assistive-text\": row.priceList.id,\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n {\n staticClass:\n \"truncate-text\",\n },\n [\n _vm._v(\n _vm._s(row.priceList.name)\n ),\n ]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n })\n : _c(\n \"div\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.marketplaces,\n callback: function ($$v) {\n _vm.marketplaces = $$v\n },\n expression: \"marketplaces\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentMarketplacesTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"marketplaces-tab\" },\n [\n _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n update: _vm.load,\n },\n scopedSlots: _vm._u([\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"marketplace\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.id },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.name))]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n staticClass: \"object-image\",\n class: {\n \"picture-placeholder\":\n !row.icon,\n },\n attrs: {\n height: 32,\n src: row.icon,\n width: 32,\n size: \"contain\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"externalId\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.externalId\n ? _c(\"span\", [_vm._v(_vm._s(row.externalId))])\n : _c(\n \"div\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"ppr\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.appliedPprVersion\n ? _c(\"span\", [\n _vm._v(\n \"Version \" +\n _vm._s(row.appliedPprVersion)\n ),\n ])\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"priceList\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.priceList\n ? _c(\"detail-item\", {\n attrs: {\n \"assistive-text\": row.priceList.id,\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n {\n staticClass:\n \"truncate-text\",\n },\n [\n _vm._v(\n _vm._s(row.priceList.name)\n ),\n ]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n })\n : _c(\n \"div\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.marketplaces,\n callback: function ($$v) {\n _vm.marketplaces = $$v\n },\n expression: \"marketplaces\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentMarketplacesTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -805,7 +805,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*****************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"request-tasks-tab\" },\n [\n _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n \"hide-all-pagination-sections\": \"\",\n \"fix-layout\": \"\",\n \"show-manage-panel\": \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"buttons\",\n fn: function () {\n return [\n _c(\"c-button\", {\n staticClass: \"ppr-table__upload-btn\",\n attrs: {\n icon: _vm.icons.googleAddBaseline,\n color: \"accent\",\n mode: \"solid\",\n label: \"Create Request\",\n small: \"\",\n },\n on: { click: _vm.openUploadPPRDialog },\n }),\n ]\n },\n proxy: true,\n },\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"id\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"router-link\",\n {\n attrs: {\n to: {\n name: \"RequestDetails\",\n params: { id: row.id },\n },\n },\n },\n [_vm._v(_vm._s(row.id))]\n ),\n row.manual\n ? _c(\"c-chip\", {\n staticClass: \"request-tasks-tab__manual\",\n attrs: {\n text: \"Manual\",\n type: \"pale\",\n small: \"\",\n },\n })\n : _vm._e(),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"ppr\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(\"Version \" + _vm._s(row.ppr)),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"created\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.created\n ? _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm._f(\"utcToLocal\")(row.created)\n )\n ),\n ])\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"status\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"div\",\n { staticClass: \"request-tasks-tab__status\" },\n [\n _c(\"c-status\", {\n attrs: { status: row.status },\n }),\n ],\n 1\n ),\n ]\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.requests,\n callback: function ($$v) {\n _vm.requests = $$v\n },\n expression: \"requests\",\n },\n }),\n _c(\"create-deployment-request-dialog\", {\n attrs: { deployment: _vm.deployment },\n on: { \"request-created\": _vm.loadRequests },\n model: {\n value: _vm.isCreateRequestDialogOpen,\n callback: function ($$v) {\n _vm.isCreateRequestDialogOpen = $$v\n },\n expression: \"isCreateRequestDialogOpen\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentRequestsTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"request-tasks-tab\" },\n [\n _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n \"fix-layout\": \"\",\n \"show-manage-panel\": \"\",\n update: _vm.load,\n },\n scopedSlots: _vm._u([\n {\n key: \"buttons\",\n fn: function () {\n return [\n _c(\"c-button\", {\n staticClass: \"ppr-table__upload-btn\",\n attrs: {\n icon: _vm.icons.googleAddBaseline,\n color: \"accent\",\n mode: \"solid\",\n label: \"Create Request\",\n small: \"\",\n },\n on: { click: _vm.openUploadPPRDialog },\n }),\n ]\n },\n proxy: true,\n },\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"id\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"router-link\",\n {\n attrs: {\n to: {\n name: \"RequestDetails\",\n params: { id: row.id },\n },\n },\n },\n [_vm._v(_vm._s(row.id))]\n ),\n row.manual\n ? _c(\"c-chip\", {\n staticClass: \"request-tasks-tab__manual\",\n attrs: {\n text: \"Manual\",\n type: \"pale\",\n small: \"\",\n },\n })\n : _vm._e(),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"ppr\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(\"Version \" + _vm._s(row.ppr)),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"created\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.created\n ? _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm._f(\"utcToLocal\")(row.created)\n )\n ),\n ])\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"status\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"div\",\n { staticClass: \"request-tasks-tab__status\" },\n [\n _c(\"c-status\", {\n attrs: { status: row.status },\n }),\n ],\n 1\n ),\n ]\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.requests,\n callback: function ($$v) {\n _vm.requests = $$v\n },\n expression: \"requests\",\n },\n }),\n _c(\"create-deployment-request-dialog\", {\n attrs: { deployment: _vm.deployment },\n on: { \"request-created\": _vm.loadRequests },\n model: {\n value: _vm.isCreateRequestDialogOpen,\n callback: function ($$v) {\n _vm.isCreateRequestDialogOpen = $$v\n },\n expression: \"isCreateRequestDialogOpen\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentRequestsTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -855,7 +855,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \**************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"ppr-tab\" },\n [\n _c(\"c-data-table\", {\n staticClass: \"ppr-table\",\n attrs: {\n headers: _vm.headers,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n \"hide-all-pagination-sections\": \"\",\n \"fix-layout\": \"\",\n \"show-manage-panel\": \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"buttons\",\n fn: function () {\n return [\n _c(\"c-button\", {\n staticClass: \"ppr-table__upload-btn\",\n attrs: {\n icon: _vm.icons.googleFileUploadBaseline,\n color: \"accent\",\n mode: \"solid\",\n label: \"Upload PPR\",\n small: \"\",\n },\n on: { click: _vm.openUploadPPRDialog },\n }),\n _c(\n \"actions-menu\",\n { attrs: { outline: \"\", small: \"\" } },\n [\n _c(\"c-button\", {\n staticClass: \"list-item\",\n attrs: {\n icon: _vm.icons.googleRefreshBaseline,\n loading: _vm.isRegeneratingPPR,\n \"upper-case\": false,\n label: \"Regenerate PPR\",\n },\n on: { click: _vm.regeneratePPR },\n }),\n ],\n 1\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"ppr\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"div\",\n { staticClass: \"ppr-version\" },\n [\n _c(\"c-icon\", {\n attrs: {\n icon: _vm.icons\n .googleDescriptionBaseline,\n size: \"16px\",\n },\n }),\n _c(\"span\", [\n _vm._v(\"Version \" + _vm._s(row.ppr)),\n ]),\n ],\n 1\n ),\n ]\n )\n : _vm._e(),\n header.value === \"createdAt\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm._f(\"utcToLocal\")(row.createdAt))\n ),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"fileSize\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.fileSize\n ? [_vm._v(_vm._s(row.fileSize))]\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ],\n 2\n )\n : _vm._e(),\n header.value === \"description\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.description\n ? _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.description))]\n )\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"status\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"div\",\n { staticClass: \"ppr-status\" },\n [\n _c(\"c-status\", {\n attrs: { status: row.status },\n }),\n row.status === \"failed\"\n ? [\n _c(\n \"span\",\n { staticClass: \"ppr-status__dot\" },\n [_vm._v(\"•\")]\n ),\n _c(\n \"a\",\n {\n on: {\n click: function ($event) {\n return _vm.openPPRSummary(row)\n },\n },\n },\n [_vm._v(\"Details\")]\n ),\n ]\n : _vm._e(),\n ],\n 2\n ),\n ]\n )\n : header.value === \"actions\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"c-button\", {\n attrs: {\n icon: _vm.icons.googleDownloadBaseline,\n \"upper-case\": false,\n size: \"18px\",\n },\n on: {\n click: function ($event) {\n return _vm.downloadPPR(row)\n },\n },\n }),\n _c(\"c-button\", {\n attrs: {\n icon: _vm.icons.googleInfoOutlineBaseline,\n \"upper-case\": false,\n size: \"18px\",\n },\n on: {\n click: function ($event) {\n return _vm.openPPRSummary(row)\n },\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.localValue,\n callback: function ($$v) {\n _vm.localValue = $$v\n },\n expression: \"localValue\",\n },\n }),\n _c(\"ppr-summary-dialog\", {\n attrs: { ppr: _vm.currentPPR },\n model: {\n value: _vm.isPPRSummaryDialogOpen,\n callback: function ($$v) {\n _vm.isPPRSummaryDialogOpen = $$v\n },\n expression: \"isPPRSummaryDialogOpen\",\n },\n }),\n _c(\"ppr-upload-dialog\", {\n attrs: {\n \"account-id\": _vm.accountId,\n \"deployment-id\": _vm.deploymentId,\n },\n on: { uploaded: _vm.loadPPRs },\n model: {\n value: _vm.isUploadPPRDialogOpen,\n callback: function ($$v) {\n _vm.isUploadPPRDialogOpen = $$v\n },\n expression: \"isUploadPPRDialogOpen\",\n },\n }),\n _c(\"error-snackbar\", {\n attrs: { text: _vm.errorSnackbarText },\n model: {\n value: _vm.showErrorSnackbar,\n callback: function ($$v) {\n _vm.showErrorSnackbar = $$v\n },\n expression: \"showErrorSnackbar\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/PprTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"ppr-tab\" },\n [\n _c(\"c-data-table\", {\n staticClass: \"ppr-table\",\n attrs: {\n headers: _vm.headers,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n update: _vm.load,\n \"show-manage-panel\": \"\",\n \"hide-go-to-page-section\": \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"buttons\",\n fn: function () {\n return [\n _c(\"c-button\", {\n staticClass: \"ppr-table__upload-btn\",\n attrs: {\n icon: _vm.icons.googleFileUploadBaseline,\n color: \"accent\",\n mode: \"solid\",\n label: \"Upload PPR\",\n small: \"\",\n },\n on: { click: _vm.openUploadPPRDialog },\n }),\n _c(\n \"actions-menu\",\n { attrs: { outline: \"\", small: \"\" } },\n [\n _c(\"c-button\", {\n staticClass: \"list-item\",\n attrs: {\n icon: _vm.icons.googleRefreshBaseline,\n loading: _vm.isRegeneratingPPR,\n \"upper-case\": false,\n label: \"Regenerate PPR\",\n },\n on: { click: _vm.regeneratePPR },\n }),\n ],\n 1\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"ppr\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"div\",\n { staticClass: \"ppr-version\" },\n [\n _c(\"c-icon\", {\n attrs: {\n icon: _vm.icons\n .googleDescriptionBaseline,\n size: \"16px\",\n },\n }),\n _c(\"span\", [\n _vm._v(\"Version \" + _vm._s(row.ppr)),\n ]),\n ],\n 1\n ),\n ]\n )\n : _vm._e(),\n header.value === \"createdAt\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm._f(\"utcToLocal\")(row.createdAt))\n ),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"fileSize\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.fileSize\n ? [_vm._v(_vm._s(row.fileSize))]\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ],\n 2\n )\n : _vm._e(),\n header.value === \"description\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.description\n ? _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.description))]\n )\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"status\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"div\",\n { staticClass: \"ppr-status\" },\n [\n _c(\"c-status\", {\n attrs: { status: row.status },\n }),\n row.status === \"failed\"\n ? [\n _c(\n \"span\",\n { staticClass: \"ppr-status__dot\" },\n [_vm._v(\"•\")]\n ),\n _c(\n \"a\",\n {\n on: {\n click: function ($event) {\n return _vm.openPPRSummary(row)\n },\n },\n },\n [_vm._v(\"Details\")]\n ),\n ]\n : _vm._e(),\n ],\n 2\n ),\n ]\n )\n : header.value === \"actions\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"c-button\", {\n attrs: {\n icon: _vm.icons.googleDownloadBaseline,\n \"upper-case\": false,\n size: \"18px\",\n },\n on: {\n click: function ($event) {\n return _vm.downloadPPR(row)\n },\n },\n }),\n _c(\"c-button\", {\n attrs: {\n icon: _vm.icons.googleInfoOutlineBaseline,\n \"upper-case\": false,\n size: \"18px\",\n },\n on: {\n click: function ($event) {\n return _vm.openPPRSummary(row)\n },\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.localValue,\n callback: function ($$v) {\n _vm.localValue = $$v\n },\n expression: \"localValue\",\n },\n }),\n _c(\"ppr-summary-dialog\", {\n attrs: { ppr: _vm.currentPPR },\n model: {\n value: _vm.isPPRSummaryDialogOpen,\n callback: function ($$v) {\n _vm.isPPRSummaryDialogOpen = $$v\n },\n expression: \"isPPRSummaryDialogOpen\",\n },\n }),\n _c(\"ppr-upload-dialog\", {\n attrs: {\n \"account-id\": _vm.accountId,\n \"deployment-id\": _vm.deploymentId,\n },\n on: { uploaded: _vm.loadPPRs },\n model: {\n value: _vm.isUploadPPRDialogOpen,\n callback: function ($$v) {\n _vm.isUploadPPRDialogOpen = $$v\n },\n expression: \"isUploadPPRDialogOpen\",\n },\n }),\n _c(\"error-snackbar\", {\n attrs: { text: _vm.errorSnackbarText },\n model: {\n value: _vm.showErrorSnackbar,\n callback: function ($$v) {\n _vm.showErrorSnackbar = $$v\n },\n expression: \"showErrorSnackbar\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/PprTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), diff --git a/connect_ext_ppr/static/index.8af7ae08238431f57421.js b/connect_ext_ppr/static/index.00751d4e28bf7cf9b010.js similarity index 96% rename from connect_ext_ppr/static/index.8af7ae08238431f57421.js rename to connect_ext_ppr/static/index.00751d4e28bf7cf9b010.js index 309be80..3a30f36 100644 --- a/connect_ext_ppr/static/index.8af7ae08238431f57421.js +++ b/connect_ext_ppr/static/index.00751d4e28bf7cf9b010.js @@ -444,7 +444,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _components_CheckboxTable_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/CheckboxTable.vue */ \"./ui/src/components/CheckboxTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _mixins_sync__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~mixins/sync */ \"./ui/src/tools/mixins/sync.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins_sync__WEBPACK_IMPORTED_MODULE_3__[\"default\"])([{ prop: 'value', local: 'localValue' }])],\n\n components: {\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n CheckboxTable: _components_CheckboxTable_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n },\n\n props: {\n value: {\n type: Object,\n default: () => ({}),\n },\n\n deploymentId: String,\n },\n\n data: () => ({\n localValue: {},\n selectedMarketplaces: [],\n isAllSelected: false,\n searchValue: '',\n marketplaces: [],\n loading: false,\n headers: [\n {\n text: 'Marketplace',\n value: 'marketplace',\n align: 'left',\n },\n {\n text: 'External ID',\n value: 'externalId',\n align: 'left',\n },\n {\n text: 'Applied PPR',\n value: 'appliedPpr',\n align: 'left',\n },\n ],\n }),\n\n computed: {\n filteredMarketplaces: ({ marketplaces, searchValue, prepareRow }) => {\n const lowerCaseSearch = searchValue.toLowerCase();\n\n const filteredMarketplaces = marketplaces.filter(({ id, name }) => (\n name.toLowerCase().includes(lowerCaseSearch)\n || id.toLowerCase().includes(lowerCaseSearch)\n ));\n\n return filteredMarketplaces.map(prepareRow);\n },\n },\n\n methods: {\n prepareRow(item) {\n return {\n id: item.id,\n name: item.name,\n icon: item.icon,\n externalId: item.external_id,\n appliedPprVersion: item.ppr?.version || 0,\n };\n },\n },\n\n watch: {\n selectedMarketplaces: {\n deep: true,\n immediate: true,\n handler(val) {\n this.$set(this.localValue, 'choices', val);\n },\n },\n\n isAllSelected: {\n immediate: true,\n handler(val) {\n this.$set(this.localValue, 'all', val);\n },\n },\n },\n\n async created() {\n try {\n this.loading = true;\n this.marketplaces = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getDeploymentMarketplaces)(this.deploymentId);\n if (this.value.all) this.isAllSelected = true;\n else if (this.value.choices.length) this.selectedMarketplaces = this.value.choices;\n } catch (e) {\n this.marketplaces = [];\n this.$emit('error', e);\n } finally {\n this.loading = false;\n }\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/CreateDeploymentRequestDialog/MarketplacesTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _components_CheckboxTable_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/CheckboxTable.vue */ \"./ui/src/components/CheckboxTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _mixins_sync__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~mixins/sync */ \"./ui/src/tools/mixins/sync.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins_sync__WEBPACK_IMPORTED_MODULE_3__[\"default\"])([{ prop: 'value', local: 'localValue' }])],\n\n components: {\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n CheckboxTable: _components_CheckboxTable_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n },\n\n props: {\n value: {\n type: Object,\n default: () => ({}),\n },\n\n deploymentId: String,\n },\n\n data: () => ({\n localValue: {},\n selectedMarketplaces: [],\n isAllSelected: false,\n searchValue: '',\n marketplaces: [],\n loading: false,\n headers: [\n {\n text: 'Marketplace',\n value: 'marketplace',\n align: 'left',\n },\n {\n text: 'External ID',\n value: 'externalId',\n align: 'left',\n },\n {\n text: 'Applied PPR',\n value: 'appliedPpr',\n align: 'left',\n },\n ],\n }),\n\n computed: {\n filteredMarketplaces: ({ marketplaces, searchValue, prepareRow }) => {\n const lowerCaseSearch = searchValue.toLowerCase();\n\n const filteredMarketplaces = marketplaces.filter(({ id, name }) => (\n name.toLowerCase().includes(lowerCaseSearch)\n || id.toLowerCase().includes(lowerCaseSearch)\n ));\n\n return filteredMarketplaces.map(prepareRow);\n },\n },\n\n methods: {\n prepareRow(item) {\n return {\n id: item.id,\n name: item.name,\n icon: item.icon,\n externalId: item.external_id,\n appliedPprVersion: item.ppr?.version || 0,\n };\n },\n },\n\n watch: {\n selectedMarketplaces: {\n deep: true,\n immediate: true,\n handler(val) {\n this.$set(this.localValue, 'choices', val);\n },\n },\n\n isAllSelected: {\n immediate: true,\n handler(val) {\n this.$set(this.localValue, 'all', val);\n },\n },\n },\n\n async created() {\n try {\n this.loading = true;\n const depMktps = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getDeploymentMarketplaces)(this.deploymentId);\n this.marketplaces = depMktps.collection;\n if (this.value.all) this.isAllSelected = true;\n else if (this.value.choices.length) this.selectedMarketplaces = this.value.choices;\n } catch (e) {\n this.marketplaces = [];\n this.$emit('error', e);\n } finally {\n this.loading = false;\n }\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/CreateDeploymentRequestDialog/MarketplacesTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -488,7 +488,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/description/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/warning/baseline.svg\");\n/* harmony import */ var remove_markdown__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! remove-markdown */ \"./node_modules/remove-markdown/index.js\");\n/* harmony import */ var remove_markdown__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(remove_markdown__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_cChip_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cChip.vue */ \"./ui/src/components/cChip.vue\");\n/* harmony import */ var _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cIcon.vue */ \"./ui/src/components/cIcon.vue\");\n/* harmony import */ var _components_RadioTable_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/RadioTable.vue */ \"./ui/src/components/RadioTable.vue\");\n/* harmony import */ var _mixins_sync__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~mixins/sync */ \"./ui/src/tools/mixins/sync.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins_sync__WEBPACK_IMPORTED_MODULE_4__[\"default\"])([{ prop: 'value', local: 'localValue' }])],\n\n components: {\n cChip: _components_cChip_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cIcon: _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n RadioTable: _components_RadioTable_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n },\n\n props: {\n value: {\n type: Object,\n default: () => ({}),\n },\n\n deploymentId: String,\n },\n\n data: () => ({\n localValue: {},\n selectedPprVersion: '',\n pprs: [],\n loading: false,\n headers: [\n {\n text: 'PPR',\n value: 'version',\n align: 'left',\n },\n {\n text: 'Description',\n value: 'description',\n align: 'left',\n },\n ],\n\n icons: {\n googleDescriptionBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n googleWarningBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n },\n }),\n\n methods: {\n prepareRow(item) {\n return {\n id: item.id,\n version: item.version,\n isFailed: item.status === 'failed',\n description: item.description ? remove_markdown__WEBPACK_IMPORTED_MODULE_0___default()(item.description) : '',\n };\n },\n },\n\n watch: {\n selectedPprVersion(val) {\n this.localValue = this.pprs.find(({ id }) => id === val);\n },\n },\n\n async created() {\n try {\n this.loading = true;\n this.pprs = await (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getPPRs)(this.deploymentId);\n if (this.localValue?.id) this.selectedPprVersion = this.localValue.id;\n } catch (e) {\n this.pprs = [];\n this.$emit('error', e);\n } finally {\n this.loading = false;\n }\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/CreateDeploymentRequestDialog/PprTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/description/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @cloudblueconnect/material-svg */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/warning/baseline.svg\");\n/* harmony import */ var remove_markdown__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! remove-markdown */ \"./node_modules/remove-markdown/index.js\");\n/* harmony import */ var remove_markdown__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(remove_markdown__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_cChip_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cChip.vue */ \"./ui/src/components/cChip.vue\");\n/* harmony import */ var _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cIcon.vue */ \"./ui/src/components/cIcon.vue\");\n/* harmony import */ var _components_RadioTable_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/RadioTable.vue */ \"./ui/src/components/RadioTable.vue\");\n/* harmony import */ var _mixins_sync__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~mixins/sync */ \"./ui/src/tools/mixins/sync.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins_sync__WEBPACK_IMPORTED_MODULE_4__[\"default\"])([{ prop: 'value', local: 'localValue' }])],\n\n components: {\n cChip: _components_cChip_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cIcon: _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n RadioTable: _components_RadioTable_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n },\n\n props: {\n value: {\n type: Object,\n default: () => ({}),\n },\n\n deploymentId: String,\n },\n\n data: () => ({\n localValue: {},\n selectedPprVersion: '',\n pprs: [],\n loading: false,\n headers: [\n {\n text: 'PPR',\n value: 'version',\n align: 'left',\n },\n {\n text: 'Description',\n value: 'description',\n align: 'left',\n },\n ],\n\n icons: {\n googleDescriptionBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n googleWarningBaseline: _cloudblueconnect_material_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n },\n }),\n\n methods: {\n prepareRow(item) {\n return {\n id: item.id,\n version: item.version,\n isFailed: item.status === 'failed',\n description: item.description ? remove_markdown__WEBPACK_IMPORTED_MODULE_0___default()(item.description) : '',\n };\n },\n },\n\n watch: {\n selectedPprVersion(val) {\n this.localValue = this.pprs.find(({ id }) => id === val);\n },\n },\n\n async created() {\n try {\n this.loading = true;\n const pprs = await (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getPPRs)(this.deploymentId);\n this.pprs = pprs.collection;\n if (this.localValue?.id) this.selectedPprVersion = this.localValue.id;\n } catch (e) {\n this.pprs = [];\n this.$emit('error', e);\n } finally {\n this.loading = false;\n }\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/CreateDeploymentRequestDialog/PprTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -576,7 +576,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/pick.js\");\n/* harmony import */ var _components_cDialog_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cDialog.vue */ \"./ui/src/components/cDialog.vue\");\n/* harmony import */ var _HubsTab_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HubsTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/HubsTab.vue\");\n/* harmony import */ var _MarketplacesTab_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MarketplacesTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/MarketplacesTab.vue\");\n/* harmony import */ var _OptionsTab_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./OptionsTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/OptionsTab.vue\");\n/* harmony import */ var _PricingTab_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PricingTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/PricingTab.vue\");\n/* harmony import */ var _ProductsTab_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ProductsTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/ProductsTab.vue\");\n/* harmony import */ var _PprTab_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./PprTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/PprTab.vue\");\n/* harmony import */ var _SummaryTab_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SummaryTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/SummaryTab.vue\");\n/* harmony import */ var _mixins_sync__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~mixins/sync */ \"./ui/src/tools/mixins/sync.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst defaultForm = () => ({\n product: {},\n hub: {},\n ppr: {},\n marketplaces: {\n choices: [],\n all: false,\n },\n pricing: [],\n options: {\n manual: false,\n delegate: false,\n },\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins_sync__WEBPACK_IMPORTED_MODULE_8__[\"default\"])([{ prop: 'value', local: 'localValue' }])],\n\n components: {\n cDialog: _components_cDialog_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n HubsTab: _HubsTab_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n MarketplacesTab: _MarketplacesTab_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n OptionsTab: _OptionsTab_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n PricingTab: _PricingTab_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n ProductsTab: _ProductsTab_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n PprTab: _PprTab_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n SummaryTab: _SummaryTab_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n },\n\n props: {\n value: Boolean,\n deployment: {\n type: Object,\n default: () => null,\n },\n },\n\n data: () => ({\n localValue: false,\n currentTab: null,\n form: defaultForm(),\n createdRequest: null,\n localDeployment: null,\n errorText: '',\n }),\n\n computed: {\n tabs: vm => [\n {\n key: 'product',\n label: 'Product',\n assistiveText: vm.form.product?.name,\n },\n {\n key: 'hub',\n label: 'Hub',\n assistiveText: vm.form.hub?.name,\n },\n {\n key: 'ppr',\n label: 'PPR',\n assistiveText: vm.form.ppr?.version ? `Version ${vm.form.ppr.version}` : undefined,\n },\n {\n key: 'marketplaces',\n label: 'Marketplaces',\n assistiveText: vm.form.marketplaces.all ? 'All' : vm.form.marketplaces?.choices.map(mp => mp.id).join(', '),\n },\n {\n key: 'options',\n label: 'Options',\n },\n {\n key: 'pricing',\n label: 'Pricing',\n },\n {\n key: 'summary',\n label: 'Summary',\n },\n ],\n\n currentStep: vm => vm.tabs.findIndex(tab => tab.key === vm.currentTab?.key) + 1,\n\n currentStepText: ({ currentStep, isLastStep }) => (isLastStep ? 'Summary' : `Step ${currentStep}`),\n isLastStep: ({ tabs, currentStep }) => currentStep === tabs.length,\n isFirstStep: ({ currentStep }) => currentStep === 1,\n isPreviousToLastStep: ({ tabs, currentStep }) => currentStep === tabs.length - 1,\n\n isCurrentTabValid: vm => {\n const key = vm.currentTab?.key;\n const currentTabForm = vm.form[key];\n\n if (!key || !currentTabForm) return false;\n\n if (key === 'product' || key === 'hub') return !!currentTabForm.id;\n if (key === 'ppr') return !!currentTabForm.version;\n if (key === 'marketplaces') return !!currentTabForm.all || !!currentTabForm.choices.length;\n\n return true;\n },\n\n defaultTabActions: vm => [\n {\n label: 'Cancel',\n closeAfterHandle: true,\n color: '#212121',\n },\n { type: 'spacer' },\n {\n label: 'Back',\n handler: vm.goToPreviousStep,\n disabled: vm.isFirstStep,\n closeAfterHandle: false,\n color: '#212121',\n },\n {\n label: vm.isPreviousToLastStep ? 'Create' : 'Next',\n handler: vm.nextStepHandler,\n disabled: !vm.isCurrentTabValid,\n closeAfterHandle: false,\n color: '#2C98F0',\n },\n ],\n\n nextStepHandler: vm => {\n // Create deployment request before summary tab\n if (vm.isPreviousToLastStep) return vm.createDeploymentRequest;\n // Fetch deployment after we get product and hub\n if (vm.currentTab?.key === 'hub') return vm.fetchDeployment;\n\n return vm.goToNextStep;\n },\n\n summaryTabActions: vm => [\n {\n label: 'Go to details',\n handler: vm.goToDetails,\n closeAfterHandle: true,\n color: '#212121',\n },\n {\n label: 'Close',\n handler: () => vm.$emit('request-created'),\n closeAfterHandle: true,\n color: '#212121',\n },\n ],\n\n currentTabActions: vm => (vm.isLastStep ? vm.summaryTabActions : vm.defaultTabActions),\n },\n\n methods: {\n goToPreviousStep() {\n this.$refs.dialog.previousStep();\n },\n\n goToNextStep() {\n this.$refs.dialog.nextStep();\n },\n\n async createDeploymentRequest() {\n this.createdRequest = await (0,_utils__WEBPACK_IMPORTED_MODULE_9__.createDeploymentRequest)({\n marketplaces: (0,ramda__WEBPACK_IMPORTED_MODULE_10__[\"default\"])((0,ramda__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(['id', 'pricelist']), this.form.marketplaces.choices),\n deployment: { id: this.localDeployment.id },\n ppr: { id: this.form.ppr.id },\n manually: this.form.options.manual,\n delegate_l2: this.form.options.delegate,\n });\n\n this.goToNextStep();\n },\n\n async fetchDeployment() {\n if (this.deployment) return;\n\n [this.localDeployment] = await (0,_utils__WEBPACK_IMPORTED_MODULE_9__.getDeployments)({\n hubId: this.form.hub.id,\n productId: this.form.product.id,\n });\n\n this.goToNextStep();\n },\n\n goToDetails() {\n this.$router.push({ name: 'RequestDetails', params: { id: this.createdRequest.id } });\n },\n\n onTabChange(tab) {\n this.currentTab = tab;\n },\n\n setError(e) {\n this.errorText = e.message;\n },\n },\n\n watch: {\n async localValue(v) {\n if (!v) {\n this.form = defaultForm();\n } else if (this.deployment) {\n this.localDeployment = this.deployment;\n this.form.hub = this.deployment.hub;\n this.form.product = this.deployment.product;\n\n await this.$nextTick();\n this.$refs.dialog.activeTab = 'ppr';\n }\n },\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/CreateDeploymentRequestDialog/index.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/pick.js\");\n/* harmony import */ var _components_cDialog_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cDialog.vue */ \"./ui/src/components/cDialog.vue\");\n/* harmony import */ var _HubsTab_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HubsTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/HubsTab.vue\");\n/* harmony import */ var _MarketplacesTab_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MarketplacesTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/MarketplacesTab.vue\");\n/* harmony import */ var _OptionsTab_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./OptionsTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/OptionsTab.vue\");\n/* harmony import */ var _PricingTab_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PricingTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/PricingTab.vue\");\n/* harmony import */ var _ProductsTab_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ProductsTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/ProductsTab.vue\");\n/* harmony import */ var _PprTab_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./PprTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/PprTab.vue\");\n/* harmony import */ var _SummaryTab_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SummaryTab.vue */ \"./ui/src/components/CreateDeploymentRequestDialog/SummaryTab.vue\");\n/* harmony import */ var _mixins_sync__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~mixins/sync */ \"./ui/src/tools/mixins/sync.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst defaultForm = () => ({\n product: {},\n hub: {},\n ppr: {},\n marketplaces: {\n choices: [],\n all: false,\n },\n pricing: [],\n options: {\n manual: false,\n delegate: false,\n },\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins_sync__WEBPACK_IMPORTED_MODULE_8__[\"default\"])([{ prop: 'value', local: 'localValue' }])],\n\n components: {\n cDialog: _components_cDialog_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n HubsTab: _HubsTab_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n MarketplacesTab: _MarketplacesTab_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n OptionsTab: _OptionsTab_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n PricingTab: _PricingTab_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n ProductsTab: _ProductsTab_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n PprTab: _PprTab_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n SummaryTab: _SummaryTab_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n },\n\n props: {\n value: Boolean,\n deployment: {\n type: Object,\n default: () => null,\n },\n },\n\n data: () => ({\n localValue: false,\n currentTab: null,\n form: defaultForm(),\n createdRequest: null,\n localDeployment: null,\n errorText: '',\n }),\n\n computed: {\n tabs: vm => [\n {\n key: 'product',\n label: 'Product',\n assistiveText: vm.form.product?.name,\n },\n {\n key: 'hub',\n label: 'Hub',\n assistiveText: vm.form.hub?.name,\n },\n {\n key: 'ppr',\n label: 'PPR',\n assistiveText: vm.form.ppr?.version ? `Version ${vm.form.ppr.version}` : undefined,\n },\n {\n key: 'marketplaces',\n label: 'Marketplaces',\n assistiveText: vm.form.marketplaces.all ? 'All' : vm.form.marketplaces?.choices.map(mp => mp.id).join(', '),\n },\n {\n key: 'options',\n label: 'Options',\n },\n {\n key: 'pricing',\n label: 'Pricing',\n },\n {\n key: 'summary',\n label: 'Summary',\n },\n ],\n\n currentStep: vm => vm.tabs.findIndex(tab => tab.key === vm.currentTab?.key) + 1,\n\n currentStepText: ({ currentStep, isLastStep }) => (isLastStep ? 'Summary' : `Step ${currentStep}`),\n isLastStep: ({ tabs, currentStep }) => currentStep === tabs.length,\n isFirstStep: ({ currentStep }) => currentStep === 1,\n isPreviousToLastStep: ({ tabs, currentStep }) => currentStep === tabs.length - 1,\n\n isCurrentTabValid: vm => {\n const key = vm.currentTab?.key;\n const currentTabForm = vm.form[key];\n\n if (!key || !currentTabForm) return false;\n\n if (key === 'product' || key === 'hub') return !!currentTabForm.id;\n if (key === 'ppr') return !!currentTabForm.version;\n if (key === 'marketplaces') return !!currentTabForm.all || !!currentTabForm.choices.length;\n\n return true;\n },\n\n defaultTabActions: vm => [\n {\n label: 'Cancel',\n closeAfterHandle: true,\n color: '#212121',\n },\n { type: 'spacer' },\n {\n label: 'Back',\n handler: vm.goToPreviousStep,\n disabled: vm.isFirstStep,\n closeAfterHandle: false,\n color: '#212121',\n },\n {\n label: vm.isPreviousToLastStep ? 'Create' : 'Next',\n handler: vm.nextStepHandler,\n disabled: !vm.isCurrentTabValid,\n closeAfterHandle: false,\n color: '#2C98F0',\n },\n ],\n\n nextStepHandler: vm => {\n // Create deployment request before summary tab\n if (vm.isPreviousToLastStep) return vm.createDeploymentRequest;\n // Fetch deployment after we get product and hub\n if (vm.currentTab?.key === 'hub') return vm.fetchDeployment;\n\n return vm.goToNextStep;\n },\n\n summaryTabActions: vm => [\n {\n label: 'Go to details',\n handler: vm.goToDetails,\n closeAfterHandle: true,\n color: '#212121',\n },\n {\n label: 'Close',\n handler: () => vm.$emit('request-created'),\n closeAfterHandle: true,\n color: '#212121',\n },\n ],\n\n currentTabActions: vm => (vm.isLastStep ? vm.summaryTabActions : vm.defaultTabActions),\n },\n\n methods: {\n goToPreviousStep() {\n this.$refs.dialog.previousStep();\n },\n\n goToNextStep() {\n this.$refs.dialog.nextStep();\n },\n\n async createDeploymentRequest() {\n this.createdRequest = await (0,_utils__WEBPACK_IMPORTED_MODULE_9__.createDeploymentRequest)({\n marketplaces: (0,ramda__WEBPACK_IMPORTED_MODULE_10__[\"default\"])((0,ramda__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(['id', 'pricelist']), this.form.marketplaces.choices),\n deployment: { id: this.localDeployment.id },\n ppr: { id: this.form.ppr.id },\n manually: this.form.options.manual,\n delegate_l2: this.form.options.delegate,\n });\n\n this.goToNextStep();\n },\n\n async fetchDeployment() {\n if (this.deployment) return;\n const deployments = await (0,_utils__WEBPACK_IMPORTED_MODULE_9__.getDeployments)({\n hubId: this.form.hub.id,\n productId: this.form.product.id,\n });\n\n [this.localDeployment] = deployments.collection;\n\n this.goToNextStep();\n },\n\n goToDetails() {\n this.$router.push({ name: 'RequestDetails', params: { id: this.createdRequest.id } });\n },\n\n onTabChange(tab) {\n this.currentTab = tab;\n },\n\n setError(e) {\n this.errorText = e.message;\n },\n },\n\n watch: {\n async localValue(v) {\n if (!v) {\n this.form = defaultForm();\n } else if (this.deployment) {\n this.localDeployment = this.deployment;\n this.form.hub = this.deployment.hub;\n this.form.product = this.deployment.product;\n\n await this.$nextTick();\n this.$refs.dialog.activeTab = 'ppr';\n }\n },\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/CreateDeploymentRequestDialog/index.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -598,7 +598,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~mixins */ \"./ui/src/tools/mixins/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst prepareRow = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.template)({\n requestId: ['id'],\n productId: ['deployment', 'product', 'id'],\n productIcon: ['deployment', 'product', 'icon'],\n productName: ['deployment', 'product', 'name'],\n hubId: ['deployment', 'hub', 'id'],\n hubName: ['deployment', 'hub', 'name'],\n pprVersion: ['ppr', 'version'],\n l2Reseller: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.pathAlt)(['delegate_l2'], 'delegated', 'not_delegated'),\n created: ['events', 'created', 'at'],\n status: ['status'],\n});\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins__WEBPACK_IMPORTED_MODULE_4__.sync)([{ prop: 'updating', local: 'localUpdating' }])],\n\n components: {\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n },\n\n props: {\n updating: Boolean,\n },\n\n data() {\n return {\n localUpdating: false,\n localValue: [],\n headers: [\n {\n text: 'request',\n value: 'request',\n align: 'left',\n },\n {\n text: 'product',\n value: 'product',\n align: 'left',\n },\n {\n text: 'hub',\n value: 'hub',\n align: 'left',\n },\n {\n text: 'ppr',\n value: 'ppr',\n align: 'left',\n },\n {\n text: 'L2 resellers',\n value: 'l2Resellers',\n align: 'left',\n },\n {\n text: 'created',\n value: 'created',\n align: 'left',\n },\n {\n text: 'status',\n value: 'status',\n align: 'left',\n },\n ],\n };\n },\n\n methods: {\n prepareRow,\n },\n\n watch: {\n async localUpdating(v) {\n if (v) {\n this.localValue = await (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getDeploymentsRequests)();\n this.localUpdating = false;\n }\n },\n },\n\n created() {\n this.localUpdating = true;\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentRequestsTable.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _mixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~mixins */ \"./ui/src/tools/mixins/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst prepareRow = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.template)({\n requestId: ['id'],\n productId: ['deployment', 'product', 'id'],\n productIcon: ['deployment', 'product', 'icon'],\n productName: ['deployment', 'product', 'name'],\n hubId: ['deployment', 'hub', 'id'],\n hubName: ['deployment', 'hub', 'name'],\n pprVersion: ['ppr', 'version'],\n l2Reseller: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.pathAlt)(['delegate_l2'], 'delegated', 'not_delegated'),\n created: ['events', 'created', 'at'],\n status: ['status'],\n});\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins__WEBPACK_IMPORTED_MODULE_4__.sync)([{ prop: 'updating', local: 'localUpdating' }])],\n\n components: {\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n },\n\n props: {\n updating: Boolean,\n },\n\n data() {\n return {\n localUpdating: false,\n localValue: [],\n headers: [\n {\n text: 'request',\n value: 'request',\n align: 'left',\n },\n {\n text: 'product',\n value: 'product',\n align: 'left',\n },\n {\n text: 'hub',\n value: 'hub',\n align: 'left',\n },\n {\n text: 'ppr',\n value: 'ppr',\n align: 'left',\n },\n {\n text: 'L2 resellers',\n value: 'l2Resellers',\n align: 'left',\n },\n {\n text: 'created',\n value: 'created',\n align: 'left',\n },\n {\n text: 'status',\n value: 'status',\n align: 'left',\n },\n ],\n\n localParams: { limit: 10, offset: 0 },\n };\n },\n\n methods: {\n prepareRow,\n\n load(params) {\n this.localParams = params;\n\n return (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getDeploymentsRequests)(params);\n },\n },\n\n watch: {\n async localUpdating(v) {\n if (v) {\n await (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getDeploymentsRequests)(this.localParams);\n this.localUpdating = false;\n }\n },\n },\n\n created() {\n this.localUpdating = true;\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentRequestsTable.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -620,7 +620,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\nconst prepareRow = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.template)({\n id: ['id'],\n productId: ['product', 'id'],\n productIcon: ['product', 'icon'],\n productName: ['product', 'name'],\n vendorId: ['owner', 'id'],\n vendorIcon: ['owner', 'icon'],\n vendorName: ['owner', 'name'],\n hubId: ['hub', 'id'],\n hubName: ['hub', 'name'],\n lastSync: ['last_sync_at'],\n status: ['status'],\n});\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n },\n\n data() {\n return {\n localValue: [],\n loading: true,\n headers: [{\n text: 'deployment',\n value: 'deployment',\n align: 'left',\n },\n {\n text: 'product',\n value: 'product',\n align: 'left',\n },\n {\n text: 'vendor',\n value: 'vendor',\n align: 'left',\n },\n {\n text: 'hub',\n value: 'hub',\n align: 'left',\n },\n {\n text: 'last sync',\n value: 'lastSync',\n align: 'left',\n },\n {\n text: 'status',\n value: 'status',\n align: 'left',\n }],\n };\n },\n\n methods: {\n prepareRow,\n },\n\n async created() {\n this.loading = true;\n const allDeployments = await (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getDeployments)();\n this.localValue = allDeployments;\n this.loading = false;\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentsTable.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\nconst prepareRow = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.template)({\n id: ['id'],\n productId: ['product', 'id'],\n productIcon: ['product', 'icon'],\n productName: ['product', 'name'],\n vendorId: ['owner', 'id'],\n vendorIcon: ['owner', 'icon'],\n vendorName: ['owner', 'name'],\n hubId: ['hub', 'id'],\n hubName: ['hub', 'name'],\n lastSync: ['last_sync_at'],\n status: ['status'],\n});\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n },\n\n data() {\n return {\n localValue: [],\n loading: true,\n headers: [{\n text: 'deployment',\n value: 'deployment',\n align: 'left',\n },\n {\n text: 'product',\n value: 'product',\n align: 'left',\n },\n {\n text: 'vendor',\n value: 'vendor',\n align: 'left',\n },\n {\n text: 'hub',\n value: 'hub',\n align: 'left',\n },\n {\n text: 'last sync',\n value: 'lastSync',\n align: 'left',\n },\n {\n text: 'status',\n value: 'status',\n align: 'left',\n }],\n };\n },\n\n methods: {\n prepareRow,\n\n load(params) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getDeployments)({\n queryParameters: params,\n });\n },\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentsTable.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -818,7 +818,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg_animated__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @cloudblueconnect/material-svg/animated */ \"./node_modules/@cloudblueconnect/material-svg/icons/connect/loader/animated.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/hourglass_bottom/baseline.svg\");\n/* harmony import */ var hash_sum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hash-sum */ \"./node_modules/hash-sum/hash-sum.js\");\n/* harmony import */ var hash_sum__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(hash_sum__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/both.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/propIs.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/either.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/identity.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/clone.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/head.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/complement.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/isEmpty.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/ifElse.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/prop.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/where.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/not.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/pipe.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/pick.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~mixins */ \"./ui/src/tools/mixins/index.js\");\n/* harmony import */ var _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cIcon.vue */ \"./ui/src/components/cIcon.vue\");\n/* harmony import */ var _components_cTable_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cTable.vue */ \"./ui/src/components/cTable.vue\");\n/* harmony import */ var _components_cTable_cTablePagination_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/cTable/cTablePagination.vue */ \"./ui/src/components/cTable/cTablePagination.vue\");\n/* harmony import */ var _tableHelpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~tableHelpers */ \"./ui/src/tools/tableHelpers.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst isNotEqualsTotal = (\n { totalItems: newTotal },\n { totalItems: oldTotal },\n) => newTotal !== oldTotal;\n\nconst computeTotal = (\n total,\n oldCollection,\n newCollection,\n) => total - oldCollection.length + newCollection.length;\n\n\n\nconst isValidResponse = (0,ramda__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(Number, 'total'),\n (0,ramda__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(Array, 'collection'),\n (0,ramda__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(Array, 'requests'),\n ),\n);\n\nconst invalidResponseError = response => 'Unexpected data returned from \\'update\\''\n + ' function. Must contain \\'total\\', \\'collection\\' or \\'requests\\' fields.'\n + `But got ${JSON.stringify(response)}`;\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n $module: 'c-data-table',\n\n mixins: [\n (0,_mixins__WEBPACK_IMPORTED_MODULE_1__.sync)([\n { prop: 'updating', local: 'localUpdating' },\n { prop: 'value', local: 'items' },\n ]),\n ],\n\n components: {\n cTable: _components_cTable_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n cIcon: _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n },\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Array,\n required: true,\n },\n\n update: {\n type: Function,\n },\n\n updating: Boolean,\n headers: {\n type: Array,\n default: () => [],\n },\n\n prepareItem: {\n type: Function,\n default: ramda__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n },\n\n paginationOptions: {\n type: Array,\n default: _components_cTable_cTablePagination_vue__WEBPACK_IMPORTED_MODULE_4__.defaultPaginationOptions,\n },\n\n hideGoToPageSection: Boolean,\n hideRowsPerPageSection: Boolean,\n hideAllPaginationSections: Boolean,\n\n totalItems: {\n type: Number,\n default: 0,\n },\n\n showLoader: Boolean,\n showPlaceholder: Boolean,\n padding: {\n type: String,\n },\n\n fixLayout: Boolean,\n hideEmptyTable: {\n type: Boolean,\n default: false,\n },\n\n noDataText: {\n type: String,\n },\n\n fixedFirstColumn: {\n type: Boolean,\n default: null,\n },\n\n showManagePanel: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n const headersWidths = {};\n const localHeaders = (0,ramda__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(this.headers);\n localHeaders.forEach((header) => {\n headersWidths[header.value] = null;\n // eslint-disable-next-line no-prototype-builtins\n if (header.hasOwnProperty('width')) headersWidths[header.value] = header.width;\n });\n\n return {\n items: [],\n localTotal: 0,\n localUpdating: true,\n isInitialLoading: true,\n pagination: {\n page: 1,\n rowsPerPage: (0,ramda__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this.paginationOptions),\n },\n\n table: null,\n localHeaders,\n headersWidths,\n icons: {\n googleHourglassBottomBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n connectLoaderAnimated: _cloudblueconnect_material_svg_animated__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n },\n };\n },\n\n computed: {\n isAnyItemPresent: (0,_utils__WEBPACK_IMPORTED_MODULE_6__.pathTo)(['items'], (0,ramda__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(ramda__WEBPACK_IMPORTED_MODULE_16__[\"default\"])),\n\n isInvalidOffset: ({ totalItems, offset }) => (0,_tableHelpers__WEBPACK_IMPORTED_MODULE_5__.isInvalidOffset)(totalItems, offset),\n\n isPlaceholderShown: (0,ramda__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('update'),\n (0,ramda__WEBPACK_IMPORTED_MODULE_19__[\"default\"])({\n isAnyItemPresent: ramda__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n localUpdating: ramda__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n isInitialLoading: ramda__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n $slots: (0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('placeholder'),\n }),\n (0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('showPlaceholder'),\n ),\n\n /**\n * Forward specific listeners to child table.\n * Don't introduce methods to just re-emit events.\n */\n listeners: (0,ramda__WEBPACK_IMPORTED_MODULE_21__[\"default\"])((0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('$listeners'), (0,ramda__WEBPACK_IMPORTED_MODULE_22__[\"default\"])(['selected', 'sorted'])),\n\n isLoaderShown: (0,ramda__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('update'),\n (0,ramda__WEBPACK_IMPORTED_MODULE_19__[\"default\"])({\n isInitialLoading: ramda__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n update: ramda__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n }),\n (0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('showLoader'),\n ),\n\n offset: ({ pagination: { page, rowsPerPage } }) => (0,_tableHelpers__WEBPACK_IMPORTED_MODULE_5__.calcOffset)(page, rowsPerPage),\n\n needToUpdateAfterTotalItemsChange: ({\n localUpdating, localTotal, totalItems,\n }) => !localUpdating && (localTotal !== totalItems),\n\n needToUpdateAfterUpdatingChange: ({ localUpdating, updating }) => !localUpdating && updating,\n\n params: vm => ({\n limit: vm.pagination.rowsPerPage,\n offset: vm.offset,\n }),\n\n paramsHash: (0,_utils__WEBPACK_IMPORTED_MODULE_6__.pathTo)(['params'], (hash_sum__WEBPACK_IMPORTED_MODULE_0___default())),\n },\n\n methods: {\n refresh(opts = {}) {\n this.$emit('refresh');\n this.updateItems({ ...opts, forceUpdate: true });\n },\n\n prepareItems(items) {\n return (0,ramda__WEBPACK_IMPORTED_MODULE_21__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_23__[\"default\"])(this.prepareItem),\n ramda__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n )(items);\n },\n\n checkResponse(response) {\n if (!isValidResponse(response)) {\n throw new Error(invalidResponseError(response));\n }\n },\n\n processError(e) {\n this.localUpdating = false;\n this.logger.logException(e);\n },\n\n processRequests({ total, requests }, oldParamsHash) {\n this.localTotal = total;\n let result = [];\n let doneRequestsCount = 0;\n const lastRequestsIndex = requests.length - 1;\n\n return requests.map((request, i) => request.then(items => {\n if (oldParamsHash !== this.paramsHash) return;\n doneRequestsCount += 1;\n\n // offset to insert in result\n const offset = i === lastRequestsIndex\n ? total - items.length\n : i * items.length;\n\n result = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.updateIndex)(offset, items, result);\n\n // we should show data after first finished request\n if (doneRequestsCount === 1) {\n // add null to show loading instad of last row\n this.items = this.prepareItems(items).concat(null);\n this.localUpdating = false;\n\n\n // show data from other requests, when all requests finished\n } else if (doneRequestsCount === requests.length) {\n this.items = this.prepareItems(result);\n }\n }));\n },\n\n processCollection({ collection, total }) {\n this.items = this.prepareItems(collection);\n this.localTotal = computeTotal(total, collection, this.items);\n },\n\n async processResponse(response, oldParamsHash) {\n if (response.requests) await Promise.any(this.processRequests(response, oldParamsHash));\n else this.processCollection(response);\n },\n\n async fetchAndUpdateItems() {\n const oldParamsHash = this.paramsHash;\n let res;\n\n try {\n res = await this.update(this.params);\n this.checkResponse(res);\n await this.processResponse(res, oldParamsHash);\n if (oldParamsHash !== this.paramsHash) return;\n } catch (e) {\n if (oldParamsHash !== this.paramsHash) return;\n this.processError(e);\n\n return;\n }\n\n this.$emit('update:totalItems', this.localTotal);\n\n if (this.isInitialLoading) await this.setIsEmptyCollectionValue();\n this.localUpdating = false;\n },\n\n async updateItems(opts = {}) {\n if (this.update) {\n await this.fetchAndUpdateItems(opts);\n } else {\n this.items = (0,ramda__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(this.value);\n this.localTotal = this.totalItems;\n }\n\n if (this.isInitialLoading) {\n this.isInitialLoading = false;\n }\n },\n\n async checkForEmptyCollection() {\n const result = await this.update({ limit: 0 });\n\n return result.total === 0;\n },\n\n async setIsEmptyCollectionValue() {\n if (this.items.length) this.isEmptyCollectionWithoutFilters = false;\n else if (this.update) {\n this.isEmptyCollectionWithoutFilters = await this.checkForEmptyCollection();\n }\n },\n },\n\n watch: {\n pagination: {\n deep: true,\n handler(newPagination, oldPagination) {\n if (this.isInitialLoading || isNotEqualsTotal(newPagination, oldPagination)) return;\n this.updateItems();\n },\n },\n\n totalItems() {\n if (!this.needToUpdateAfterTotalItemsChange) return;\n\n // Correct page number to prevent displaying empty table\n // after deleting last item on last pagination page. Otherwise offset will be incorrect.\n if (this.isInvalidOffset && this.pagination.page > 1) {\n this.pagination.page -= 1;\n\n // Will trigger `pagination` watcher, so return.\n return;\n }\n\n this.updateItems();\n },\n\n updating() {\n if (!this.needToUpdateAfterUpdatingChange) return;\n this.updateItems({ forceUpdate: true });\n },\n\n isPlaceholderShown: {\n immediate: true,\n handler(newVal) {\n this.$emit('update:showPlaceholder', newVal);\n },\n },\n\n isLoaderShown: {\n immediate: true,\n async handler(newVal) {\n this.$emit('update:showLoader', newVal);\n\n if ((0,ramda__WEBPACK_IMPORTED_MODULE_24__[\"default\"])(newVal, false)) {\n await this.$nextTick();\n\n this.table = this.$refs['c-table'].$el.querySelector('table');\n }\n },\n },\n\n headers(value) {\n this.localHeaders = (0,ramda__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(value);\n },\n\n localHeaders(value) {\n value.forEach((header) => {\n const width = Number(header.width) ? header.width : null;\n // eslint-disable-next-line no-prototype-builtins\n if (!this.headersWidths.hasOwnProperty(header.value)) {\n this.$set(this.headersWidths, header.value, width);\n }\n });\n },\n },\n\n async mounted() {\n if (!this.showManagePanel) {\n await this.$nextTick();\n this.updateItems();\n }\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/cDataTable.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg_animated__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @cloudblueconnect/material-svg/animated */ \"./node_modules/@cloudblueconnect/material-svg/icons/connect/loader/animated.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/hourglass_bottom/baseline.svg\");\n/* harmony import */ var hash_sum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hash-sum */ \"./node_modules/hash-sum/hash-sum.js\");\n/* harmony import */ var hash_sum__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(hash_sum__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/both.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/propIs.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/either.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/identity.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/clone.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/head.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/complement.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/isEmpty.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/ifElse.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/prop.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/where.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/not.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/pipe.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/pick.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~mixins */ \"./ui/src/tools/mixins/index.js\");\n/* harmony import */ var _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cIcon.vue */ \"./ui/src/components/cIcon.vue\");\n/* harmony import */ var _components_cTable_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cTable.vue */ \"./ui/src/components/cTable.vue\");\n/* harmony import */ var _components_cTable_cTablePagination_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/cTable/cTablePagination.vue */ \"./ui/src/components/cTable/cTablePagination.vue\");\n/* harmony import */ var _tableHelpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~tableHelpers */ \"./ui/src/tools/tableHelpers.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst isNotEqualsTotal = (\n { totalItems: newTotal },\n { totalItems: oldTotal },\n) => newTotal !== oldTotal;\n\nconst computeTotal = (\n total,\n oldCollection,\n newCollection,\n) => total - oldCollection.length + newCollection.length;\n\n\n\nconst isValidResponse = (0,ramda__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(Number, 'total'),\n (0,ramda__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(Array, 'collection'),\n (0,ramda__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(Array, 'requests'),\n ),\n);\n\nconst invalidResponseError = response => 'Unexpected data returned from \\'update\\''\n + ' function. Must contain \\'total\\', \\'collection\\' or \\'requests\\' fields.'\n + `But got ${JSON.stringify(response)}`;\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n $module: 'c-data-table',\n\n mixins: [\n (0,_mixins__WEBPACK_IMPORTED_MODULE_1__.sync)([\n { prop: 'updating', local: 'localUpdating' },\n { prop: 'value', local: 'items' },\n ]),\n ],\n\n components: {\n cTable: _components_cTable_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n cIcon: _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n },\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Array,\n required: true,\n },\n\n update: {\n type: Function,\n },\n\n updating: Boolean,\n headers: {\n type: Array,\n default: () => [],\n },\n\n prepareItem: {\n type: Function,\n default: ramda__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n },\n\n paginationOptions: {\n type: Array,\n default: _components_cTable_cTablePagination_vue__WEBPACK_IMPORTED_MODULE_4__.defaultPaginationOptions,\n },\n\n hideGoToPageSection: Boolean,\n hideRowsPerPageSection: Boolean,\n hideAllPaginationSections: Boolean,\n\n totalItems: {\n type: Number,\n default: 0,\n },\n\n showLoader: Boolean,\n showPlaceholder: Boolean,\n padding: {\n type: String,\n },\n\n fixLayout: Boolean,\n hideEmptyTable: {\n type: Boolean,\n default: false,\n },\n\n noDataText: {\n type: String,\n },\n\n fixedFirstColumn: {\n type: Boolean,\n default: null,\n },\n\n showManagePanel: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n const headersWidths = {};\n const localHeaders = (0,ramda__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(this.headers);\n localHeaders.forEach((header) => {\n headersWidths[header.value] = null;\n // eslint-disable-next-line no-prototype-builtins\n if (header.hasOwnProperty('width')) headersWidths[header.value] = header.width;\n });\n\n return {\n items: [],\n localTotal: 0,\n localUpdating: true,\n isInitialLoading: true,\n pagination: {\n page: 1,\n rowsPerPage: this.showAll ? _components_cTable_cTablePagination_vue__WEBPACK_IMPORTED_MODULE_4__.allOption.value : (0,ramda__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this.paginationOptions),\n },\n\n table: null,\n localHeaders,\n headersWidths,\n icons: {\n googleHourglassBottomBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n connectLoaderAnimated: _cloudblueconnect_material_svg_animated__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n },\n };\n },\n\n computed: {\n isAnyItemPresent: (0,_utils__WEBPACK_IMPORTED_MODULE_6__.pathTo)(['items'], (0,ramda__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(ramda__WEBPACK_IMPORTED_MODULE_16__[\"default\"])),\n\n isInvalidOffset: ({ totalItems, offset }) => (0,_tableHelpers__WEBPACK_IMPORTED_MODULE_5__.isInvalidOffset)(totalItems, offset),\n\n isPlaceholderShown: (0,ramda__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('update'),\n (0,ramda__WEBPACK_IMPORTED_MODULE_19__[\"default\"])({\n isAnyItemPresent: ramda__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n localUpdating: ramda__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n isInitialLoading: ramda__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n $slots: (0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('placeholder'),\n }),\n (0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('showPlaceholder'),\n ),\n\n /**\n * Forward specific listeners to child table.\n * Don't introduce methods to just re-emit events.\n */\n listeners: (0,ramda__WEBPACK_IMPORTED_MODULE_21__[\"default\"])((0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('$listeners'), (0,ramda__WEBPACK_IMPORTED_MODULE_22__[\"default\"])(['selected', 'sorted'])),\n\n isLoaderShown: (0,ramda__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('update'),\n (0,ramda__WEBPACK_IMPORTED_MODULE_19__[\"default\"])({\n isInitialLoading: ramda__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n update: ramda__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n }),\n (0,ramda__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('showLoader'),\n ),\n\n offset: ({ pagination: { page, rowsPerPage } }) => (0,_tableHelpers__WEBPACK_IMPORTED_MODULE_5__.calcOffset)(page, rowsPerPage),\n\n needToUpdateAfterTotalItemsChange: ({\n localUpdating, localTotal, totalItems,\n }) => !localUpdating && (localTotal !== totalItems),\n\n needToUpdateAfterUpdatingChange: ({ localUpdating, updating }) => !localUpdating && updating,\n\n params: vm => ({\n limit: vm.showAll ? undefined : vm.pagination.rowsPerPage,\n offset: vm.offset,\n }),\n\n paramsHash: (0,_utils__WEBPACK_IMPORTED_MODULE_6__.pathTo)(['params'], (hash_sum__WEBPACK_IMPORTED_MODULE_0___default())),\n },\n\n methods: {\n refresh(opts = {}) {\n this.$emit('refresh');\n this.updateItems({ ...opts, forceUpdate: true });\n },\n\n prepareItems(items) {\n return (0,ramda__WEBPACK_IMPORTED_MODULE_21__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_23__[\"default\"])(this.prepareItem),\n ramda__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n )(items);\n },\n\n checkResponse(response) {\n if (!isValidResponse(response)) {\n throw new Error(invalidResponseError(response));\n }\n },\n\n processError(e) {\n this.localUpdating = false;\n this.logger.logException(e);\n },\n\n processRequests({ total, requests }, oldParamsHash) {\n this.localTotal = total;\n let result = [];\n let doneRequestsCount = 0;\n const lastRequestsIndex = requests.length - 1;\n\n return requests.map((request, i) => request.then(items => {\n if (oldParamsHash !== this.paramsHash) return;\n doneRequestsCount += 1;\n\n // offset to insert in result\n const offset = i === lastRequestsIndex\n ? total - items.length\n : i * items.length;\n\n result = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.updateIndex)(offset, items, result);\n\n // we should show data after first finished request\n if (doneRequestsCount === 1) {\n // add null to show loading instad of last row\n this.items = this.prepareItems(items).concat(null);\n this.localUpdating = false;\n\n\n // show data from other requests, when all requests finished\n } else if (doneRequestsCount === requests.length) {\n this.items = this.prepareItems(result);\n }\n }));\n },\n\n processCollection({ collection, total }) {\n this.items = this.prepareItems(collection);\n this.localTotal = computeTotal(total, collection, this.items);\n },\n\n async processResponse(response, oldParamsHash) {\n if (response.requests) await Promise.any(this.processRequests(response, oldParamsHash));\n else this.processCollection(response);\n },\n\n async fetchAndUpdateItems() {\n const oldParamsHash = this.paramsHash;\n let res;\n\n try {\n res = await this.update(this.params);\n this.checkResponse(res);\n await this.processResponse(res, oldParamsHash);\n if (oldParamsHash !== this.paramsHash) return;\n } catch (e) {\n if (oldParamsHash !== this.paramsHash) return;\n this.processError(e);\n\n return;\n }\n\n this.$emit('update:totalItems', this.localTotal);\n\n if (this.isInitialLoading) await this.setIsEmptyCollectionValue();\n this.localUpdating = false;\n },\n\n async updateItems(opts = {}) {\n if (this.update) {\n await this.fetchAndUpdateItems(opts);\n } else {\n this.items = (0,ramda__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(this.value);\n this.localTotal = this.totalItems;\n }\n\n if (this.isInitialLoading) {\n this.isInitialLoading = false;\n }\n },\n\n async checkForEmptyCollection() {\n const result = await this.update({ limit: 10 });\n\n return result.total === 0;\n },\n\n async setIsEmptyCollectionValue() {\n if (this.items.length) this.isEmptyCollectionWithoutFilters = false;\n else if (this.update) {\n this.isEmptyCollectionWithoutFilters = await this.checkForEmptyCollection();\n }\n },\n },\n\n watch: {\n pagination: {\n deep: true,\n handler(newPagination, oldPagination) {\n if (this.isInitialLoading || isNotEqualsTotal(newPagination, oldPagination)) return;\n this.updateItems();\n },\n },\n\n totalItems() {\n if (!this.needToUpdateAfterTotalItemsChange) return;\n\n // Correct page number to prevent displaying empty table\n // after deleting last item on last pagination page. Otherwise offset will be incorrect.\n if (this.isInvalidOffset && this.pagination.page > 1) {\n this.pagination.page -= 1;\n\n // Will trigger `pagination` watcher, so return.\n return;\n }\n\n this.updateItems();\n },\n\n updating() {\n if (!this.needToUpdateAfterUpdatingChange) return;\n this.updateItems({ forceUpdate: true });\n },\n\n isPlaceholderShown: {\n immediate: true,\n handler(newVal) {\n this.$emit('update:showPlaceholder', newVal);\n },\n },\n\n isLoaderShown: {\n immediate: true,\n async handler(newVal) {\n this.$emit('update:showLoader', newVal);\n\n if ((0,ramda__WEBPACK_IMPORTED_MODULE_24__[\"default\"])(newVal, false)) {\n await this.$nextTick();\n\n this.table = this.$refs['c-table'].$el.querySelector('table');\n }\n },\n },\n\n headers(value) {\n this.localHeaders = (0,ramda__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(value);\n },\n\n localHeaders(value) {\n value.forEach((header) => {\n const width = Number(header.width) ? header.width : null;\n // eslint-disable-next-line no-prototype-builtins\n if (!this.headersWidths.hasOwnProperty(header.value)) {\n this.$set(this.headersWidths, header.value, width);\n }\n });\n },\n },\n\n mounted() {\n this.updateItems();\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/cDataTable.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -2501,7 +2501,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"hide-go-to-page-section\": \"\",\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.localUpdating,\n },\n scopedSlots: _vm._u([\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n { staticClass: \"table__row hoverable\", attrs: { id: row.id } },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"request\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"router-link\",\n {\n attrs: {\n to: {\n name: \"RequestDetails\",\n params: { id: row.requestId },\n },\n },\n },\n [_vm._v(_vm._s(row.requestId))]\n ),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"product\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.productId },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.productName))]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n staticClass: \"object-image\",\n class: {\n \"picture-placeholder\":\n !row.productIcon,\n },\n attrs: {\n src: row.productIcon,\n width: 32,\n height: 32,\n size: \"contain\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"hub\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.hubId },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.hubName))]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"ppr\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(\"Version \" + _vm._s(row.pprVersion)),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"l2Resellers\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"c-status\",\n { attrs: { status: row.l2Reseller } },\n [_c(\"span\", [_vm._v(_vm._s(row.l2Reseller))])]\n ),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"created\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(_vm._s(_vm._f(\"utcToLocal\")(row.created))),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"status\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"c-status\", { attrs: { status: row.status } }, [\n _c(\"span\", [_vm._v(_vm._s(row.status))]),\n ]),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.localValue,\n callback: function ($$v) {\n _vm.localValue = $$v\n },\n expression: \"localValue\",\n },\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentRequestsTable.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"hide-go-to-page-section\": \"\",\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.localUpdating,\n update: _vm.load,\n },\n scopedSlots: _vm._u([\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n { staticClass: \"table__row hoverable\", attrs: { id: row.id } },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"request\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"router-link\",\n {\n attrs: {\n to: {\n name: \"RequestDetails\",\n params: { id: row.requestId },\n },\n },\n },\n [_vm._v(_vm._s(row.requestId))]\n ),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"product\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.productId },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.productName))]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n staticClass: \"object-image\",\n class: {\n \"picture-placeholder\":\n !row.productIcon,\n },\n attrs: {\n src: row.productIcon,\n width: 32,\n height: 32,\n size: \"contain\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"hub\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.hubId },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.hubName))]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"ppr\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(\"Version \" + _vm._s(row.pprVersion)),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"l2Resellers\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"c-status\",\n { attrs: { status: row.l2Reseller } },\n [_c(\"span\", [_vm._v(_vm._s(row.l2Reseller))])]\n ),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"created\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(_vm._s(_vm._f(\"utcToLocal\")(row.created))),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"status\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"c-status\", { attrs: { status: row.status } }, [\n _c(\"span\", [_vm._v(_vm._s(row.status))]),\n ]),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.localValue,\n callback: function ($$v) {\n _vm.localValue = $$v\n },\n expression: \"localValue\",\n },\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentRequestsTable.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -2512,7 +2512,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"hide-go-to-page-section\": \"\",\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n },\n scopedSlots: _vm._u([\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n { staticClass: \"table__row hoverable\", attrs: { id: row.id } },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"deployment\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"router-link\",\n {\n attrs: {\n to: {\n name: \"DeploymentDetails\",\n params: { id: row.id },\n },\n },\n },\n [_vm._v(_vm._s(row.id))]\n ),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"product\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.productId },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.productName))]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n staticClass: \"object-image\",\n class: {\n \"picture-placeholder\":\n !row.productIcon,\n },\n attrs: {\n src: row.productIcon,\n width: 32,\n height: 32,\n size: \"contain\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"vendor\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.vendorId },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.vendorName))]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n staticClass: \"object-image\",\n class: {\n \"picture-placeholder\":\n !row.vendorIcon,\n },\n attrs: {\n src: row.vendorIcon,\n width: 32,\n height: 32,\n size: \"contain\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"hub\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.hubId },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.hubName))]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"lastSync\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm._f(\"utcToLocal\")(row.lastSync))\n ),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"status\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"c-status\", { attrs: { status: row.status } }, [\n _c(\"span\", [_vm._v(_vm._s(row.status))]),\n ]),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.localValue,\n callback: function ($$v) {\n _vm.localValue = $$v\n },\n expression: \"localValue\",\n },\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentsTable.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"hide-go-to-page-section\": \"\",\n update: _vm.load,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n },\n scopedSlots: _vm._u([\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n { staticClass: \"table__row hoverable\", attrs: { id: row.id } },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"deployment\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"router-link\",\n {\n attrs: {\n to: {\n name: \"DeploymentDetails\",\n params: { id: row.id },\n },\n },\n },\n [_vm._v(_vm._s(row.id))]\n ),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"product\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.productId },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.productName))]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n staticClass: \"object-image\",\n class: {\n \"picture-placeholder\":\n !row.productIcon,\n },\n attrs: {\n src: row.productIcon,\n width: 32,\n height: 32,\n size: \"contain\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"vendor\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.vendorId },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.vendorName))]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n staticClass: \"object-image\",\n class: {\n \"picture-placeholder\":\n !row.vendorIcon,\n },\n attrs: {\n src: row.vendorIcon,\n width: 32,\n height: 32,\n size: \"contain\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"hub\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: { \"assistive-text\": row.hubId },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [_vm._v(_vm._s(row.hubName))]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"lastSync\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm._f(\"utcToLocal\")(row.lastSync))\n ),\n ]),\n ]\n )\n : _vm._e(),\n header.value === \"status\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"c-status\", { attrs: { status: row.status } }, [\n _c(\"span\", [_vm._v(_vm._s(row.status))]),\n ]),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.localValue,\n callback: function ($$v) {\n _vm.localValue = $$v\n },\n expression: \"localValue\",\n },\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/DeploymentsTable.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -2820,7 +2820,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm.js\");\n/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue-router */ \"./node_modules/vue-router/dist/vue-router.esm.js\");\n/* harmony import */ var portal_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! portal-vue */ \"./node_modules/portal-vue/dist/portal-vue.common.js\");\n/* harmony import */ var _App_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue */ \"./ui/src/pages/App.vue\");\n/* harmony import */ var _tools_filters_utcToLocal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../tools/filters/utcToLocal */ \"./ui/src/tools/filters/utcToLocal.js\");\n/* harmony import */ var _cloudblueconnect_connect_ui_toolkit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @cloudblueconnect/connect-ui-toolkit */ \"./node_modules/@cloudblueconnect/connect-ui-toolkit/dist/index.js\");\n/* harmony import */ var _routes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/routes */ \"./ui/src/routes/index.js\");\n/* harmony import */ var _styles_app_styl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/styles/app.styl */ \"./ui/src/styles/app.styl\");\n/* harmony import */ var _styles_index_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../styles/index.css */ \"./ui/styles/index.css\");\n/*\nCopyright (c) 2023, Ingram Micro\nAll rights reserved.\n*/\n\n\n\n\n\n\n\n\n\n\n\n\n\nvue__WEBPACK_IMPORTED_MODULE_7__[\"default\"].use(portal_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\nvue__WEBPACK_IMPORTED_MODULE_7__[\"default\"].use(vue_router__WEBPACK_IMPORTED_MODULE_8__[\"default\"]);\n\n(0,_cloudblueconnect_connect_ui_toolkit__WEBPACK_IMPORTED_MODULE_3__[\"default\"])().then(toolkit => {\n const router = new vue_router__WEBPACK_IMPORTED_MODULE_8__[\"default\"]({\n mode: 'hash',\n routes: _routes__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n });\n\n router.afterEach(() => {\n document.documentElement.scrollIntoView();\n });\n\n vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"].filter('utcToLocal', _tools_filters_utcToLocal__WEBPACK_IMPORTED_MODULE_2__.utcToLocal);\n\n const app = new vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"]({\n render: h => h(_App_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n props: { toolkit },\n }),\n\n router,\n });\n\n app.$mount('#app');\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/pages/index.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm.js\");\n/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue-router */ \"./node_modules/vue-router/dist/vue-router.esm.js\");\n/* harmony import */ var portal_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! portal-vue */ \"./node_modules/portal-vue/dist/portal-vue.common.js\");\n/* harmony import */ var _App_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue */ \"./ui/src/pages/App.vue\");\n/* harmony import */ var _tools_filters_utcToLocal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../tools/filters/utcToLocal */ \"./ui/src/tools/filters/utcToLocal.js\");\n/* harmony import */ var _cloudblueconnect_connect_ui_toolkit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @cloudblueconnect/connect-ui-toolkit */ \"./node_modules/@cloudblueconnect/connect-ui-toolkit/dist/index.js\");\n/* harmony import */ var _routes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/routes */ \"./ui/src/routes/index.js\");\n/* harmony import */ var _styles_app_styl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/styles/app.styl */ \"./ui/src/styles/app.styl\");\n/* harmony import */ var _styles_index_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../styles/index.css */ \"./ui/styles/index.css\");\n/*\nCopyright (c) 2023, Ingram Micro\nAll rights reserved.\n*/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst init = new CustomEvent('$injector', {\n detail: {\n type: '$init',\n data: {},\n },\n});\n\n\nvue__WEBPACK_IMPORTED_MODULE_7__[\"default\"].use(portal_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\nvue__WEBPACK_IMPORTED_MODULE_7__[\"default\"].use(vue_router__WEBPACK_IMPORTED_MODULE_8__[\"default\"]);\n\n(0,_cloudblueconnect_connect_ui_toolkit__WEBPACK_IMPORTED_MODULE_3__[\"default\"])().then(toolkit => {\n const router = new vue_router__WEBPACK_IMPORTED_MODULE_8__[\"default\"]({\n mode: 'hash',\n routes: _routes__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n });\n\n router.afterEach(() => {\n document.documentElement.scrollIntoView();\n });\n\n vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"].filter('utcToLocal', _tools_filters_utcToLocal__WEBPACK_IMPORTED_MODULE_2__.utcToLocal);\n\n window.dispatchEvent(init);\n\n const app = new vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"]({\n render: h => h(_App_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n props: { toolkit },\n }),\n\n router,\n });\n\n window.dispatchEvent(init);\n\n app.$mount('#app');\n\n\n window.dispatchEvent(init);\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/pages/index.js?"); /***/ }), @@ -2952,7 +2952,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst DEFAULT_HEADERS = { 'Content-Type': 'application/json' };\n\nclass ApiError extends Error {\n constructor({ error = {}, response = {}, responseBody }) {\n super(error);\n\n this.status = response.status;\n this.statusText = response.statusText;\n\n if (responseBody) {\n this.message = `Request failed with status ${this.status}: ${this.statusText}.\\n\\nError:\\n${JSON.stringify(responseBody)}`;\n } else if (response) {\n this.message = `Request failed with status ${this.status}: ${this.statusText}.`;\n } else {\n this.message = error.message;\n }\n }\n}\n\nconst rest = {\n get(url) {\n return rest.request(url, 'GET');\n },\n\n post(url, body, headers) {\n return rest.request(url, 'POST', body, headers);\n },\n\n put(url, body, headers) {\n return rest.request(url, 'PUT', body, headers);\n },\n\n delete(url) {\n return rest.request(url, 'DELETE');\n },\n\n async request(url, method, body, headers) {\n const options = { method };\n\n if (headers) options.headers = { ...DEFAULT_HEADERS, ...headers };\n else options.headers = DEFAULT_HEADERS;\n\n if (body) options.body = JSON.stringify(body);\n\n let response;\n try {\n response = await fetch(url, options);\n } catch (e) {\n throw new ApiError({ error: e });\n }\n\n const responseBody = await response.json();\n\n if (!response.ok) {\n throw new ApiError({\n response,\n responseBody,\n error: new Error(),\n });\n }\n\n return responseBody;\n },\n};\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rest);\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/tools/rest.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst DEFAULT_HEADERS = { 'Content-Type': 'application/json' };\n\nclass ApiError extends Error {\n constructor({ error = {}, response = {}, responseBody }) {\n super(error);\n\n this.status = response.status;\n this.statusText = response.statusText;\n\n if (responseBody) {\n this.message = `Request failed with status ${this.status}: ${this.statusText}.\\n\\nError:\\n${JSON.stringify(responseBody)}`;\n } else if (response) {\n this.message = `Request failed with status ${this.status}: ${this.statusText}.`;\n } else {\n this.message = error.message;\n }\n }\n}\n\nconst rest = {\n get(url, fullResponse) {\n return rest.request(url, 'GET', null, null, fullResponse);\n },\n\n post(url, body, headers) {\n return rest.request(url, 'POST', body, headers);\n },\n\n put(url, body, headers) {\n return rest.request(url, 'PUT', body, headers);\n },\n\n delete(url) {\n return rest.request(url, 'DELETE');\n },\n\n async request(url, method, body, headers, fullResponse = false) {\n const options = { method };\n\n if (headers) options.headers = { ...DEFAULT_HEADERS, ...headers };\n else options.headers = DEFAULT_HEADERS;\n\n if (body) options.body = JSON.stringify(body);\n\n let response;\n\n try {\n response = await fetch(url, options);\n } catch (e) {\n throw new ApiError({ error: e });\n }\n\n const responseBody = await response.json();\n\n if (!response.ok) {\n throw new ApiError({\n response,\n responseBody,\n error: new Error(),\n });\n }\n\n return fullResponse ? {\n body: responseBody,\n headers: response.headers,\n status: response.status,\n } : responseBody;\n },\n};\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rest);\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/tools/rest.js?"); /***/ }), @@ -2985,7 +2985,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ abortDeploymentRequest: () => (/* binding */ abortDeploymentRequest),\n/* harmony export */ createDeploymentConfigurations: () => (/* binding */ createDeploymentConfigurations),\n/* harmony export */ createDeploymentRequest: () => (/* binding */ createDeploymentRequest),\n/* harmony export */ deleteDeploymentConfiguration: () => (/* binding */ deleteDeploymentConfiguration),\n/* harmony export */ getDeployment: () => (/* binding */ getDeployment),\n/* harmony export */ getDeploymentBatches: () => (/* binding */ getDeploymentBatches),\n/* harmony export */ getDeploymentConfigurations: () => (/* binding */ getDeploymentConfigurations),\n/* harmony export */ getDeploymentMarketplaces: () => (/* binding */ getDeploymentMarketplaces),\n/* harmony export */ getDeploymentRequestFailedTasks: () => (/* binding */ getDeploymentRequestFailedTasks),\n/* harmony export */ getDeploymentRequestMarketplaces: () => (/* binding */ getDeploymentRequestMarketplaces),\n/* harmony export */ getDeploymentRequestTasks: () => (/* binding */ getDeploymentRequestTasks),\n/* harmony export */ getDeploymentRequests: () => (/* binding */ getDeploymentRequests),\n/* harmony export */ getDeployments: () => (/* binding */ getDeployments),\n/* harmony export */ getDeploymentsRequest: () => (/* binding */ getDeploymentsRequest),\n/* harmony export */ getDeploymentsRequests: () => (/* binding */ getDeploymentsRequests),\n/* harmony export */ getPPR: () => (/* binding */ getPPR),\n/* harmony export */ getPPRs: () => (/* binding */ getPPRs),\n/* harmony export */ getProductHubs: () => (/* binding */ getProductHubs),\n/* harmony export */ getProducts: () => (/* binding */ getProducts),\n/* harmony export */ regeneratePPR: () => (/* binding */ regeneratePPR),\n/* harmony export */ retryDeploymentRequest: () => (/* binding */ retryDeploymentRequest),\n/* harmony export */ uploadPPR: () => (/* binding */ uploadPPR)\n/* harmony export */ });\n/* harmony import */ var _tools_rest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/tools/rest */ \"./ui/src/tools/rest.js\");\n/*\nCopyright (c) 2023, Ingram Micro\nAll rights reserved.\n*/\n\n\n\nconst getDeployments = ({ hubId, productId } = {}) => {\n const queryParams = new URLSearchParams();\n\n if (hubId) queryParams.append('hub_id', hubId);\n if (productId) queryParams.append('product_id', productId);\n\n return _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments?${queryParams.toString()}`);\n};\n\nconst getDeployment = (id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/${id}`);\n\nconst getDeploymentConfigurations = (id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/${id}/configurations`);\n\nconst createDeploymentConfigurations = (id, data) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(`/api/deployments/${id}/configurations`, data);\n\nconst getPPRs = (id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/${id}/pprs`);\n\nconst getPPR = (deploymentId, id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/${deploymentId}/pprs/${id}`);\n\nconst regeneratePPR = id => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(`/api/deployments/${id}/pprs`, {});\n\nconst deleteDeploymentConfiguration = (deploymentId, configurationId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].delete(`/api/deployments/${deploymentId}/configurations/${configurationId}`);\n\nconst getDeploymentsRequests = () => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get('/api/deployments/requests');\n\nconst getDeploymentRequests = (deploymentId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/${deploymentId}/requests`);\n\nconst getDeploymentsRequest = (id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/requests/${id}`);\n\nconst uploadPPR = (deploymentId, {\n id,\n location,\n size,\n name,\n mimeType,\n description,\n}) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(`/api/deployments/${deploymentId}/pprs`, {\n file: {\n id,\n location,\n size,\n name,\n mime_type: mimeType,\n },\n description,\n});\n\nconst getProducts = () => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get('/api/products');\n\nconst getProductHubs = (productId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/products/${productId}/hubs`);\n\nconst getDeploymentMarketplaces = (deploymentId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/${deploymentId}/marketplaces`);\n\nconst getDeploymentBatches = (deploymentId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/${deploymentId}/pricing/batches`);\n\nconst getDeploymentRequestMarketplaces = (requestId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/requests/${requestId}/marketplaces`);\n\nconst getDeploymentRequestTasks = (requestId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/requests/${requestId}/tasks`);\n\nconst getDeploymentRequestFailedTasks = (requestId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/requests/${requestId}/tasks?status=error`);\n\nconst createDeploymentRequest = (body) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post('/api/deployments/requests', body);\n\nconst abortDeploymentRequest = (id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(`/api/deployments/requests/${id}/abort`);\n\nconst retryDeploymentRequest = (id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(`/api/deployments/requests/${id}/retry`);\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/utils.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ abortDeploymentRequest: () => (/* binding */ abortDeploymentRequest),\n/* harmony export */ createDeploymentConfigurations: () => (/* binding */ createDeploymentConfigurations),\n/* harmony export */ createDeploymentRequest: () => (/* binding */ createDeploymentRequest),\n/* harmony export */ deleteDeploymentConfiguration: () => (/* binding */ deleteDeploymentConfiguration),\n/* harmony export */ getCollectionAndTotal: () => (/* binding */ getCollectionAndTotal),\n/* harmony export */ getContentRange: () => (/* binding */ getContentRange),\n/* harmony export */ getDeployment: () => (/* binding */ getDeployment),\n/* harmony export */ getDeploymentBatches: () => (/* binding */ getDeploymentBatches),\n/* harmony export */ getDeploymentConfigurations: () => (/* binding */ getDeploymentConfigurations),\n/* harmony export */ getDeploymentMarketplaces: () => (/* binding */ getDeploymentMarketplaces),\n/* harmony export */ getDeploymentRequestFailedTasks: () => (/* binding */ getDeploymentRequestFailedTasks),\n/* harmony export */ getDeploymentRequestMarketplaces: () => (/* binding */ getDeploymentRequestMarketplaces),\n/* harmony export */ getDeploymentRequestTasks: () => (/* binding */ getDeploymentRequestTasks),\n/* harmony export */ getDeploymentRequests: () => (/* binding */ getDeploymentRequests),\n/* harmony export */ getDeployments: () => (/* binding */ getDeployments),\n/* harmony export */ getDeploymentsRequest: () => (/* binding */ getDeploymentsRequest),\n/* harmony export */ getDeploymentsRequests: () => (/* binding */ getDeploymentsRequests),\n/* harmony export */ getHeader: () => (/* binding */ getHeader),\n/* harmony export */ getIntIndex: () => (/* binding */ getIntIndex),\n/* harmony export */ getPPR: () => (/* binding */ getPPR),\n/* harmony export */ getPPRs: () => (/* binding */ getPPRs),\n/* harmony export */ getProductHubs: () => (/* binding */ getProductHubs),\n/* harmony export */ getProducts: () => (/* binding */ getProducts),\n/* harmony export */ regeneratePPR: () => (/* binding */ regeneratePPR),\n/* harmony export */ retryDeploymentRequest: () => (/* binding */ retryDeploymentRequest),\n/* harmony export */ uploadPPR: () => (/* binding */ uploadPPR)\n/* harmony export */ });\n/* harmony import */ var _tools_rest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/tools/rest */ \"./ui/src/tools/rest.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/pipe.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/prop.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/curry.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/either.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/length.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n/*\nCopyright (c) 2023, Ingram Micro\nAll rights reserved.\n*/\n\n\n\n\n\n\n\nconst getIntIndex = index => (0,ramda__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,ramda__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(index), parseInt);\n\nconst getHeader = (0,ramda__WEBPACK_IMPORTED_MODULE_4__[\"default\"])((name, headers) => headers?.get(name));\n\nconst getContentRange = (0,ramda__WEBPACK_IMPORTED_MODULE_4__[\"default\"])((directiv, str) => {\n const directives = {\n start: 2,\n end: 3,\n size: 4,\n };\n const pattern = /(\\w+) (\\d+)-(\\d+)\\/(\\d+)/g;\n\n return getIntIndex(directives[directiv])(pattern.exec(str));\n});\n\nconst getCollectionAndTotal = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.template)({\n collection: ['body'],\n total: (0,ramda__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(\n (0,ramda__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,ramda__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('headers'), getHeader('content-range'), getContentRange('size')),\n (0,ramda__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,ramda__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('body'), ramda__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n ),\n});\n\nconst fullResponseGet = async url => {\n const response = await _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(url, true);\n\n return getCollectionAndTotal(response);\n};\n\nconst prepareUrl = (baseUrl, params) => {\n const processedParams = new URLSearchParams(params).toString();\n\n return `${baseUrl}?${processedParams}`;\n};\n\nconst getDeployments = ({ hubId, productId } = {}) => {\n const queryParams = new URLSearchParams();\n\n if (hubId) queryParams.append('hub_id', hubId);\n if (productId) queryParams.append('product_id', productId);\n\n return fullResponseGet(`/api/deployments?${queryParams.toString()}`);\n};\n\nconst getDeployment = (id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/${id}`);\n\nconst getDeploymentConfigurations = (id, params) => fullResponseGet(prepareUrl(`/api/deployments/${id}/configurations`, params));\n\nconst createDeploymentConfigurations = (id, data) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(`/api/deployments/${id}/configurations`, data);\n\nconst getPPRs = (id, params) => fullResponseGet(prepareUrl(`/api/deployments/${id}/pprs`, params));\n\nconst getPPR = (deploymentId, id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/${deploymentId}/pprs/${id}`);\n\nconst regeneratePPR = id => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(`/api/deployments/${id}/pprs`, {});\n\nconst deleteDeploymentConfiguration = (deploymentId, configurationId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].delete(`/api/deployments/${deploymentId}/configurations/${configurationId}`);\n\nconst getDeploymentsRequests = params => fullResponseGet(prepareUrl('/api/deployments/requests', params));\n\nconst getDeploymentRequests = (deploymentId, params) => fullResponseGet(prepareUrl(`/api/deployments/${deploymentId}/requests`, params));\n\nconst getDeploymentsRequest = (id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/requests/${id}`);\n\nconst uploadPPR = (deploymentId, {\n id,\n location,\n size,\n name,\n mimeType,\n description,\n}) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(`/api/deployments/${deploymentId}/pprs`, {\n file: {\n id,\n location,\n size,\n name,\n mime_type: mimeType,\n },\n description,\n});\n\nconst getProducts = () => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get('/api/products');\n\nconst getProductHubs = (productId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/products/${productId}/hubs`);\n\n\n\nconst getDeploymentBatches = (deploymentId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/${deploymentId}/pricing/batches`);\n\nconst getDeploymentRequestTasks = (requestId, params) => fullResponseGet(prepareUrl(`/api/deployments/requests/${requestId}/tasks`, params));\n\nconst getDeploymentRequestFailedTasks = (requestId) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(`/api/deployments/requests/${requestId}/tasks?status=error`);\n\nconst createDeploymentRequest = (body) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post('/api/deployments/requests', body);\n\nconst abortDeploymentRequest = (id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(`/api/deployments/requests/${id}/abort`);\n\nconst retryDeploymentRequest = (id) => _tools_rest__WEBPACK_IMPORTED_MODULE_0__[\"default\"].post(`/api/deployments/requests/${id}/retry`);\n\n\nconst enrichByBatchInfo = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.enrich)('id', ['pricelist', 'id'], 'pricelist');\n\nconst getDeploymentMarketplaces = async (deploymentId, params) => {\n const response = await fullResponseGet(prepareUrl(`/api/deployments/${deploymentId}/marketplaces`, params));\n const batches = await getDeploymentBatches(deploymentId);\n response.collection = enrichByBatchInfo(batches, response.collection);\n\n return response;\n};\n\nconst getDeploymentRequestMarketplaces = async (requestId, deploymentId, params) => {\n const response = await fullResponseGet(prepareUrl(`/api/deployments/requests/${requestId}/marketplaces`, params));\n const batches = await getDeploymentBatches(deploymentId);\n response.collection = enrichByBatchInfo(batches, response.collection);\n\n return response;\n};\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/utils.js?"); /***/ }) @@ -3096,7 +3096,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template -/******/ return "" + chunkId + "." + {"deployment-details":"6821e06b1fbacca9d4c7","request-details":"eba3a5545dfa7b83b78d"}[chunkId] + ".js"; +/******/ return "" + chunkId + "." + {"deployment-details":"fd87698951c89fbe5e69","request-details":"d2e1e1181d6531e0ff8b"}[chunkId] + ".js"; /******/ }; /******/ })(); /******/ diff --git a/connect_ext_ppr/static/index.078542b7141079d77ac1.css b/connect_ext_ppr/static/index.078542b7141079d77ac1.css index 240c52a..d1a8b9d 100644 --- a/connect_ext_ppr/static/index.078542b7141079d77ac1.css +++ b/connect_ext_ppr/static/index.078542b7141079d77ac1.css @@ -1,6 +1,6 @@ -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cIcon.vue?vue&type=style&index=0&id=094f790b&lang=stylus& ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cIcon.vue?vue&type=style&index=0&id=094f790b&lang=stylus ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-icon { color: #757575; caret-color: currentColor; @@ -21,9 +21,9 @@ button .c-icon { color: inherit; } -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cButton.vue?vue&type=style&index=0&id=6548a8c4&lang=stylus& ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cButton.vue?vue&type=style&index=0&id=6548a8c4&lang=stylus ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-button { --button-color: 33, 33, 33; --button-computed-color: var(--button-custom-color, var(--button-color)); @@ -152,9 +152,9 @@ button .c-icon { color: inherit; } -/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cAlert.vue?vue&type=style&index=0&id=1ef58eba&lang=stylus& ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cAlert.vue?vue&type=style&index=0&id=1ef58eba&lang=stylus ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-alert { align-items: center; box-sizing: border-box; @@ -252,9 +252,9 @@ button .c-icon { margin-left: 0; } -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cDialog.vue?vue&type=style&index=0&id=0548f84c&lang=stylus& ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cDialog.vue?vue&type=style&index=0&id=0548f84c&lang=stylus ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .overlay-enter-active, .overlay-leave-active { transition: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); @@ -563,9 +563,9 @@ a.c-vertical-tab_clickable:not(.c-vertical-tab_active) { line-height: 1; } -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cMenu.vue?vue&type=style&index=0&id=114e6ef1&lang=stylus& ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cMenu.vue?vue&type=style&index=0&id=114e6ef1&lang=stylus ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-menu { --c-menu-trigger-color: transparent; --c-menu-offsetX: -80px; @@ -629,9 +629,9 @@ a.c-vertical-tab_clickable:not(.c-vertical-tab_active) { position: relative; } -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/Pic.vue?vue&type=style&index=0&id=7ef515b9&lang=stylus&scoped=true& ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/Pic.vue?vue&type=style&index=0&id=7ef515b9&lang=stylus&scoped=true ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .image[data-v-7ef515b9] { overflow: hidden; box-sizing: content-box; @@ -663,9 +663,9 @@ a.c-vertical-tab_clickable:not(.c-vertical-tab_active) { height: 100%; } -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTable/cTableHeader.vue?vue&type=style&index=0&id=6bcab16a&lang=stylus&scoped=true& ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTable/cTableHeader.vue?vue&type=style&index=0&id=6bcab16a&lang=stylus&scoped=true ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-table-header[data-v-6bcab16a] { min-height: 32px; font-size: 12px; @@ -800,9 +800,9 @@ i.nosort[data-v-6bcab16a] { overflow-y: auto; } -/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTooltip.vue?vue&type=style&index=0&id=3d7ddf3e&scoped=true&lang=stylus& ***! - \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTooltip.vue?vue&type=style&index=0&id=3d7ddf3e&scoped=true&lang=stylus ***! + \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-tooltip[data-v-3d7ddf3e] { display: inline-block; } @@ -820,9 +820,9 @@ i.nosort[data-v-6bcab16a] { box-shadow: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12); } -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTable/cTableControlMenu.vue?vue&type=style&index=0&id=5856740e&lang=stylus& ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTable/cTableControlMenu.vue?vue&type=style&index=0&id=5856740e&lang=stylus ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-table-control-menu { background: #fff; max-height: 600px; @@ -840,9 +840,9 @@ i.nosort[data-v-6bcab16a] { margin-left: auto; } -/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTable/cTableHeadersSelector.vue?vue&type=style&index=0&id=706183b7&lang=stylus&scoped=true& ***! - \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTable/cTableHeadersSelector.vue?vue&type=style&index=0&id=706183b7&lang=stylus&scoped=true ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .headers-selector[data-v-706183b7] { padding: 8px 0px; } @@ -853,9 +853,9 @@ i.nosort[data-v-6bcab16a] { display: block; } -/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTextField.vue?vue&type=style&index=0&id=b5bb9caa&lang=stylus&scoped=true& ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTextField.vue?vue&type=style&index=0&id=b5bb9caa&lang=stylus&scoped=true ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-text-field[data-v-b5bb9caa] { --ctf-color-default-text: 33, 33, 33; --ctf-color-border: #d8d8d8; @@ -1231,16 +1231,16 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { padding-left: 16px; } -/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/NumberItem.vue?vue&type=style&index=0&id=e7d6f7c6&lang=stylus&scoped=true& ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/NumberItem.vue?vue&type=style&index=0&id=e7d6f7c6&lang=stylus&scoped=true ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .number__item + .number__item[data-v-e7d6f7c6] { margin-left: 0.25em; } -/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTable/cTablePagination.vue?vue&type=style&index=0&id=3a56ead8&lang=stylus&scoped=true& ***! - \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTable/cTablePagination.vue?vue&type=style&index=0&id=3a56ead8&lang=stylus&scoped=true ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .pagination[data-v-3a56ead8] { --pagination-text-color: #707070; --pagination-text-color-current: #2c98f0; @@ -1385,9 +1385,9 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { background-color: rgba(var(--theme_accent_rgb),0.1); } -/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTable.vue?vue&type=style&index=0&id=00cc8fa8&lang=stylus& ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTable.vue?vue&type=style&index=0&id=00cc8fa8&lang=stylus ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .fade-enter-active { transition: opacity 0.4s ease-out; } @@ -1671,9 +1671,9 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { } } -/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cDataTable.vue?vue&type=style&index=0&id=673514a2&lang=stylus&scoped=true& ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cDataTable.vue?vue&type=style&index=0&id=673514a2&lang=stylus&scoped=true ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-data-table .progress-spinner[data-v-673514a2] { position: absolute; left: 0; @@ -1696,9 +1696,9 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { margin-left: 12px; } -/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cRadio.vue?vue&type=style&index=0&id=3c4bb1d9&lang=stylus&scoped=true& ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cRadio.vue?vue&type=style&index=0&id=3c4bb1d9&lang=stylus&scoped=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-radio[data-v-3c4bb1d9] { display: flex; flex-direction: row; @@ -1726,9 +1726,9 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { line-height: 24px; } -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cSearch.vue?vue&type=style&index=0&id=2590bc3a&lang=stylus&scoped=true& ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cSearch.vue?vue&type=style&index=0&id=2590bc3a&lang=stylus&scoped=true ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-search[data-v-2590bc3a] { height: 44px; width: 100%; @@ -1758,9 +1758,9 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { color: #707070; } -/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/RadioTable.vue?vue&type=style&index=0&id=7997df34&lang=stylus&scoped=true& ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/RadioTable.vue?vue&type=style&index=0&id=7997df34&lang=stylus&scoped=true ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .radio-table__title[data-v-7997df34] { font-size: 18px; font-weight: 500; @@ -1771,16 +1771,16 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { margin-bottom: 12px; } -/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/HubsTab.vue?vue&type=style&index=0&id=0fc2312d&lang=stylus& ***! - \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/HubsTab.vue?vue&type=style&index=0&id=0fc2312d&lang=stylus ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .hub-tab__detail { margin-top: 0; } -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cCheckbox.vue?vue&type=style&index=0&id=4cd65356&lang=stylus&scoped=true& ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cCheckbox.vue?vue&type=style&index=0&id=4cd65356&lang=stylus&scoped=true ***! + \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-checkbox[data-v-4cd65356] { display: flex; flex-direction: row; @@ -1808,9 +1808,9 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { line-height: 24px; } -/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CheckboxTable.vue?vue&type=style&index=0&id=6b795cba&lang=stylus&scoped=true& ***! - \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CheckboxTable.vue?vue&type=style&index=0&id=6b795cba&lang=stylus&scoped=true ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .checkbox-table__title[data-v-6b795cba] { font-size: 18px; font-weight: 500; @@ -1821,16 +1821,16 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { margin-bottom: 12px; } -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/MarketplacesTab.vue?vue&type=style&index=0&id=23f3dafa&lang=stylus& ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/MarketplacesTab.vue?vue&type=style&index=0&id=23f3dafa&lang=stylus ***! + \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .marketplaces-tab__detail { margin-top: 0; } -/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/PricingTab.vue?vue&type=style&index=0&id=506812c9&lang=stylus& ***! - \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/PricingTab.vue?vue&type=style&index=0&id=506812c9&lang=stylus ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .pricing-tab__title { font-size: 18px; font-weight: 500; @@ -1845,16 +1845,16 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { max-width: 226px; } -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/ProductsTab.vue?vue&type=style&index=0&id=4402e027&lang=stylus& ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/ProductsTab.vue?vue&type=style&index=0&id=4402e027&lang=stylus ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .products-tab__detail { margin-top: 0; } -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cChip.vue?vue&type=style&index=0&id=cf32a144&lang=stylus& ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cChip.vue?vue&type=style&index=0&id=cf32a144&lang=stylus ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-chip { --c-chip-color: 66, 66, 66; --c-chip-text-color: var(--c-chip-color); @@ -1938,9 +1938,9 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { border-radius: 2px; } -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/PprTab.vue?vue&type=style&index=0&id=239e179d&lang=stylus& ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/PprTab.vue?vue&type=style&index=0&id=239e179d&lang=stylus ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .ppr-tab__chip { margin-left: 8px; } @@ -1948,9 +1948,9 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { margin-right: 4px; } -/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/SummaryTab.vue?vue&type=style&index=0&id=a449222e&lang=stylus&scoped=true& ***! - \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/CreateDeploymentRequestDialog/SummaryTab.vue?vue&type=style&index=0&id=a449222e&lang=stylus&scoped=true ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .summary__title[data-v-a449222e] { font-size: 18px; line-height: 24px; @@ -1993,9 +1993,9 @@ button + .c-text-field__append-inner > svg[data-v-b5bb9caa]:first-child { margin-right: 4px; } -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTabs.vue?vue&type=style&index=0&id=00476590&lang=stylus& ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cTabs.vue?vue&type=style&index=0&id=00476590&lang=stylus ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-tabs__controls { display: flex; border-bottom: 1px solid #e0e0e0; @@ -2062,9 +2062,9 @@ a.c-tabs__control-tooltip:hover { border-radius: 2px; } -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cNavBar.vue?vue&type=style&index=0&id=b2fed2fc&lang=stylus& ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cNavBar.vue?vue&type=style&index=0&id=b2fed2fc&lang=stylus ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .navigation-bar { box-sizing: content-box; display: flex; @@ -2150,9 +2150,9 @@ a.c-tabs__control-tooltip:hover { margin-bottom: 2px; } -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cView.vue?vue&type=style&index=0&id=7c928137&lang=stylus& ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cView.vue?vue&type=style&index=0&id=7c928137&lang=stylus ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .c-view { position: relative; flex: 1 1 100%; @@ -2186,9 +2186,9 @@ a.c-tabs__control-tooltip:hover { display: none; } -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cStatus.vue?vue&type=style&index=0&id=5eb1f184&lang=stylus& ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/stylus-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/cStatus.vue?vue&type=style&index=0&id=5eb1f184&lang=stylus ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/ .status-mark { display: inline-flex; align-items: center; diff --git a/connect_ext_ppr/static/index.html b/connect_ext_ppr/static/index.html index a0f635e..656402e 100644 --- a/connect_ext_ppr/static/index.html +++ b/connect_ext_ppr/static/index.html @@ -12,7 +12,7 @@ Index - +
diff --git a/connect_ext_ppr/static/request-details.eba3a5545dfa7b83b78d.js b/connect_ext_ppr/static/request-details.d2e1e1181d6531e0ff8b.js similarity index 86% rename from connect_ext_ppr/static/request-details.eba3a5545dfa7b83b78d.js rename to connect_ext_ppr/static/request-details.d2e1e1181d6531e0ff8b.js index 08b8c8f..3eaa23a 100644 --- a/connect_ext_ppr/static/request-details.eba3a5545dfa7b83b78d.js +++ b/connect_ext_ppr/static/request-details.d2e1e1181d6531e0ff8b.js @@ -135,7 +135,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*****************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/path.js\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _tools_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/tools/utils */ \"./ui/src/tools/utils.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst enrichByBatchInfo = (0,_tools_utils__WEBPACK_IMPORTED_MODULE_3__.enrich)('id', ['pricelist', 'id'], 'pricelist');\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n },\n\n props: {\n request: {\n type: Object,\n required: true,\n },\n },\n\n data: () => ({\n loading: true,\n marketplaces: [],\n marketplacesWithBatchesInfo: [],\n\n headers: [\n { text: 'Marketplace', value: 'marketplace' },\n { text: 'External ID', value: 'externalId' },\n { text: 'Pricing Batch', value: 'pricelist' },\n ],\n }),\n\n computed: {\n requestId: (0,ramda__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(['request', 'id']),\n deploymentId: (0,ramda__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(['request', 'deployment', 'id']),\n },\n\n methods: {\n prepareRow(item) {\n return {\n externalId: item.external_id,\n marketplace: {\n id: item.id,\n name: item.name,\n icon: item.icon,\n },\n\n pricelist: item.pricelist,\n };\n },\n },\n\n async created() {\n this.marketplaces = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getDeploymentRequestMarketplaces)(this.requestId);\n const batches = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getDeploymentBatches)(this.deploymentId);\n\n this.marketplacesWithBatchesInfo = enrichByBatchInfo(batches, this.marketplaces);\n this.loading = false;\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/RequestMarketplacesTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/path.js\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n },\n\n props: {\n request: {\n type: Object,\n required: true,\n },\n },\n\n data: () => ({\n loading: true,\n marketplaces: [],\n marketplacesWithBatchesInfo: [],\n\n headers: [\n { text: 'Marketplace', value: 'marketplace' },\n { text: 'External ID', value: 'externalId' },\n { text: 'Pricing Batch', value: 'pricelist' },\n ],\n }),\n\n computed: {\n requestId: (0,ramda__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(['request', 'id']),\n deploymentId: (0,ramda__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(['request', 'deployment', 'id']),\n },\n\n methods: {\n prepareRow(item) {\n return {\n externalId: item.external_id,\n marketplace: {\n id: item.id,\n name: item.name,\n icon: item.icon,\n },\n\n pricelist: item.pricelist,\n };\n },\n\n load(params) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDeploymentRequestMarketplaces)(this.requestId, this.deploymentId, params);\n },\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/RequestMarketplacesTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -175,7 +175,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \**********************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-timezone */ \"./node_modules/moment-timezone/index.js\");\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/info_outline/baseline.svg\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _components_ErrorDialog_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/ErrorDialog.vue */ \"./ui/src/components/ErrorDialog.vue\");\n/* harmony import */ var _components_RequestTaskInfoDialog_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~components/RequestTaskInfoDialog.vue */ \"./ui/src/components/RequestTaskInfoDialog.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~helpers */ \"./ui/src/tools/helpers.js\");\n/* harmony import */ var _mixins_sync__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~mixins/sync */ \"./ui/src/tools/mixins/sync.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins_sync__WEBPACK_IMPORTED_MODULE_8__[\"default\"])([{ prop: 'updating', local: 'localUpdating' }])],\n\n components: {\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n ErrorDialog: _components_ErrorDialog_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n RequestTaskInfoDialog: _components_RequestTaskInfoDialog_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n },\n\n props: {\n updating: Boolean,\n requestId: {\n type: String,\n required: true,\n },\n },\n\n data: () => ({\n localUpdating: false,\n loading: true,\n tasks: [],\n\n icons: { googleInfoOutlineBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_9__[\"default\"] },\n\n headers: [\n {\n text: 'ID',\n value: 'id',\n width: 180,\n },\n { text: 'Event', value: 'event' },\n {\n text: 'Processed',\n value: 'processed',\n width: 140,\n },\n {\n text: 'Elapsed',\n value: 'elapsed',\n width: 105,\n },\n {\n text: 'Status',\n value: 'status',\n width: 140,\n },\n { value: 'actions', width: 28 },\n ],\n\n currentItem: null,\n isInfoDialogOpen: false,\n currentError: '',\n isErrorDialogOpen: false,\n }),\n\n methods: {\n getElapsedTime({ events }) {\n if (events.finished?.at) {\n const msDiff = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(events.finished.at).diff(moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(events.started.at));\n\n return (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.readableTimeDiff)(msDiff);\n }\n\n return '';\n },\n\n prepareRow(item) {\n return {\n id: item.id,\n event: item.title,\n status: item.status,\n processed: item.events.finished?.at,\n created: item.events.created?.at,\n elapsed: this.getElapsedTime(item),\n errorMessage: item.error_message,\n };\n },\n\n openInfoDialog(item) {\n this.currentItem = item;\n this.isInfoDialogOpen = true;\n },\n\n openErrorDetails(item) {\n this.currentError = item.errorMessage;\n this.isErrorDialogOpen = true;\n },\n\n async loadTasks() {\n this.loading = true;\n this.tasks = await (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getDeploymentRequestTasks)(this.requestId);\n this.loading = false;\n this.localUpdating = false;\n },\n },\n\n watch: {\n isInfoDialogOpen(v) {\n if (!v) this.currentItem = null;\n },\n\n localUpdating(v) {\n if (v) this.loadTasks();\n },\n },\n\n created() {\n this.loadTasks();\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/RequestTasksTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-timezone */ \"./node_modules/moment-timezone/index.js\");\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/info_outline/baseline.svg\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _components_ErrorDialog_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/ErrorDialog.vue */ \"./ui/src/components/ErrorDialog.vue\");\n/* harmony import */ var _components_RequestTaskInfoDialog_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~components/RequestTaskInfoDialog.vue */ \"./ui/src/components/RequestTaskInfoDialog.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~helpers */ \"./ui/src/tools/helpers.js\");\n/* harmony import */ var _mixins_sync__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~mixins/sync */ \"./ui/src/tools/mixins/sync.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins_sync__WEBPACK_IMPORTED_MODULE_8__[\"default\"])([{ prop: 'updating', local: 'localUpdating' }])],\n\n components: {\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n ErrorDialog: _components_ErrorDialog_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n RequestTaskInfoDialog: _components_RequestTaskInfoDialog_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n },\n\n props: {\n updating: Boolean,\n requestId: {\n type: String,\n required: true,\n },\n },\n\n data: () => ({\n localUpdating: false,\n loading: true,\n tasks: [],\n\n icons: { googleInfoOutlineBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_9__[\"default\"] },\n\n headers: [\n {\n text: 'ID',\n value: 'id',\n width: 180,\n },\n { text: 'Event', value: 'event' },\n {\n text: 'Processed',\n value: 'processed',\n width: 140,\n },\n {\n text: 'Elapsed',\n value: 'elapsed',\n width: 105,\n },\n {\n text: 'Status',\n value: 'status',\n width: 140,\n },\n { value: 'actions', width: 28 },\n ],\n\n currentItem: null,\n isInfoDialogOpen: false,\n currentError: '',\n isErrorDialogOpen: false,\n localParams: { limit: 10, offset: 0 },\n }),\n\n methods: {\n getElapsedTime({ events }) {\n if (events.finished?.at) {\n const msDiff = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(events.finished.at).diff(moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(events.started.at));\n\n return (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.readableTimeDiff)(msDiff);\n }\n\n return '';\n },\n\n prepareRow(item) {\n return {\n id: item.id,\n event: item.title,\n status: item.status,\n processed: item.events.finished?.at,\n created: item.events.created?.at,\n elapsed: this.getElapsedTime(item),\n errorMessage: item.error_message,\n };\n },\n\n openInfoDialog(item) {\n this.currentItem = item;\n this.isInfoDialogOpen = true;\n },\n\n openErrorDetails(item) {\n this.currentError = item.errorMessage;\n this.isErrorDialogOpen = true;\n },\n\n load(params) {\n this.localParams = params;\n\n return (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getDeploymentRequestTasks)(this.requestId, params);\n },\n },\n\n watch: {\n isInfoDialogOpen(v) {\n if (!v) this.currentItem = null;\n },\n\n async localUpdating(v) {\n if (v) {\n this.tasks = await (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getDeploymentRequestTasks)(this.requestId, this.localParams);\n }\n },\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/RequestTasksTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -425,7 +425,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \******************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"request-marketplaces-tab\" },\n [\n _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n \"hide-all-pagination-sections\": \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"marketplace\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: {\n \"assistive-text\": row.marketplace.id,\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [\n _vm._v(\n _vm._s(row.marketplace.name)\n ),\n ]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n staticClass: \"object-image\",\n class: {\n \"picture-placeholder\":\n !row.marketplace.icon,\n },\n attrs: {\n src: row.marketplace.icon,\n width: 32,\n height: 32,\n size: \"contain\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"externalId\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.externalId\n ? _c(\"span\", [_vm._v(_vm._s(row.externalId))])\n : _c(\n \"div\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"pricelist\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.pricelist\n ? _c(\"detail-item\", {\n attrs: {\n \"assistive-text\": row.pricelist.id,\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n {\n staticClass:\n \"truncate-text\",\n },\n [\n _vm._v(\n _vm._s(row.pricelist.name)\n ),\n ]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n })\n : _c(\n \"div\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.marketplacesWithBatchesInfo,\n callback: function ($$v) {\n _vm.marketplacesWithBatchesInfo = $$v\n },\n expression: \"marketplacesWithBatchesInfo\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/RequestMarketplacesTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"request-marketplaces-tab\" },\n [\n _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n update: _vm.load,\n },\n scopedSlots: _vm._u([\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"marketplace\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"detail-item\", {\n attrs: {\n \"assistive-text\": row.marketplace.id,\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"truncate-text\" },\n [\n _vm._v(\n _vm._s(row.marketplace.name)\n ),\n ]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n staticClass: \"object-image\",\n class: {\n \"picture-placeholder\":\n !row.marketplace.icon,\n },\n attrs: {\n src: row.marketplace.icon,\n width: 32,\n height: 32,\n size: \"contain\",\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n }),\n ],\n 1\n )\n : _vm._e(),\n header.value === \"externalId\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.externalId\n ? _c(\"span\", [_vm._v(_vm._s(row.externalId))])\n : _c(\n \"div\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"pricelist\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.pricelist\n ? _c(\"detail-item\", {\n attrs: {\n \"assistive-text\": row.pricelist.id,\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"body-text\",\n fn: function () {\n return [\n _c(\n \"div\",\n {\n staticClass:\n \"truncate-text\",\n },\n [\n _vm._v(\n _vm._s(row.pricelist.name)\n ),\n ]\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n })\n : _c(\n \"div\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.marketplacesWithBatchesInfo,\n callback: function ($$v) {\n _vm.marketplacesWithBatchesInfo = $$v\n },\n expression: \"marketplacesWithBatchesInfo\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/RequestMarketplacesTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -445,7 +445,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \***********************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"request-tasks-tab\" },\n [\n _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n \"hide-all-pagination-sections\": \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"id\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [_c(\"span\", [_vm._v(_vm._s(row.id))])]\n )\n : _vm._e(),\n header.value === \"event\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [_c(\"span\", [_vm._v(_vm._s(row.event))])]\n )\n : _vm._e(),\n header.value === \"processed\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.processed\n ? _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm._f(\"utcToLocal\")(row.processed)\n )\n ),\n ])\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"elapsed\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.elapsed\n ? _c(\"span\", [_vm._v(_vm._s(row.elapsed))])\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"–\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"status\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"div\",\n { staticClass: \"request-tasks-tab__status\" },\n [\n _c(\"c-status\", {\n attrs: { status: row.status },\n }),\n row.status === \"error\"\n ? [\n _c(\n \"span\",\n {\n staticClass:\n \"request-tasks-tab__dot\",\n },\n [_vm._v(\"•\")]\n ),\n _c(\n \"a\",\n {\n on: {\n click: function ($event) {\n return _vm.openErrorDetails(\n row\n )\n },\n },\n },\n [_vm._v(\"Details\")]\n ),\n ]\n : _vm._e(),\n ],\n 2\n ),\n ]\n )\n : _vm._e(),\n header.value === \"actions\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"c-button\", {\n attrs: {\n icon: _vm.icons.googleInfoOutlineBaseline,\n size: \"18px\",\n small: \"\",\n },\n on: {\n click: function ($event) {\n return _vm.openInfoDialog(row)\n },\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.tasks,\n callback: function ($$v) {\n _vm.tasks = $$v\n },\n expression: \"tasks\",\n },\n }),\n _c(\"request-task-info-dialog\", {\n attrs: { item: _vm.currentItem },\n model: {\n value: _vm.isInfoDialogOpen,\n callback: function ($$v) {\n _vm.isInfoDialogOpen = $$v\n },\n expression: \"isInfoDialogOpen\",\n },\n }),\n _c(\"error-dialog\", {\n attrs: { \"error-message\": _vm.currentError, type: \"Task\" },\n model: {\n value: _vm.isErrorDialogOpen,\n callback: function ($$v) {\n _vm.isErrorDialogOpen = $$v\n },\n expression: \"isErrorDialogOpen\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/RequestTasksTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"request-tasks-tab\" },\n [\n _c(\"c-data-table\", {\n attrs: {\n headers: _vm.headers,\n \"prepare-row\": _vm.prepareRow,\n updating: _vm.loading,\n update: _vm.load,\n },\n scopedSlots: _vm._u([\n {\n key: \"items\",\n fn: function ({ row, visibleHeaders }) {\n return [\n _c(\n \"tr\",\n {\n staticClass: \"table__row hoverable\",\n attrs: { id: row.id },\n },\n [\n _vm._l(visibleHeaders, function (header) {\n return [\n header.value === \"id\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [_c(\"span\", [_vm._v(_vm._s(row.id))])]\n )\n : _vm._e(),\n header.value === \"event\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [_c(\"span\", [_vm._v(_vm._s(row.event))])]\n )\n : _vm._e(),\n header.value === \"processed\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.processed\n ? _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm._f(\"utcToLocal\")(row.processed)\n )\n ),\n ])\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"—\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"elapsed\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n row.elapsed\n ? _c(\"span\", [_vm._v(_vm._s(row.elapsed))])\n : _c(\n \"span\",\n { staticClass: \"assistive-color\" },\n [_vm._v(\"–\")]\n ),\n ]\n )\n : _vm._e(),\n header.value === \"status\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\n \"div\",\n { staticClass: \"request-tasks-tab__status\" },\n [\n _c(\"c-status\", {\n attrs: { status: row.status },\n }),\n row.status === \"error\"\n ? [\n _c(\n \"span\",\n {\n staticClass:\n \"request-tasks-tab__dot\",\n },\n [_vm._v(\"•\")]\n ),\n _c(\n \"a\",\n {\n on: {\n click: function ($event) {\n return _vm.openErrorDetails(\n row\n )\n },\n },\n },\n [_vm._v(\"Details\")]\n ),\n ]\n : _vm._e(),\n ],\n 2\n ),\n ]\n )\n : _vm._e(),\n header.value === \"actions\"\n ? _c(\n \"td\",\n { key: header.value, staticClass: \"nowrap-cell\" },\n [\n _c(\"c-button\", {\n attrs: {\n icon: _vm.icons.googleInfoOutlineBaseline,\n size: \"18px\",\n small: \"\",\n },\n on: {\n click: function ($event) {\n return _vm.openInfoDialog(row)\n },\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n ]\n }),\n ],\n 2\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.tasks,\n callback: function ($$v) {\n _vm.tasks = $$v\n },\n expression: \"tasks\",\n },\n }),\n _c(\"request-task-info-dialog\", {\n attrs: { item: _vm.currentItem },\n model: {\n value: _vm.isInfoDialogOpen,\n callback: function ($$v) {\n _vm.isInfoDialogOpen = $$v\n },\n expression: \"isInfoDialogOpen\",\n },\n }),\n _c(\"error-dialog\", {\n attrs: { \"error-message\": _vm.currentError, type: \"Task\" },\n model: {\n value: _vm.isErrorDialogOpen,\n callback: function ($$v) {\n _vm.isErrorDialogOpen = $$v\n },\n expression: \"isErrorDialogOpen\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/RequestTasksTab.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), diff --git a/ui/src/components/CreateDeploymentRequestDialog/MarketplacesTab.vue b/ui/src/components/CreateDeploymentRequestDialog/MarketplacesTab.vue index 28f7d3b..61e33b4 100644 --- a/ui/src/components/CreateDeploymentRequestDialog/MarketplacesTab.vue +++ b/ui/src/components/CreateDeploymentRequestDialog/MarketplacesTab.vue @@ -137,7 +137,8 @@ export default { async created() { try { this.loading = true; - this.marketplaces = await getDeploymentMarketplaces(this.deploymentId); + const depMktps = await getDeploymentMarketplaces(this.deploymentId); + this.marketplaces = depMktps.collection; if (this.value.all) this.isAllSelected = true; else if (this.value.choices.length) this.selectedMarketplaces = this.value.choices; } catch (e) { diff --git a/ui/src/components/CreateDeploymentRequestDialog/PprTab.vue b/ui/src/components/CreateDeploymentRequestDialog/PprTab.vue index 8f291a0..229b939 100644 --- a/ui/src/components/CreateDeploymentRequestDialog/PprTab.vue +++ b/ui/src/components/CreateDeploymentRequestDialog/PprTab.vue @@ -110,7 +110,8 @@ export default { async created() { try { this.loading = true; - this.pprs = await getPPRs(this.deploymentId); + const pprs = await getPPRs(this.deploymentId); + this.pprs = pprs.collection; if (this.localValue?.id) this.selectedPprVersion = this.localValue.id; } catch (e) { this.pprs = []; diff --git a/ui/src/components/CreateDeploymentRequestDialog/index.vue b/ui/src/components/CreateDeploymentRequestDialog/index.vue index 34340b5..a955f05 100644 --- a/ui/src/components/CreateDeploymentRequestDialog/index.vue +++ b/ui/src/components/CreateDeploymentRequestDialog/index.vue @@ -260,12 +260,13 @@ export default { async fetchDeployment() { if (this.deployment) return; - - [this.localDeployment] = await getDeployments({ + const deployments = await getDeployments({ hubId: this.form.hub.id, productId: this.form.product.id, }); + [this.localDeployment] = deployments.collection; + this.goToNextStep(); }, diff --git a/ui/src/components/DeploymentConfigurationTab.vue b/ui/src/components/DeploymentConfigurationTab.vue index aca68e8..b35bbc3 100644 --- a/ui/src/components/DeploymentConfigurationTab.vue +++ b/ui/src/components/DeploymentConfigurationTab.vue @@ -6,7 +6,8 @@ hide-go-to-page-section, :prepare-row="prepareRow", :updating="loading", - showManagePanel, + show-manage-panel, + :update="load", ) template(#buttons="") c-button( @@ -202,6 +203,7 @@ export default { uploadErrorText: '', showErrorSnackbar: false, errorSnackbarText: '', + localParams: { limit: 10, offset: 0 }, }; }, @@ -264,7 +266,8 @@ export default { async getConfigs() { this.loading = true; try { - this.localValue = await getDeploymentConfigurations(this.deploymentId); + const conf = await getDeploymentConfigurations(this.deploymentId, this.localParams); + this.localValue = conf.collection; } catch (e) { this.showErrorSnackbar = true; this.errorSnackbarText = e.message; @@ -282,6 +285,12 @@ export default { this.errorSnackbarText = e.message; } }, + + load(params) { + this.localParams = params; + + return getDeploymentConfigurations(this.deploymentId, params); + }, }, created() { diff --git a/ui/src/components/DeploymentMarketplacesTab.vue b/ui/src/components/DeploymentMarketplacesTab.vue index f9b7993..34c686b 100644 --- a/ui/src/components/DeploymentMarketplacesTab.vue +++ b/ui/src/components/DeploymentMarketplacesTab.vue @@ -5,7 +5,7 @@ :headers="headers", :prepare-row="prepareRow", :updating="loading", - hide-all-pagination-sections, + :update="load", ) template(#items="{ row, visibleHeaders }") tr.table__row.hoverable(:id="row.id") @@ -61,7 +61,6 @@ diff --git a/ui/src/components/DeploymentRequestsTab.vue b/ui/src/components/DeploymentRequestsTab.vue index e79e596..0fdc9ec 100644 --- a/ui/src/components/DeploymentRequestsTab.vue +++ b/ui/src/components/DeploymentRequestsTab.vue @@ -5,9 +5,9 @@ :headers="headers", :prepare-row="prepareRow", :updating="loading", - hide-all-pagination-sections, fix-layout, show-manage-panel, + :update="load", ) template(#buttons="") c-button.ppr-table__upload-btn( @@ -132,6 +132,8 @@ export default { width: 140, }, ], + + localParams: { limit: 10, offset: 0 }, }), computed: { @@ -155,13 +157,16 @@ export default { async loadRequests() { this.loading = true; - this.requests = await getDeploymentRequests(this.deploymentId); + const rq = await getDeploymentRequests(this.deploymentId, this.localParams); + this.requests = rq.collection; this.loading = false; }, - }, - created() { - this.loadRequests(); + load(params) { + this.localParams = params; + + return getDeploymentRequests(this.deploymentId, params); + }, }, }; diff --git a/ui/src/components/DeploymentRequestsTable.vue b/ui/src/components/DeploymentRequestsTable.vue index 8c41a98..ff11ecf 100644 --- a/ui/src/components/DeploymentRequestsTable.vue +++ b/ui/src/components/DeploymentRequestsTable.vue @@ -5,6 +5,7 @@ c-data-table( hide-go-to-page-section, :prepare-row="prepareRow", :updating="localUpdating", + :update="load", ) template(#items="{ row, visibleHeaders}") tr.table__row.hoverable(:id="row.id") @@ -166,17 +167,25 @@ export default { align: 'left', }, ], + + localParams: { limit: 10, offset: 0 }, }; }, methods: { prepareRow, + + load(params) { + this.localParams = params; + + return getDeploymentsRequests(params); + }, }, watch: { async localUpdating(v) { if (v) { - this.localValue = await getDeploymentsRequests(); + await getDeploymentsRequests(this.localParams); this.localUpdating = false; } }, diff --git a/ui/src/components/DeploymentsTable.vue b/ui/src/components/DeploymentsTable.vue index 72849eb..66c4386 100644 --- a/ui/src/components/DeploymentsTable.vue +++ b/ui/src/components/DeploymentsTable.vue @@ -3,6 +3,7 @@ c-data-table( v-model="localValue", :headers="headers", hide-go-to-page-section, + :update="load", :prepare-row="prepareRow", :updating="loading", ) @@ -155,13 +156,12 @@ export default { methods: { prepareRow, - }, - async created() { - this.loading = true; - const allDeployments = await getDeployments(); - this.localValue = allDeployments; - this.loading = false; + load(params) { + return getDeployments({ + queryParameters: params, + }); + }, }, }; diff --git a/ui/src/components/PprTab.vue b/ui/src/components/PprTab.vue index 26e7d01..1d47c0c 100644 --- a/ui/src/components/PprTab.vue +++ b/ui/src/components/PprTab.vue @@ -5,9 +5,9 @@ :headers="headers", :prepare-row="prepareRow", :updating="loading", - hide-all-pagination-sections, - fix-layout, + :update="load", show-manage-panel, + hide-go-to-page-section, ) template(#buttons="") c-button.ppr-table__upload-btn( @@ -236,6 +236,7 @@ export default { showErrorSnackbar: false, errorSnackbarText: '', + localParams: { limit: 10, offset: 0 }, }; }, @@ -267,7 +268,8 @@ export default { async loadPPRs() { try { this.loading = true; - this.localValue = await getPPRs(this.deploymentId); + const pprs = await getPPRs(this.deploymentId, this.localParams); + this.localValue = pprs.collection; } catch (e) { this.showErrorSnackbar = true; this.errorSnackbarText = e.message; @@ -279,10 +281,12 @@ export default { openUploadPPRDialog() { this.isUploadPPRDialogOpen = true; }, - }, - created() { - this.loadPPRs(); + load(params) { + this.localParams = params; + + return getPPRs(this.deploymentId, params); + }, }, }; diff --git a/ui/src/components/RequestMarketplacesTab.vue b/ui/src/components/RequestMarketplacesTab.vue index 0596dcc..862cecd 100644 --- a/ui/src/components/RequestMarketplacesTab.vue +++ b/ui/src/components/RequestMarketplacesTab.vue @@ -5,7 +5,7 @@ :headers="headers", :prepare-row="prepareRow", :updating="loading", - hide-all-pagination-sections, + :update="load", ) template(#items="{ row, visibleHeaders }") tr.table__row.hoverable(:id="row.id") @@ -64,18 +64,10 @@ import DetailItem from '~components/DetailItem.vue'; import Pic from '~components/Pic.vue'; import { - enrich, -} from '@/tools/utils'; - -import { - getDeploymentBatches, getDeploymentRequestMarketplaces, } from '@/utils'; -const enrichByBatchInfo = enrich('id', ['pricelist', 'id'], 'pricelist'); - - export default { components: { cDataTable, @@ -120,14 +112,10 @@ export default { pricelist: item.pricelist, }; }, - }, - - async created() { - this.marketplaces = await getDeploymentRequestMarketplaces(this.requestId); - const batches = await getDeploymentBatches(this.deploymentId); - this.marketplacesWithBatchesInfo = enrichByBatchInfo(batches, this.marketplaces); - this.loading = false; + load(params) { + return getDeploymentRequestMarketplaces(this.requestId, this.deploymentId, params); + }, }, }; diff --git a/ui/src/components/RequestTasksTab.vue b/ui/src/components/RequestTasksTab.vue index 01f87db..6bb3007 100644 --- a/ui/src/components/RequestTasksTab.vue +++ b/ui/src/components/RequestTasksTab.vue @@ -5,7 +5,7 @@ :headers="headers", :prepare-row="prepareRow", :updating="loading", - hide-all-pagination-sections, + :update="load", ) template(#items="{ row, visibleHeaders }") tr.table__row.hoverable(:id="row.id") @@ -156,6 +156,7 @@ export default { isInfoDialogOpen: false, currentError: '', isErrorDialogOpen: false, + localParams: { limit: 10, offset: 0 }, }), methods: { @@ -191,11 +192,10 @@ export default { this.isErrorDialogOpen = true; }, - async loadTasks() { - this.loading = true; - this.tasks = await getDeploymentRequestTasks(this.requestId); - this.loading = false; - this.localUpdating = false; + load(params) { + this.localParams = params; + + return getDeploymentRequestTasks(this.requestId, params); }, }, @@ -204,14 +204,12 @@ export default { if (!v) this.currentItem = null; }, - localUpdating(v) { - if (v) this.loadTasks(); + async localUpdating(v) { + if (v) { + this.tasks = await getDeploymentRequestTasks(this.requestId, this.localParams); + } }, }, - - created() { - this.loadTasks(); - }, }; diff --git a/ui/src/components/cDataTable.vue b/ui/src/components/cDataTable.vue index e16d65b..c2e4986 100644 --- a/ui/src/components/cDataTable.vue +++ b/ui/src/components/cDataTable.vue @@ -88,6 +88,7 @@ import cTable from '~components/cTable.vue'; import { + allOption, defaultPaginationOptions, } from '~components/cTable/cTablePagination.vue'; @@ -224,7 +225,7 @@ export default { isInitialLoading: true, pagination: { page: 1, - rowsPerPage: head(this.paginationOptions), + rowsPerPage: this.showAll ? allOption.value : head(this.paginationOptions), }, table: null, @@ -277,7 +278,7 @@ export default { needToUpdateAfterUpdatingChange: ({ localUpdating, updating }) => !localUpdating && updating, params: vm => ({ - limit: vm.pagination.rowsPerPage, + limit: vm.showAll ? undefined : vm.pagination.rowsPerPage, offset: vm.offset, }), @@ -385,7 +386,7 @@ export default { }, async checkForEmptyCollection() { - const result = await this.update({ limit: 0 }); + const result = await this.update({ limit: 10 }); return result.total === 0; }, @@ -462,11 +463,8 @@ export default { }, }, - async mounted() { - if (!this.showManagePanel) { - await this.$nextTick(); - this.updateItems(); - } + mounted() { + this.updateItems(); }, }; diff --git a/ui/src/tools/rest.js b/ui/src/tools/rest.js index 8615598..4dfff47 100644 --- a/ui/src/tools/rest.js +++ b/ui/src/tools/rest.js @@ -18,8 +18,8 @@ class ApiError extends Error { } const rest = { - get(url) { - return rest.request(url, 'GET'); + get(url, fullResponse) { + return rest.request(url, 'GET', null, null, fullResponse); }, post(url, body, headers) { @@ -34,7 +34,7 @@ const rest = { return rest.request(url, 'DELETE'); }, - async request(url, method, body, headers) { + async request(url, method, body, headers, fullResponse = false) { const options = { method }; if (headers) options.headers = { ...DEFAULT_HEADERS, ...headers }; @@ -43,6 +43,7 @@ const rest = { if (body) options.body = JSON.stringify(body); let response; + try { response = await fetch(url, options); } catch (e) { @@ -59,7 +60,11 @@ const rest = { }); } - return responseBody; + return fullResponse ? { + body: responseBody, + headers: response.headers, + status: response.status, + } : responseBody; }, }; diff --git a/ui/src/utils.js b/ui/src/utils.js index bff5ddb..69ae7d1 100644 --- a/ui/src/utils.js +++ b/ui/src/utils.js @@ -4,6 +4,54 @@ All rights reserved. */ import rest from '@/tools/rest'; +import { + curry, + either, + length, + pipe, + prop, +} from 'ramda'; + +import { + enrich, + template, +} from '~utils'; + + +export const getIntIndex = index => pipe(prop(index), parseInt); + +export const getHeader = curry((name, headers) => headers?.get(name)); + +export const getContentRange = curry((directiv, str) => { + const directives = { + start: 2, + end: 3, + size: 4, + }; + const pattern = /(\w+) (\d+)-(\d+)\/(\d+)/g; + + return getIntIndex(directives[directiv])(pattern.exec(str)); +}); + +export const getCollectionAndTotal = template({ + collection: ['body'], + total: either( + pipe(prop('headers'), getHeader('content-range'), getContentRange('size')), + pipe(prop('body'), length), + ), +}); + +const fullResponseGet = async url => { + const response = await rest.get(url, true); + + return getCollectionAndTotal(response); +}; + +const prepareUrl = (baseUrl, params) => { + const processedParams = new URLSearchParams(params).toString(); + + return `${baseUrl}?${processedParams}`; +}; export const getDeployments = ({ hubId, productId } = {}) => { const queryParams = new URLSearchParams(); @@ -11,16 +59,16 @@ export const getDeployments = ({ hubId, productId } = {}) => { if (hubId) queryParams.append('hub_id', hubId); if (productId) queryParams.append('product_id', productId); - return rest.get(`/api/deployments?${queryParams.toString()}`); + return fullResponseGet(`/api/deployments?${queryParams.toString()}`); }; export const getDeployment = (id) => rest.get(`/api/deployments/${id}`); -export const getDeploymentConfigurations = (id) => rest.get(`/api/deployments/${id}/configurations`); +export const getDeploymentConfigurations = (id, params) => fullResponseGet(prepareUrl(`/api/deployments/${id}/configurations`, params)); export const createDeploymentConfigurations = (id, data) => rest.post(`/api/deployments/${id}/configurations`, data); -export const getPPRs = (id) => rest.get(`/api/deployments/${id}/pprs`); +export const getPPRs = (id, params) => fullResponseGet(prepareUrl(`/api/deployments/${id}/pprs`, params)); export const getPPR = (deploymentId, id) => rest.get(`/api/deployments/${deploymentId}/pprs/${id}`); @@ -28,9 +76,9 @@ export const regeneratePPR = id => rest.post(`/api/deployments/${id}/pprs`, {}); export const deleteDeploymentConfiguration = (deploymentId, configurationId) => rest.delete(`/api/deployments/${deploymentId}/configurations/${configurationId}`); -export const getDeploymentsRequests = () => rest.get('/api/deployments/requests'); +export const getDeploymentsRequests = params => fullResponseGet(prepareUrl('/api/deployments/requests', params)); -export const getDeploymentRequests = (deploymentId) => rest.get(`/api/deployments/${deploymentId}/requests`); +export const getDeploymentRequests = (deploymentId, params) => fullResponseGet(prepareUrl(`/api/deployments/${deploymentId}/requests`, params)); export const getDeploymentsRequest = (id) => rest.get(`/api/deployments/requests/${id}`); @@ -56,13 +104,11 @@ export const getProducts = () => rest.get('/api/products'); export const getProductHubs = (productId) => rest.get(`/api/products/${productId}/hubs`); -export const getDeploymentMarketplaces = (deploymentId) => rest.get(`/api/deployments/${deploymentId}/marketplaces`); -export const getDeploymentBatches = (deploymentId) => rest.get(`/api/deployments/${deploymentId}/pricing/batches`); -export const getDeploymentRequestMarketplaces = (requestId) => rest.get(`/api/deployments/requests/${requestId}/marketplaces`); +export const getDeploymentBatches = (deploymentId) => rest.get(`/api/deployments/${deploymentId}/pricing/batches`); -export const getDeploymentRequestTasks = (requestId) => rest.get(`/api/deployments/requests/${requestId}/tasks`); +export const getDeploymentRequestTasks = (requestId, params) => fullResponseGet(prepareUrl(`/api/deployments/requests/${requestId}/tasks`, params)); export const getDeploymentRequestFailedTasks = (requestId) => rest.get(`/api/deployments/requests/${requestId}/tasks?status=error`); @@ -71,3 +117,23 @@ export const createDeploymentRequest = (body) => rest.post('/api/deployments/req export const abortDeploymentRequest = (id) => rest.post(`/api/deployments/requests/${id}/abort`); export const retryDeploymentRequest = (id) => rest.post(`/api/deployments/requests/${id}/retry`); + + +const enrichByBatchInfo = enrich('id', ['pricelist', 'id'], 'pricelist'); + +export const getDeploymentMarketplaces = async (deploymentId, params) => { + const response = await fullResponseGet(prepareUrl(`/api/deployments/${deploymentId}/marketplaces`, params)); + const batches = await getDeploymentBatches(deploymentId); + response.collection = enrichByBatchInfo(batches, response.collection); + + return response; +}; + +export const getDeploymentRequestMarketplaces = async (requestId, deploymentId, params) => { + const response = await fullResponseGet(prepareUrl(`/api/deployments/requests/${requestId}/marketplaces`, params)); + const batches = await getDeploymentBatches(deploymentId); + response.collection = enrichByBatchInfo(batches, response.collection); + + return response; +}; +