{"version":3,"sources":["webpack:///./src/modules/providerTokens/components/ProviderTokensNew/ProviderTokensNewLoader.vue?c9e2","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsInfo.vue?67ce","webpack:///./src/store/root/rootUi.ts","webpack:///./src/modules/factUpload/assets/img/data_provider_1.png","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableMetricCell.vue?c3e7","webpack:///./src/store/index.ts","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersTable/DataProvidersTableRow.vue?daba","webpack:///./src/components/_newDesign/App/AppFooter.vue?9a22","webpack:///./node_modules/moment/locale sync ru","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsCatalogHeader.vue?2c52","webpack:///./src/modules/administration/views/Categories/CategoryDetails.vue?3676","webpack:///./src/composables/layout/useLayoutLoadingStatus.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTableRow.vue?9d56","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTable.vue?315a","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementContent.vue?fdf4","webpack:///./src/modules/administration/components/Dashboard/DashboardHeader.vue?319f","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategories/CampaignCategories.vue?08fd","webpack:///./src/components/_newDesign/Campaigns/modals/CampaignCategoriesOrderModal.vue?d0fe","webpack:///./src/store/campaignEditor.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectContent.vue?ad32","webpack:///./src/services/notify/constants.ts","webpack:///./src/services/modally/components/ModallyModalHeader.vue?5cd3","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsLoader.vue?717a","webpack:///./src/store/campaign.ts","webpack:///./src/api/httpClient.ts","webpack:///./src/services/notify/components/NotifyListItem.vue?6d97","webpack:///./src/modules/administration/views/Maintenance.vue?ccbe","webpack:///./src/modules/administration/views/Categories/CategoriesCatalog.vue?6ac5","webpack:///./src/modules/accessControl/views/Groups/GroupsCatalog.vue?d55e","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/DashboardChart.vue?baa0","webpack:///./src/modules/metricsCheck/components/MetricsCheckTable.vue?1819","webpack:///./src/views/Clients/ClientCatalog.vue?7a56","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorHeader.vue?9fd0","webpack:///./src/services/notify/store/notify.store.ts","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorGoals.vue?f55e","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/MarkupsPeriodsTable.vue?3ee1","webpack:///./src/modules/markups/views/MarkupsCatalog.vue?1cd6","webpack:///./src/store/campaignEditor/campaignEditorSettings.ts","webpack:///./src/modules/accessControl/views/Permissions/PermissionsCatalog.vue?2e4d","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/InfoCell.vue?1df4","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorInfo.vue?1db2","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableDescCell.vue?a140","webpack:///./src/components/_newDesign/Campaigns/buttons/CampaignDateFilterBtn.vue?e4d8","webpack:///./src/services/modally/components/ModallyModalFooter.vue?cb2e","webpack:///./src/store/campaignEditor/campaignEditorCategories.ts","webpack:///./src/store/campaignEditor/campaignEditorPlacementDetails.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableApprovedCell.vue?58fb","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategorySettings/CampaignCategorySettings.vue?6855","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorContent.vue?751a","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableMarkupsCell.vue?7e3c","webpack:///./src/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorContent.vue?1648","webpack:///./src/modules/providerSettings/components/ProviderSettingsTable/ProviderSettingsTableRow.vue?0c64","webpack:///./src/modules/providerSettings/components/ProviderSettingsPageLoader.vue?5f5f","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TypeCell.vue?ca65","webpack:///./src/store/auth.ts","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersCatalogHeader.vue?e73d","webpack:///./src/modules/accessControl/components/Users/modals/UsersAccessRightsModal.vue?60cb","webpack:///./src/modules/administration/components/Categories/forms/CategoriesItemForm.vue?a188","webpack:///./src/services/modally/index.ts","webpack:///./src/components/_newDesign/App/AppBottomNavigation.vue?0edb","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableApprovedCell.vue?1ecf","webpack:///./src/packages/hn-table/src/components/HnTable.vue?0519","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesCatalogHeader.vue?0db5","webpack:///./src/modules/factUpload/views/FactUpload.vue?9480","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBar.vue?ca08","webpack:///./src/store/navigation/navigationUi.ts","webpack:///./src/layouts sync nonrecursive \\.vue$","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersCatalogHeader.vue?423d","webpack:///./src/utils/hasOwnProperty.ts","webpack:///./src/modules/accessControl/components/Roles/forms/RolesItemForm.vue?2202","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesLoader.vue?c5f5","webpack:///./src/assets/styles/app.scss?1632","webpack:///./src/modules/search/components/SearchSideBar.vue?4238","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarMinimizer.vue?5ea8","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsLoader.vue?802b","webpack:///./src/components/_newDesign/common/loaders/ListLoader.vue?cfe2","webpack:///./src/components/_newDesign/Campaigns/CampaignTabs.vue?0155","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogHeader.vue?cddd","webpack:///./src/components/_newDesign/common/icons/User.icon.vue?7b31","webpack:///./src/components/_newDesign/Campaigns/CampaignChart.vue?e146","webpack:///./src/modules/administration/views/ClientBrandSettings.vue?62a1","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/cells/UnapprovedPlacementsTableCheckCell.vue?e3b7","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogTable/CategoriesCatalogTableRow.vue?82ae","webpack:///./src/modules/administration/components/Dashboard/DashboardLabels.vue?3139","webpack:///./src/components/_newDesign/common/MetricsTable/cells/MetricsTablePeriodCell.vue?2545","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/tooltips/DashboardChartInfoTooltip.vue?1d0b","webpack:///./src/store/navigation/navigationCurrentClient.ts","webpack:///./src/views/Campaigns/CampaignPlacements/CampaignPlacementEditor.vue?6987","webpack:///./src/modules/search/components/SearchHeader.vue?12d6","webpack:///./src/assets/img/company-logo.svg","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMarkupsModal.vue?28f9","webpack:///./src/modules/administration/views/DataProvidersSettings/DataProvidersSettingsCatalog.vue?d28e","webpack:///./src/modules/unapprovedPlacements/views/UnapprovedPlacements.vue?6e8a","webpack:///./src/packages/json-editor/src/components/JsonEditor.vue?325d","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsTable/DataProvidersSettingsTableRow.vue?3796","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/modals/MarkupPeriodsTableAddModal.vue?c88d","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableInfoCell.vue?0561","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarMenuItem.vue?feb5","webpack:///./src/modules/search/components/SearchList/SearchListItem.vue?64e8","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarLogo.vue?79d3","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorLoader.vue?732f","webpack:///./src/components/_newDesign/common/loaders/ListLoader.vue","webpack:///src/components/_newDesign/common/loaders/ListLoader.vue","webpack:///./src/components/_newDesign/common/loaders/ListLoader.vue?1791","webpack:///./src/components/_newDesign/common/loaders/ListLoader.vue?6b4e","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListTable/ProviderTokensListTableRow.vue?d451","webpack:///./src/store/campaignEditor/campaignEditorPlacements.ts","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTable.vue?f430","webpack:///./src/modules/providerTokens/views/ProviderTokensNew.vue?7707","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsTable/PermissionsTableRow.vue?0b3a","webpack:///./src/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTable.vue?9c84","webpack:///./src/modules/search/components/SearchList/SearchList.vue?4bf5","webpack:///./src/components/_newDesign/common/loaders/TableLoader.vue?d064","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsTable/GroupsTableRow.vue?7be3","webpack:///./src/components/_newDesign/Clients/ClientList/ClientListItem.vue?699e","webpack:///./src/components/_newDesign/App/AppSideBar/AppSidebarNavMenuLoader.vue?bdf8","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsTable/MarkupsTableRow.vue?7491","webpack:///./src/modules/providerSettings/components/modals/ProviderSettingsItemModal.vue?ed8b","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMetricsModal.vue?6e74","webpack:///./src/modules/factUpload/assets/img/excel_settings.png","webpack:///./src/store/navigation/navigationUnapprovedPlacements.ts","webpack:///./src/modules/search/components/SearchResult.vue?87b3","webpack:///./src/modules/accessControl/components/Roles/modals/RolesItemModal.vue?04e0","webpack:///./src/modules/administration/components/DataProviders/modals/DataProvidersItemModal.vue?3263","webpack:///./node_modules/handsontable/node_modules/moment/locale sync ru","webpack:///./src/modules/administration/views/DataProviders/DataProvidersCatalog.vue?35d9","webpack:///./src/components/_newDesign/Clients/ClientDetailsLoader.vue?ecc0","webpack:///./src/services/errorHandler/AppJsonError.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/PlacementsMarkup.vue?6f92","webpack:///./src/components/_newDesign/Campaigns/CampaignChart.vue?ad61","webpack:///./src/api/modules/accounts.api.ts","webpack:///./src/api/modules/clients.api.ts","webpack:///./src/api/modules/campaigns.api.ts","webpack:///./src/api/modules/placements.api.ts","webpack:///./src/api/modules/unapprovedPlacements.api.ts","webpack:///./src/api/modules/campaignEditor.api.ts","webpack:///./src/api/modules/targetings.api.ts","webpack:///./src/api/modules/goalsSettings.api.ts","webpack:///./src/api/modules/markups.api.ts","webpack:///./src/api/modules/categories.api.ts","webpack:///./src/api/modules/tokens.api.ts","webpack:///./src/api/modules/organizations.api.ts","webpack:///./src/api/modules/groups.api.ts","webpack:///./src/api/modules/users.api.ts","webpack:///./src/api/modules/dataProviders.api.ts","webpack:///./src/api/modules/providerSettings.api.ts","webpack:///./src/api/modules/dataProvidersSettings.api.ts","webpack:///./src/api/modules/serviceTypes.api.ts","webpack:///./src/api/modules/taxonomy.api.ts","webpack:///./src/api/modules/metricsCheck.api.ts","webpack:///./src/api/modules/userActions.api.ts","webpack:///./src/api/modules/roles.api.ts","webpack:///./src/api/modules/permissions.api.ts","webpack:///./src/api/modules/benchmarkBoard.api.ts","webpack:///./src/api/modules/reference.api.ts","webpack:///./src/api/modules/maintenance.api.ts","webpack:///./src/api/modules/factUpload.api.ts","webpack:///./src/api/modules/search.api.ts","webpack:///./src/api/modules/userSettings.api.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorTableLoader.vue?33c3","webpack:///./src/modules/administration/components/ClientBrandSettings/forms/ClientBrandSettingsForm.vue?1590","webpack:///./src/modules/search/store/index.ts","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsHeader.vue?a763","webpack:///./src/store/reference/metricTypes.ts","webpack:///./src/modules/administration/components/DataProviders/modals/DataProvidersAddModal.vue?6745","webpack:///./src/packages/hn-table/src/components/cells/HnTableSelectCell.vue?cc47","webpack:///./src/packages/hn-table/src/components/HnTable.vue?1b2c","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/MarkupCell.vue?8882","webpack:///./src/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetrics.vue?cfda","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorCategories.vue?2d5f","webpack:///./src/modules/accessControl/components/Permissions/modals/PermissionsAddModal.vue?c9f2","webpack:///./src/modules/accessControl/views/Users/UsersCatalog.vue?23e4","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorHeader.vue?7c4a","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/cells/FlightsTableDeleteCell.vue?f55d","webpack:///./src/components/_newDesign/App/AppRedesignNoticeCard.vue?2a11","webpack:///./src/modules/accessControl/components/Roles/modals/RolesAddModal.vue?2665","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsCatalogHeader.vue?7610","webpack:///./src/components/_newDesign/common/AppView.vue?666b","webpack:///./src/components/_newDesign/Campaigns/modals/CampaignPlacementsOrderModal.vue?d99a","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorSettings.vue?d47b","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableRow.vue?a045","webpack:///./src/modules/administration/components/DataProvidersSettings/forms/DataProvidersSettingsForm.vue?f5c6","webpack:///./src/modules/accessControl/components/Permissions/forms/PermissionsItemForm.vue?7006","webpack:///./src/components/_newDesign/Clients/ClientList/ClientList.vue?8980","webpack:///./src/utils/isError.ts","webpack:///./src/services/notify/components/NotifyListByPosition.vue?5b2f","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignConversionRate/CampaignConversionRate.vue?e8c9","webpack:///./src/components/_newDesign/common/MetricsTable/cells/MetricsTableMetricCell.vue?8d58","webpack:///./src/services/modally/components/ModallyModalBody.vue?e37f","webpack:///./src/modules/providerTokens/views/ProviderTokensCallback.vue?4f70","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsCatalogHeader.vue?e6fc","webpack:///./src/packages/json-editor/src/components/JsonEditor.vue?6c07","webpack:///./src/components/_newDesign/common/inputs/AppBrandCategoriesTreeView.vue?5225","webpack:///./src/services/modally/components/ModallyModal.vue?42db","webpack:///./src/modules/administration/views/Categories/CategoryNew.vue?43b0","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorPageLoader.vue?f288","webpack:///./src/modules/providerSettings/views/ProviderSettings.vue?2584","webpack:///./src/modules/metricsCheck/views/MetricsCheck.vue?5d9a","webpack:///./src/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryContent.vue?6eaa","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorPlacements.vue?5fa5","webpack:///./src/store/root.ts","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsLoader.vue?783e","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/forms/CampaignDetailsCategoriesEditForm.vue?11a1","webpack:///./src/components/_newDesign/common/AppModal.vue?0961","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/modals/GoalsAddModal.vue?30bb","webpack:///./src/store/clients.ts","webpack:///./src/modules/search/components/SearchBreadcrumbs.vue?c385","webpack:///./src/modules/factUpload/components/FactUploadAfter.vue?02cb","webpack:///./src/modules/accessControl/components/Permissions/modals/PermissionsItemModal.vue?1f3e","webpack:///./src/components/_newDesign/Clients/ClientCatalogLoader.vue?ce6d","webpack:///./src/modules/markups/components/modals/MarkupsAddModal.vue?1ed5","webpack:///./src/modules/accessControl/components/Users/forms/UsersForm.vue?b1cd","webpack:///./src/modules/administration/views/UserActions/UserActionsCatalog.vue?0e6c","webpack:///./src/components/_newDesign/App/AppHeader.vue?8f5f","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsCatalogHeader.vue?a550","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/UnapprovedPlacementsTable.vue?7641","webpack:///./src/components/_newDesign/common/loaders/PageCatalogLoader.vue?b3db","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesPageLoader.vue?3129","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersTable/UersTableRow.vue?ae66","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/cells/UnapprovedPlacementsTableInfoCell.vue?9bdf","webpack:///./src/layouts/Default.vue?960e","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsCatalogLoader.vue?5ae7","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/CampaignPlacementsTable.vue?b82e","webpack:///./src/modules/factUpload/assets/img/data_provider_2.png","webpack:///./src/modules/providerTokens/views/ProviderTokensList.vue?a039","webpack:///./src/services/modally/ModallyRoot.vue?e32f","webpack:///./src/services/modally/components/ModallyModal.vue?2be9","webpack:///./src/services/modally/components/ModallyModalWrapper.vue?6969","webpack:///./src/services/modally/components/ModallyModalWrapper.vue","webpack:///./src/services/modally/components/ModallyModalWrapper.vue?e7ae","webpack:///./src/services/modally/components/ModallyModalWrapper.vue?16cb","webpack:///./src/services/modally/components/ModallyModalHeader.vue?e7a5","webpack:///./src/services/modally/components/ModallyModalHeader.vue","webpack:///./src/services/modally/components/ModallyModalHeader.vue?5ed1","webpack:///./src/services/modally/components/ModallyModalHeader.vue?4eec","webpack:///./src/services/modally/components/ModallyModalBody.vue?4783","webpack:///./src/services/modally/ModallyRoot.vue","webpack:///./src/services/modally/components/ModallyModalBody.vue","webpack:///./src/services/modally/components/ModallyModalBody.vue?d9fb","webpack:///./src/services/modally/components/ModallyModalBody.vue?f676","webpack:///./src/services/modally/components/ModallyModalFooter.vue?ebfc","webpack:///./src/services/modally/components/ModallyModalFooter.vue","webpack:///./src/services/modally/components/ModallyModalFooter.vue?b3c9","webpack:///./src/services/modally/components/ModallyModalFooter.vue?4655","webpack:///./src/services/modally/components/ModallyModal.vue","webpack:///./src/services/modally/components/ModallyModal.vue?c497","webpack:///./src/services/modally/components/ModallyModal.vue?45eb","webpack:///./src/services/modally/ModallyRoot.vue?e1c0","webpack:///./src/services/modally/ModallyRoot.vue?39b5","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorContent.vue?9f86","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListHeader.vue?61df","webpack:///./src/packages/confique/index.ts","webpack:///./src/configuration/index.ts","webpack:///./src/views/Auth.vue?b307","webpack:///./src/packages/hooks/useRouter.ts","webpack:///./src/components/_newDesign/common/AppView.vue","webpack:///./src/components/_newDesign/common/AppView.vue?defb","webpack:///./src/views/Auth.vue","webpack:///./src/views/Auth.vue?a279","webpack:///./src/views/Auth.vue?f5a0","webpack:///./src/views/AccessDenied.vue","webpack:///src/views/AccessDenied.vue","webpack:///./src/views/AccessDenied.vue?b405","webpack:///./src/views/AccessDenied.vue?6fe2","webpack:///./src/views/NotFound.vue","webpack:///src/views/NotFound.vue","webpack:///./src/views/NotFound.vue?c384","webpack:///./src/views/NotFound.vue?7205","webpack:///./src/views/Clients.vue","webpack:///./src/views/Clients.vue?6773","webpack:///./src/views/Clients/ClientCatalog.vue?2d9f","webpack:///./src/components/_newDesign/Clients/ClientCatalog/ClientCatalogContent.vue?212f","webpack:///./src/components/_newDesign/Clients/ClientList/ClientList.vue?5233","webpack:///./src/components/_newDesign/Clients/ClientList/ClientListItem.vue?440e","webpack:///./src/composables/client/useClientDetails.ts","webpack:///./src/composables/client/useClientBrandCampaignList.ts","webpack:///./src/composables/client/useClientPaths.ts","webpack:///./src/composables/client/useClientBrands.ts","webpack:///./src/components/_newDesign/Clients/ClientList/ClientListItem.vue","webpack:///./src/components/_newDesign/Clients/ClientList/ClientListItem.vue?a7e5","webpack:///./src/components/_newDesign/Clients/ClientList/ClientListItem.vue?6fb4","webpack:///./src/components/_newDesign/Clients/ClientList/ClientList.vue","webpack:///./src/components/_newDesign/Clients/ClientList/ClientList.vue?e5c7","webpack:///./src/components/_newDesign/Clients/ClientList/ClientList.vue?05e4","webpack:///./src/components/_newDesign/Clients/ClientCatalog/ClientCatalogContent.vue","webpack:///./src/components/_newDesign/Clients/ClientCatalog/ClientCatalogContent.vue?e2af","webpack:///./src/components/_newDesign/Clients/ClientCatalog/ClientCatalogContent.vue?8687","webpack:///./src/views/Clients/ClientCatalog.vue","webpack:///./src/views/Clients/ClientCatalog.vue?bb18","webpack:///./src/views/Clients/ClientCatalog.vue?35c2","webpack:///./src/views/Clients/ClientDetails.vue?b115","webpack:///./src/components/_newDesign/Clients/ClientDetails/ClientDetailsContent.vue?efaa","webpack:///./src/components/_newDesign/Brands/BrandList/BrandList.vue?5914","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItem.vue?acac","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/BrandListItemTable.vue?a99d","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTable.vue?16c9","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTableRow.vue?b73a","webpack:///./src/components/_newDesign/common/MetricsTable/cells/MetricsTableMetricCell.vue?c8bf","webpack:///./src/packages/numatter/index.ts","webpack:///./src/components/_newDesign/common/MetricsTable/cells/MetricsTableMetricCell.vue","webpack:///./src/components/_newDesign/common/MetricsTable/cells/MetricsTableMetricCell.vue?4aea","webpack:///./src/components/_newDesign/common/MetricsTable/cells/MetricsTableMetricCell.vue?a40e","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTableRow.vue","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTableRow.vue?0287","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTableRow.vue?4fd9","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTable.vue","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTable.vue?d9cf","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTable.vue?9365","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableRow.vue?9417","webpack:///./src/components/_newDesign/common/MetricsTable/cells/MetricsTablePeriodCell.vue?3cbb","webpack:///./src/components/_newDesign/common/MetricsTable/cells/MetricsTablePeriodCell.vue","webpack:///./src/components/_newDesign/common/MetricsTable/cells/MetricsTablePeriodCell.vue?bf53","webpack:///./src/components/_newDesign/common/MetricsTable/cells/MetricsTablePeriodCell.vue?7db0","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableDescCell.vue?1e02","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableDescCell.vue","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableDescCell.vue?6975","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableDescCell.vue?5574","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableApprovedCell.vue?44e9","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableApprovedCell.vue","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableApprovedCell.vue?ad9c","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableApprovedCell.vue?49fa","webpack:///./src/composables/campaign/useCampaignDetails.ts","webpack:///./src/composables/campaign/useCampaignApprovedStatus.ts","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableRow.vue","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableRow.vue?07ac","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableRow.vue?be27","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/BrandListItemTable.vue","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/BrandListItemTable.vue?eef0","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/BrandListItemTable.vue?4342","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableShowArchiveRow.vue?b0e4","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableShowArchiveRow.vue","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableShowArchiveRow.vue?bd6e","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableShowArchiveRow.vue?32a8","webpack:///./src/components/_newDesign/common/loaders/TableLoader.vue","webpack:///src/components/_newDesign/common/loaders/TableLoader.vue","webpack:///./src/components/_newDesign/common/loaders/TableLoader.vue?48b8","webpack:///./src/components/_newDesign/common/loaders/TableLoader.vue?b93c","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItem.vue","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItem.vue?702e","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItem.vue?6e1c","webpack:///./src/components/_newDesign/Brands/BrandList/BrandList.vue","webpack:///./src/components/_newDesign/Brands/BrandList/BrandList.vue?c822","webpack:///./src/components/_newDesign/Brands/BrandList/BrandList.vue?542d","webpack:///./src/components/_newDesign/Clients/ClientDetails/ClientDetailsContent.vue","webpack:///./src/components/_newDesign/Clients/ClientDetails/ClientDetailsContent.vue?9487","webpack:///./src/components/_newDesign/Clients/ClientDetails/ClientDetailsContent.vue?3dc3","webpack:///./src/composables/useQueryFilters.ts","webpack:///./src/composables/meta/useMeta.ts","webpack:///./src/views/Clients/ClientDetails.vue","webpack:///./src/views/Clients/ClientDetails.vue?567c","webpack:///./src/views/Clients/ClientDetails.vue?d1c7","webpack:///./src/components/_newDesign/Clients/ClientDetailsLoader.vue","webpack:///src/components/_newDesign/Clients/ClientDetailsLoader.vue","webpack:///./src/components/_newDesign/Clients/ClientDetailsLoader.vue?3124","webpack:///./src/components/_newDesign/Clients/ClientDetailsLoader.vue?00c2","webpack:///./src/components/_newDesign/Clients/ClientCatalogLoader.vue?bf01","webpack:///./src/components/_newDesign/Clients/ClientCatalogLoader.vue","webpack:///./src/components/_newDesign/Clients/ClientCatalogLoader.vue?6fa4","webpack:///./src/components/_newDesign/Clients/ClientCatalogLoader.vue?0120","webpack:///./src/router/clients.ts","webpack:///./src/views/Campaigns.vue?0453","webpack:///./src/views/Campaigns.vue","webpack:///./src/views/Campaigns.vue?0b0f","webpack:///./src/views/Campaigns.vue?9147","webpack:///./src/views/Campaigns/CampaignDetails.vue?7e5b","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsHeader.vue?9235","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsHeader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsHeader.vue?c0a1","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsHeader.vue?454d","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsContent.vue?8f59","webpack:///./src/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetrics.vue?16b5","webpack:///./src/utils/plural.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetricsItem.vue?f71a","webpack:///./src/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetricsItem.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetricsItem.vue?5fb7","webpack:///./src/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetricsItem.vue?23e2","webpack:///./src/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetrics.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetrics.vue?cd86","webpack:///./src/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetrics.vue?4d7d","webpack:///./src/components/_newDesign/Campaigns/CampaignChart.vue?0d69","webpack:///./src/components/_newDesign/Campaigns/CampaignChart.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignChart.vue?2865","webpack:///./src/components/_newDesign/Campaigns/CampaignChart.vue?5936","webpack:///./src/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTable.vue?8b97","webpack:///./src/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTableRow.vue?e1c5","webpack:///./src/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTableRow.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTableRow.vue?cbdb","webpack:///./src/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTableRow.vue?a1e7","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTableRow.vue?2f64","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/InfoCell.vue?a35b","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/InfoCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/InfoCell.vue?a50b","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/InfoCell.vue?26ce","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/MarkupCell.vue?5f60","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/MarkupCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/MarkupCell.vue?0de0","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/MarkupCell.vue?f66e","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TargetingCell.vue?433e","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TargetingCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TargetingCell.vue?cc0b","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TargetingCell.vue?62df","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TypeCell.vue?490c","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TypeCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TypeCell.vue?29dc","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TypeCell.vue?ac88","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTableRow.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTableRow.vue?a8c9","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTableRow.vue?d12e","webpack:///./src/components/_newDesign/Campaigns/modals/CampaignCategoriesOrderModal.vue?ddb9","webpack:///./src/components/_newDesign/common/AppModal.vue?7ba6","webpack:///./src/components/_newDesign/common/AppModal.vue","webpack:///./src/components/_newDesign/common/AppModal.vue?5c49","webpack:///./src/components/_newDesign/common/AppModal.vue?22a9","webpack:///./src/components/_newDesign/Campaigns/modals/CampaignCategoriesOrderModal.vue","webpack:///./src/components/_newDesign/Campaigns/modals/CampaignCategoriesOrderModal.vue?9725","webpack:///./src/components/_newDesign/Campaigns/modals/CampaignCategoriesOrderModal.vue?70d3","webpack:///./src/components/_newDesign/Campaigns/modals/CampaignPlacementsOrderModal.vue?7550","webpack:///./src/components/_newDesign/Campaigns/modals/CampaignPlacementsOrderModal.vue","webpack:///./src/components/_newDesign/Campaigns/modals/CampaignPlacementsOrderModal.vue?3484","webpack:///./src/components/_newDesign/Campaigns/modals/CampaignPlacementsOrderModal.vue?25ce","webpack:///./src/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTable.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTable.vue?0322","webpack:///./src/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTable.vue?2dd9","webpack:///./src/components/_newDesign/Campaigns/buttons/CampaignDateFilterBtn.vue?d5f1","webpack:///./src/components/_newDesign/Campaigns/buttons/CampaignDateFilterBtn.vue","webpack:///./src/components/_newDesign/Campaigns/buttons/CampaignDateFilterBtn.vue?804c","webpack:///./src/components/_newDesign/Campaigns/buttons/CampaignDateFilterBtn.vue?c7a4","webpack:///./src/components/_newDesign/Campaigns/buttons/CampaignDownloadReportBtn.vue?76ad","webpack:///./src/utils/downloadFile.ts","webpack:///./src/components/_newDesign/Campaigns/buttons/CampaignDownloadReportBtn.vue","webpack:///./src/components/_newDesign/Campaigns/buttons/CampaignDownloadReportBtn.vue?026a","webpack:///./src/components/_newDesign/Campaigns/buttons/CampaignDownloadReportBtn.vue?4a1b","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsContent.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsContent.vue?4ced","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsContent.vue?afb3","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/modals/CampaignDetailsCategoriesEditModal.vue?7fc7","webpack:///./src/utils/isAxiosError.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/forms/CampaignDetailsCategoriesEditForm.vue?5451","webpack:///./src/components/_newDesign/common/inputs/AppBrandCategoriesTreeView.vue?784f","webpack:///./src/components/_newDesign/common/inputs/AppBrandCategoriesTreeView.vue","webpack:///./src/components/_newDesign/common/inputs/AppBrandCategoriesTreeView.vue?05a5","webpack:///./src/components/_newDesign/common/inputs/AppBrandCategoriesTreeView.vue?b9e6","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/forms/CampaignDetailsCategoriesEditForm.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/forms/CampaignDetailsCategoriesEditForm.vue?281a","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/forms/CampaignDetailsCategoriesEditForm.vue?3891","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/modals/CampaignDetailsCategoriesEditModal.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/modals/CampaignDetailsCategoriesEditModal.vue?e9f0","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/modals/CampaignDetailsCategoriesEditModal.vue?15a5","webpack:///./src/composables/useModals.ts","webpack:///./src/views/Campaigns/CampaignDetails.vue","webpack:///./src/views/Campaigns/CampaignDetails.vue?9781","webpack:///./src/views/Campaigns/CampaignDetails.vue?041f","webpack:///./src/views/Campaigns/CampaignCategory.vue?6f86","webpack:///./src/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryHeader.vue?f5bf","webpack:///./src/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryHeader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryHeader.vue?9f3f","webpack:///./src/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryHeader.vue?cea7","webpack:///./src/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryContent.vue?0aa9","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTable.vue?6ff0","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTable.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTable.vue?a7d9","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTable.vue?1a12","webpack:///./src/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryContent.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryContent.vue?2ff8","webpack:///./src/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryContent.vue?d0d3","webpack:///./src/views/Campaigns/CampaignCategory.vue","webpack:///./src/views/Campaigns/CampaignCategory.vue?2ea5","webpack:///./src/views/Campaigns/CampaignCategory.vue?b622","webpack:///./src/views/Campaigns/CampaignPlacement.vue?3c53","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementHeader.vue?fbea","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementHeader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementHeader.vue?f581","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementHeader.vue?b4df","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementContent.vue?2653","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTableSimple.vue?6182","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTableSimple.vue","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTableSimple.vue?812e","webpack:///./src/components/_newDesign/common/MetricsTable/MetricsTableSimple.vue?cd73","webpack:///./src/components/_newDesign/Campaigns/CampaignTabs.vue?3b75","webpack:///./src/components/_newDesign/Campaigns/CampaignTabs.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignTabs.vue?660a","webpack:///./src/components/_newDesign/Campaigns/CampaignTabs.vue?794b","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementContent.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementContent.vue?4640","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementContent.vue?8c8d","webpack:///./src/views/Campaigns/CampaignPlacement.vue","webpack:///./src/views/Campaigns/CampaignPlacement.vue?8641","webpack:///./src/views/Campaigns/CampaignPlacement.vue?f419","webpack:///./src/views/Campaigns/CampaignConnector.vue?7f59","webpack:///./src/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorHeader.vue?c704","webpack:///./src/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorHeader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorHeader.vue?1424","webpack:///./src/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorHeader.vue?6fac","webpack:///./src/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorContent.vue?3d71","webpack:///./src/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorContent.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorContent.vue?d3c3","webpack:///./src/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorContent.vue?a7dd","webpack:///./src/views/Campaigns/CampaignConnector.vue","webpack:///./src/views/Campaigns/CampaignConnector.vue?564d","webpack:///./src/views/Campaigns/CampaignConnector.vue?8116","webpack:///./src/views/Campaigns/CampaignAdObject.vue?a590","webpack:///./src/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectHeader.vue?e4c3","webpack:///./src/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectHeader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectHeader.vue?9e37","webpack:///./src/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectHeader.vue?2c9a","webpack:///./src/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectContent.vue?24b7","webpack:///./src/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectContent.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectContent.vue?54c5","webpack:///./src/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectContent.vue?995e","webpack:///./src/views/Campaigns/CampaignAdObject.vue","webpack:///./src/views/Campaigns/CampaignAdObject.vue?9861","webpack:///./src/views/Campaigns/CampaignAdObject.vue?be7f","webpack:///./src/views/Campaigns/CampaignEditor.vue?3c57","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorHeader.vue?43a0","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorHeader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorHeader.vue?b5a2","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorHeader.vue?5aa7","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorContent.vue?0619","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorContent.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorContent.vue?f669","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorContent.vue?ec53","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorFooter.vue?56a9","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsReportsModal.vue?3b30","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsReportsModal.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsReportsModal.vue?52e8","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsReportsModal.vue?8ec1","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsUploadFilesModal.vue?24b3","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsUploadFilesModal.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsUploadFilesModal.vue?5d21","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsUploadFilesModal.vue?e922","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorFooter.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorFooter.vue?78e5","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorFooter.vue?26fe","webpack:///./src/views/Campaigns/CampaignEditor.vue","webpack:///./src/packages/hn-table/src/mixins/HnTableCellMixin.vue?ded6","webpack:///./src/views/Campaigns/CampaignEditor.vue?e50e","webpack:///./src/views/Campaigns/CampaignEditor.vue?bbc4","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorPlacements.vue?d212","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/campaignEditorPlacementsEmitter.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/CampaignPlacementsTable.vue?8a19","webpack:///./src/packages/hn-table/src/components/HnTable.vue?d138","webpack:///./src/packages/hooks/useConfiguration.ts","webpack:///./src/packages/hn-table/src/utils/HnTableCellClassName.ts","webpack:///./src/packages/hn-table/src/components/HnTable.vue","webpack:///./src/packages/hn-table/src/components/HnTable.vue?1694","webpack:///./src/packages/hn-table/src/components/HnTable.vue?deb7","webpack:///./src/packages/hn-table/src/components/cells/HnTableDateCell.vue?ed9e","webpack:///./src/packages/hn-table/src/components/HnTableCellWrapper.vue?da11","webpack:///./src/packages/hn-table/src/components/HnTableCellWrapper.vue","webpack:///./src/packages/hn-table/src/components/HnTableCellWrapper.vue?3704","webpack:///./src/packages/hn-table/src/components/HnTableCellWrapper.vue?b6d2","webpack:///./src/packages/hn-table/src/mixins/HnTableCellMixin.vue","webpack:///./src/packages/hn-table/src/mixins/HnTableCellMixin.vue?fa4f","webpack:///./src/packages/hn-table/src/components/cells/HnTableDateCell.vue","webpack:///./src/packages/hn-table/src/components/cells/HnTableDateCell.vue?b205","webpack:///./src/packages/hn-table/src/components/cells/HnTableDateCell.vue?b015","webpack:///./src/packages/hn-table/src/components/cells/HnTableSelectCell.vue?5b82","webpack:///./src/packages/hn-table/src/components/cells/HnTableSelectCell.vue","webpack:///./src/packages/hn-table/src/components/cells/HnTableSelectCell.vue?407f","webpack:///./src/packages/hn-table/src/components/cells/HnTableSelectCell.vue?e696","webpack:///./src/packages/hn-table/src/components/cells/HnTableStubCell.vue?b366","webpack:///./src/packages/hn-table/src/components/cells/HnTableStubCell.vue","webpack:///./src/packages/hn-table/src/components/cells/HnTableStubCell.vue?46b4","webpack:///./src/packages/hn-table/src/components/cells/HnTableStubCell.vue?8433","webpack:///./src/packages/hn-table/src/models/HnTableColumn.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableInfoCell.vue?2a87","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableInfoCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableInfoCell.vue?b559","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableInfoCell.vue?9097","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableSourceCell.vue?d393","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableSourceCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableSourceCell.vue?5155","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableSourceCell.vue?b937","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableMarkupsCell.vue?d32e","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableMarkupsCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableMarkupsCell.vue?8b6e","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableMarkupsCell.vue?6358","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableMetricCell.vue?82fa","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableMetricCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableMetricCell.vue?714a","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableMetricCell.vue?e901","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableApprovedCell.vue?09b1","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableApprovedCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableApprovedCell.vue?403f","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/cells/PlacementsTableApprovedCell.vue?80c0","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/CampaignPlacementsTable.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/CampaignPlacementsTable.vue?020e","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/CampaignPlacementsTable.vue?1cc2","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorTableLoader.vue","webpack:///src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorTableLoader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorTableLoader.vue?2bd6","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorTableLoader.vue?6294","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMetricsModal.vue?948d","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMetricsModal.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMetricsModal.vue?28ef","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMetricsModal.vue?c57c","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMarkupsModal.vue?0c49","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/PlacementsMarkup.vue?a829","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/MarkupsPeriodsTable.vue?9999","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/rows/MarkupPeriodsTableRow.vue?3535","webpack:///./src/services/notify/index.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/rows/MarkupPeriodsTableRow.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/rows/MarkupPeriodsTableRow.vue?eafc","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/rows/MarkupPeriodsTableRow.vue?4b84","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/rows/MarkupPeriodsTableFooterRow.vue?4445","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/rows/MarkupPeriodsTableFooterRow.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/rows/MarkupPeriodsTableFooterRow.vue?b72b","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/rows/MarkupPeriodsTableFooterRow.vue?af11","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/modals/MarkupPeriodsTableAddModal.vue?d2dc","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/modals/MarkupPeriodsTableAddModal.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/modals/MarkupPeriodsTableAddModal.vue?38d9","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/modals/MarkupPeriodsTableAddModal.vue?1725","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/MarkupsPeriodsTable.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/MarkupsPeriodsTable.vue?21fc","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/MarkupPeriodsTable/MarkupsPeriodsTable.vue?0898","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/PlacementsMarkup.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/PlacementsMarkup.vue?0ed5","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsMarkup/PlacementsMarkup.vue?4821","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsCreateMarkupModal.vue?ac88","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsCreateMarkupModal.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsCreateMarkupModal.vue?db76","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsCreateMarkupModal.vue?6b63","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMarkupsModal.vue","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorPlacements.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMarkupsModal.vue?4d03","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMarkupsModal.vue?f68f","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorPlacements.vue?2155","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorPlacements.vue?d4a6","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorGoals.vue?883e","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/GoalsTable/GoalsTable.vue?5b17","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/GoalsTable/GoalsTable.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/GoalsTable/GoalsTable.vue?fabb","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/GoalsTable/GoalsTable.vue?1c6c","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/modals/GoalsAddModal.vue?5478","webpack:///./src/packages/json-editor/src/components/JsonEditor.vue?2954","webpack:///./src/packages/json-editor/src/components/JsonEditor.vue","webpack:///./src/packages/json-editor/src/components/JsonEditor.vue?66cd","webpack:///./src/packages/json-editor/src/components/JsonEditor.vue?89db","webpack:///./src/packages/json-editor/src/index.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/modals/GoalsAddModal.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/modals/GoalsAddModal.vue?08ba","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/modals/GoalsAddModal.vue?486b","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorGoals.vue","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorGoals.vue?579f","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorGoals.vue?9723","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorCategories.vue?dd36","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategorySettings/CampaignCategorySettings.vue?ee1c","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategorySettings/CampaignCategorySettings.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategorySettings/CampaignCategorySettings.vue?9c95","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategorySettings/CampaignCategorySettings.vue?ad21","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategories/CampaignCategories.vue?b894","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategories/CampaignCategories.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategories/CampaignCategories.vue?d426","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategories/CampaignCategories.vue?9970","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesLoader.vue","webpack:///src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesLoader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesLoader.vue?bb77","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesLoader.vue?c2b3","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorCategories.vue","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorCategories.vue?7b67","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorCategories.vue?7a48","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorSettings.vue?eb4c","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignMainSettings/CampaignMainSettings.vue?ee4c","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignMainSettings/CampaignMainSettings.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignMainSettings/CampaignMainSettings.vue?4768","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignMainSettings/CampaignMainSettings.vue?a418","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignConversionRate/CampaignConversionRate.vue?494f","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignConversionRate/CampaignConversionRate.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignConversionRate/CampaignConversionRate.vue?f955","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignConversionRate/CampaignConversionRate.vue?7e96","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsLoader.vue","webpack:///src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsLoader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsLoader.vue?5844","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsLoader.vue?9680","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorSettings.vue","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorSettings.vue?4eec","webpack:///./src/views/Campaigns/CampaignEditor/CampaignEditorSettings.vue?27ec","webpack:///./src/views/Campaigns/CampaignPlacements.vue","webpack:///./src/views/Campaigns/CampaignPlacements.vue?ea00","webpack:///./src/views/Campaigns/CampaignPlacements/CampaignPlacementEditor.vue?33c3","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorHeader.vue?4c98","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorHeader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorHeader.vue?7c90","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorHeader.vue?978a","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorContent.vue?e9c8","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorInfo.vue?7bdb","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorInfo.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorInfo.vue?a91e","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorInfo.vue?f757","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementEditorFlights.vue?d0e0","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/PlacementFlightsTable.vue?8cc7","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/cells/FlightsTableNumberCell.vue?377c","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/cells/FlightsTableNumberCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/cells/FlightsTableNumberCell.vue?871f","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/cells/FlightsTableNumberCell.vue?5e79","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/cells/FlightsTableDeleteCell.vue?c242","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/cells/FlightsTableDeleteCell.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/cells/FlightsTableDeleteCell.vue?64ee","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/cells/FlightsTableDeleteCell.vue?4dc8","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/placementFlightsTableEmitter.ts","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/PlacementFlightsTable.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/PlacementFlightsTable.vue?17a1","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementFlightsTable/PlacementFlightsTable.vue?c508","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementEditorFlights.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementEditorFlights.vue?3f71","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementEditorFlights.vue?bf0c","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorContent.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorContent.vue?69e5","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorContent.vue?98cc","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorFooter.vue?46ea","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorFooter.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorFooter.vue?714d","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorFooter.vue?ec65","webpack:///./src/views/Campaigns/CampaignPlacements/CampaignPlacementEditor.vue","webpack:///./src/views/Campaigns/CampaignPlacements/CampaignPlacementEditor.vue?87fe","webpack:///./src/views/Campaigns/CampaignPlacements/CampaignPlacementEditor.vue?940b","webpack:///./src/components/_newDesign/Campaigns/CampaignPageLoader.vue","webpack:///src/components/_newDesign/Campaigns/CampaignPageLoader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPageLoader.vue?1d88","webpack:///./src/components/_newDesign/Campaigns/CampaignPageLoader.vue?7b3e","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorPageLoader.vue","webpack:///src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorPageLoader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorPageLoader.vue?a988","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorPageLoader.vue?99fa","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorLoader.vue","webpack:///src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorLoader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorLoader.vue?9ab7","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorLoader.vue?405e","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsPageLoader.vue","webpack:///src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsPageLoader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsPageLoader.vue?e13a","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsPageLoader.vue?c1b1","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesPageLoader.vue","webpack:///src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesPageLoader.vue","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesPageLoader.vue?899a","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesPageLoader.vue?62f6","webpack:///./src/router/campaigns.ts","webpack:///./src/router/index.ts","webpack:///./src/plugins/vueOidc.ts","webpack:///./src/plugins/compositionApi.ts","webpack:///./src/plugins/vueMeta.ts","webpack:///./src/plugins/sentry.ts","webpack:///./src/plugins/httpClient.ts","webpack:///./src/components/_newDesign/common/icons/ProjectLogo.icon.vue","webpack:///./src/components/_newDesign/common/icons/ProjectLogo.icon.vue?d267","webpack:///./src/components/_newDesign/common/icons/Client.icon.vue?c744","webpack:///./src/components/_newDesign/common/icons/Client.icon.vue","webpack:///./src/components/_newDesign/common/icons/Client.icon.vue?9a84","webpack:///./src/components/_newDesign/common/icons/Client.icon.vue?89ea","webpack:///./src/components/_newDesign/common/icons/PlacementsCheck.icon.vue?0daf","webpack:///./src/components/_newDesign/common/icons/PlacementsCheck.icon.vue","webpack:///./src/components/_newDesign/common/icons/PlacementsCheck.icon.vue?d2b4","webpack:///./src/components/_newDesign/common/icons/PlacementsCheck.icon.vue?5656","webpack:///./src/components/_newDesign/common/icons/User.icon.vue","webpack:///src/components/_newDesign/common/icons/User.icon.vue","webpack:///./src/components/_newDesign/common/icons/User.icon.vue?b666","webpack:///./src/components/_newDesign/common/icons/User.icon.vue?187a","webpack:///./src/components/_newDesign/common/icons/Play.icon.vue","webpack:///./src/components/_newDesign/common/icons/Play.icon.vue?8576","webpack:///./src/components/_newDesign/common/icons/Apps.icon.vue","webpack:///./src/components/_newDesign/common/icons/Apps.icon.vue?4ee6","webpack:///./src/components/_newDesign/common/icons/Sell.icon.vue","webpack:///./src/components/_newDesign/common/icons/Sell.icon.vue?072c","webpack:///./src/plugins/vuetify.ts","webpack:///./src/services/gtm/initScript.ts","webpack:///./src/services/gtm/index.ts","webpack:///./src/plugins/gtm.ts","webpack:///./src/plugins/acl.ts","webpack:///./src/plugins/layouts.ts","webpack:///./src/plugins/device.ts","webpack:///./src/plugins/portalVue.ts","webpack:///./src/plugins/numatter.ts","webpack:///./src/services/errorHandler/utils.ts","webpack:///./src/services/errorHandler/AppCustomError.ts","webpack:///./src/services/errorHandler/index.ts","webpack:///./src/plugins/errorObserver.ts","webpack:///./src/plugins/select2.js","webpack:///./src/components/App.vue?1b0a","webpack:///./src/composables/meta/useConfigMeta.ts","webpack:///./src/utils/createRgbVarsForThemes.ts","webpack:///./src/components/App.vue","webpack:///./src/components/App.vue?41ee","webpack:///./src/components/App.vue?5e35","webpack:///./src/modules/search/index.ts","webpack:///./src/modules/unapprovedPlacements/store/index.ts","webpack:///./src/modules/unapprovedPlacements/views/UnapprovedPlacements.vue?6a94","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsHeader.vue?7ab5","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsHeader.vue","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsHeader.vue?d681","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsHeader.vue?2b4d","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsContent.vue?76fd","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignList.vue?32ce","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignListItem.vue?476d","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/UnapprovedPlacementsTable.vue?af31","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/UnapprovedPlacementsTableRow.vue?5c0a","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/cells/UnapprovedPlacementsTableInfoCell.vue?dcc4","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/cells/UnapprovedPlacementsTableInfoCell.vue","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/cells/UnapprovedPlacementsTableInfoCell.vue?94fe","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/cells/UnapprovedPlacementsTableInfoCell.vue?3fa5","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/cells/UnapprovedPlacementsTableCheckCell.vue?8dd9","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/cells/UnapprovedPlacementsTableCheckCell.vue","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/cells/UnapprovedPlacementsTableCheckCell.vue?5bcf","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/cells/UnapprovedPlacementsTableCheckCell.vue?f258","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/UnapprovedPlacementsTableRow.vue","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/UnapprovedPlacementsTableRow.vue?7a5c","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/UnapprovedPlacementsTableRow.vue?1237","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/UnapprovedPlacementsTable.vue","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/UnapprovedPlacementsTable.vue?95c8","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsTable/UnapprovedPlacementsTable.vue?8c63","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignListItem.vue","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignListItem.vue?9320","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignListItem.vue?69bf","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignList.vue","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignList.vue?9e87","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignList.vue?d5eb","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsContent.vue","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsContent.vue?7c99","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsContent.vue?7f28","webpack:///./src/modules/unapprovedPlacements/views/UnapprovedPlacements.vue","webpack:///./src/modules/unapprovedPlacements/views/UnapprovedPlacements.vue?8cd7","webpack:///./src/modules/unapprovedPlacements/views/UnapprovedPlacements.vue?baf4","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsLoader.vue","webpack:///src/modules/unapprovedPlacements/components/UnapprovedPlacementsLoader.vue","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsLoader.vue?a8a0","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsLoader.vue?c65f","webpack:///./src/modules/unapprovedPlacements/routes/index.ts","webpack:///./src/modules/unapprovedPlacements/index.ts","webpack:///./src/modules/providerTokens/store/index.ts","webpack:///./src/modules/providerTokens/views/ProviderTokens.vue","webpack:///./src/modules/providerTokens/views/ProviderTokens.vue?4189","webpack:///./src/modules/providerTokens/views/ProviderTokensList.vue?d59a","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListHeader.vue?5e5b","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListHeader.vue","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListHeader.vue?7e05","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListHeader.vue?7929","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListTable/ProviderTokensListTable.vue?39d5","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListTable/ProviderTokensListTableRow.vue?5027","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListTable/ProviderTokensListTableRow.vue","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListTable/ProviderTokensListTableRow.vue?d334","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListTable/ProviderTokensListTableRow.vue?ac8e","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListTable/ProviderTokensListTable.vue","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListTable/ProviderTokensListTable.vue?f37b","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListTable/ProviderTokensListTable.vue?d3b4","webpack:///./src/modules/providerTokens/views/ProviderTokensList.vue","webpack:///./src/modules/providerTokens/views/ProviderTokensList.vue?b66b","webpack:///./src/modules/providerTokens/views/ProviderTokensList.vue?7f34","webpack:///./src/modules/providerTokens/views/ProviderTokensNew.vue?1fb5","webpack:///./src/modules/providerTokens/components/ProviderTokensNew/ProviderTokensCustomModal.vue?2833","webpack:///./src/modules/providerTokens/components/ProviderTokensNew/ProviderTokensCustomModal.vue","webpack:///./src/modules/providerTokens/components/ProviderTokensNew/ProviderTokensCustomModal.vue?27c6","webpack:///./src/modules/providerTokens/components/ProviderTokensNew/ProviderTokensCustomModal.vue?3ca5","webpack:///./src/modules/providerTokens/views/ProviderTokensNew.vue","webpack:///./src/modules/providerTokens/views/ProviderTokensNew.vue?ce8b","webpack:///./src/modules/providerTokens/views/ProviderTokensNew.vue?1a67","webpack:///./src/modules/providerTokens/views/ProviderTokensCallback.vue?dfed","webpack:///./src/modules/providerTokens/views/ProviderTokensCallback.vue","webpack:///./src/modules/providerTokens/views/ProviderTokensCallback.vue?1f07","webpack:///./src/modules/providerTokens/views/ProviderTokensCallback.vue?d2a3","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListLoader.vue","webpack:///src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListLoader.vue","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListLoader.vue?c3e8","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListLoader.vue?1c53","webpack:///./src/modules/providerTokens/components/ProviderTokensNew/ProviderTokensNewLoader.vue","webpack:///src/modules/providerTokens/components/ProviderTokensNew/ProviderTokensNewLoader.vue","webpack:///./src/modules/providerTokens/components/ProviderTokensNew/ProviderTokensNewLoader.vue?c1d1","webpack:///./src/modules/providerTokens/components/ProviderTokensNew/ProviderTokensNewLoader.vue?25b4","webpack:///./src/modules/providerTokens/routes/index.ts","webpack:///./src/modules/providerTokens/index.ts","webpack:///./src/modules/providerSettings/store/index.ts","webpack:///./src/modules/providerSettings/views/ProviderSettings.vue?c911","webpack:///./src/modules/providerSettings/components/ProviderSettingsHeader.vue?6d25","webpack:///./src/modules/providerSettings/components/ProviderSettingsHeader.vue","webpack:///./src/modules/providerSettings/components/ProviderSettingsHeader.vue?cc9e","webpack:///./src/modules/providerSettings/components/ProviderSettingsHeader.vue?2532","webpack:///./src/modules/providerSettings/components/ProviderSettingsTable/ProviderSettingsTable.vue?d8ec","webpack:///./src/modules/providerSettings/components/ProviderSettingsTable/ProviderSettingsTableRow.vue?1846","webpack:///./src/modules/providerSettings/components/ProviderSettingsTable/ProviderSettingsTableRow.vue","webpack:///./src/modules/providerSettings/components/ProviderSettingsTable/ProviderSettingsTableRow.vue?d954","webpack:///./src/modules/providerSettings/components/ProviderSettingsTable/ProviderSettingsTableRow.vue?44ae","webpack:///./src/modules/providerSettings/components/ProviderSettingsTable/ProviderSettingsTable.vue","webpack:///./src/modules/providerSettings/components/ProviderSettingsTable/ProviderSettingsTable.vue?4b21","webpack:///./src/modules/providerSettings/components/ProviderSettingsTable/ProviderSettingsTable.vue?c64b","webpack:///./src/modules/providerSettings/components/modals/ProviderSettingsItemModal.vue?a0ab","webpack:///./src/modules/providerSettings/components/modals/ProviderSettingsItemModal.vue","webpack:///./src/modules/providerSettings/components/modals/ProviderSettingsItemModal.vue?6838","webpack:///./src/modules/providerSettings/components/modals/ProviderSettingsItemModal.vue?7223","webpack:///./src/modules/providerSettings/views/ProviderSettings.vue","webpack:///./src/modules/providerSettings/views/ProviderSettings.vue?6804","webpack:///./src/modules/providerSettings/views/ProviderSettings.vue?8743","webpack:///./src/modules/providerSettings/components/ProviderSettingsPageLoader.vue","webpack:///src/modules/providerSettings/components/ProviderSettingsPageLoader.vue","webpack:///./src/modules/providerSettings/components/ProviderSettingsPageLoader.vue?7d65","webpack:///./src/modules/providerSettings/components/ProviderSettingsPageLoader.vue?1210","webpack:///./src/modules/providerSettings/routes/index.ts","webpack:///./src/modules/providerSettings/index.ts","webpack:///./src/modules/markups/store/markupDetails.ts","webpack:///./src/modules/markups/store/index.ts","webpack:///./src/modules/markups/views/Markups.vue","webpack:///./src/modules/markups/views/Markups.vue?04ca","webpack:///./src/modules/markups/views/MarkupsCatalog.vue?88ff","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsCatalogHeader.vue?8e76","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsCatalogHeader.vue","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsCatalogHeader.vue?f86f","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsCatalogHeader.vue?dbe3","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsTable/MarkupsTable.vue?fb38","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsTable/MarkupsTableRow.vue?c1db","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsTable/MarkupsTableRow.vue","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsTable/MarkupsTableRow.vue?96a4","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsTable/MarkupsTableRow.vue?3741","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsTable/MarkupsTable.vue","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsTable/MarkupsTable.vue?4851","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsTable/MarkupsTable.vue?b673","webpack:///./src/modules/markups/components/modals/MarkupsAddModal.vue?0356","webpack:///./src/modules/markups/components/modals/MarkupsAddModal.vue","webpack:///./src/modules/markups/components/modals/MarkupsAddModal.vue?6f74","webpack:///./src/modules/markups/components/modals/MarkupsAddModal.vue?15cc","webpack:///./src/modules/markups/views/MarkupsCatalog.vue","webpack:///./src/modules/markups/views/MarkupsCatalog.vue?27d2","webpack:///./src/modules/markups/views/MarkupsCatalog.vue?59c4","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsCatalogLoader.vue","webpack:///src/modules/markups/components/MarkupsCatalog/MarkupsCatalogLoader.vue","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsCatalogLoader.vue?b1cd","webpack:///./src/modules/markups/components/MarkupsCatalog/MarkupsCatalogLoader.vue?7634","webpack:///./src/modules/markups/views/MarkupDetails.vue?5d3f","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsHeader.vue?7348","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsHeader.vue","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsHeader.vue?6489","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsHeader.vue?4f61","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsInfo.vue?554b","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsInfo.vue","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsInfo.vue?5830","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsInfo.vue?9433","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/MarkupsPeriodsTable.vue?300d","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/MarkupPeriodsTableRow.vue?1bfa","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/MarkupPeriodsTableRow.vue","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/MarkupPeriodsTableRow.vue?b524","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/MarkupPeriodsTableRow.vue?6baf","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/modals/MarkupPeriodsTableAddModal.vue?a73b","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/modals/MarkupPeriodsTableAddModal.vue","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/modals/MarkupPeriodsTableAddModal.vue?e3cb","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/modals/MarkupPeriodsTableAddModal.vue?5b3f","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/MarkupsPeriodsTable.vue","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/MarkupsPeriodsTable.vue?0375","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/MarkupsPeriodsTable.vue?c931","webpack:///./src/modules/markups/views/MarkupDetails.vue","webpack:///./src/modules/markups/views/MarkupDetails.vue?4b7f","webpack:///./src/modules/markups/views/MarkupDetails.vue?88ca","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsLoader.vue","webpack:///src/modules/markups/components/MarkupDetails/MarkupDetailsLoader.vue","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsLoader.vue?853c","webpack:///./src/modules/markups/components/MarkupDetails/MarkupDetailsLoader.vue?3534","webpack:///./src/modules/markups/routes/index.ts","webpack:///./src/modules/markups/index.ts","webpack:///./src/modules/factUpload/views/FactUpload.vue?7a20","webpack:///./src/modules/factUpload/components/FactUploadWorkSteps.vue?53f9","webpack:///./src/modules/factUpload/components/FactUploadWorkSteps.vue","webpack:///./src/modules/factUpload/components/FactUploadWorkSteps.vue?3e35","webpack:///./src/modules/factUpload/components/FactUploadWorkSteps.vue?c724","webpack:///./src/modules/factUpload/components/FactUploadAfter.vue?1bee","webpack:///./src/modules/factUpload/components/FactUploadAfter.vue","webpack:///./src/modules/factUpload/components/FactUploadAfter.vue?d1e6","webpack:///./src/modules/factUpload/components/FactUploadAfter.vue?e980","webpack:///./src/modules/factUpload/views/FactUpload.vue","webpack:///./src/modules/factUpload/views/FactUpload.vue?bce5","webpack:///./src/modules/factUpload/views/FactUpload.vue?68e4","webpack:///./src/modules/factUpload/routes/index.ts","webpack:///./src/modules/factUpload/index.ts","webpack:///./src/modules/metricsCheck/store/index.ts","webpack:///./src/modules/metricsCheck/views/MetricsCheck.vue?dab2","webpack:///./src/modules/metricsCheck/components/MetricsCheckTable.vue?0f20","webpack:///./src/modules/metricsCheck/components/MetricsCheckTable.vue","webpack:///./src/modules/metricsCheck/components/MetricsCheckTable.vue?f9e2","webpack:///./src/modules/metricsCheck/components/MetricsCheckTable.vue?6003","webpack:///./src/modules/metricsCheck/views/MetricsCheck.vue","webpack:///./src/modules/metricsCheck/views/MetricsCheck.vue?2b39","webpack:///./src/modules/metricsCheck/views/MetricsCheck.vue?97c9","webpack:///./src/modules/metricsCheck/routes/index.ts","webpack:///./src/modules/metricsCheck/index.ts","webpack:///./src/modules/accessControl/store/users/usersCatalog.ts","webpack:///./src/modules/accessControl/store/users/userDetails.ts","webpack:///./src/modules/accessControl/store/users.ts","webpack:///./src/modules/accessControl/store/roles/rolesCatalog.ts","webpack:///./src/modules/accessControl/store/roles/roleDetails.ts","webpack:///./src/modules/accessControl/store/roles.ts","webpack:///./src/modules/accessControl/store/permissions/permissionsCatalog.ts","webpack:///./src/modules/accessControl/store/permissions/permissionDetails.ts","webpack:///./src/modules/accessControl/store/permissions.ts","webpack:///./src/modules/accessControl/store/groups/groupsCatalog.ts","webpack:///./src/modules/accessControl/store/groups/groupsDetails.ts","webpack:///./src/modules/accessControl/store/groups.ts","webpack:///./src/modules/accessControl/store/index.ts","webpack:///./src/modules/accessControl/views/AccessControl.vue","webpack:///./src/modules/accessControl/views/AccessControl.vue?be1d","webpack:///./src/modules/accessControl/views/Users.vue","webpack:///./src/modules/accessControl/views/Users.vue?23b6","webpack:///./src/modules/accessControl/views/Users/UsersCatalog.vue?1400","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersCatalogHeader.vue?a285","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersCatalogHeader.vue","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersCatalogHeader.vue?5190","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersCatalogHeader.vue?e663","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersTable/UsersTable.vue?f872","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersTable/UersTableRow.vue?1e17","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersTable/UersTableRow.vue","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersTable/UersTableRow.vue?5f7d","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersTable/UersTableRow.vue?a1db","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersTable/UsersTable.vue","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersTable/UsersTable.vue?f67c","webpack:///./src/modules/accessControl/components/Users/UsersCatalog/UsersTable/UsersTable.vue?bb1f","webpack:///./src/modules/accessControl/components/Users/modals/UsersAddModal.vue?5448","webpack:///./src/modules/accessControl/components/Users/forms/UsersForm.vue?6e27","webpack:///./src/components/_newDesign/common/inputs/AppClientsTreeView.vue?9589","webpack:///./src/components/_newDesign/common/inputs/AppClientsTreeView.vue","webpack:///./src/components/_newDesign/common/inputs/AppClientsTreeView.vue?5e5d","webpack:///./src/components/_newDesign/common/inputs/AppClientsTreeView.vue?5dab","webpack:///./src/modules/accessControl/components/Users/forms/UsersForm.vue","webpack:///./src/modules/accessControl/components/Users/forms/UsersForm.vue?e2ae","webpack:///./src/modules/accessControl/components/Users/forms/UsersForm.vue?e4b0","webpack:///./src/modules/accessControl/components/Users/modals/UsersAddModal.vue","webpack:///./src/modules/accessControl/components/Users/modals/UsersAddModal.vue?46e0","webpack:///./src/modules/accessControl/components/Users/modals/UsersAddModal.vue?45f4","webpack:///./src/modules/accessControl/components/Users/modals/UsersAddExistModal.vue?f94d","webpack:///./src/modules/accessControl/components/Users/modals/UsersAddExistModal.vue","webpack:///./src/modules/accessControl/components/Users/modals/UsersAddExistModal.vue?c4bc","webpack:///./src/modules/accessControl/components/Users/modals/UsersAddExistModal.vue?7590","webpack:///./src/modules/accessControl/components/Users/modals/UsersItemModal.vue?2479","webpack:///./src/modules/accessControl/components/Users/modals/UsersItemModal.vue","webpack:///./src/modules/accessControl/components/Users/modals/UsersItemModal.vue?2c74","webpack:///./src/modules/accessControl/components/Users/modals/UsersItemModal.vue?3fd0","webpack:///./src/modules/accessControl/components/Users/modals/UsersAccessRightsModal.vue?f367","webpack:///./src/modules/accessControl/components/Users/modals/UsersAccessRightsModal.vue","webpack:///./src/modules/accessControl/components/Users/modals/UsersAccessRightsModal.vue?1aae","webpack:///./src/modules/accessControl/components/Users/modals/UsersAccessRightsModal.vue?6aab","webpack:///./src/modules/accessControl/views/Users/UsersCatalog.vue","webpack:///./src/modules/accessControl/views/Users/UsersCatalog.vue?efeb","webpack:///./src/modules/accessControl/views/Users/UsersCatalog.vue?2469","webpack:///./src/components/_newDesign/common/loaders/PageCatalogLoader.vue","webpack:///src/components/_newDesign/common/loaders/PageCatalogLoader.vue","webpack:///./src/components/_newDesign/common/loaders/PageCatalogLoader.vue?da47","webpack:///./src/components/_newDesign/common/loaders/PageCatalogLoader.vue?0830","webpack:///./src/modules/accessControl/routes/users.ts","webpack:///./src/modules/accessControl/views/Groups.vue","webpack:///./src/modules/accessControl/views/Groups.vue?2111","webpack:///./src/modules/accessControl/views/Groups/GroupsCatalog.vue?b32a","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsCatalogHeader.vue?e475","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsCatalogHeader.vue","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsCatalogHeader.vue?328a","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsCatalogHeader.vue?1a6a","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsTable/GroupsTable.vue?0a0f","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsTable/GroupsTableRow.vue?1b33","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsTable/GroupsTableRow.vue","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsTable/GroupsTableRow.vue?4e63","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsTable/GroupsTableRow.vue?2368","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsTable/GroupsTable.vue","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsTable/GroupsTable.vue?bd80","webpack:///./src/modules/accessControl/components/Groups/GroupsCatalog/GroupsTable/GroupsTable.vue?dba1","webpack:///./src/modules/accessControl/components/Groups/modals/GroupsAddModal.vue?c9cf","webpack:///./src/modules/accessControl/components/Groups/forms/GroupsForm.vue?6e1d","webpack:///./src/components/_newDesign/common/inputs/AppUsersAutocomplete.vue?6b5e","webpack:///./src/components/_newDesign/common/inputs/AppUsersAutocomplete.vue","webpack:///./src/components/_newDesign/common/inputs/AppUsersAutocomplete.vue?8483","webpack:///./src/components/_newDesign/common/inputs/AppUsersAutocomplete.vue?96ad","webpack:///./src/modules/accessControl/components/Groups/forms/GroupsForm.vue","webpack:///./src/modules/accessControl/components/Groups/forms/GroupsForm.vue?0855","webpack:///./src/modules/accessControl/components/Groups/forms/GroupsForm.vue?0115","webpack:///./src/modules/accessControl/components/Groups/modals/GroupsAddModal.vue","webpack:///./src/modules/accessControl/components/Groups/modals/GroupsAddModal.vue?0935","webpack:///./src/modules/accessControl/components/Groups/modals/GroupsAddModal.vue?4500","webpack:///./src/modules/accessControl/components/Groups/modals/GroupsItemModal.vue?c6df","webpack:///./src/modules/accessControl/components/Groups/modals/GroupsItemModal.vue","webpack:///./src/modules/accessControl/components/Groups/modals/GroupsItemModal.vue?508d","webpack:///./src/modules/accessControl/components/Groups/modals/GroupsItemModal.vue?18ca","webpack:///./src/modules/accessControl/views/Groups/GroupsCatalog.vue","webpack:///./src/modules/accessControl/views/Groups/GroupsCatalog.vue?504c","webpack:///./src/modules/accessControl/views/Groups/GroupsCatalog.vue?b5aa","webpack:///./src/modules/accessControl/routes/groups.ts","webpack:///./src/modules/accessControl/views/Roles.vue","webpack:///./src/modules/accessControl/views/Roles.vue?3441","webpack:///./src/modules/accessControl/views/Roles/RolesCatalog.vue?86a6","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesCatalogHeader.vue?88df","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesCatalogHeader.vue","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesCatalogHeader.vue?a0ec","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesCatalogHeader.vue?e7cf","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesTable/RolesTable.vue?e78b","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesTable/RolesTableRow.vue?e1d5","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesTable/RolesTableRow.vue","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesTable/RolesTableRow.vue?b283","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesTable/RolesTableRow.vue?b440","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesTable/RolesTable.vue","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesTable/RolesTable.vue?bb30","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesTable/RolesTable.vue?0dce","webpack:///./src/modules/accessControl/components/Roles/modals/RolesAddModal.vue?8450","webpack:///./src/modules/accessControl/components/Roles/forms/RolesItemForm.vue?14cd","webpack:///./src/modules/accessControl/components/Roles/forms/RolesItemForm.vue","webpack:///./src/modules/accessControl/components/Roles/forms/RolesItemForm.vue?0a19","webpack:///./src/modules/accessControl/components/Roles/forms/RolesItemForm.vue?82c6","webpack:///./src/modules/accessControl/components/Roles/modals/RolesAddModal.vue","webpack:///./src/modules/accessControl/components/Roles/modals/RolesAddModal.vue?b6b6","webpack:///./src/modules/accessControl/components/Roles/modals/RolesAddModal.vue?b1f5","webpack:///./src/modules/accessControl/components/Roles/modals/RolesItemModal.vue?f86d","webpack:///./src/modules/accessControl/components/Roles/modals/RolesItemModal.vue","webpack:///./src/modules/accessControl/components/Roles/modals/RolesItemModal.vue?5722","webpack:///./src/modules/accessControl/components/Roles/modals/RolesItemModal.vue?04a4","webpack:///./src/modules/accessControl/views/Roles/RolesCatalog.vue","webpack:///./src/modules/accessControl/views/Roles/RolesCatalog.vue?fdf6","webpack:///./src/modules/accessControl/views/Roles/RolesCatalog.vue?9e01","webpack:///./src/modules/accessControl/routes/roles.ts","webpack:///./src/modules/accessControl/views/Permissions.vue","webpack:///./src/modules/accessControl/views/Permissions.vue?a8d5","webpack:///./src/modules/accessControl/views/Permissions/PermissionsCatalog.vue?d006","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsCatalogHeader.vue?f70c","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsCatalogHeader.vue","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsCatalogHeader.vue?83ae","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsCatalogHeader.vue?9454","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsTable/PermissionsTable.vue?d839","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsTable/PermissionsTableRow.vue?33d1","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsTable/PermissionsTableRow.vue","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsTable/PermissionsTableRow.vue?3243","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsTable/PermissionsTableRow.vue?9418","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsTable/PermissionsTable.vue","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsTable/PermissionsTable.vue?41fb","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsTable/PermissionsTable.vue?42a3","webpack:///./src/modules/accessControl/components/Permissions/modals/PermissionsAddModal.vue?15c0","webpack:///./src/modules/accessControl/components/Permissions/forms/PermissionsItemForm.vue?e04d","webpack:///./src/modules/accessControl/components/Permissions/forms/PermissionsItemForm.vue","webpack:///./src/modules/accessControl/components/Permissions/forms/PermissionsItemForm.vue?755a","webpack:///./src/modules/accessControl/components/Permissions/forms/PermissionsItemForm.vue?bbd0","webpack:///./src/modules/accessControl/components/Permissions/modals/PermissionsAddModal.vue","webpack:///./src/modules/accessControl/components/Permissions/modals/PermissionsAddModal.vue?57a1","webpack:///./src/modules/accessControl/components/Permissions/modals/PermissionsAddModal.vue?bbab","webpack:///./src/modules/accessControl/components/Permissions/modals/PermissionsItemModal.vue?8f55","webpack:///./src/modules/accessControl/components/Permissions/modals/PermissionsItemModal.vue","webpack:///./src/modules/accessControl/components/Permissions/modals/PermissionsItemModal.vue?8626","webpack:///./src/modules/accessControl/components/Permissions/modals/PermissionsItemModal.vue?de5d","webpack:///./src/modules/accessControl/views/Permissions/PermissionsCatalog.vue","webpack:///./src/modules/accessControl/views/Permissions/PermissionsCatalog.vue?f2fa","webpack:///./src/modules/accessControl/views/Permissions/PermissionsCatalog.vue?e97c","webpack:///./src/modules/accessControl/routes/permissions.ts","webpack:///./src/modules/administration/store/dashboard.ts","webpack:///./src/modules/accessControl/routes/index.ts","webpack:///./src/modules/accessControl/index.ts","webpack:///./src/modules/administration/store/dataProviders/dataProvidersCatalog.ts","webpack:///./src/modules/administration/store/dataProviders/dataProvidersDetails.ts","webpack:///./src/modules/administration/store/dataProviders.ts","webpack:///./src/modules/administration/store/dataProvidersSettings/dataProvidersSettingsCatalog.ts","webpack:///./src/modules/administration/store/dataProvidersSettings/dataProvidersSettingsDetails.ts","webpack:///./src/modules/administration/store/dataProvidersSettings.ts","webpack:///./src/modules/administration/store/categories/categoriesCatalog.ts","webpack:///./src/modules/administration/store/categories/categoryDetails.ts","webpack:///./src/modules/administration/store/categories.ts","webpack:///./src/modules/administration/store/userActions/userActionsCatalog.ts","webpack:///./src/modules/administration/store/userActions.ts","webpack:///./src/modules/administration/store/index.ts","webpack:///./src/modules/administration/views/Administration.vue","webpack:///./src/modules/administration/views/Administration.vue?23f5","webpack:///./src/modules/administration/views/UserActions.vue","webpack:///./src/modules/administration/views/UserActions.vue?2667","webpack:///./src/modules/administration/views/UserActions/UserActionsCatalog.vue?25c3","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsCatalogHeader.vue?133f","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsCatalogHeader.vue","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsCatalogHeader.vue?e4ec","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsCatalogHeader.vue?b03f","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTable.vue?5ac3","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTableRow.vue?a6c7","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTableRow.vue","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTableRow.vue?1132","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTableRow.vue?6d54","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTable.vue","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTable.vue?5d19","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTable.vue?fcab","webpack:///./src/modules/administration/views/UserActions/UserActionsCatalog.vue","webpack:///./src/modules/administration/views/UserActions/UserActionsCatalog.vue?0c6a","webpack:///./src/modules/administration/views/UserActions/UserActionsCatalog.vue?f0a4","webpack:///./src/modules/administration/routes/userActions.ts","webpack:///./src/modules/administration/views/Dashboard.vue?bd25","webpack:///./src/modules/administration/components/Dashboard/DashboardHeader.vue?d027","webpack:///./src/modules/administration/components/Dashboard/DashboardHeader.vue","webpack:///./src/modules/administration/components/Dashboard/DashboardHeader.vue?138c","webpack:///./src/modules/administration/components/Dashboard/DashboardHeader.vue?1a2d","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/DashboardChart.vue?60c7","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/tooltips/DashboardChartInfoTooltip.vue?08f4","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/tooltips/DashboardChartInfoTooltip.vue","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/tooltips/DashboardChartInfoTooltip.vue?6dae","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/tooltips/DashboardChartInfoTooltip.vue?aba5","webpack:///./src/modules/administration/services/dashboardColors.ts","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/DashboardChart.vue","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/DashboardChart.vue?5a55","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/DashboardChart.vue?9ebf","webpack:///./src/modules/administration/components/Dashboard/DashboardLabels.vue?54bd","webpack:///./src/modules/administration/components/Dashboard/DashboardLabels.vue","webpack:///./src/modules/administration/components/Dashboard/DashboardLabels.vue?f8c0","webpack:///./src/modules/administration/components/Dashboard/DashboardLabels.vue?8713","webpack:///./src/modules/administration/views/Dashboard.vue","webpack:///./src/modules/administration/views/Dashboard.vue?a192","webpack:///./src/modules/administration/views/Dashboard.vue?412a","webpack:///./src/modules/administration/routes/dashboard.ts","webpack:///./src/modules/administration/views/DataProviders.vue","webpack:///./src/modules/administration/views/DataProviders.vue?3a78","webpack:///./src/modules/administration/views/DataProviders/DataProvidersCatalog.vue?40f5","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersCatalogHeader.vue?0f23","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersCatalogHeader.vue","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersCatalogHeader.vue?2d46","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersCatalogHeader.vue?ebe5","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersTable/DataProvidersTable.vue?3751","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersTable/DataProvidersTableRow.vue?e1e9","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersTable/DataProvidersTableRow.vue","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersTable/DataProvidersTableRow.vue?f9e7","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersTable/DataProvidersTableRow.vue?476a","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersTable/DataProvidersTable.vue","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersTable/DataProvidersTable.vue?2f16","webpack:///./src/modules/administration/components/DataProviders/DataProvidersCatalog/DataProvidersTable/DataProvidersTable.vue?b37b","webpack:///./src/modules/administration/components/DataProviders/modals/DataProvidersAddModal.vue?8660","webpack:///./src/modules/administration/components/DataProviders/forms/DataProvidersItemForm.vue?9dc3","webpack:///./src/modules/administration/components/DataProviders/forms/DataProvidersItemForm.vue","webpack:///./src/modules/administration/components/DataProviders/forms/DataProvidersItemForm.vue?5fb2","webpack:///./src/modules/administration/components/DataProviders/forms/DataProvidersItemForm.vue?71c9","webpack:///./src/modules/administration/components/DataProviders/modals/DataProvidersAddModal.vue","webpack:///./src/modules/administration/components/DataProviders/modals/DataProvidersAddModal.vue?a268","webpack:///./src/modules/administration/components/DataProviders/modals/DataProvidersAddModal.vue?8026","webpack:///./src/modules/administration/components/DataProviders/modals/DataProvidersItemModal.vue?9006","webpack:///./src/modules/administration/components/DataProviders/modals/DataProvidersItemModal.vue","webpack:///./src/modules/administration/components/DataProviders/modals/DataProvidersItemModal.vue?86b8","webpack:///./src/modules/administration/components/DataProviders/modals/DataProvidersItemModal.vue?85d7","webpack:///./src/modules/administration/views/DataProviders/DataProvidersCatalog.vue","webpack:///./src/modules/administration/views/DataProviders/DataProvidersCatalog.vue?1f9a","webpack:///./src/modules/administration/views/DataProviders/DataProvidersCatalog.vue?8dd4","webpack:///./src/modules/administration/routes/dataProviders.ts","webpack:///./src/modules/administration/views/DataProvidersSettings.vue","webpack:///./src/modules/administration/views/DataProvidersSettings.vue?e02b","webpack:///./src/modules/administration/views/DataProvidersSettings/DataProvidersSettingsCatalog.vue?b42c","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsCatalogHeader.vue?e9b8","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsCatalogHeader.vue","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsCatalogHeader.vue?859a","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsCatalogHeader.vue?ea48","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsTable/DataProvidersSettingsTable.vue?5fe3","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsTable/DataProvidersSettingsTableRow.vue?6f35","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsTable/DataProvidersSettingsTableRow.vue","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsTable/DataProvidersSettingsTableRow.vue?7ae1","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsTable/DataProvidersSettingsTableRow.vue?61eb","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsTable/DataProvidersSettingsTable.vue","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsTable/DataProvidersSettingsTable.vue?ff3c","webpack:///./src/modules/administration/components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsTable/DataProvidersSettingsTable.vue?ecbc","webpack:///./src/modules/administration/components/DataProvidersSettings/modals/DataProvidersSettingsAddModal.vue?d134","webpack:///./src/modules/administration/components/DataProvidersSettings/forms/DataProvidersSettingsForm.vue?988a","webpack:///./src/modules/administration/components/DataProvidersSettings/forms/DataProvidersSettingsForm.vue","webpack:///./src/modules/administration/components/DataProvidersSettings/forms/DataProvidersSettingsForm.vue?de38","webpack:///./src/modules/administration/components/DataProvidersSettings/forms/DataProvidersSettingsForm.vue?1321","webpack:///./src/modules/administration/components/DataProvidersSettings/modals/DataProvidersSettingsAddModal.vue","webpack:///./src/modules/administration/components/DataProvidersSettings/modals/DataProvidersSettingsAddModal.vue?9268","webpack:///./src/modules/administration/components/DataProvidersSettings/modals/DataProvidersSettingsAddModal.vue?dd67","webpack:///./src/modules/administration/components/DataProvidersSettings/modals/DataProvidersSettingsItemModal.vue?b46a","webpack:///./src/modules/administration/components/DataProvidersSettings/modals/DataProvidersSettingsItemModal.vue","webpack:///./src/modules/administration/components/DataProvidersSettings/modals/DataProvidersSettingsItemModal.vue?ff8c","webpack:///./src/modules/administration/components/DataProvidersSettings/modals/DataProvidersSettingsItemModal.vue?6371","webpack:///./src/modules/administration/views/DataProvidersSettings/DataProvidersSettingsCatalog.vue","webpack:///./src/modules/administration/views/DataProvidersSettings/DataProvidersSettingsCatalog.vue?ded2","webpack:///./src/modules/administration/views/DataProvidersSettings/DataProvidersSettingsCatalog.vue?79ac","webpack:///./src/modules/administration/routes/dataProvidersSettings.ts","webpack:///./src/modules/administration/views/Maintenance.vue?4def","webpack:///./src/composables/useElHeight.ts","webpack:///./src/modules/administration/views/Maintenance.vue","webpack:///./src/modules/administration/views/Maintenance.vue?4e2d","webpack:///./src/modules/administration/views/Maintenance.vue?55ca","webpack:///./src/modules/administration/routes/maintenance.ts","webpack:///./src/modules/administration/views/Categories.vue","webpack:///./src/modules/administration/views/Categories.vue?9148","webpack:///./src/modules/administration/views/Categories/CategoriesCatalog.vue?540a","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogHeader.vue?a402","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogHeader.vue","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogHeader.vue?437a","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogHeader.vue?dcb7","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogTable/CategoriesCatalogTable.vue?c6d8","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogTable/CategoriesCatalogTableRow.vue?93e6","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogTable/CategoriesCatalogTableRow.vue","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogTable/CategoriesCatalogTableRow.vue?0e5c","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogTable/CategoriesCatalogTableRow.vue?77d8","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogTable/CategoriesCatalogTable.vue","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogTable/CategoriesCatalogTable.vue?3eeb","webpack:///./src/modules/administration/components/Categories/CategoriesCatalog/CategoriesCatalogTable/CategoriesCatalogTable.vue?cb44","webpack:///./src/modules/administration/views/Categories/CategoriesCatalog.vue","webpack:///./src/modules/administration/views/Categories/CategoriesCatalog.vue?8aa2","webpack:///./src/modules/administration/views/Categories/CategoriesCatalog.vue?2a48","webpack:///./src/modules/administration/views/Categories/CategoryNew.vue?fe1d","webpack:///./src/modules/administration/components/Categories/CategoryNew/CategoryNewHeader.vue?e832","webpack:///./src/modules/administration/components/Categories/CategoryNew/CategoryNewHeader.vue","webpack:///./src/modules/administration/components/Categories/CategoryNew/CategoryNewHeader.vue?9122","webpack:///./src/modules/administration/components/Categories/CategoryNew/CategoryNewHeader.vue?4105","webpack:///./src/modules/administration/components/Categories/forms/CategoriesItemForm.vue?d793","webpack:///./src/modules/administration/components/Categories/CategoryRulesTable/CategoryRulesTable.vue?e8f5","webpack:///./src/modules/administration/components/Categories/CategoryRulesTable/CategoryRulesTableRow.vue?47a5","webpack:///./src/modules/administration/components/Categories/CategoryRulesTable/CategoryRulesTableRow.vue","webpack:///./src/modules/administration/components/Categories/CategoryRulesTable/CategoryRulesTableRow.vue?8fbd","webpack:///./src/modules/administration/components/Categories/CategoryRulesTable/CategoryRulesTableRow.vue?c739","webpack:///./src/modules/administration/components/Categories/modals/CategoriesAddRuleModal.vue?ea2b","webpack:///./src/modules/administration/components/Categories/modals/CategoriesAddRuleModal.vue","webpack:///./src/modules/administration/components/Categories/modals/CategoriesAddRuleModal.vue?d5e7","webpack:///./src/modules/administration/components/Categories/modals/CategoriesAddRuleModal.vue?99d8","webpack:///./src/modules/administration/components/Categories/CategoryRulesTable/CategoryRulesTable.vue","webpack:///./src/modules/administration/components/Categories/CategoryRulesTable/CategoryRulesTable.vue?ea8d","webpack:///./src/modules/administration/components/Categories/CategoryRulesTable/CategoryRulesTable.vue?d39e","webpack:///./src/modules/administration/components/Categories/forms/CategoriesItemForm.vue","webpack:///./src/modules/administration/components/Categories/forms/CategoriesItemForm.vue?3d66","webpack:///./src/modules/administration/components/Categories/forms/CategoriesItemForm.vue?2f9e","webpack:///./src/modules/administration/components/Categories/CategoryNew/CategoryNewFooter.vue?9267","webpack:///./src/modules/administration/components/Categories/CategoryNew/CategoryNewFooter.vue","webpack:///./src/modules/administration/components/Categories/CategoryNew/CategoryNewFooter.vue?2960","webpack:///./src/modules/administration/components/Categories/CategoryNew/CategoryNewFooter.vue?b2c8","webpack:///./src/modules/administration/views/Categories/CategoryNew.vue","webpack:///./src/modules/administration/views/Categories/CategoryNew.vue?6cf4","webpack:///./src/modules/administration/views/Categories/CategoryNew.vue?e938","webpack:///./src/modules/administration/views/Categories/CategoryDetails.vue?0492","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsHeader.vue?49b0","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsHeader.vue","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsHeader.vue?a074","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsHeader.vue?b44d","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsFooter.vue?039f","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsFooter.vue","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsFooter.vue?609f","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsFooter.vue?08ba","webpack:///./src/modules/administration/views/Categories/CategoryDetails.vue","webpack:///./src/modules/administration/views/Categories/CategoryDetails.vue?f0cc","webpack:///./src/modules/administration/views/Categories/CategoryDetails.vue?aeb2","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsLoader.vue","webpack:///src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsLoader.vue","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsLoader.vue?a764","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsLoader.vue?5abe","webpack:///./src/modules/administration/routes/categories.ts","webpack:///./src/modules/administration/views/ClientBrandSettings.vue?719f","webpack:///./src/modules/administration/components/ClientBrandSettings/forms/ClientBrandSettingsForm.vue?8bb2","webpack:///./src/modules/administration/components/ClientBrandSettings/forms/ClientBrandSettingsForm.vue","webpack:///./src/modules/administration/components/ClientBrandSettings/forms/ClientBrandSettingsForm.vue?da4d","webpack:///./src/modules/administration/components/ClientBrandSettings/forms/ClientBrandSettingsForm.vue?3e64","webpack:///./src/modules/administration/components/ClientBrandSettings/ClientBrandSettingsFooter.vue?ef10","webpack:///./src/modules/administration/components/ClientBrandSettings/ClientBrandSettingsFooter.vue","webpack:///./src/modules/administration/components/ClientBrandSettings/ClientBrandSettingsFooter.vue?1afc","webpack:///./src/modules/administration/components/ClientBrandSettings/ClientBrandSettingsFooter.vue?867d","webpack:///./src/modules/administration/views/ClientBrandSettings.vue","webpack:///./src/modules/administration/views/ClientBrandSettings.vue?a5f8","webpack:///./src/modules/administration/views/ClientBrandSettings.vue?2697","webpack:///./src/modules/administration/routes/clientBrandSettings.ts","webpack:///./src/modules/administration/routes/index.ts","webpack:///./src/modules/administration/index.ts","webpack:///./src/services/notify/notify.service.ts","webpack:///./src/main.ts","webpack:///./src/models/AppRouter.ts","webpack:///./src/store/navigation.ts","webpack:///./src/modules/markups/views/MarkupDetails.vue?8b96","webpack:///./src/packages/hooks/useRoute.ts","webpack:///./src/store/client.ts","webpack:///./src/modules/providerTokens/components/ProviderTokensList/ProviderTokensListLoader.vue?2a82","webpack:///./src/modules/administration/components/Categories/CategoryDetails/CategoryDetailsLoader.vue?7341","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TargetingCell.vue?f97e","webpack:///./src/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsContent.vue?0936","webpack:///./src/modules/providerSettings/components/ProviderSettingsHeader.vue?236b","webpack:///./src/modules/markups/components/MarkupDetails/MarkupPeriodsTable/modals/MarkupPeriodsTableAddModal.vue?9f7a","webpack:///./src/services/modally/components/ModallyModalWrapper.vue?6c0d","webpack:///./src/modules/administration/components/Categories/modals/CategoriesAddRuleModal.vue?a574","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarNavMenu.vue?f8b5","webpack:///./src/modules/accessControl/components/Permissions/PermissionsCatalog/PermissionsCatalogHeader.vue?73ec","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignListItem.vue?5ec6","webpack:///./src/modules/accessControl/components/Roles/RolesCatalog/RolesTable/RolesTableRow.vue?9607","webpack:///./src/components/_newDesign/Campaigns/CampaignPageLoader.vue?f888","webpack:///./src/store/campaignEditor/campaignEditorGoals.ts","webpack:///./src/modules/accessControl/components/Groups/forms/GroupsForm.vue?7b60","webpack:///./src/store/reference.ts","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableShowArchiveRow.vue?f190","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignMainSettings/CampaignMainSettings.vue?9ad8","webpack:///./src/services/notify/NotifyRoot.vue?de7a","webpack:///./src/modules/accessControl/views/Roles/RolesCatalog.vue?f9b3","webpack:///./src/components/_newDesign/Brands/BrandList/BrandListItem.vue?bb16","webpack:///./src/packages/hn-table/src/components/HnTableCellWrapper.vue?ad2f","webpack:///./src/views/Campaigns/CampaignEditor.vue?0df4","webpack:///./src/layouts/Default.vue?e34c","webpack:///./src/components/_newDesign/App/AppRedesignNoticeCard.vue?988f","webpack:///./src/components/_newDesign/App/AppRedesignNoticeCard.vue","webpack:///./src/components/_newDesign/App/AppRedesignNoticeCard.vue?4370","webpack:///./src/components/_newDesign/App/AppRedesignNoticeCard.vue?a9f8","webpack:///./src/components/_newDesign/App/AppHeader.vue?6f64","webpack:///./src/components/_newDesign/App/AppHeader.vue","webpack:///./src/components/_newDesign/App/AppHeader.vue?116a","webpack:///./src/components/_newDesign/App/AppHeader.vue?cc4a","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBar.vue?0c24","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarLogo.vue?13a6","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarMenuItem.vue?76a6","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarMenuItem.vue","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarMenuItem.vue?6a38","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarMenuItem.vue?2540","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarLogo.vue","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarLogo.vue?898f","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarLogo.vue?9f3e","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarNavMenu.vue?6dd2","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarClient.vue?55df","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarClient.vue","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarClient.vue?02cd","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarClient.vue?c390","webpack:///./src/components/_newDesign/App/AppSideBar/AppSidebarNavMenuLoader.vue","webpack:///src/components/_newDesign/App/AppSideBar/AppSidebarNavMenuLoader.vue","webpack:///./src/components/_newDesign/App/AppSideBar/AppSidebarNavMenuLoader.vue?7abc","webpack:///./src/components/_newDesign/App/AppSideBar/AppSidebarNavMenuLoader.vue?aa10","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarNavMenu.vue","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarNavMenu.vue?27ea","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarNavMenu.vue?cfca","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarUserMenu.vue?c585","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarUserMenu.vue","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarUserMenu.vue?055a","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarUserMenu.vue?cfed","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarMinimizer.vue?b62b","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarMinimizer.vue","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarMinimizer.vue?8699","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBarMinimizer.vue?dc04","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBar.vue","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBar.vue?3cb0","webpack:///./src/components/_newDesign/App/AppSideBar/AppSideBar.vue?9673","webpack:///./src/components/_newDesign/App/AppFooter.vue?55bb","webpack:///./src/components/_newDesign/App/AppFooter.vue","webpack:///./src/components/_newDesign/App/AppFooter.vue?f577","webpack:///./src/components/_newDesign/App/AppFooter.vue?b255","webpack:///./src/components/_newDesign/App/AppBottomNavigation.vue","webpack:///./src/components/_newDesign/App/AppBottomNavigation.vue?d7cb","webpack:///./src/components/_newDesign/App/AppDefaultLoader.vue","webpack:///./src/components/_newDesign/App/AppDefaultLoader.vue?1e3e","webpack:///./src/modules/search/components/SearchSideBar.vue?1828","webpack:///./src/modules/search/components/SearchHeader.vue?2f04","webpack:///./src/modules/search/components/SearchHeader.vue","webpack:///./src/modules/search/components/SearchHeader.vue?3e32","webpack:///./src/modules/search/components/SearchHeader.vue?bb72","webpack:///./src/modules/search/components/SearchResult.vue?5a31","webpack:///./src/modules/search/components/SearchList/SearchList.vue?98bb","webpack:///./src/modules/search/components/SearchBreadcrumbs.vue?90a4","webpack:///./src/modules/search/components/SearchBreadcrumbs.vue","webpack:///./src/modules/search/components/SearchBreadcrumbs.vue?6a57","webpack:///./src/modules/search/components/SearchBreadcrumbs.vue?14cb","webpack:///./src/modules/search/components/SearchList/SearchListItem.vue?ff36","webpack:///./src/modules/search/components/SearchList/SearchListItem.vue","webpack:///./src/modules/search/components/SearchList/SearchListItem.vue?b7fd","webpack:///./src/modules/search/components/SearchList/SearchListItem.vue?1f09","webpack:///./src/modules/search/components/SearchList/SearchList.vue","webpack:///./src/modules/search/components/SearchList/SearchList.vue?d97a","webpack:///./src/modules/search/components/SearchList/SearchList.vue?c7dd","webpack:///./src/modules/search/components/SearchResult.vue","webpack:///./src/modules/search/components/SearchResult.vue?6795","webpack:///./src/modules/search/components/SearchResult.vue?176b","webpack:///./src/modules/search/components/SearchSideBar.vue","webpack:///./src/modules/search/components/SearchSideBar.vue?88c5","webpack:///./src/modules/search/components/SearchSideBar.vue?f896","webpack:///./src/services/notify/NotifyRoot.vue?fe7a","webpack:///./src/services/notify/components/NotifyListByPosition.vue?1b0b","webpack:///./src/services/notify/components/NotifyListItem.vue?638c","webpack:///./src/services/notify/components/NotifyListItem.vue","webpack:///./src/services/notify/components/NotifyListItem.vue?0816","webpack:///./src/services/notify/components/NotifyListItem.vue?7dfb","webpack:///./src/services/notify/components/NotifyListByPosition.vue","webpack:///./src/services/notify/components/NotifyListByPosition.vue?5b8a","webpack:///./src/services/notify/components/NotifyListByPosition.vue?1e1b","webpack:///./src/services/notify/NotifyRoot.vue","webpack:///./src/services/notify/NotifyRoot.vue?d66a","webpack:///./src/services/notify/NotifyRoot.vue?19a5","webpack:///./src/layouts/Default.vue","webpack:///./src/layouts/Default.vue?6d0b","webpack:///./src/layouts/Default.vue?8c3f","webpack:///./src/modules/administration/components/Dashboard/DashboardChart/DashboardChart.vue?8a48","webpack:///./src/modules/administration/components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTableRow.vue?5540","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTable.vue?2e22","webpack:///./src/modules/administration/components/DataProviders/forms/DataProvidersItemForm.vue?fc4b","webpack:///./src/modules/unapprovedPlacements/components/UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignList.vue?2c6f","webpack:///./src/components/_newDesign/Campaigns/CampaignPlacementEditor/PlacementEditorFlights/PlacementEditorFlights.vue?4b50","webpack:///./src/packages/hn-table/src/components/cells/HnTableDateCell.vue?da5f","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsCreateMarkupModal.vue?ac00","webpack:///./src/modules/factUpload/components/FactUploadWorkSteps.vue?00f8","webpack:///./src/components/_newDesign/common/inputs/AppClientsTreeView.vue?ca4b","webpack:///./src/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsPageLoader.vue?6267"],"names":["ModuleState","ModuleGetters","this","state","isLoading","redesignWorkflowNoticeIsShown","Getters","ModuleMutations","payload","value","Mutations","ModuleActions","commit","Actions","module","Module","getters","mutations","actions","createMapper","exports","Vue","use","Vuex","createStore","rootStore","strict","process","plugins","createPersistedState","key","paths","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","rootUiContext","rootUi","context","store","computed","updateIsLoading","val","dispatch","initEditors","placements","campaignEditorPlacementsStore","goals","campaignEditorGoalsStore","categories","campaignEditorCategoriesStore","settings","campaignEditorSettingsStore","campaign","campaignStore","editors","editorsHaveBeenChanged","values","some","editor","hasBeenChanged","campaignHasBeenChanged","isSaving","isCanceling","editorWithError","find","error","defaultState","forEach","campaignId","modally","show","title","content","message","status","defaultOptions","withConfirm","options","useCampaignEditorStore","modules","placementDetails","campaignEditorPlacementDetailsStore","createComposable","NOTIFY_ITEM_POSITION_DEFAULT","client","campaignUpdate","campaignPlacement","campaignConnector","campaignAdObject","brands","brand","brandId","updatedPlacements","campaignCategories","flatMap","category","filter","placement","metricsUpdatedAt","lastUpdatedPlacement","lodash","maxBy","moment","lastUpdateDate","startDate","utc","format","set","filters","withCategories","CampaignsApi","fetchCampaign","params","res","data","fetchCampaignInfo","clientId","ClientsApi","fetchClient","gtm","push","event","event_category","event_action","event_label","d1d_client_id","d1d_client_name","clientName","d1d_brand_id","d1d_brand_name","brandName","d1d_campaign_id","d1d_campaign_name","name","updateCampaignApproved","currentCampaign","newCampaign","CategoriesPlacements","CategoryId","PlacementsIds","updateCampaignCategoriesOrder","setCampaignCategories","fetchPlacement","fetchAdObject","fetchAdObjectWithLevel","isActive","updateCampaignActiveStatus","useCampaignStore","axiosInstance","axios","create","baseURL","headers","adapter","cacheAdapterEnhancer","defaults","enabledByDefault","setBaseUrl","path","setRequestInterceptor","interceptors","request","groupedByPosition","groupBy","notifications","entries","position","split","list","notificationId","Math","random","toString","Date","now","substr","CONVERSION_RATE_MODE_GOAL_SUM","CONVERSION_RATE_MODE_MAIN_GOAL","DEFAULT_CONVERSION_RATE_MODE","settingsUpdate","dataProviderAbilities","clientBrands","currentSettings","conversionRateCalculationMode","currentConversionRateMode","mainGoal","rules","check","currentConversionRateModeIsMainGoal","currentMainGoal","ruleWithError","CampaignEditorApi","fetchCampaignSettings","fetchClientBrands","GoalsSettingsApi","fetchGoals","newSettings","calculationSettings","campaignNameManual","brandIdManual","updateCampaignSettings","removeCampaignManualSettings","useCampaignEditorSettingsStore","dataUpdate","typeId","categoriesIds","currentData","newData","updateCampaignCategories","campaignTypeId","campaignCategoriesIds","useCampaignEditorCategoriesStore","placementForm","placementMarkups","markupsWithCostMap","markupId","placementMarkupsIsChanged","dataProviders","placementManualStates","markup","use1CPlan","currentPlacement","updatePlacement","newPlacement","hidden","updatedPlacement","placementId","MarkupsApi","fetchMarkups","setMarkup","fetchMarkup","index","deleteMarkup","config","CategoriesApi","fetchCategories","DataProvidersApi","fetchDataProviders","PlacementsApi","fetchManualStates","useCampaignEditorPlacementDetailsStore","oidc","useOidc","oidcToRefs","oidcIsAuthenticated","user","names","userName","first","last","email","image","permissions","isDP","isBU","signOutOidc","AccountsApi","fetchUser","useAuthStore","Promise","modallyRootShow","headerMinHeight","sideBarWidth","sideBarMinWidth","sideBarMinimaized","footerMinHeight","hasOwnProperty","obj","prop","call","currentClient","currentClientId","clientStoreContext","clientStore","campaignStoreContext","initWatchers","nextTick","watch","render","_vm","_h","$createElement","_c","_self","staticClass","withoutTitle","_e","attrs","_v","_l","num","staticRenderFns","props","type","default","rows","component","VSkeletonLoader","campaignPlacements","campaignPlacementsForm","changedPlacements","length","campaignPlanMetrics","planTotalMetrics","selectedPlanMetrics","planMetrics","filledPlanMetrics","planMetric","planMetricAlreadyExists","planMetricsWeightsMap","reduce","idx","sort","planMetricA","planMetricB","planMetricAWeight","planMetricBWeight","findIndex","splice","genders","regions","cappingPeriods","transmittances","incomeGroups","fetchPlacements","fetchCampaignPlanMetrics","save","updatePlacements","isError","AppJsonError","showingModal","firstChangedPlacemnents","slice","otherChangedPlacements","otherChangedPlacementsLength","firstChangedPlacemnentsDonboIds","danboId","join","result","TargetingsApi","fetchGenders","fetchCappingPeriods","fetchTransmittances","fetchIncomeGroups","fetchRegions","all","formData","uploadFlightsPlan","uploadPlacementPlan","buttons","text","color","outlined","action","updatedFilters","useCampaignEditorPlacementsStore","unapprovedPlacementsCount","count","UnapprovedPlacementsApi","fetchCountV2","useNavigationUnapprovedPlacementsStore","stack","toJSON","JSON","stringify","httpClient","get","post","connectorId","level","onSiteId","placementDanboId","put","delete","categoryId","TokensApi","FormData","append","tokenProviderId","tokenId","OrganizationsApi","GroupsApi","groupId","UsersApi","userId","dataProviderId","ProviderSettingsApi","providerId","DataProvidersSettingsApi","ServiceTypesApi","TaxonomyApi","MetricsCheckApi","UserActionsApi","RolesApi","roleId","PermissionsApi","permissionId","BenchmarkBoardApi","ReferenceApi","cache","MaintenanceApi","FactUploadApi","SearchApi","UserSettingsApi","min","max","isShown","query","queryLimit","every","flat","categoriesMap","clients","items","to","campaigns","iconsMap","paused","active","finished","item","icon","breadcrumbs","label","approved","running","acl","campaignName","hasBeenByDanboId","isDanboResult","newFilters","normalizedQuery","keyWord","search","useSearchStore","metricTypeExtensions","metricTypes","slug","toLowerCase","foundMetricType","metricType","metricTypeSlug","foundMetricTypeExtension","includes","getMetricType","fetchMetricTypes","useMetricTypesStore","scrollPositions","scrollPosition","auth","reference","navigationUnapprovedPlacements","useRootStore","ui","navigation","campaignEditor","initFilters","page","limit","totalCount","filtersChanged","clientIdx","updatedClient","isFavourite","fetchClientsV2","totalRows","addFavoriteClient","deleteFavoriteClient","useClientsStore","modalOptions","on","modalResolve","_b","tag","normalizedButtons","$event","$emit","subtitle","button","statusBtnColor","loading","disabled","onBtnClick","_s","_obj","class","_t","defineComponent","String","VCard","domProps","statusIcons","Number","setup","neutral","positive","warning","VBtn","VIcon","modallyRootOnShow","components","ModallyWrapper","ModallyHeader","ModallyBody","ModallyFooter","Array","toRefs","statusBtnColors","emit","defaultModalConfigs","alert","confirm","ref","loadingButtonIdx","someButtonsIsLoading","buttonIsLoading","modalType","modalButtons","ModallyModal","VDialog","parsenv","env","isBoolean","isNumeric","isNaN","parseFloat","envIsBoolean","envIsNum","parse","confique","Proxy","target","undefined","startsWith","envName","substring","parsedValue","configuration","commitSha","backendUrl","handsontableLicenseKey","confiqueInstance","prototype","$configuration","router","root","$router","script","authStoreContext","authStore","AppView","useRouter","route","useRoute","sourceUrl","source_url","replace","immediate","$route","clientsIsLoading","clientsFiltersStateOptions","model","callback","$$v","activeState","expression","directives","rawName","modifiers","preventDefault","currentTarget","scopedSlots","_u","fn","btnHover","hover","_g","unapprovedPlacementsPath","favoriteStatusIsLoading","toggleFavoriteStatus","useClientStore","clientIsLoading","activeCampaigns","getBrandActiveCampaigns","activeCampaignsIsFetched","activeCampaignsIsLoading","fetchActiveCampaigns","finishedCampaigns","getBrandFinishedCampaigns","finishedCampaignsCount","getBrandFinishedCampaignsCount","finishedCampaignsIsFetched","finishedCampaignsIsLoading","fetchFinishedCampaigns","activeBrands","archiveBrands","activeBrandsCount","archiveBrandsCount","DTooltip","required","clientsStore","useClientPaths","useClientBrands","visibleBrandsLimit","visibleBrands","hiddenBrands","hiddenBrandsCount","brandNames","TOGGLE_CLIENT_IS_FAVORITE","VHover","VListItem","VListItemAction","VListItemContent","VList","VListItemSubtitle","VListItemTitle","ClientListItem","onIntersect","observer","isIntersecting","NEXT_PAGE","VProgressCircular","Intersect","ClientList","DSelectInline","ClientCatalogContent","useLayoutLoadingStatus","clientsFilters","clientsFiltersChanged","UPDATE_FILTERS","fetchClients","FETCH_CLIENTS","resetClientsFilters","RESET_FILTERS","init","eventLabels","archive","queryFilters","toggle","autoShowArchive","isOpen","visibleCampaigns","brandIsActive","staticStyle","archiveIsOpen","proxy","metricCells","$slots","isExpanded","expand","metricsPlan","metricsTotal","$attrs","handler","rootMargin","metricCell","metric","planInsteadProgress","disabledTooltip","total","formattedFact","formattedPlan","onlyFact","percent","progressProps","numbro","registerLanguage","numbroRuLanguage","setLanguage","getFilledFormatOptions","inputFormatOptions","pickBy","presetsMap","Map","addPreset","preset","presetName","presetOptions","normalizeFormatOptionsForNumbro","filledFormatOptions","omit","numberFormatter","inputValue","inputFormat","defaultFormatOptions","mantissa","optionalMantissa","thousandSeparated","formatOptions","numbroFormatOptions","presetFormatOptions","prefix","postfix","separated","spaceSeparated","formattedPrefix","formattedPostfix","formattedValue","clearEmptyFormatOptions","reset","clear","DTableCell","Boolean","numatter","plan","fact","VProgressLinear","DTableRow","MetricsTableMetricCell","isIntersect","filledMetricCells","DTable","MetricsTableRow","campaignIsActive","coloredMetricCells","$acl","toggleCampaignApprovedStatusIsLoading","campaignIsApproved","toggleCampaignApprovedStatus","formattedStartDate","formattedEndDate","endDate","start","startOf","end","endOf","valueOf","elapsed","onRootClick","textMap","campaignPageTitle","isDetails","actionValue","DTableCellSpacer","BrandListItemTableDescCell","BrandListItemTableApprovedCell","MetricsTablePeriodCell","useCampaignApprovedStatus","MetricsTable","BrandListItemTableRow","sortable","withoutHead","rowNum","columnNum","columns","BrandListItemTable","BrandListItemTableShowArchiveRow","TableLoader","useClientBrandCampaignList","open","BrandListItem","inject","BrandList","createFiltersState","routeQuery","filtersStateMap","createQueryFilters","queryMap","checkQueryEntry","queryEntryIsEmpty","isArray","filtersState","setQueryFilters","updateQueryFilters","newValue","setQueryFiltersViaFiltersState","debounce","newQueryFilters","oldValueIsEqualNewValue","isEqual","routeReplace","changeMeta","isRef","ClientDetailsContent","useQueryFilters","provide","useClientDetails","goTo","offset","clientMeta","fetch","useMeta","ListLoader","routeConfig","Clients","children","ClientCatalog","meta","loader","ClientCatalogLoader","ClientDetails","ClientDetailsLoader","routerViewProps","modalsMap","$set","campaignEditorPath","nativeOn","onCampaignEditorBtnClick","apply","arguments","DBreadcrumbs","metrics","campaignLastUpdateDate","periodMetricItem","descr","metricsWithProgress","metricItem","plural","words","floor","abs","cases","wordIdx","currentWord","withCount","withProgress","CampaignMetricsItem","metricsData","diff","remained","remainingDays","duration","asDays","formattedRemainingDays","formattedPeriod","defaultMetricItems","metricNames","titles","Cost","metricName","Chart","register","LineController","CategoryScale","LinearScale","LineElement","PointElement","TimeScale","Legend","Tooltip","ChartDataLabels","visibleMetricNames","metricsParams","Impressions","infoPosition","Clicks","CR","chartInstance","shallowRef","chartCanvasEl","createChart","chartCanvasElContext","getContext","datasets","yAxisID","fill","backgroundColor","pointBackgroundColor","pointHoverBackgroundColor","borderColor","borderWidth","responsive","maintainAspectRatio","elements","point","radius","hoverRadius","hoverBorderWidth","scales","x","grid","display","time","displayFormats","day","tooltipFormat","minUnit","ticks","autoSkipPadding","padding","acc","beginAtZero","maxTicksLimit","legend","datalabels","tooltip","enabled","intersect","mode","callbacks","tooltipContext","formatedMetrics","datasetIndex","raw","y","external","tooltipEl","document","getElementById","createElement","canvas","parentNode","appendChild","opacity","className","yAlign","classList","add","xAlign","body","titleLines","bodyLines","bodyItem","lines","createHead","createBody","i","colors","labelColors","style","innerHtml","innerHTML","positionY","offsetTop","positionX","offsetLeft","left","caretX","offsetWidth","top","caretY","offsetHeight","updateChart","currentChartInstance","dateMetricsList","sortBy","date","dataset","dateMetrics","mDate","toDate","update","onMounted","expanded","updateExpanded","openCategoriesOrderModal","openModal","categoriesOrder","placementsOrder","campaignCategory","onFirstCellClick","categoryPath","stopPropagation","openCategoryPlacementsOrderModal","activePlacementsCount","activePlacements","campaign_id","comment","placementType","placementPath","placementStatus","userCanViewSubDanboiIds","siteName","placementInfo","metricsDataProviders","metricDataProvider","section","adPlace","hasMarkup","canSetupMarkup","onClick","d1d_danbo_id","InfoCell","MarkupCell","TargetingCell","TypeCell","close","$listeners","slotProps","VueDraggable","AppModal","categoriesOrderHasBeenChanged","currentCampaignCategory","placementsOrderHasBeenChanged","currentCampaignPlacement","CampaignCategoriesTableRow","CampaignPlacementsTableRow","CampaignCategoriesOrderModal","CampaignPlacementsOrderModal","categoryIdx","scrollToPlacement","presets","customPresets","campaignFilters","DDatePeriodPickerInline","btnClass","campaignStartDate","campaignEndDate","from","yesterday","reports","report","selectReport","downloadFile","fetcher","url","responseType","fileUrl","window","URL","createObjectURL","Blob","fileLink","fileName","href","setAttribute","click","remove","revokeObjectURL","DBtnInline","eventLabel","createReportPath","reportSlug","downloadReport","periodFrom","periodTo","VMenu","CampaignMetrics","CampaignChart","CampaignCategoriesTable","CampaignDateFilterBtn","CampaignDownloadReportBtn","categoriesFormIsValid","categoriesFormData","saveError","canSaveCategories","closeBtnIsDisabled","saving","isAxiosError","isValid","taxonomyClientCategories","taxonomyClientCategoriesIsDisabled","taxonomyClientCategoriesIsLoading","taxonomyClientCategoriesIdsRules","currentTaxonomyClientCategoriesIds","taxonomyBrandCategories","taxonomyBrandCategoriesIsDisabled","taxonomyBrandCategoriesIsLoading","taxonomyBrandCategoriesIdsRules","currentTaxonomyBrandCategoriesIds","taxonomyCampaignTypes","taxonomyCampaignTypesIsDisabled","taxonomyCampaignTypesIsLoading","taxonomyCampaignTypeIdRules","currentTaxonomyCampaignTypeId","currentTaxonomyCampaignCategoriesIds","sortFilter","sortedCategories","selectedCategories","DTreeView","sortMethod","methods","alphabet","orderBy","checked","preSortedList","isSelected","child","sortCategories","VRadio","VRadioGroup","DAutocomplete","AppBrandCategoriesTreeView","valid","rootRef","resetValidation","updateSettings","clientCategoriesIds","fetchTaxonomyClientCategories","fetchClientCategories","brandCategoriesIds","fetchTaxonomyBrandCategories","fetchBrandCategories","fetchTaxonomyCampaignTypes","fetchCampaignTypes","VForm","CampaignDetailsCategoriesEditForm","categoriesFormRef","clientBrand","categoriesFormResetValidation","newCategories","savingIsDone","messages","response","errors","VAlert","modals","CampaignDetailsHeader","CampaignDetailsContent","CampaignDetailsCategoriesEditModal","useModals","useCampaignDetails","pageMeta","categoriesIsEdit","categoryName","displayableMetrics","categoryPlacementsLastUpdate","metricTypesStore","canBePlanned","CampaignPlacementsTable","lastModifiedItem","_","CampaignCategoryHeader","CampaignCategoryContent","placementEditorPath","marker","tabs","dataProviderName","campaignPlacementLastUpdate","actualDisplayableMetricsNames","allMetricsTotalNames","Set","activeTabIdx","tab","VTab","VTabs","MetricsTableSimple","CampaignTabs","updatedAt","sources","source","dataProviderType","a","b","localeCompare","CampaignPlacementHeader","CampaignPlacementContent","campaignConnectorLastUpdate","uniqTypes","adObjects","addObject","CampaignConnectorHeader","CampaignConnectorContent","adObject","parentAdObject","connectorName","adObjectLastUpdate","CampaignAdObjectHeader","CampaignAdObjectContent","cancel","searchIsShown","VTextField","saveBtnDisabled","uploadFiles","reportLoadingsMap","eventAction","reportsLoadingsMap","DBtnUpload","CampaignPlacementsReportsModal","CampaignPlacementsUploadFilesModal","campaignEditorStore","filesButttonsIsShown","CampaignEditorHeader","CampaignEditorContent","CampaignEditorFooter","beforeRouteEnter","next","vm","$store","beforeRouteLeave","customNext","campaignPath","redirectCallback","redirect","placementsIsHidden","currentColumnsPresetsSlugs","onChangeCurrentColumnsPresetsSlugs","openMetricsModal","visibleCampaignPlanMetrics","placementsHasBeenChanged","onChangePlacementsTable","markups","campaignEditorPlacementsEmitter","mitt","hnTableColumns","hnTableSettings","columnsPresetsMap","cuurentColumnsPresetsSlugs","onHnTableInitialized","hotTableKey","hotSettings","hotColumn","rendererComponent","hotColumns","assign","editorComponent","HnTableCellClassName","table","coords","cellMeta","getCellMeta","row","col","classListIncludesClassName","newClassList","setCellMeta","HotTable","HotColumn","dataHasBeenChanged","columnsPresetsSlugs","useConfiguration","rootEl","hotTableComponent","hotTableInitialized","hotTableHeight","hotTableColumnSortingConfig","hotTableChangedCells","hotInstance","instance","column","header","hotData","cellsWidthsMap","hiddenColumnsData","hotHeaders","hotTableViewportColumnRenderingOffset","fixedColumnsLeft","fixedColumnsRight","viewportColumnRenderingOffset","hiddenColumns","currentHotInstance","disabledPresets","colProps","hiddenColIndexes","propToCol","setHotData","cloneDeep","refreshHotData","updateHotData","loadData","hotTableCellsHighlightEnable","localHotInstance","cell","hnTableCellClassName","hotTableCellsHighlightDisable","setTimeout","prevVal","hiddenColumnsPlugin","getPlugin","showColumns","hideColumns","setHotTableHeight","device","browser","height","parentEl","HTMLElement","parentElClientRect","getBoundingClientRect","parentElHeight","getFixedCellsWidthsMap","columnsLength","rightColumnsRange","leftPosition","rightPosition","cellIdx","parseInt","addFixedCellStyles","cellEl","fixedCellsWidthsMap","fixedColumnsRightWithBorder","direction","zIndex","maxIdx","idxA","idxB","borderLeft","generateCellsWidthsMap","tableData","getData","rowIdx","cellValue","cellVisualIdx","toVisualColumn","getCell","scrollWidth","hnTableValidateCells","isDestroyed","validateCells","afterLoadData","columnSorting","afterGetColHeader","args","th","columnHeader","cssText","afterColumnSort","destinationSortConfigs","beforePaste","pasteData","currentRow","startRow","currentCol","startCol","rowValue","cellType","beforeChange","changes","filteredChanges","oldValue","valuesAreEqual","leastOneValueIsFilled","afterChange","afterRender","isForced","afterRenderer","td","licenseKey","colHeaders","autoRowSize","autoColumnSize","currentRowClassName","invalidCellClassName","readOnlyCellClassName","onBeforeUnmount","destroy","isRenderer","rendererValue","textFieldValue","onTextFieldChange","onTextFieldKeyDown","datePickerValue","onDatePickerChange","hnTbaleCellWrapperProps","rootElClasses","isEditor","isVisible","extend","textAlign","readonly","cellRow","invalid","isFirstCol","isLastCol","cellHasBeenEdited","base","classes","HnTableCellWrapper","extends","BaseEditorComponent","TD","cellProperties","originalValue","editorStyle","width","editorInputFocusActionName","cellIsInvalid","$nextTick","setCellRowWatch","setCellIsInvalidWatch","removeHook","addHook","prepare","appEl","contains","$el","tdPosition","pageXOffset","pageYOffset","beginEditing","focus","input","$refs","editorInput","inputFocusAction","setValue","getValue","DDatePicker","mixins","HnTableCellMixin","textFieldFormat","datePickerFormat","momentDate","valueIsValidDate","editorValue","getDate","finishEditing","keyCode","Handsontable","helper","KEY_CODES","ESCAPE","ENTER","hnTableCellEditorEl","selectItems","multiple","hideSelected","itemText","itemValue","onSelectInput","DSelect","Function","normalizedValue","intersectionItems","hnTableColumnCustomCellTypesMap","stub","hnTableColumnCellTypesMap","number","select","checkbox","cellTypes","registerCellType","hnTableColumnCellText","hnTableColumnCellDefault","hnTableColumnCells","dateFormat","settingsToProps","setting","HnTableDateCell","HnTableSelectCell","readOnly","disableVisualSelection","skipColumnOnPaste","HnTableStubCell","getColumnCell","getColumnHeader","cellHeader","getColumnSettings","cellSettings","placeholder","getColumnProps","providedProps","getColumnComponents","cellRendererComponent","cellEditorComponent","renderer","hnTableColumnGenerators","validator","validatorOptions","visualRow","gteValue","$gte","getDataAtRowProp","lteValue","$lte","gteStatus","isSameOrAfter","lteStatus","isSameOrBefore","HnTableColumn","generator","toggleVisible","campaignPlacementEditorPath","onCampaignPlacementEditorLinkClick","tooltipIsShown","placementComment","flightsCount","cellPropertiesRow","placementIsHidden","initPlacement","beforeDestroy","closeTooltip","setDataAtCell","emitter","factValue","factIsShown","currentValue","planIsShown","factTotalMetrics","totalMetricValue","tooltipTextComputed","tooltipText","onChange","foundText","beforeKeyDown","selected","getSelected","selectedRow","selectedCol","VCheckbox","H_TABLE_INSTANCE","validateTargetingAge","HnTable","tableEl","userIsDp","userIsBu","newSlugs","categorySelectOptions","dataProviderSelectOptions","rowData","getSourceDataAtRow","preferredDataProviderId","numericFormat","pattern","PlacementsTableMarkupsCell","targetings","allowInvalid","PlacementsTableSourceCell","metricTypeAccuracy","getMetricTypeProp","displayName","allowEmpty","PlacementsTableMetricCell","PlacementsTableInfoCell","PlacementsTableApprovedCell","localHnTableInstance","changesWithoutGetPlanFrom1C","changedRowsWithoutGetPlanFrom1C","uniqueChangedRowsWithoutGetPlanFrom1C","sourceData","getSourceData","changedRows","uniqueChangedRows","physicalRow","rowIndexMapper","getPhysicalFromVisualIndex","clientHeight","tableHeight","refreshDimensions","withoutHeader","selectedPlanMetricsNames","planMetricOption","visiblePlanMetrics","planMetricsOptions","VListItemGroup","connectorsMenuIsOpen","dataProvider","openCreateModal","markupsDataProvider","markupsWithCost","openAddModal","multiplier","rawCost","cost","deletion","deletePeriod","notifyStoreContext","notifyStore","period","isOnlyOne","notify","calculatedRawCost","calculatedCost","campaignEditorPlacementStore","deleting","currentStartDate","currentMultiplier","saveBtnIsDisabled","DDatePickerTextField","campaignEditorPlacementsDetailsStore","maxMarkupPeriodStartDate","markupPeriodsStartDates","newMarkupPeriod","toISOString","MarkupPeriodsTableRow","MarkupPeriodsTableFooterRow","MarkupPeriodsTableAddModal","MarkupsPeriodsTable","getMarkupWithCost","newMarkup","ColumnPresetSlugs","PlacementsMarkup","CampaignPlacementsCreateMarkupModal","currentDate","filteredDataProviders","selectedDataProvidersIds","markupsIsChanged","CampaignEditorTableLoader","CampaignPlacementsMetricsModal","CampaignPlacementsMarkupsModal","Settings","visiblePlacements","hiddenPlacements","placementsFilter","metricsBtnIsShown","PlanMetrics","visibilityPlacements","filteredPlacements","targeting","interests","columnsPresets","Targetings","FactMetrics","refetchPlacements","normalizedPayload","VDivider","VItem","VItemGroup","refresh","onAddModalAdded","getGoalHasBeenChanged","providerName","providerSettingsName","deleteGoal","useCampaignEditorGoalsStore","goal","changedGoals","providerSettingsId","currentDataProvider","dataProviderSettings","currentDataProviderSettings","schemaIsLoading","schema","schemaErrors","onCurrnetSettigsAutoPostBack","onCurrentSettingsValidate","ajax","autopostback","redesign","editorHeight","jsonEditorInstance","isAutoPostBack","rootStyle","schemaComputed","properties","deep","attachEditor","setEnabled","destroyEditor","onMutateRootEl","mutation","clientRect","onMutateEditorEl","theme","iconlib","required_by_default","disable_collapse","disable_edit_json","disable_properties","disable_array_reorder","disable_array_delete_last_row","show_errors","startval","JSONEditor","jsonEditorEl","onAutoPostBack","attached","ready","enable","disable","validate","Mutate","JsonEditor","currentSettingsErrors","fetchSchema","settingGoalAsString","rawSettingGoal","settingGoal","newObj","GoalsTable","GoalsAddModal","modalSlug","campaignTypes","referenceStoreContext","referenceStore","campaignSelectedCategories","onChipClickClose","itemGroup","rootItem","toggleExpandRootItem","rootItemIsOpen","childItem","expandedRootItemIds","brandCategories","getSelectedCategories","categoryGroups","firstChars","groups","char","rootItemId","foundIdx","VChip","CampaignCategorySettings","CampaignCategories","CampaignEditorCategoriesLoader","resetManualSettings","campaignBrand","_m","campaignProjectCode","campaignIsActiveOptions","DRadioInline","projectCode","currentDataProviderId","dataProviderModes","goalsIsLoading","currentGoal","modes","filteredGoals","newGoal","fetchGoalsNew","conversionRateModeValue","CampaignMainSettings","CampaignConversionRate","CampaignEditorSettingsLoader","showPlacement","placementHasBeenChanged","breadcrumb","placementManualStateSelectOptions","referenceDataIsLoading","placementManualState","fieldsColumn","colIdx","field","fieldIdx","slots","appendItem","listeners","unshift","changePlacement","manualState","1","2","3","placementFieldsColumns","DInputInline","subsection","returnObject","getPlanFrom1C","change","cutOffMetrics","fetchReferenceData","addPlacementPlanFlight","visiblePlacementPlanMetrics","planHasBeenChanged","onPlacementFlightsTableChange","placementFlights","rowNumber","isDeletable","onDeleteBtnClick","placementPlanFlightsCount","placementFlightsTableEmitter","metricTypesStoreContext","placementPlanMetrics","flights","maxFlightPlanDate","flightPlansEndDates","flightPlan","getHnTableSourceData","generatePlacementPlanUpdate","addFlightPlan","vat","newPlacementPlan","documentElement","scrollHeight","deleteFlightPlan","FlightsTableNumberCell","FlightsTableDeleteCell","PlacementFlightsTable","CampaignPlanMetricsModal","PlacementEditorInfo","PlacementEditorFlights","CampaignPlacementEditorHeader","CampaignPlacementEditorContent","CampaignPlacementEditorFooter","navigationStore","useNavigationStore","prevRoutePath","defaultPath","prevRoute","getPrevRoute","campaignCatalogRoutes","campaignDetailsRoutes","CampaignDetails","CampaignPageLoader","campaignCategoryRoutes","CampaignCategory","campaignPlacementRoutes","otherQuery","CampaignPlacement","permission","campaignConnectorRoutes","CampaignConnector","campaignAdObjectRoutes","CampaignAdObject","campaignEditorRoutes","CampaignEditor","CampaignEditorPlacements","CampaignEditorPageLoader","footer","linksOnRight","CampaignEditorGoals","CampaignEditorCategories","CampaignEditorCategoriesPageLoader","CampaignEditorSettings","CampaignEditorSettingsPageLoader","campaignPlacementsRoutes","CampaignPlacements","CampaignPlacementEditor","CampaignPlacementEditorLoader","Campaigns","navigationStoreContext","VueRouter","routes","Auth","order","beforeEnter","userEmail","pathToForm","AccessDenied","visible","NotFound","scrollBehavior","savedPosition","afterEach","app","$gtm","fullPath","origin","location","OIDC_SIGN_IN_URI","OIDC_SIGN_OUT_URI","OIDC_SILENT_SIGN_IN_URI","createOidc","authority","client_id","response_type","scope","redirect_uri","post_logout_redirect_uri","silent_redirect_uri","pluginInit","useDefaultRoutes","VueCompositionAPI","VueMeta","refreshOnceOnNavigation","Sentry","release","dsn","autoSessionTracking","integrations","Integrations","attachProps","maxValueLength","beforeSend","exception","exceptionValues","parsedException","parsedExceptionError","baseUrl","oidcAccessToken","Authorization","rectWidth","rectHeight","rectX","rectRX","rectRY","navigationCurrentClientContext","navigationCurrentClient","currentClientName","widthMax","widthMin","charWidth","trim","navigationUnapprovedPlacementsContext","img","VImg","Vuetify","customProperties","icons","ProjectLogoIcon","ClientIcon","UserIcon","PlayIcon","AppsIcon","SellIcon","PlacementsCheckIcon","instances","w","d","s","l","getTime","f","getElementsByTagName","j","dl","async","src","insertBefore","gtmInstances","initScript","gtmService","normalizeData","defaultValuesMap","d1d_user_id","d1d_user_access","roles","normalizedData","trimValue","param","dataLayer","userPermissions","indexOf","needed","need","requiredFiles","require","filePath","layoutNamePostfix","pop","componentName","upperFirst","camelCase","layoutName","endsWith","componentConfig","layout","bowserParser","Bowser","getParser","navigator","userAgent","os","getOSName","getBrowserName","$device","PortalVue","generatePresetFromMetricType","defaultFormatOptionsMap","postfixes","Money","Percent","outputs","TimeSpan","defaultPostfix","defaultOutput","output","accuracy","filledPresetOptions","metricTypePreset","responseMessagesChecks","getMessages","detail","errorMessages","supportLink","normalizeBaseError","defaultMessage","normalizeResponsedError","errorResponse","errorStatus","statusesTranslations","400","403","404","500","statusTranslation","responseMessagesCheckItem","responseMessages","normalizeError","payloadError","modalData","sendingSentry","mergedOptions","AppCustomError","handle","normalizedError","extra","parseError","addEventListener","promise","catch","errorHandler","parsedError","console","$","select2","hexToRgb","h","r","g","generateRgbVar","colorRgb","setProperty","createRgbVarsForThemes","themes","isObject","colorKey","metaInfo","useConfigMeta","userSignedIn","defaultLayout","parent","$vuetify","moduleInit","ctx","registerModule","campaignPlacementsMap","fetchCampaignsV2","searchQuery","fetchPlacementsByCampaignV2","useUnapprovedPlacementsStore","unapprovedCampaigns","_k","navigationUnapprovedPlacementsStore","unapprovedPlacementsStore","searchIsDisabled","approvedByPlanning","approvedByBuying","placementInfoIsShown","approvedBy","UnapprovedPlacementsTableInfoCell","UnapprovedPlacementsTableCheckCell","UnapprovedPlacementsTableRow","scrollToId","scrollToEl","UnapprovedPlacementsTable","getCampaignPlacements","UnapprovedPlacementsCampaignListItem","campaignsIsLoading","UnapprovedPlacementsCampaignList","UnapprovedPlacementsHeader","UnapprovedPlacementsContent","unapprovedCampaignsFilters","unapprovedCampaignsFiltersChanged","searchQueryIsChanged","FETCH_CAMPAIGNS","UnapprovedPlacements","group","size","custom","UnapprovedPlacementsLoader","addRoutes","tokens","tokenProviders","selectedTokenProvider","defaultFilters","fetchTokens","fetchTokenProviders","createToken","addToken","deleteToken","useProviderTokensStore","loadNextPage","tokensFiltersAreEnabled","providerTokensStore","creationDate","expirationDate","formatDate","createdOn","ProviderTokensListTableRow","ProviderTokensListHeader","TokensListTable","tokensFilters","filtersAreEnabled","provider","onProviderClick","customTokenModaIsShown","token","tokenJson","ProviderTokensCustomModal","test","oAuthURL","errorMessage","sendToken","hash","history","replaceState","ProviderTokens","ProviderTokensList","ProviderTokensListLoader","sticky","ProviderTokensNew","ProviderTokensNewLoader","ProviderTokensCallback","failedOnly","providersSettings","selectedProviderSettings","providers","providersIsLoading","tokensIsLoading","statisticsCollection","statisticsCollectionIsLoading","modalIsShow","saveIsLoading","fetchProviderSettings","fetchProvider","deleteProvider","fetchProviders","fetchStatisticsCollectionDepths","setProvider","useProviderSettingsStore","providerSettingsFiltersChanged","createSetting","filterItems","providerSettingsStore","statusIcon","editSetting","deleteSetting","finishedWithError","available","inProgress","iconKey","ProviderSettingsTableRow","isEdit","tokensLabel","tokensIsDisabled","statisticsCollectionDepth","settingSchema","connectorSettingsLoading","onSettingSchemaValidate","connectorSettings","settingSchemaLoadedWithError","settingSchemaErrorMessages","saveIsDisabled","settingSchemaValidateErrors","brandsOtherText","isTokenRequired","connectorSettingsIsEmpty","onError","loadSettingSchema","jsonReplacer","brandIds","statistic","successText","ProviderSettingsHeader","ProviderSettingsTable","ProviderSettingsItemModal","providerSettingsFilters","ProviderSettings","ProviderSettingsPageLoader","markupIsLoading","markupPeriods","useMarkupDetailsStore","markupsTotalCount","ceil","maxPage","pageIsLast","sortFilters","markupsHaveBeenFiltered","by","sortDesc","desc","fetchParams","pageIsFirst","nextPage","newPayload","markupDetails","useMarkupsStore","byPlacement","markupsStore","markupsIsLoading","onUpdateOptions","pathToMarkup","placementName","MarkupsTableRow","markupStore","wrapperEl","querySelector","scrollTop","newVal","oldVal","currentBrand","placementSelectItems","placementsIsLoading","currentPlacementId","dataProvidersIsLoading","fetchCampaigns","fetchCampaignsByBrand","fetchPlacementsByCampaign","rawDataProviders","dataProviderA","dataProviderB","MarkupsCatalogHeader","MarkupsTable","MarkupsAddModal","markupsParams","markupsPlacement","fields","placementStartDate","placementEndDate","statisticsMinDate","statisticsMaxDate","markupDetailsStore","onPush","MarkupDetailsHeader","MarkupDetailsInfo","MarkupPeriodsTable","Markups","MarkupsCatalogLoader","MarkupsCatalog","MarkupDetailsLoader","MarkupDetails","problemItems","onUploadFactBtnClick","uploadFact","uploadIsSuccess","DAccordion","uploadIsError","resetUploadStatuses","uploadFile","FactUploadWorkSteps","FactUploadAfter","FactUpload","totalByDataProvider","rawTotalByDataProvider","serachQuery","totalMetricsNames","allDataProvidersMetricsNames","allDataProvidersNames","fetchTotal","succeseded","useMetricsCheckStore","tableIsShown","searchParamsChanged","metricsNames","formatPeriod","minDate","maxDate","dataProviderIdx","markupByDataProvider","markupIdx","formatMetric","metricsCheckStore","dataProvidersNames","providerHeaders","MetricsCheckTable","MetricsCheck","users","fetchUsers","setUser","updateUser","setExistingUsers","deleteUser","useUsersCatalogStore","groupsClientsBrands","FETCH_GROUPS_CLIENTS_BRANDS","SET_USER","fetchGroups","SET_GROUPS","fetchClientsWithBrands","SET_GROUPS_CLIENTS_BRANDS","useUsersDetailsStore","usersCatalog","userDetails","Fuse","fuseByRoles","fuseResult","role","fetchRoles","SET_ROLES","setRole","FETCH_ROLES","updateRole","deleteRole","REMOVE_ROLE","useRolesCatalogStore","serviceTypes","serviceOrganizations","fetchRole","SET_ROLE","fetchServiceTypes","SET_SERVICE_TYPES","fetchServiceOrganizations","SET_SERVICE_ORGANIZATIONS","useRoleDetailsStore","rolesCatalog","roleDetails","fuseByPermissions","fetchPermissions","SET_PERMISSIONS","setPermission","FETCH_PERMISSIONS","updatePermission","usePermissionsCatalogStore","fetchPermission","SET_PERMISSION","usePermissionDetailsStore","permissionsCatalog","permissionDetails","setGroup","updateGroup","deleteGroup","useGroupsCatalogStore","fetchGroup","SET_GROUP","useGroupsDetailsStore","groupsCatalog","groupsDetails","usersFiltersChanged","addExist","accessRights","openAccessRightsModal","usersCatalogStore","usersIsLoading","openItemModal","DELETE_USER","UersTableRow","userFormIsValid","userFormData","existEmailsIsLoading","existEmailsIsDisabled","existEmailsRules","currentExistEmails","firstNameRules","firstNameIsLoading","firstNameIsDisabled","currentFirstName","lastNameRules","lastNameIsLoading","lastNameIsDisabled","currentLastName","emailRules","emailIsLoading","emailIsDisabled","currentEmail","rolesIsLoading","rolesIsDisabled","currentRoles","groupsIsLoading","groupsIsDisabled","currentGroups","currentClients","nodes","sortOptions","selectedNodeIds","preselectedClients","clientsTreeRef","isLoadingData","preselectedClientsComputed","selectedClientsMap","newBrandId","preselectedClientsMap","selectedNodeIdsMap","selectedNodeId","sortClients","selectedVal","preselectedVal","prevPreselectedVal","resultMap","collapseTree","collapse","AppClientsTreeView","existUsers","userDetailsStore","rolesCatalogStore","clientsTreeViewRef","updateForm","newForm","collapseClientsTree","firstName","lastName","splitEmails","emails","rolesIsLoadingData","groupsIsLoadingData","FETCH_GROUPS","VTextarea","UsersForm","usersDetailsStore","userFormRef","userFormResetValidation","userFormCollapseClientsTree","newUser","CREATE_USER","RESET_GROUPS_CLIENTS_BRANDS","usersFormIsValid","usersFormData","usersFormRef","newUsers","ADD_EXISTING_USERS","modalTitle","userIsLoading","UPDATE_USER","FETCH_USER","openAddExistModal","UsersCatalogHeader","UsersTable","UsersAddModal","UsersAddExistModal","UsersItemModal","UsersAccessRightsModal","usersFilters","FETCH_USERS","Users","UsersCatalog","PageCatalogLoader","groupsFiltersChanged","groupsCatalogStore","description","DELETE_GROUP","GroupsTableRow","groupFormIsValid","groupFormData","nameRules","nameIsLoading","nameIsDisabled","currentName","descriptionIsLoading","descriptionIsDisabled","currentDescription","currentUsers","isDisabled","selectedUsers","AppUsersAutocomplete","GroupsForm","groupFormRef","groupFormResetValidation","newGroup","CREATE_GROUP","groupsDetailsStore","UPDATE_GROUP","FETCH_GROUP","GroupsCatalogHeader","GroupsTable","GroupsAddModal","GroupsItemModal","groupsFilters","Groups","GroupsCatalog","rolesHaveBeenFiltered","openRole","DELETE_ROLE","RolesTableRow","roleFormIsValid","roleFormData","descrIsLoading","descrIsDisabled","currentDescr","serviceOrganizationsIsLoading","serviceOrganizationsIsDisabled","currentServiceOrganizations","serviceTypesIsLoading","serviceTypesIsDisabled","currentServiceTypes","permissionsIsLoading","permissionsIsDisabled","currentPermissions","DSelectList","permissionsCatalogStore","roleDetailsStore","newRole","permissionsIsLoadingData","serviceTypesIsLoadingData","FETCH_SERVICE_TYPES","serviceOrganizationsIsLoadingData","FETCH_SERVICE_ORGANIZATIONS","RolesItemForm","roleFormRef","roleFormResetValidation","CREATE_ROLE","roleIsLoading","roleReset","RESET_ROLE","UPDATE_ROLE","FETCH_ROLE","RolesCatalogHeader","RolesTable","RolesAddModal","RolesItemModal","Roles","RolesCatalog","permissionsHaveBeenFiltered","openPermission","PermissionsTableRow","permissionFormIsValid","permissionFormData","idRules","idIsLoading","idIsDisabled","currentId","scopeIsLoading","scopeIsDisabled","currentScope","disabledFields","newPermission","PermissionsItemForm","permissionFormRef","permissionFormResetValidation","CREATE_PERMISSION","permissionIsLoading","permissionDetailsStore","permissionReset","RESET","UPDATE_PERMISSION","FETCH_PERMISSION","PermissionsCatalogHeader","PermissionsTable","PermissionsAddModal","PermissionsItemModal","GroupByOptions","Permissions","PermissionsCatalog","AccessControl","GROUP_BY_OPTIONS_LIST","capping","timing","geo","transmittance","audience","HISTOGRAM_METRICS","groupDataBy","filtersData","defaultValue","colorGroup","currentMetric","statistics","currentColorGroup","toFixed","groupsDataMap","itemColorGroup","groupData","formattedMetric","filtersMeta","allItem","filterMeta","itemIsIncluded","newColorGroup","UPDATE_COLOR_GROUP","fetchStatistics","statisticsFetchParams","useDashboardStore","setDataProvider","deleteDataProvider","useDataProvidersCatalogStore","sites","types","fetchDataProvider","fetchSites","fetchTypes","useDataProvidersDetailsStore","dataProvidersCatalog","dataProvidersDetails","providerSettingsIdx","providerSettings","fetchDataProvidersSettings","deleteProviderSettings","setProviderSettings","fetchProviderStatus","gatherStatistics","settingsId","useDataProvidersSettingsCatalogStore","statisticsCollectionDepths","SET_PROVIDER_SETTINGS","SET_PROVIDERS","SET_TOKENS","SET_STATISTICS_COLLECTION_OF_DEPTH","SET_CLIENTS","useDataProvidersSettingsDetailsStore","dataProvidersSettingsCatalog","dataProvidersSettingsDetails","deleteCategory","setCategory","updateCategory","useCategoriesCatalogStore","normalizeServiceTypes","serviceType","requiresModeration","fetchCategory","SET_CATEGORY","fetchMetrics","SET_METRICS","useCategoryDetailsStore","categoriesCatalog","categoryDetails","userActions","userActionsTotalCount","fetchUserActions","useUserActionsCatalogStore","userActionsCatalog","dashboard","dataProvidersSettings","userActionsHaveBeenFiltered","dateFiltersPresets","dates","userActionsCatalogStore","userActionsIsLoading","obejectName","pathToObject","userAction","objectId","actionIcon","pathToUser","timestamp","pathGeneratorsMap","Campaign","Placement","Markup","pathGenerator","objectName","obejectNameTranslations","Token","DataProviderSettings","actionName","generateChange","isEmpty","str","normalizedChanges","UserActionsTableRow","UserActionsCatalogHeader","UserActionsTable","userActionsFilters","FETCH_USER_ACTIONS","UserActions","UserActionsCatalog","statisticsFilters","statisticsIsLoading","updateFilter","currentMetricIdx","colorGroups","colorGroupsIsDisabled","currentGroup","dashboardStore","statisticsFiltersData","emptyGroup","metricIdx","UPDATE_METRIC","getTableCellValue","getFormattedMetric","valueMetrics","DashboardColors","interpolateColors","interpolateViridis","colorStart","colorEnd","useEndAsStart","dataLength","colorScale","colorRangeInfo","intervalSize","colorArray","colorPoint","calculatePoint","BarController","BarElement","chartData","getChartDataColors","getColorGroups","idxByGroupMap","labels","right","bottom","drawBorder","suggestedMin","anchor","align","statisticsDataIndex","statisticsData","TooltipComponent","DashboardChartInfoTooltip","TooltipComponentInstance","propsData","$mount","groupColor","DashboardHeader","DashboardChart","DashboardLabels","FETCH_STATISTICS","Dashboard","dataProvidersCatalogStore","DELETE_DATA_PROVIDER","DataProvidersTableRow","dataProviderFormIsValid","dataProviderFormData","connectorIdIsLoading","connectorIdIsDisabled","connectorIdRules","currentConnectorId","priorityIsLoading","priorityIsDisabled","currentPriority","typesIsLoading","typesIsDisabled","typeRules","currentType","sitesIsLoading","sitesIsDisabled","currentSitesIds","isTokenRequiredIsLoading","isTokenRequiredIsDisabled","currentIsTokenRequired","supportsGoalsIsLoading","supportsGoalsIsDisabled","currentSupportsGoals","supportsTriggersIsLoading","supportsTriggersIsDisabled","currentSupportsTriggers","dataProvidersDetailsStore","updateDataProvider","newDataProvider","priority","typesIsLoadingData","FETCH_TYPES","sitesIsLoadingData","FETCH_SITES","supportsGoals","supportsTriggers","VSwitch","DataProvidersItemForm","dataProviderFormRef","dataProviderFormResetValidation","CREATE_DATA_PROVIDER","dataProviderIsLoading","UPDATE_DATA_PROVIDER","FETCH_DATA_PROVIDER","DataProvidersCatalogHeader","DataProvidersTable","DataProvidersAddModal","DataProvidersItemModal","FETCH_DATA_PROVIDERS","DataProviders","DataProvidersCatalog","providersSettingsFiltersChanged","dataProvidersSettingsStore","dataProvidersSettingsIsLoading","statusText","startGatherStatistics","deleteDataProviderSettings","dataProvidersSettingsCatalogStore","dataProviderSettingsId","START_GATHER_STATISTICS","DELETE_PROVIDER_SETTINGS","DataProvidersSettingsTableRow","dataProviderSettingsFormIsValid","dataProviderSettingsFormData","connectorSettingsIsLoading","connectorSettingsIsDisabled","currentConnectorSettings","providersIsDisabled","currentProviderId","currentTokenId","statisticsCollectionDepthsIsDisabled","statisticsCollectionDepthsIsLoading","currentStatisticsCollectionDepth","clientsIsDisabled","currentClientBrandIds","dataProvidersSettingsDetailsStore","providersIsLoadingData","currentProvider","FETCH_PROVIDERS","tokensIsLoadingData","FETCH_TOKENS","statisticsCollectionDepthsIsLoadingData","FETCH_STATISTICS_COLLECTION_OF_DEPTH","clientsIsLoadingData","DataProvidersSettingsForm","dataProviderSettingsFormRef","dataProviderSettingsFormResetValidation","newDataProviderSettings","CREATE_PROVIDER_SETTINGS","dataProvidersDetailsCatalogStore","UPDATE_PROVIDER_SETTINGS","FETCH_PROVIDER_SETTINGS","DataProvidersSettingsCatalogHeader","DataProvidersSettingsTable","DataProvidersSettingsAddModal","DataProvidersSettingsItemModal","providersSettingsFilters","providersSettingsIsLoading","FETCH_PROVIDERS_SETTINGS","DataProvidersSettings","DataProvidersSettingsCatalog","clientsTreeViewFieldElHeight","selectedClients","task","startTask","descrIdx","closeTaskError","messageIdx","el","elHeight","tasksInProgress","useElHeight","clientsTreeViewFieldEl","tasks","updateCampaignMetrics","updatePlacementMetricDataproviders","recalculatePlacementMetrics","updatePlacementMarkups","recalculatePlacementFlights","Maintenance","displayableMetricsText","categoriesCatalogStore","DELETE_CATEGORY","CategoriesCatalogTableRow","CategoriesCatalogHeader","CategoriesCatalogTable","categoriesIsLoading","FETCH_CATEGORIES","categoryFormIsValid","categoryFormData","categoryHasBeenChanged","orderIsLoading","orederIsDisabled","currentOrder","currentRequiresTargetings","metricsItems","metricsIsLoading","metricsIsDisabled","currentMetrics","currentRules","currentNotRules","deleteRule","addRule","rule","level1","level2","serviceTypeName","categoryDetailsStore","normalizedServiceTypes","serviceTypeId","ruleForm","initForm","CategoryRulesTableRow","CategoriesAddRuleModal","headerText","ruleIdx","newRule","CategoryRulesTable","newCategory","requiresTargetings","metricsIsLoadingData","FETCH_METRICS","notRules","closeBtnDisabled","CategoryNewHeader","CategoriesItemForm","CategoryNewFooter","categoryFormRef","CREATE_CATEGORY","CategoryDetailsHeader","CategoryDetailsFooter","categoryIsLoading","UPDATE_CATEGORY","FETCH_CATEGORY","Categories","CategoriesCatalog","CategoryNew","CategoryDetails","CategoryDetailsLoader","settingsFormIsValid","settingsFormData","settingsHasBeenChanged","resetIsDisabled","clientNameManualIsDisabled","currentClientNameManual","currentClientBrands","clientBrandsIsDisabled","currentBrandId","brandNameManualIsDisabled","currentBrandNameManual","clientNameManual","currentClientBrand","brandNameManual","resetBtnIsDisabled","ClientBrandSettingsForm","ClientBrandSettingsFooter","settingsFormRef","clientRename","removeClientManualSettings","ClientBrandSettings","Administration","maintenance","clientBrandSettings","serviceInit","unapprovedPlacements","searchModule","providerTokensModule","providerSetingsModule","markupsModule","factUploadModule","metricsCheckModule","accessControlModule","administrationModule","notifyService","vueOidc","vueMeta","compositionApi","sentry","layouts","portalVue","errorObserver","productionTip","beforeEach","userIsSignedIn","lastTo","findLast","matched","m","redirectTo","vuetify","App","appRouteConfigMetaGroupSlugs","appRouteConfigMetaGroupTitles","appRouteConfigMetaGroupShortTitles","regExpFilters","RegExp","routeIsApproved","regExp","menuGroupSlugs","menuGroupTitles","shortTitle","menuGroupShortTitles","generateMenuRoutes","menuRoutes","routeApproved","menuRoutePath","menuRouteChildren","menuRoute","routeA","routeB","menu","foundGroup","menuGroups","groupA","groupB","navigationUi","clientsStoreContext","brandActiveCampaignsMap","brandFinishedCampaignsMap","brandFinishedCampaignsCountMap","campaignsMap","foundCampaign","getFinished","initGoalsCount","fetchGoalsSettings","fetchGoalProviders","fetchProviderSettingsByCampaign","findGoalIdx","newGoals","newChangedGoals","foundIdxInGoals","foundIdxInChangedGoals","oldGoal","setGoalsSettings","CampaignId","Goals","loaderComponent","headerIsSticky","navigationUiStoreContext","navigationUiStore","VAppBar","rootClasses","iconOptions","avatarSizeComputed","iconSizeComputed","iconNameComputed","textClass","gtmIsActive","iconName","updateActiveStatusViaRootElClassList","VListItemAvatar","AppSideBarMenuItem","sideBarIsShown","groupIdx","routeIdx","childRoute","childRouteIdx","clientPath","navigationCurrentClientStore","currentClientPath","approvedRoutes","AppSideBarClient","AppSidebarNavMenuLoader","VSubheader","menuItem","menuItemIdx","childIdx","searchStore","VSheet","AppSideBarLogo","AppSideBarNavMenu","AppSideBarUserMenu","AppSideBarMinimizer","VNavigationDrawer","minHeight","VFooter","VOverlay","onOverlayClick","searchIsLoading","searchHasBeenByDanboId","statusItems","searchResultIsExist","searchResultIsEmpty","firstVisibleItem","toggleAllItems","allItemsIsShown","SearchBreadcrumbs","SearchListItem","searchResultContainsOnlyOneItem","resultContainsOnlyOneItem","btnToggleAllItemsIsShown","visibleItems","breadcrumbsIsShown","SearchList","resultIsExist","resultIsEmpty","searchCategories","SearchHeader","SearchResult","positionClasses","notification","timeout","closeBtnProps","closeBtnContent","onClickBtn","VSnackbar","NotifyListItem","normalizedPosition","NotifyListByPosition","notificationsByPositionGroups","AppRedesignNoticeCard","AppHeader","AppSideBar","AppFooter","AppBottomNavigation","SearchSideBar","ModallyRoot","NotifyRoot","headerRef","AppDefaultLoader","headerVisible","footerVisible","onMutateHeader","isEditPage","VApp","VMain"],"mappings":"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","file":"js/app.e9354f8d.js","sourcesContent":["export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensNewLoader.vue?vue&type=style&index=0&id=218f2688&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetailsInfo.vue?vue&type=style&index=0&id=28928ab8&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport { Getters, Mutations, Actions, Module, createMapper } from 'vuex-smart-module';\n\nclass ModuleState {\n isLoading = false;\n\n redesignWorkflowNoticeIsShown = true;\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get redesignNoticeIsShown() {\n return this.state.redesignWorkflowNoticeIsShown;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(payload: boolean) {\n this.state.isLoading = payload;\n }\n\n SET_REDESIGN_NOTICE_SHOWN_STATUS(value: boolean) {\n this.state.redesignWorkflowNoticeIsShown = value;\n }\n}\n\nclass ModuleActions extends Actions {\n UPDATE_IS_LOADING(payload: boolean) {\n this.commit('SET_IS_LOADING', payload);\n }\n\n CHANGE_REDESIGN_NOTICE_SHOWN_STATUS(value: boolean) {\n this.commit('SET_REDESIGN_NOTICE_SHOWN_STATUS', value);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const rootUiStoreMapper = createMapper(module);\n\nexport default module;\n","module.exports = __webpack_public_path__ + \"img/data_provider_1.e0ebb1ba.png\";","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableMetricCell.vue?vue&type=style&index=0&id=e9db5060&lang=scss&scoped=true&\"","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport { createStore } from 'vuex-smart-module';\nimport createPersistedState from 'vuex-persistedstate';\n\nimport rootStore from '@/store/root';\n\nVue.use(Vuex);\n\nexport default createStore(rootStore, {\n strict: process.env.NODE_ENV !== 'production',\n plugins: [\n createPersistedState({\n key: 'd1-digital-vuex-v1',\n paths: [\n 'ui.redesignNoticeIsShown',\n 'ui.redesignWorkflowNoticeIsShown',\n 'navigation.ui.sideBarMinimaized',\n ],\n }),\n ],\n});\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersTableRow.vue?vue&type=style&index=0&id=5496b7f3&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=style&index=0&id=679871df&lang=scss&scoped=true&\"","var map = {\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"0974\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsCatalogHeader.vue?vue&type=style&index=0&id=4f8843fd&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryDetails.vue?vue&type=style&index=0&id=7f067728&lang=scss&scoped=true&\"","import { computed, ComputedRef } from '@vue/composition-api';\n\nimport store from '@/store';\nimport rootUi from '@/store/root/rootUi';\n\nconst rootUiContext = rootUi.context(store);\n\ninterface UseLayoutLoadingStatusReturn {\n isLoading: ComputedRef;\n updateIsLoading: (val: boolean) => void;\n}\n\nexport default (): UseLayoutLoadingStatusReturn => {\n const isLoading = computed(() => rootUiContext.getters.isLoading);\n\n const updateIsLoading = (val: boolean) => rootUiContext.dispatch('UPDATE_IS_LOADING', val);\n\n return {\n isLoading,\n updateIsLoading,\n };\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoriesTableRow.vue?vue&type=style&index=0&id=4694b876&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTable.vue?vue&type=style&index=0&id=5f29f7ef&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementContent.vue?vue&type=style&index=0&id=3172bdfa&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardHeader.vue?vue&type=style&index=0&id=72805c46&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategories.vue?vue&type=style&index=0&id=e4066d3e&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoriesOrderModal.vue?vue&type=style&index=0&id=e227e8a8&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport { Store } from 'vuex';\nimport { Getters, Mutations, Actions, Context, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport modally from '@/services/modally';\n\nimport campaignStore from './campaign';\n\nimport campaignEditorPlacementsStore from './campaignEditor/campaignEditorPlacements';\nimport campaignEditorGoalsStore from './campaignEditor/campaignEditorGoals';\nimport campaignEditorCategoriesStore from './campaignEditor/campaignEditorCategories';\nimport campaignEditorSettingsStore from './campaignEditor/campaignEditorSettings';\nimport campaignEditorPlacementDetailsStore from './campaignEditor/campaignEditorPlacementDetails';\n\ninterface CampaignEditors {\n placements: Context;\n goals: Context;\n categories: Context;\n settings: Context;\n}\n\nconst initEditors = (store: Store): CampaignEditors => ({\n placements: campaignEditorPlacementsStore.context(store),\n goals: campaignEditorGoalsStore.context(store),\n categories: campaignEditorCategoriesStore.context(store),\n settings: campaignEditorSettingsStore.context(store),\n});\n\nclass ModuleState {\n isSaving = false;\n\n isCanceling = false;\n}\n\nclass ModuleGetters extends Getters {\n store!: Store;\n\n campaign!: Context;\n\n editors!: CampaignEditors;\n\n $init(store: Store) {\n this.store = store;\n\n this.campaign = campaignStore.context(store);\n\n this.editors = initEditors(store);\n }\n\n get hasBeenChanged() {\n const editorsHaveBeenChanged = Object.values(this.editors).some((editor) => editor.getters.hasBeenChanged);\n\n return !!this.campaign.getters.campaignHasBeenChanged || editorsHaveBeenChanged;\n }\n\n get isSaving() {\n return this.state.isSaving;\n }\n\n get isCanceling() {\n return this.state.isCanceling;\n }\n\n get error() {\n const editorWithError = Object.values(this.editors).find((editor) => editor.getters.error);\n\n return editorWithError?.getters?.error;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_SAVINGS(value: boolean) {\n this.state.isSaving = value;\n }\n\n SET_IS_CANCELING(value: boolean) {\n this.state.isCanceling = value;\n }\n\n RESET() {\n const defaultState = new ModuleState();\n\n Object.keys(defaultState).forEach((key) => {\n this.state[key] = defaultState[key];\n });\n }\n}\n\nclass ModuleActions extends Actions {\n store!: Store;\n\n campaign!: Context;\n\n editors!: CampaignEditors;\n\n $init(store: Store) {\n this.store = store;\n\n this.campaign = campaignStore.context(store);\n\n this.editors = initEditors(store);\n }\n\n async FETCH(payload: { campaignId: string }) {\n const { campaignId } = payload;\n\n await this.campaign.dispatch('FETCH_CAMPAIGN', { campaignId });\n }\n\n SHOW_ERROR() {\n const { error } = this.getters;\n\n if (!error) return;\n\n modally.show({ title: error.title, content: error.message, status: 'error' });\n }\n\n async SAVE(payload?: { options?: { withConfirm: boolean } }) {\n const { campaign } = this.campaign.getters;\n const { hasBeenChanged } = this.getters;\n\n if (!campaign || !hasBeenChanged) return;\n\n const defaultOptions = {\n withConfirm: true,\n };\n\n const options = payload?.options ? { ...defaultOptions, ...payload.options } : defaultOptions;\n\n this.commit('SET_IS_SAVINGS', true);\n\n try {\n await this.campaign.dispatch('SAVE_CAMPAIGN');\n\n // TODO: Тут не используется Promise.all потому что при одновременном сохранении плана и размещений, некоторые измененные значения размещений не сохраняются\n // eslint-disable-next-line no-restricted-syntax\n for (const editor of Object.values(this.editors)) {\n // eslint-disable-next-line no-await-in-loop\n await editor.dispatch('SAVE', { campaignId: campaign.id, options });\n\n editor.commit('RESET_CHANGES');\n }\n } finally {\n this.dispatch('SHOW_ERROR');\n\n this.commit('SET_IS_SAVINGS', false);\n }\n }\n\n RESET_EDITORS_CHANGES() {\n Object.values(this.editors).forEach((editor) => editor.commit('RESET_CHANGES'));\n }\n}\n\nconst module = new Module({\n modules: {\n placements: campaignEditorPlacementsStore,\n goals: campaignEditorGoalsStore,\n categories: campaignEditorCategoriesStore,\n settings: campaignEditorSettingsStore,\n placementDetails: campaignEditorPlacementDetailsStore,\n },\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const campaignEditorStoreMapper = createMapper(module);\n\nexport const useCampaignEditorStore = createComposable(module);\n\nexport default module;\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignAdObjectContent.vue?vue&type=style&index=0&id=0cb94365&lang=scss&scoped=true&\"","import { NotifyItemPosition } from './types';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const NOTIFY_ITEM_POSITION_DEFAULT: NotifyItemPosition = ['top', 'right'];\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalHeader.vue?vue&type=style&index=0&id=237f03d4&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsLoader.vue?vue&type=style&index=0&id=4f164c24&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\nimport Vue from 'vue';\n\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport moment from 'moment';\nimport lodash from 'lodash';\n\nimport { ClientsApi, CampaignsApi } from '@/api';\n\nimport { FetchPlacementPayload, FetchAdObjectPayload, FetchAdObjectWithLevelPayload, SetCampaignCategoriesPayload } from '@/api/modules/campaigns.api';\n\nimport { Client } from '@/models/Client';\n\nimport {\n Campaign,\n CampaignCategory,\n CampaignPlacement,\n CampaignConnector,\n CampaignAdObject,\n} from '@/models/Campaign';\n\nclass ModuleState {\n campaign: Campaign | null = null;\n\n client: Client | null = null;\n\n campaignUpdate: Campaign | null = null;\n\n categories: CampaignCategory[] = [];\n\n campaignPlacement: CampaignPlacement | null = null;\n\n campaignConnector: CampaignConnector | null = null;\n\n campaignAdObject: CampaignAdObject | null = null;\n}\n\nclass ModuleGetters extends Getters {\n get campaign() {\n return this.state.campaign;\n }\n\n get client() {\n return this.state.client;\n }\n\n get campaignUpdate() {\n return this.state.campaignUpdate;\n }\n\n get currentCampaign() {\n return this.getters.campaignUpdate || this.getters.campaign;\n }\n\n get campaignCategories() {\n return this.state.categories;\n }\n\n get campaignPlacement() {\n return this.state.campaignPlacement;\n }\n\n get campaignConnector() {\n return this.state.campaignConnector;\n }\n\n get campaignAdObject() {\n return this.state.campaignAdObject;\n }\n\n get clientBrand() {\n return this.getters.client?.brands.find((brand) => brand.id === this.getters.campaign?.brandId) ?? null;\n }\n\n get campaignLastUpdateDate() {\n const updatedPlacements = this.getters.campaignCategories\n .flatMap((category) => category.placements)\n .filter((placement) => placement.metricsUpdatedAt);\n\n const lastUpdatedPlacement = lodash.maxBy(updatedPlacements, (placement) => moment(placement.metricsUpdatedAt));\n\n const lastUpdateDate = lastUpdatedPlacement?.metricsUpdatedAt || this.getters.campaign?.startDate || '';\n\n if (!lastUpdateDate) return '';\n\n return moment.utc(lastUpdateDate).format('DD.MM.YYYY HH:mm');\n }\n\n get campaignHasBeenChanged() {\n return !!this.getters.campaignUpdate;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_CAMPAIGN(payload: Campaign) {\n this.state.campaign = payload;\n }\n\n SET_CLIENT(payload: Client) {\n this.state.client = payload;\n }\n\n SET_CAMPAIGN_UPDATE(payload: Campaign) {\n this.state.campaignUpdate = payload;\n }\n\n CAMPAIGN_SET_APPROVED_STATUS(value: boolean) {\n if (!this.state.campaign) return;\n\n Vue.set(this.state.campaign, 'approved', value);\n }\n\n SET_CAMPAIGN_CATEGORIES(payload: CampaignCategory[]) {\n this.state.categories = payload;\n }\n\n SET_CAMPAIGN_PLACEMENT(payload: CampaignPlacement) {\n this.state.campaignPlacement = payload;\n }\n\n SET_CAMPAIGN_CONNECTOR(payload: CampaignConnector) {\n this.state.campaignConnector = payload;\n }\n\n SET_CAMPAIGN_AD_OBJECT(payload: CampaignAdObject) {\n this.state.campaignAdObject = payload;\n }\n\n RESET_CAMPAIGN_UPDATE() {\n this.state.campaignUpdate = null;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_CAMPAIGN(payload: { campaignId: string; filters?: { from?: string; to?: string }; options?: { withCategories: boolean }}) {\n const { campaignId, filters } = payload;\n\n const options = payload.options ?? {\n withCategories: false,\n };\n\n if (options.withCategories) {\n const res = await CampaignsApi.fetchCampaign({\n campaignId,\n params: filters,\n });\n\n this.commit('SET_CAMPAIGN', res.data.campaign);\n this.commit('SET_CAMPAIGN_CATEGORIES', res.data.categories);\n } else {\n const res = await CampaignsApi.fetchCampaignInfo({ campaignId });\n\n this.commit('SET_CAMPAIGN', res.data);\n }\n }\n\n async FETCH_CLIENT(clientId: string) {\n const res = await ClientsApi.fetchClient(clientId);\n\n this.commit('SET_CLIENT', res.data);\n }\n\n async CAMPAIGN_TOGGLE_APPROVED_STATUS(value: boolean) {\n const { campaign } = this.getters;\n\n if (!campaign) return;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign',\n event_action: value ? 'Show to Client' : 'Hide from Client',\n event_label: campaign.id,\n d1d_client_id: campaign.clientId,\n d1d_client_name: campaign.clientName,\n d1d_brand_id: campaign.brandId,\n d1d_brand_name: campaign.brandName,\n d1d_campaign_id: campaign.id,\n d1d_campaign_name: campaign.name,\n });\n\n await CampaignsApi.updateCampaignApproved({ campaignId: campaign.id, data: value });\n\n this.commit('CAMPAIGN_SET_APPROVED_STATUS', value);\n }\n\n UPDATE_CAMPAIGN(payload: Partial) {\n if (!this.getters.currentCampaign) return;\n\n const newCampaign = { ...this.getters.currentCampaign, ...payload };\n\n this.commit('SET_CAMPAIGN', newCampaign);\n }\n\n CHANGE_CAMPAIGN(payload: Partial) {\n if (!this.getters.currentCampaign) return;\n\n const newCampaign = { ...this.getters.currentCampaign, ...payload };\n\n this.commit('SET_CAMPAIGN_UPDATE', newCampaign);\n }\n\n async UPDATE_CAMPAIGN_CATEGORIES_ORDER(payload: CampaignCategory[]) {\n if (!this.state.campaign) return;\n\n const data = {\n CategoriesPlacements: payload.map((category) => ({\n CategoryId: category.id,\n PlacementsIds: category.placements.map((placement) => placement.id),\n })),\n };\n\n await CampaignsApi.updateCampaignCategoriesOrder({ campaignId: this.state.campaign.id, data });\n\n this.commit('SET_CAMPAIGN_CATEGORIES', payload);\n }\n\n async SET_CAMPAIGN_CATEGORIES(payload: SetCampaignCategoriesPayload) {\n await CampaignsApi.setCampaignCategories(payload);\n }\n\n async UPDATE_CAMPAIGN_PLACEMENTS_ORDER(payload: CampaignCategory) {\n if (!this.state.campaign) return;\n\n const categories = this.getters.campaignCategories.map((category) => ({\n ...category,\n placements: category.id === payload.id ? payload.placements : category.placements,\n }));\n\n const data = {\n CategoriesPlacements: categories.map((category) => ({\n CategoryId: category.id,\n PlacementsIds: category.placements.map((placement) => placement.id),\n })),\n };\n\n await CampaignsApi.updateCampaignCategoriesOrder({ campaignId: this.state.campaign.id, data });\n\n this.commit('SET_CAMPAIGN_CATEGORIES', categories);\n }\n\n async FETCH_CAMPAIGN_PLACEMENT(payload: FetchPlacementPayload) {\n const res = await CampaignsApi.fetchPlacement(payload);\n\n this.commit('SET_CAMPAIGN_PLACEMENT', res.data);\n }\n\n async FETCH_CAMPAIGN_CONNECTOR(payload: FetchAdObjectPayload) {\n const res = await CampaignsApi.fetchAdObject(payload);\n\n this.commit('SET_CAMPAIGN_CONNECTOR', res.data);\n }\n\n async FETCH_CAMPAIGN_AD_OBJECT(payload: FetchAdObjectWithLevelPayload) {\n const res = await CampaignsApi.fetchAdObjectWithLevel(payload);\n\n this.commit('SET_CAMPAIGN_AD_OBJECT', res.data);\n }\n\n async SAVE_CAMPAIGN_ACTIVE_STATUS() {\n const campaignId = this.getters.campaign?.id || null;\n\n if (!campaignId || typeof this.getters.campaignUpdate?.isActive !== 'boolean') return;\n\n await CampaignsApi.updateCampaignActiveStatus({\n campaignId,\n data: this.getters.campaignUpdate.isActive,\n });\n }\n\n async SAVE_CAMPAIGN() {\n const { campaign, campaignHasBeenChanged } = this.getters;\n\n if (!campaign || !campaignHasBeenChanged) return;\n\n await this.dispatch('SAVE_CAMPAIGN_ACTIVE_STATUS');\n\n await this.dispatch('FETCH_CAMPAIGN', { campaignId: campaign.id });\n\n this.commit('RESET_CAMPAIGN_UPDATE');\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const campaignStoreMapper = createMapper(module);\n\nexport const useCampaignStore = createComposable(module);\n\nexport default module;\n","import axios, { AxiosAdapter, AxiosRequestConfig, AxiosResponse, AxiosInterceptorManager } from 'axios';\nimport { cacheAdapterEnhancer } from 'axios-extensions';\n\nconst axiosInstance = axios.create({\n baseURL: '/',\n headers: {\n 'Content-Type': 'application/json;charset=UTF-8',\n },\n adapter: cacheAdapterEnhancer(axios.defaults.adapter as AxiosAdapter, { enabledByDefault: false }),\n});\n\nexport const setBaseUrl = (path: string): void => {\n axiosInstance.defaults.baseURL = path;\n};\n\nexport const setRequestInterceptor: AxiosInterceptorManager['use'] = (...args) => axiosInstance.interceptors.request.use(...args);\n\nexport const setResponseInterceptor: AxiosInterceptorManager['use'] = (...args) => axiosInstance.interceptors.response.use(...args);\n\nexport default axiosInstance;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotifyListItem.vue?vue&type=style&index=0&id=69d78def&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Maintenance.vue?vue&type=style&index=0&id=555c6453&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalog.vue?vue&type=style&index=0&id=5e153ca0&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsCatalog.vue?vue&type=style&index=0&id=5b21f531&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardChart.vue?vue&type=style&index=0&id=79386f34&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsCheckTable.vue?vue&type=style&index=0&id=796ab6e6&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientCatalog.vue?vue&type=style&index=0&id=62dfcbcc&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorHeader.vue?vue&type=style&index=0&id=09542cc6&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport { groupBy } from 'lodash';\n\nimport { Getters, Mutations, Actions, Module, createMapper } from 'vuex-smart-module';\n\nimport { NotifyItem, NotifyItemPushOptions, NotifyItemId } from '@/services/notify/types';\n\nimport { NOTIFY_ITEM_POSITION_DEFAULT } from '../constants';\n\nclass ModuleState {\n notifications: NotifyItem[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get notificationsByPositionGroups() {\n const groupedByPosition = groupBy(this.state.notifications, 'position');\n\n return Object.entries(groupedByPosition).map(([key, value]) => ({\n position: key.split(/,| /),\n list: value,\n }));\n }\n}\n\nclass ModuleMutations extends Mutations {\n PUSH_NOTIFICATION(payload: NotifyItem) {\n this.state.notifications.push(payload);\n }\n\n REMOVE_NOTIFICATION(notificationId: NotifyItemId) {\n this.state.notifications = this.state.notifications.filter(({ id }) => id !== notificationId);\n }\n}\n\nclass ModuleActions extends Actions {\n PUSH_NOTIFICATION(payload: NotifyItemPushOptions) {\n this.commit('PUSH_NOTIFICATION', {\n position: NOTIFY_ITEM_POSITION_DEFAULT,\n ...payload,\n id: (Math.random().toString(36) + Date.now().toString(36)).substr(2),\n });\n }\n\n REMOVE_NOTIFICATION(notificationId: NotifyItemId) {\n this.commit('REMOVE_NOTIFICATION', notificationId);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const notifyStoreMapper = createMapper(module);\n\nexport default module;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorGoals.vue?vue&type=style&index=0&id=41da74b6&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsPeriodsTable.vue?vue&type=style&index=0&id=0f32799a&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsCatalog.vue?vue&type=style&index=0&id=6a3434fa&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport Vue from 'vue';\nimport { Store } from 'vuex';\nimport { Getters, Mutations, Actions, Module, Context, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { Brand } from '@/models/Brand';\nimport { CampaignSettings } from '@/models/Campaign';\nimport { GoalLight } from '@/models/Goal';\n\nimport {\n ClientsApi,\n CampaignsApi,\n CampaignEditorApi,\n GoalsSettingsApi,\n} from '@/api';\n\nimport campaignStore from '../campaign';\n\nexport const CONVERSION_RATE_MODE_GOAL_SUM = 'GoalsSum';\nexport const CONVERSION_RATE_MODE_MAIN_GOAL = 'MainGoal';\n\nexport const DEFAULT_CONVERSION_RATE_MODE = CONVERSION_RATE_MODE_GOAL_SUM;\n\nclass ModuleState {\n settings: CampaignSettings['settings'] | null = null;\n\n settingsUpdate: CampaignSettings['settings'] | null = null;\n\n dataProviderAbilities: CampaignSettings['dataProviderAbilities'] = [];\n\n clientBrands: Brand[] = [];\n\n goals: GoalLight[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get settings() {\n return this.state.settings;\n }\n\n get settingsUpdate() {\n return this.state.settingsUpdate;\n }\n\n get currentSettings() {\n return this.getters.settingsUpdate || this.getters.settings;\n }\n\n get dataProviderAbilities() {\n return this.state.dataProviderAbilities;\n }\n\n get clientBrands() {\n return this.state.clientBrands;\n }\n\n get goals() {\n return this.state.goals;\n }\n\n get hasBeenChanged() {\n return !!this.getters.settingsUpdate;\n }\n\n get currentConversionRateMode() {\n return this.getters.currentSettings?.conversionRateCalculationMode || '';\n }\n\n get currentConversionRateModeIsMainGoal() {\n return this.getters.currentConversionRateMode === CONVERSION_RATE_MODE_MAIN_GOAL;\n }\n\n get currentMainGoal() {\n return this.getters.currentSettings?.mainGoal;\n }\n\n get error() {\n if (!this.getters.currentSettings) return;\n\n const rules = [\n {\n check: () => {\n const { currentConversionRateMode } = this.getters;\n\n return !currentConversionRateMode;\n },\n error: { message: 'Не выбрана метрика для подсчета' },\n },\n {\n check: () => {\n const {\n currentConversionRateModeIsMainGoal,\n currentMainGoal,\n } = this.getters;\n\n return currentConversionRateModeIsMainGoal && !currentMainGoal?.id;\n },\n error: { message: 'Не выбрана главная цель' },\n },\n ];\n\n const ruleWithError = rules.find(({ check }) => check());\n const error = ruleWithError?.error;\n\n if (!error) return;\n\n return { title: 'Основные настройки', ...error };\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_SETTINGS(payload: CampaignSettings['settings']) {\n this.state.settings = payload;\n }\n\n SET_DATA_PROVIDER_ABILITIES(payload: CampaignSettings['dataProviderAbilities']) {\n this.state.dataProviderAbilities = payload;\n }\n\n SET_SETTINGS_UPDATE(payload: CampaignSettings['settings']) {\n this.state.settingsUpdate = payload;\n }\n\n SET_CLIENT_BRANDS(payload: Brand[]) {\n this.state.clientBrands = payload;\n }\n\n SET_GOALS(payload: GoalLight[]) {\n this.state.goals = payload;\n }\n\n RESET_CHANGES() {\n this.state.settingsUpdate = null;\n }\n}\n\nclass ModuleActions extends Actions {\n store!: Store;\n\n campaign!: Context;\n\n $init(store: Store) {\n this.store = store;\n\n this.campaign = campaignStore.context(store);\n }\n\n async FETCH_SETTINGS(payload: { campaignId: string }) {\n const { campaignId } = payload;\n\n const res = await CampaignEditorApi.fetchCampaignSettings(campaignId);\n\n this.commit('SET_SETTINGS', res.data.settings);\n this.commit('SET_DATA_PROVIDER_ABILITIES', res.data.dataProviderAbilities);\n }\n\n async FETCH_CLIENT_BRANDS(payload: { clientId: string }) {\n const { clientId } = payload;\n\n const res = await ClientsApi.fetchClientBrands(clientId);\n\n this.commit('SET_CLIENT_BRANDS', res.data);\n }\n\n async FETCH_GOALS(payload: { campaignId: string; providerId: string; providerSettingsId: string }) {\n try {\n const res = await GoalsSettingsApi.fetchGoals(payload);\n\n this.commit('SET_GOALS', res.data);\n } catch (e) {\n this.commit('SET_GOALS', []);\n }\n }\n\n CHANGE_SETTINGS(payload: Partial) {\n if (!this.getters.currentSettings) return;\n\n const newSettings = { ...this.getters.currentSettings, ...payload };\n\n this.commit('SET_SETTINGS_UPDATE', newSettings);\n }\n\n async SAVE(payload: { campaignId: string }) {\n const { campaignId } = payload;\n\n if (!this.getters.settingsUpdate || this.getters.error) return;\n\n // Мммм, костыли костылики, так надо потому что получаемый формат настроек и формат для обновления абсолютно разные\n // TODO: когда то это надо будет переделать\n const data: Parameters[0]['data'] & {\n name?: string;\n brandId?: string;\n calculationSettings?: {\n includeAC: boolean;\n includeVAT: boolean;\n };\n } = {\n ...this.getters.settingsUpdate,\n ...this.getters.settingsUpdate.calculationSettings,\n campaignNameManual: this.getters.settingsUpdate.name,\n brandIdManual: this.getters.settingsUpdate.brandId,\n };\n\n delete data.calculationSettings;\n delete data.name;\n delete data.brandId;\n\n await CampaignsApi.updateCampaignSettings({ campaignId, data });\n\n const { campaign } = this.campaign.getters;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign Editor',\n event_action: 'Edit Settings',\n event_label: 'Save',\n d1d_client_id: campaign?.clientId,\n d1d_client_name: campaign?.clientName,\n d1d_brand_id: campaign?.brandId,\n d1d_brand_name: campaign?.brandName,\n d1d_campaign_id: campaign?.id,\n d1d_campaign_name: campaign?.name,\n });\n\n await this.dispatch('FETCH_SETTINGS', payload);\n\n this.commit('RESET_CHANGES');\n }\n\n async RESET_MANUAL_SETTINGS(payload: { campaignId: string }) {\n const { campaignId } = payload;\n\n await CampaignsApi.removeCampaignManualSettings({ campaignId, data: {} });\n\n await this.dispatch('FETCH_SETTINGS', payload);\n\n this.commit('RESET_CHANGES');\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const campaignEditorSettingsStoreMapper = createMapper(module);\n\nexport const useCampaignEditorSettingsStore = createComposable(module);\n\nexport default module;\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsCatalog.vue?vue&type=style&index=0&id=8beac5d6&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoCell.vue?vue&type=style&index=0&id=e7c65994&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementEditorInfo.vue?vue&type=style&index=0&id=0ea032f7&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableDescCell.vue?vue&type=style&index=0&id=1a3df161&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDateFilterBtn.vue?vue&type=style&index=0&id=035fd2e2&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalFooter.vue?vue&type=style&index=0&id=26b8c4ae&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport Vue from 'vue';\nimport { Store } from 'vuex';\nimport { Getters, Mutations, Actions, Module, Context, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { Campaign } from '@/models/Campaign';\n\nimport { CampaignsApi } from '@/api';\n\nimport campaignStore from '../campaign';\n\ninterface CampaignEditorCategoriesData {\n typeId: Campaign['typeId'];\n categoriesIds: Campaign['categoriesIds'];\n}\n\nclass ModuleState {\n typeId: string | null = null;\n\n categoriesIds: string[] = [];\n\n dataUpdate: Partial | null = null;\n}\n\nclass ModuleGetters extends Getters {\n store!: Store;\n\n campaign!: Context;\n\n $init(store: Store) {\n this.store = store;\n\n this.campaign = campaignStore.context(store);\n }\n\n get dataUpdate() {\n return this.state.dataUpdate;\n }\n\n get currentData() {\n const { currentCampaign } = this.campaign.getters;\n\n return {\n typeId: this.getters.dataUpdate?.typeId || currentCampaign?.typeId || '',\n categoriesIds: this.getters.dataUpdate?.categoriesIds || currentCampaign?.categoriesIds || [],\n };\n }\n\n get hasBeenChanged() {\n return !!this.getters.dataUpdate;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_DATA_UPDATE(payload: CampaignEditorCategoriesData) {\n this.state.dataUpdate = payload;\n }\n\n RESET_CHANGES() {\n this.state.dataUpdate = null;\n }\n}\n\nclass ModuleActions extends Actions {\n store!: Store;\n\n campaign!: Context;\n\n $init(store: Store) {\n this.store = store;\n\n this.campaign = campaignStore.context(store);\n }\n\n CHANGE_DATA(payload: Partial) {\n if (!this.getters.currentData) return;\n\n const newData = { ...this.getters.currentData, ...payload };\n\n this.commit('SET_DATA_UPDATE', newData);\n }\n\n async SAVE(payload: { campaignId: string }) {\n if (!this.getters.hasBeenChanged) return;\n\n await CampaignsApi.updateCampaignCategories({\n campaignId: payload.campaignId,\n data: {\n campaignTypeId: this.getters.currentData.typeId,\n campaignCategoriesIds: this.getters.currentData.categoriesIds,\n },\n });\n\n await this.campaign.dispatch('UPDATE_CAMPAIGN', this.getters.currentData);\n\n const { campaign } = this.campaign.getters;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign Editor',\n event_action: 'Edit Category',\n event_label: 'Save',\n d1d_client_id: campaign?.clientId,\n d1d_client_name: campaign?.clientName,\n d1d_brand_id: campaign?.brandId,\n d1d_brand_name: campaign?.brandName,\n d1d_campaign_id: campaign?.id,\n d1d_campaign_name: campaign?.name,\n });\n\n this.commit('RESET_CHANGES');\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const campaignEditorCategoriesStoreMapper = createMapper(module);\n\nexport const useCampaignEditorCategoriesStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\n\nimport Vue from 'vue';\n\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { CampaignEditorPlacementDetails } from '@/models/Campaign';\nimport { Markup, MarkupLight } from '@/models/Markup';\n\nimport { CampaignEditorApi, CategoriesApi, DataProvidersApi, MarkupsApi, PlacementsApi } from '@/api';\n\nimport { SetMarkupPayload } from '@/api/modules/markups.api';\nimport { Category } from '@/models/Category';\nimport { DataProvider } from '@/models/DataProvider';\nimport { PlacementManualState } from '@/models/Placement';\n\nclass ModuleState {\n placement: null | CampaignEditorPlacementDetails = null;\n\n placementForm: null | CampaignEditorPlacementDetails = null;\n\n placementMarkups: MarkupLight[] = [];\n\n markupsWithCostMap: Record = {};\n\n placementMarkupsIsChanged = false;\n\n categories: Category[] = [];\n\n dataProviders: DataProvider[] = [];\n\n placementManualStates: PlacementManualState[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get placement() {\n return this.state.placement;\n }\n\n get placementForm() {\n return this.state.placementForm;\n }\n\n get currentPlacement() {\n return this.getters.placementForm || this.getters.placement;\n }\n\n get placementHasBeenChanged() {\n return !!this.getters.placementForm;\n }\n\n get placementMarkups() {\n return this.state.placementMarkups;\n }\n\n get markupsWithCostMap() {\n return this.state.markupsWithCostMap;\n }\n\n get getMarkupWithCost() {\n return (markupId: string) => this.state.markupsWithCostMap[markupId] ?? null;\n }\n\n get placementMarkupsIsChanged() {\n return this.state.placementMarkupsIsChanged;\n }\n\n get categories() {\n return this.state.categories;\n }\n\n get dataProviders() {\n return this.state.dataProviders;\n }\n\n get placementManualStates() {\n return this.state.placementManualStates;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_PLACEMENT(payload: CampaignEditorPlacementDetails) {\n this.state.placement = payload;\n }\n\n SET_PLACEMENT_FORM(payload: CampaignEditorPlacementDetails) {\n this.state.placementForm = payload;\n }\n\n RESET_PLACEMENTS_FORM() {\n this.state.placementForm = null;\n }\n\n SET_MARKUPS(payload: MarkupLight[]) {\n this.state.placementMarkups = payload;\n }\n\n SET_MARKUPS_WITH_COST(payload: { markupId: string; markup: Markup }) {\n Vue.set(this.state.markupsWithCostMap, payload.markupId, payload.markup);\n }\n\n SET_MAPRKUPS_IS_CHANGED(payload: boolean) {\n this.state.placementMarkupsIsChanged = payload;\n }\n\n RESET_MARKUPS_WITH_COST() {\n this.state.markupsWithCostMap = {};\n }\n\n SET_CATEGORIES(payload: Category[]) {\n this.state.categories = payload;\n }\n\n SET_DATA_PROVIDERS(payload: DataProvider[]) {\n this.state.dataProviders = payload;\n }\n\n SET_PLACEMENT_MANUAL_STATES(payload: PlacementManualState[]) {\n this.state.placementManualStates = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_PLACEMENT(payload: { campaignId: string; placementDanboId: string }) {\n const res = await CampaignEditorApi.fetchPlacement(payload);\n\n this.commit('SET_PLACEMENT', res.data);\n }\n\n async FETCH_PLACEMENT_FROM_1C(payload: { campaignId: string; placementDanboId: string }) {\n const params = { use1CPlan: true };\n\n const res = await CampaignEditorApi.fetchPlacement({ ...payload, params });\n\n this.commit('SET_PLACEMENT_FORM', res.data);\n }\n\n async SAVE_PLACEMENT(payload: { campaignId: string }) {\n if (!this.getters.currentPlacement) return;\n\n await CampaignEditorApi.updatePlacement({ ...payload, data: { placement: this.getters.currentPlacement } });\n\n this.commit('RESET_PLACEMENTS_FORM');\n }\n\n async SHOW_PLACEMENT(payload: { campaignId: string; placementDanboId: string }) {\n if (!this.getters.currentPlacement) return;\n\n const newPlacement = { ...this.getters.currentPlacement, hidden: false };\n\n await this.dispatch('CHANGE_PLACEMENT_FORM', newPlacement);\n\n await this.dispatch('SAVE_PLACEMENT', payload);\n await this.dispatch('FETCH_PLACEMENT', payload);\n }\n\n CHANGE_PLACEMENT_FORM(payload: Partial) {\n if (!this.getters.currentPlacement) return;\n\n const updatedPlacement = { ...this.getters.currentPlacement, ...payload };\n\n this.commit('SET_PLACEMENT_FORM', updatedPlacement);\n }\n\n async FETCH_MARKUPS(placementId: string) {\n const res = await MarkupsApi.fetchMarkups({ params: { placementId } });\n\n this.commit('SET_MARKUPS', res.data.list);\n }\n\n async ADD_PLACEMENT_MARKUP(payload: SetMarkupPayload) {\n await MarkupsApi.setMarkup(payload);\n await this.dispatch('FETCH_MARKUPS', payload.placementId);\n\n this.commit('SET_MAPRKUPS_IS_CHANGED', true);\n }\n\n RESET_MARKUPS() {\n this.commit('SET_MARKUPS', []);\n this.commit('RESET_MARKUPS_WITH_COST', []);\n this.commit('SET_MAPRKUPS_IS_CHANGED', false);\n }\n\n async FETCH_MARKUP(markupId: string) {\n const res = await MarkupsApi.fetchMarkup(markupId);\n\n this.commit('SET_MARKUPS_WITH_COST', { markupId, markup: res.data });\n }\n\n async ADD_MARKUP_PERIOD(payload: { markupId: string; data: SetMarkupPayload }) {\n const { markupId, data } = payload;\n\n await MarkupsApi.setMarkup(data);\n await this.dispatch('FETCH_MARKUP', markupId);\n\n this.commit('SET_MAPRKUPS_IS_CHANGED', true);\n }\n\n async DELETE_MARKUP_PERIOD(payload: { markupId: string; index: number | string }) {\n const { markupId, index } = payload;\n\n await MarkupsApi.deleteMarkup({ markupId, config: { data: `${index}` } });\n await this.dispatch('FETCH_MARKUP', markupId);\n\n this.commit('SET_MAPRKUPS_IS_CHANGED', true);\n }\n\n async DELETE_MARKUP(payload: { placementId: string; markupId: string }) {\n const { placementId, markupId } = payload;\n\n await MarkupsApi.deleteMarkup({ markupId, config: { data: '' } });\n await this.dispatch('FETCH_MARKUPS', placementId);\n\n this.commit('SET_MAPRKUPS_IS_CHANGED', true);\n }\n\n async FETCH_CATEGORIES() {\n const res = await CategoriesApi.fetchCategories();\n\n this.commit('SET_CATEGORIES', res.data);\n }\n\n async FETCH_DATA_PROVIDERS() {\n const res = await DataProvidersApi.fetchDataProviders();\n\n this.commit('SET_DATA_PROVIDERS', res.data);\n }\n\n async FETCH_PLACEMENT_MANUAL_STATES() {\n const res = await PlacementsApi.fetchManualStates();\n\n this.commit('SET_PLACEMENT_MANUAL_STATES', res.data);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const campaignEditorPlacementDetailsStoreMapper = createMapper(module);\n\nexport const useCampaignEditorPlacementDetailsStore = createComposable(module);\n\nexport default module;\n","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableApprovedCell.vue?vue&type=style&index=0&id=4ab11994&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategorySettings.vue?vue&type=style&index=0&id=53ef1fe2&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorContent.vue?vue&type=style&index=0&id=9c87a3ea&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableMarkupsCell.vue?vue&type=style&index=0&id=2d5c52c0&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignConnectorContent.vue?vue&type=style&index=0&id=70036b20&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsTableRow.vue?vue&type=style&index=0&id=eedefcde&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsPageLoader.vue?vue&type=style&index=0&id=2177d58a&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TypeCell.vue?vue&type=style&index=0&lang=scss&\"","/* eslint-disable max-classes-per-file */\n\nimport { Store } from 'vuex';\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { oidcToRefs, useOidc } from '@shared/vue-oidc';\n\nimport { User } from '@/models/User';\n\nimport { AccountsApi } from '@/api';\n\nclass ModuleState {\n user: User | null = null;\n}\n\nclass ModuleGetters extends Getters {\n store!: Store;\n\n $init(store: Store) {\n this.store = store;\n }\n\n get userSignedIn(): boolean {\n const oidc = useOidc();\n\n const { oidcIsAuthenticated } = oidcToRefs(oidc);\n\n return oidcIsAuthenticated.value || false;\n }\n\n get user() {\n return this.state.user;\n }\n\n get userName() {\n return this.getters.user?.name || '';\n }\n\n get userInitials() {\n const names = this.getters.userName.split(' ');\n const first = names[0] ? names[0][0] : '';\n const last = names[1] ? names[1][0] : '';\n\n return `${first}${last}` || 'JD';\n }\n\n get userEmail() {\n return this.getters.user?.email || '';\n }\n\n get userImage() {\n return this.getters.user?.image || '';\n }\n\n get userPermissions() {\n return this.getters.user?.permissions || ['any'];\n }\n\n get userIsDp() {\n return this.getters.user?.isDP || false;\n }\n\n get userIsBu() {\n return this.getters.user?.isBU || false;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_USER(payload: User) {\n this.state.user = payload;\n }\n\n RESET() {\n const defaultState = new ModuleState();\n\n Object.keys(defaultState).forEach((key) => {\n this.state[key] = defaultState[key];\n });\n }\n}\n\nclass ModuleActions extends Actions {\n store!: Store;\n\n $init(store: Store) {\n this.store = store;\n }\n\n async SIGN_OUT() {\n const oidc = useOidc();\n\n await oidc.signOutOidc();\n\n this.commit('RESET');\n }\n\n async FETCH_USER() {\n const res = await AccountsApi.fetchUser();\n\n this.commit('SET_USER', res.data);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const authStoreMapper = createMapper(module);\n\nexport const useAuthStore = createComposable(module);\n\nexport default module;\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersCatalogHeader.vue?vue&type=style&index=0&id=75461338&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersAccessRightsModal.vue?vue&type=style&index=0&id=e524eca6&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesItemForm.vue?vue&type=style&index=0&id=275b1136&lang=scss&scoped=true&\"","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { modallyRootShow } from './ModallyRoot.vue';\n\nimport { ModallyModalOptions, ModallyShowResult } from './types';\n\nexport default {\n async show(payload: ModallyModalOptions): Promise> {\n return new Promise>((resolve) => {\n modallyRootShow(payload, resolve);\n });\n },\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBottomNavigation.vue?vue&type=style&index=0&id=0c00ffa7&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableApprovedCell.vue?vue&type=style&index=0&id=025a514c&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTable.vue?vue&type=style&index=1&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesCatalogHeader.vue?vue&type=style&index=0&id=0d2ae6cc&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FactUpload.vue?vue&type=style&index=0&id=13d95e57&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBar.vue?vue&type=style&index=0&id=71595b46&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport { Getters, Mutations, Actions, Module, createMapper } from 'vuex-smart-module';\n\nclass ModuleState {\n headerMinHeight = 80;\n\n sideBarWidth = 224;\n\n sideBarMinWidth = 64;\n\n sideBarMinimaized = false;\n\n footerMinHeight = 60;\n}\n\nclass ModuleGetters extends Getters {\n get headerMinHeight() {\n return this.state.headerMinHeight;\n }\n\n get sideBarWidth() {\n return this.state.sideBarWidth;\n }\n\n get sideBarMinWidth() {\n return this.state.sideBarMinWidth;\n }\n\n get sideBarMinimaized() {\n return this.state.sideBarMinimaized;\n }\n\n get footerMinHeight() {\n return this.state.footerMinHeight;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_SIDE_BAR_MINIMAIZED(value: boolean) {\n this.state.sideBarMinimaized = value;\n }\n}\n\nclass ModuleActions extends Actions {\n CHANGE_SIDE_BAR_MINIMAIZED(value: boolean) {\n this.commit('SET_SIDE_BAR_MINIMAIZED', value);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const navigationUiStoreMapper = createMapper(module);\n\nexport default module;\n","var map = {\n\t\"./Default.vue\": \"ea2a\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4423\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersCatalogHeader.vue?vue&type=style&index=0&id=10c507a5&lang=scss&scoped=true&\"","const hasOwnProperty = , Y extends PropertyKey>(obj: X, prop: Y): obj is X & Record => Object\n .hasOwnProperty.call(obj, prop);\n\nexport default hasOwnProperty;\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesItemForm.vue?vue&type=style&index=0&id=3221b10f&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorCategoriesLoader.vue?vue&type=style&index=0&id=26d2b969&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./app.scss?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchSideBar.vue?vue&type=style&index=0&id=6d96bb72&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarMinimizer.vue?vue&type=style&index=0&id=89cffa26&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorSettingsLoader.vue?vue&type=style&index=0&id=6b881c75&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListLoader.vue?vue&type=style&index=0&id=0f3df004&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignTabs.vue?vue&type=style&index=0&id=8baeb1e2&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalogHeader.vue?vue&type=style&index=0&id=f82f99a0&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./User.icon.vue?vue&type=style&index=0&id=48974492&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignChart.vue?vue&type=style&index=0&id=ae4229ac&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientBrandSettings.vue?vue&type=style&index=0&id=599b18f0&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTableCheckCell.vue?vue&type=style&index=0&id=efc2854c&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalogTableRow.vue?vue&type=style&index=0&id=f2144df4&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardLabels.vue?vue&type=style&index=0&id=4923ac0a&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTablePeriodCell.vue?vue&type=style&index=0&id=5447f2d0&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardChartInfoTooltip.vue?vue&type=style&index=0&id=a7777f3e&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport Vue from 'vue';\nimport { Store } from 'vuex';\nimport { Getters, Mutations, Actions, Module, Context, createMapper } from 'vuex-smart-module';\n\nimport { ClientLike } from '@/models/Client';\n\nimport clientStore from '@/store/client';\nimport campaignStore from '@/store/campaign';\n\nclass ModuleState {\n currentClient: ClientLike | null = null;\n}\n\nclass ModuleGetters extends Getters {\n clientStoreContext!: Context;\n\n campaignStoreContext!: Context;\n\n get currentClient() {\n return this.state.currentClient;\n }\n\n get currentClientId() {\n return this.getters.currentClient?.id;\n }\n\n get currentClientName() {\n return this.getters.currentClient?.name || '';\n }\n\n get currentClientPath() {\n return this.getters.currentClientId ? `/clients/${this.getters.currentClientId}` : '';\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_CURRENT_CLIENT(payload: ClientLike) {\n this.state.currentClient = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n $init(store: Store) {\n const clientStoreContext = clientStore.context(store);\n const campaignStoreContext = campaignStore.context(store);\n\n const initWatchers = async () => {\n await Vue.nextTick();\n\n store.watch(() => clientStoreContext.getters.client, (val) => {\n if (!val) return;\n\n this.dispatch('CHANGE_CURRENT_CLIENT', {\n id: val.id,\n name: val.name,\n });\n });\n\n store.watch(() => campaignStoreContext.getters.campaign, (val) => {\n if (!val) return;\n\n this.dispatch('CHANGE_CURRENT_CLIENT', {\n id: val.clientId,\n name: val.clientName,\n });\n });\n };\n\n initWatchers();\n }\n\n CHANGE_CURRENT_CLIENT(payload: ClientLike) {\n this.commit('SET_CURRENT_CLIENT', payload);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const navigationCurrentClientStoreMapper = createMapper(module);\n\nexport default module;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditor.vue?vue&type=style&index=0&id=13d7c422&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchHeader.vue?vue&type=style&index=0&id=6b5f5d8a&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/company-logo.d0073a8e.svg\";","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsMarkupsModal.vue?vue&type=style&index=0&id=71f4c67c&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsCatalog.vue?vue&type=style&index=0&id=1d972874&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacements.vue?vue&type=style&index=0&id=0cdad46a&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JsonEditor.vue?vue&type=style&index=0&id=e3bc583e&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsTableRow.vue?vue&type=style&index=0&id=11457497&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableAddModal.vue?vue&type=style&index=0&id=043cd95c&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableInfoCell.vue?vue&type=style&index=0&id=3159fdb4&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarMenuItem.vue?vue&type=style&index=0&id=b62b05d8&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchListItem.vue?vue&type=style&index=0&id=f092a7da&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarLogo.vue?vue&type=style&index=0&id=0177b6ee&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorLoader.vue?vue&type=style&index=0&id=1180d9c5&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"list-loader\"},[(!_vm.withoutTitle)?_c('v-skeleton-loader',{staticClass:\"list-loader__title list-loader__item\",attrs:{\"type\":\"text\"}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.rows),function(num){return _c('v-skeleton-loader',{key:num,staticClass:\"list-loader__item\",attrs:{\"type\":\"text\"}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ListLoader.vue?vue&type=template&id=0f3df004&scoped=true&\"\nimport script from \"./ListLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./ListLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ListLoader.vue?vue&type=style&index=0&id=0f3df004&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f3df004\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListTableRow.vue?vue&type=style&index=0&id=4a11de47&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport { Store } from 'vuex';\nimport { Getters, Mutations, Actions, Module, Context, createMapper, createComposable } from 'vuex-smart-module';\n\nimport modally from '@/services/modally';\n\nimport { CampaignEditorPlacement, CampaignPlanMetrics } from '@/models/Campaign';\n\nimport {\n TargetingGender,\n TargetingRegion,\n TargetingCappingPeriod,\n TargetingTransmittance,\n TargetingIncomeGroup,\n} from '@/models/Targeting';\n\nimport { Category } from '@/models/Category';\nimport { DataProvider } from '@/models/DataProvider';\n\nimport { CampaignEditorApi, CategoriesApi, DataProvidersApi, TargetingsApi } from '@/api';\n\nimport isError from '@/utils/isError';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport campaignStore from '../campaign';\n\nexport interface PlacementsFilters {\n filter: string;\n hidden: boolean;\n}\n\nclass ModuleState {\n filters: PlacementsFilters = {\n filter: '',\n hidden: false,\n }\n\n campaignPlacements: CampaignEditorPlacement[] = [];\n\n campaignPlanMetrics: CampaignPlanMetrics = [];\n\n selectedPlanMetrics: CampaignPlanMetrics = [];\n\n campaignPlacementsForm: CampaignEditorPlacement[] = [];\n\n categories: Category[] = [];\n\n genders: TargetingGender[] = [];\n\n regions: TargetingRegion[] = [];\n\n cappingPeriods: TargetingCappingPeriod[] = [];\n\n transmittances: TargetingTransmittance[] = [];\n\n incomeGroups: TargetingIncomeGroup[] = [];\n\n dataProviders: DataProvider[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get campaignPlacements() {\n return this.state.campaignPlacements;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get categories() {\n return this.state.categories;\n }\n\n get changedPlacements() {\n return this.state.campaignPlacementsForm;\n }\n\n get hasBeenChanged() {\n return !!this.getters.changedPlacements.length;\n }\n\n get campaignPlanMetrics() {\n return this.state.campaignPlanMetrics;\n }\n\n get filledPlanMetrics() {\n return this.getters.campaignPlanMetrics.filter(({ name }) => this.getters.campaignPlacements.some((placement) => placement.planTotalMetrics[name]));\n }\n\n get selectedPlanMetrics() {\n return this.state.selectedPlanMetrics;\n }\n\n get visiblePlanMetrics() {\n const planMetrics = [...this.getters.filledPlanMetrics];\n\n this.getters.selectedPlanMetrics.forEach((planMetric) => {\n const planMetricAlreadyExists = planMetrics.some(({ name }) => name === planMetric.name);\n\n if (planMetricAlreadyExists) return;\n\n planMetrics.push(planMetric);\n });\n\n const planMetricsWeightsMap = this.getters.campaignPlanMetrics.reduce((map, planMetric, idx) => {\n map[planMetric.name] = idx;\n\n return map;\n }, {});\n\n return planMetrics.sort((planMetricA, planMetricB) => {\n const planMetricAWeight = planMetricsWeightsMap[planMetricA.name];\n const planMetricBWeight = planMetricsWeightsMap[planMetricB.name];\n\n return planMetricAWeight - planMetricBWeight;\n });\n }\n\n get visiblePlacements() {\n return this.getters.campaignPlacements.filter(({ hidden }) => !hidden);\n }\n\n get hiddenPlacements() {\n return this.getters.campaignPlacements.filter(({ hidden }) => hidden);\n }\n\n get dataProviders() {\n return this.state.dataProviders;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_FILTERS(payload: PlacementsFilters) {\n this.state.filters = payload;\n }\n\n SET_CAMPAIGN_PLACEMENTS(payload: CampaignEditorPlacement[]) {\n this.state.campaignPlacements = payload;\n }\n\n SET_CAMPAIGN_PLAN_METRICS(payload: CampaignPlanMetrics) {\n this.state.campaignPlanMetrics = payload;\n }\n\n SET_SELECTED_PLAN_METRICS(payload: CampaignPlanMetrics) {\n this.state.selectedPlanMetrics = payload;\n }\n\n SET_CATEGORIES(payload: Category[]) {\n this.state.categories = payload;\n }\n\n ADD_TO_CHANGED_PLACEMENTS(payload: CampaignEditorPlacement[]) {\n payload.forEach((newPlacement) => {\n const idx = this.state.campaignPlacementsForm.findIndex((placement) => placement.id === newPlacement.id);\n\n if (idx === -1) {\n this.state.campaignPlacementsForm.push(newPlacement);\n } else {\n this.state.campaignPlacementsForm.splice(idx, 1, newPlacement);\n }\n });\n }\n\n RESET_CHANGES() {\n this.state.campaignPlacementsForm = [];\n }\n\n SET_GENDERS(payload: TargetingGender[]) {\n this.state.genders = payload;\n }\n\n SET_REGIONS(payload: TargetingRegion[]) {\n this.state.regions = payload;\n }\n\n SET_CAPPING_PERIODS(payload: TargetingCappingPeriod[]) {\n this.state.cappingPeriods = payload;\n }\n\n SET_TRANSMITTANCES(payload: TargetingTransmittance[]) {\n this.state.transmittances = payload;\n }\n\n SET_INCOME_GROUPS(payload: TargetingIncomeGroup[]) {\n this.state.incomeGroups = payload;\n }\n\n SET_DATA_PROVIDERS(payload: DataProvider[]) {\n this.state.dataProviders = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n store!: Store;\n\n campaign!: Context;\n\n $init(store: Store) {\n this.store = store;\n\n this.campaign = campaignStore.context(store);\n }\n\n async FETCH(campaignId: string) {\n const res = await CampaignEditorApi.fetchPlacements(campaignId);\n\n this.commit('SET_CAMPAIGN_PLACEMENTS', res.data);\n }\n\n async FETCH_CAMPAIGN_PLAN_METRICS() {\n try {\n const res = await CampaignEditorApi.fetchCampaignPlanMetrics();\n\n this.commit('SET_CAMPAIGN_PLAN_METRICS', res.data);\n } catch (e) {\n const title = 'Не удалось получить список плановых метрик';\n\n modally.show({ status: 'error', title });\n }\n }\n\n async FETCH_CATEGORIES() {\n const res = await CategoriesApi.fetchCategories();\n\n this.commit('SET_CATEGORIES', res.data);\n }\n\n PUSH_TO_CHANGED_PLACEMENTS(payload: CampaignEditorPlacement[]) {\n this.commit('ADD_TO_CHANGED_PLACEMENTS', payload);\n }\n\n async SAVE(payload: { campaignId: string; options?: { withConfirm: boolean } }) {\n if (!this.getters.hasBeenChanged) return;\n\n const defaultOptions = {\n withConfirm: true,\n };\n\n const options = payload?.options ? { ...defaultOptions, ...payload.options } : defaultOptions;\n\n // TODO: разобраться с отправкой события в GTM\n\n const save = async () => {\n const data = { placements: this.getters.changedPlacements };\n\n try {\n await CampaignEditorApi.updatePlacements({\n campaignId: payload.campaignId,\n data,\n });\n\n // TODO: здесь по хорошему нужно обновлять данными из ответа, а не делать доп. запрос\n await this.dispatch('FETCH', payload.campaignId);\n\n this.commit('RESET_CHANGES');\n } catch (error) {\n if (!isError(error)) return;\n\n modally.show({\n status: 'error',\n title: 'Не удалось сохранить настройки размещений',\n content: 'Проверьте введенные данные и попытайтесь еще раз',\n });\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n }\n };\n\n if (options.withConfirm) {\n const title = 'Сохранить изменения?';\n\n const firstChangedPlacemnents = this.getters.changedPlacements.slice(0, 10);\n const otherChangedPlacements = this.getters.changedPlacements.slice(10);\n const otherChangedPlacementsLength = otherChangedPlacements.length;\n\n const firstChangedPlacemnentsDonboIds = firstChangedPlacemnents.map((placement) => placement.danboId);\n\n const content = `Будут затронуты размещения ${firstChangedPlacemnentsDonboIds.join(', ')}${otherChangedPlacementsLength ? ` и еще ${otherChangedPlacementsLength}` : ''}`;\n\n const result = await modally.show({\n type: 'confirm',\n status: 'neutral',\n title,\n content,\n });\n\n if (!result) return;\n\n await save();\n } else {\n await save();\n }\n }\n\n async FETCH_GENDERS() {\n const res = await TargetingsApi.fetchGenders();\n\n this.commit('SET_GENDERS', res.data);\n }\n\n async FETCH_CAPPING_PERIODS() {\n const res = await TargetingsApi.fetchCappingPeriods();\n\n this.commit('SET_CAPPING_PERIODS', res.data);\n }\n\n async FETCH_TRANSMITTANCES() {\n const res = await TargetingsApi.fetchTransmittances();\n\n this.commit('SET_TRANSMITTANCES', res.data);\n }\n\n async FETCH_INCOME_GROUPS() {\n const res = await TargetingsApi.fetchIncomeGroups();\n\n this.commit('SET_INCOME_GROUPS', res.data);\n }\n\n async FETCH_REGIONS() {\n const res = await TargetingsApi.fetchRegions();\n\n this.commit('SET_REGIONS', res.data);\n }\n\n async FETCH_DATA_PROVIDERS() {\n const res = await DataProvidersApi.fetchDataProviders();\n\n this.commit('SET_DATA_PROVIDERS', res.data);\n }\n\n async FETCH_CATALOGS() {\n await Promise.all([\n this.dispatch('FETCH_CAMPAIGN_PLAN_METRICS'),\n this.dispatch('FETCH_GENDERS'),\n this.dispatch('FETCH_TRANSMITTANCES'),\n this.dispatch('FETCH_REGIONS'),\n this.dispatch('FETCH_CAPPING_PERIODS'),\n this.dispatch('FETCH_INCOME_GROUPS'),\n this.dispatch('FETCH_DATA_PROVIDERS'),\n ]);\n }\n\n async UPLOAD_FLIGHTS_PLAN(payload: { campaignId: string; formData: FormData }) {\n const { campaignId, formData } = payload;\n\n if (!campaignId) return;\n\n await CampaignEditorApi.uploadFlightsPlan({ campaignId, data: formData });\n await this.dispatch('FETCH', campaignId);\n\n this.commit('RESET_CHANGES');\n }\n\n async UPLOAD_PLACEMENT_PLAN(payload: { campaignId: string; formData: FormData }) {\n const { campaignId, formData } = payload;\n\n if (!campaignId) return;\n\n await CampaignEditorApi.uploadPlacementPlan({ campaignId, data: formData });\n await this.dispatch('FETCH', campaignId);\n\n this.commit('RESET_CHANGES');\n }\n\n async UPDATE_FILTERS(filters: Partial) {\n if (this.getters.hasBeenChanged) {\n const result = await modally.show({\n status: 'warning',\n title: 'Есть несохраненные данные',\n type: 'confirm',\n content: 'Настройки размещений будут сброшены',\n buttons: [\n {\n props: {\n text: 'Хорошо',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary-gradient',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) return;\n\n this.commit('RESET_CHANGES');\n }\n\n const updatedFilters = {\n ...this.getters.filters,\n ...filters,\n };\n\n this.commit('SET_FILTERS', updatedFilters);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const campaignEditorPlacementsStoreMapper = createMapper(module);\n\nexport const useCampaignEditorPlacementsStore = createComposable(module);\n\nexport default module;\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsTable.vue?vue&type=style&index=0&id=8507a20c&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensNew.vue?vue&type=style&index=0&id=0c4609c1&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsTableRow.vue?vue&type=style&index=0&id=7e2612ea&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoriesTable.vue?vue&type=style&index=0&id=3a36f46d&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchList.vue?vue&type=style&index=0&id=6e3bf70c&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableLoader.vue?vue&type=style&index=0&id=a512b1de&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsTableRow.vue?vue&type=style&index=0&id=8035e05e&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientListItem.vue?vue&type=style&index=0&id=20f9d1ae&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSidebarNavMenuLoader.vue?vue&type=style&index=0&id=3ecc2764&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsTableRow.vue?vue&type=style&index=0&id=2ec3cfe4&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsItemModal.vue?vue&type=style&index=0&id=b1958ecc&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsMetricsModal.vue?vue&type=style&index=0&id=e0b5e7b2&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/excel_settings.8d4f90e1.png\";","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\nimport { UnapprovedPlacementsApi } from '@/api';\n\nclass ModuleState {\n unapprovedPlacementsCount = 0;\n}\n\nclass ModuleGetters extends Getters {\n get unapprovedPlacementsCount() {\n return this.state.unapprovedPlacementsCount;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_UNAPPROVED_PLACEMENTS_COUNT(count: number) {\n this.state.unapprovedPlacementsCount = count;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_UNAPPROVED_PLACEMENTS_COUNT() {\n const res = await UnapprovedPlacementsApi.fetchCountV2();\n\n this.commit('SET_UNAPPROVED_PLACEMENTS_COUNT', res.data);\n }\n\n async CHANGE_UNAPPROVED_PLACEMENTS_COUNT(count: number) {\n this.commit('SET_UNAPPROVED_PLACEMENTS_COUNT', count);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useNavigationUnapprovedPlacementsStore = createComposable(module);\nexport const navigationUnapprovedPlacementsStoreMapper = createMapper(module);\n\nexport default module;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=style&index=0&id=6a06e251&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesItemModal.vue?vue&type=style&index=0&id=42131978&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersItemModal.vue?vue&type=style&index=0&id=b2ecda4a&lang=scss&scoped=true&\"","var map = {\n\t\"./ru\": \"4a7a\",\n\t\"./ru.js\": \"4a7a\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"71f7\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersCatalog.vue?vue&type=style&index=0&id=4c033130&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetailsLoader.vue?vue&type=style&index=0&id=f56c5500&lang=scss&scoped=true&\"","import hasOwnProperty from '@/utils/hasOwnProperty';\n\nimport { AppJsonErrorPayload } from './types';\n\nexport default class AppJsonError extends Error {\n constructor(payload: AppJsonErrorPayload) {\n const error = {\n name: payload.error.name,\n stack: payload.error.stack,\n message: payload.error.message,\n };\n\n if (payload.error && typeof payload.error === 'object' && hasOwnProperty(payload.error, 'toJSON')) {\n delete payload.error.toJSON;\n }\n\n super(JSON.stringify({\n error,\n options: payload.options,\n data: payload.error,\n }));\n\n this.name = 'JSON Error';\n\n if (typeof payload.error.stack === 'string') {\n this.stack = payload.error.stack;\n }\n }\n}\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsMarkup.vue?vue&type=style&index=0&id=a5ae6584&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignChart.vue?vue&type=style&index=1&lang=scss&\"","import { AxiosResponse } from 'axios';\n\nimport { User } from '@/models/User';\n\nimport httpClient from '../httpClient';\n\nexport default class AccountsApi {\n public static async fetchUser(): Promise> {\n const res = await httpClient.get('/api/v2/accounts/me');\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Client } from '@/models/Client';\nimport { Brand } from '@/models/Brand';\n\nimport httpClient from '../httpClient';\n\nexport interface FetchClientsV2Payload {\n page: number;\n limit: number;\n state: 'active' | 'archive' | 'all';\n}\n\ninterface FetchClientsPayload {\n params?: {\n searchQuery?: string;\n };\n}\n\nexport interface ClientRenamePayload {\n clientId: string;\n clientNameManual: string;\n brandId: string;\n brandNameManual: string;\n clientCategoriesIds: string[];\n brandCategoriesIds: string[];\n}\n\ninterface FetchClientsV2Response {\n list: Client[];\n totalRows: number;\n}\n\nexport default class ClientsApi {\n public static async fetchClientsV2(payload: FetchClientsV2Payload): Promise> {\n const res = await httpClient.get('/api/v2/clients', { params: payload });\n\n return res;\n }\n\n public static async fetchClients(payload?: FetchClientsPayload): Promise> {\n const res = await httpClient.get('/api/clients', payload);\n\n return res;\n }\n\n public static async fetchClient(clientId: string): Promise> {\n const res = await httpClient.get(`/api/clients/${clientId}`);\n\n return res;\n }\n\n public static async fetchClientBrands(clientId: string): Promise> {\n const res = await httpClient.get(`/api/clients/${clientId}/brands`);\n\n return res;\n }\n\n public static async clientRename(payload: ClientRenamePayload): Promise> {\n const res = await httpClient.post<''>('/api/clients/rename', payload);\n\n return res;\n }\n\n public static async removeClientManualSettings(payload: { clientId: string; brandId: string }): Promise> {\n const res = await httpClient.post<''>('/api/clients/manual-remove', payload);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Campaign, CampaignCategory, CampaignPlacement, CampaignsByBrand } from '@/models/Campaign';\nimport { AdObject } from '@/models/AdObject';\n\nimport httpClient from '../httpClient';\n\nexport interface FetchCampaignPayload {\n campaignId: string;\n params?: {\n from?: string;\n to?: string;\n };\n}\n\nexport interface FetchCampaignInfoPayload {\n campaignId: string;\n}\n\ninterface FetchCampaignResponse {\n campaign: Campaign;\n categories: CampaignCategory[];\n}\n\ninterface FetchCampaignsByBrandPayload {\n brandId: string;\n params?: {\n searchQuery?: string;\n getFinished?: boolean;\n };\n}\n\nexport interface FetchPlacementPayload {\n campaignId: string;\n danboId: string;\n params?: {\n from?: string;\n to?: string;\n };\n}\n\nexport interface FetchAdObjectPayload {\n campaignId: string;\n danboId: string;\n connectorId: string;\n params?: {\n from?: string;\n to?: string;\n };\n}\n\ninterface FetchAdObjectResponse {\n adObjects: AdObject[];\n displayableMetrics: string[];\n planMetrics: Record;\n source: {\n id: string;\n updatedAt: string;\n dataProviderId: string;\n dataProviderName: string;\n dataProviderType: {\n id: string;\n };\n metricsTotal: Record;\n metrics: {\n date: string;\n metrics: Record;\n }[];\n groups: unknown[]; // TODO: Описать тип\n isActive: boolean;\n };\n}\n\nexport interface FetchAdObjectWithLevelPayload {\n campaignId: string;\n danboId: string;\n connectorId: string;\n level: string;\n type: string;\n onSiteId: string;\n params?: {\n from?: string;\n to?: string;\n };\n}\n\ninterface FetchAdObjectWithLevelResponse {\n adObjects: AdObject[];\n displayableMetrics: string[];\n parentAdObject: AdObject;\n parentAdObjectId: {\n name: string;\n type: string;\n onSiteId: string;\n parent: {\n name: string;\n };\n };\n}\n\ninterface UpdateCampaignSettingsPayload {\n campaignId: string;\n data: {\n campaignNameManual: string;\n brandIdManual: string;\n conversionRateCalculationMode: string;\n dataProviderId?: string | null;\n includeAC: boolean;\n includeVAT: boolean;\n mainGoal?: {\n id: string;\n mainGoal: boolean;\n name: string;\n providerId: string;\n providerName: string;\n providerSettingsId: string;\n providerSettingsName: string;\n };\n };\n}\n\ninterface UpdateCampaignCategoriesPayload {\n campaignId: string;\n data: {\n campaignTypeId: string;\n campaignCategoriesIds: string[];\n };\n}\n\ninterface UpdateCampaignCategoriesOrderPayload {\n campaignId: string;\n data: {\n CategoriesPlacements: {\n CategoryId: string;\n PlacementsIds: string[];\n }[];\n };\n}\n\nexport interface SetCampaignCategoriesPayload {\n campaignId: string;\n data: {\n campaignTypeId: string;\n clientCategoriesIds: string[];\n brandCategoriesIds: string[];\n campaignCategoriesIds: string[];\n };\n}\n\nexport default class CampaignsApi {\n public static async fetchCampaign(payload: FetchCampaignPayload): Promise> {\n const { campaignId, params } = payload;\n\n const res = await httpClient.get(`/api/campaigns/${campaignId}`, { params });\n\n return res;\n }\n\n public static async fetchCampaignInfo(payload: FetchCampaignInfoPayload): Promise> {\n const { campaignId } = payload;\n\n const res = await httpClient.get(`/api/campaigns/${campaignId}/info`);\n\n return res;\n }\n\n public static async fetchCampaignsByBrand(payload: FetchCampaignsByBrandPayload): Promise> {\n const { brandId, params } = payload;\n\n const res = await httpClient.get(`/api/campaigns/by-brand/${brandId}`, { params });\n\n return res;\n }\n\n public static async fetchPlacement(payload: FetchPlacementPayload): Promise> {\n const { campaignId, danboId, params } = payload;\n\n const res = await httpClient.get(`/api/campaigns/${campaignId}/${danboId}`, { params });\n\n return res;\n }\n\n public static async fetchAdObject(payload: FetchAdObjectPayload): Promise> {\n const {\n campaignId,\n danboId,\n connectorId,\n params,\n } = payload;\n\n const res = await httpClient.get(`/api/campaigns/${campaignId}/${danboId}/${connectorId}`, { params });\n\n return res;\n }\n\n public static async fetchAdObjectWithLevel(payload: FetchAdObjectWithLevelPayload): Promise> {\n const {\n campaignId,\n danboId,\n connectorId,\n level,\n type,\n onSiteId,\n params,\n } = payload;\n\n const res = await httpClient.get(`/api/campaigns/${campaignId}/${danboId}/${connectorId}/${level}/${type}/${onSiteId}`, { params });\n\n return res;\n }\n\n public static async updateCampaignSettings(payload: UpdateCampaignSettingsPayload): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post<''>(`/api/campaigns/${campaignId}/updatesettings`, data);\n\n return res;\n }\n\n public static async updateCampaignCategories(payload: UpdateCampaignCategoriesPayload): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post<''>(`/api/campaigns/${campaignId}/updatecategories`, data);\n\n return res;\n }\n\n public static async updateCampaignApproved(payload: { campaignId: string; data: boolean }): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post<''>(`/api/campaigns/${campaignId}/approve`, `${data}`);\n\n return res;\n }\n\n public static async updateCampaignCategoriesOrder(payload: UpdateCampaignCategoriesOrderPayload): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post<''>(`/api/campaigns/${campaignId}/update-order`, data);\n\n return res;\n }\n\n public static async updateCampaignActiveStatus(payload: { campaignId: string; data: boolean }): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post<''>(`/api/campaigns/${campaignId}/setIsActive`, `${data}`);\n\n return res;\n }\n\n public static async setCampaignCategories(payload: SetCampaignCategoriesPayload): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post<''>(`/api/campaigns/${campaignId}/set-categories`, data);\n\n return res;\n }\n\n public static async removeCampaignManualSettings(payload: { campaignId: string; data: Record }): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post<''>(`/api/campaigns/${campaignId}/manual-remove`, data);\n\n return res;\n }\n\n public static async validateDanboId(danboId: string): Promise> {\n const res = await httpClient.get<{ isValid: boolean }>(`/api/campaigns/validate/${danboId}`);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Placement, PlacementManualState } from '@/models/Placement';\n\nimport httpClient from '../httpClient';\n\nexport default class PlacementsApi {\n public static async fetchPlacementsByCampaign(campaignId: string): Promise> {\n const res = await httpClient.get(`/api/placements/by-campaign/${campaignId}`);\n\n return res;\n }\n\n public static async fetchPlacement(placementId: string): Promise> {\n const res = await httpClient.get(`/api/placements/${placementId}`);\n\n return res;\n }\n\n public static async fetchManualStates(): Promise> {\n const res = await httpClient.get('/api/placements/get-manual-states');\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { UnapprovedCampaign, UnapprovedPlacement } from '@/models/UnapprovedPlacements';\nimport { PlacementMetrics } from '@/models/Placement';\n\nimport httpClient from '../httpClient';\n\ninterface FetchCampaignsPayloadV2 {\n params: {\n page: number;\n searchQuery: string;\n };\n}\n\ninterface FetchCampaignsResponseV2 {\n list: UnapprovedCampaign[];\n totalRows: number;\n}\n\ninterface FetchPlacementsPayload {\n params: {\n searchQuery: string;\n };\n}\n\ninterface FetchPlacementsByCampaignResponse {\n placements: unknown[]; // TODO: Описать тип\n archiveCount: number;\n moderateCount: number;\n shownCount: number;\n waitingCount: number;\n}\n\ninterface FetchPlacementMarkupsPayload {\n placementIds: string[];\n}\n\ninterface FetchPlacementMarkupsResponse {\n markups: unknown[]; // TODO: Описать тип\n}\n\ninterface ChangeStatusPayload {\n ids: string[];\n status: string;\n resetCheck: boolean | null;\n pageInfo: {\n documentHostname: string;\n page: string;\n title: string;\n affiliation: string;\n } | null;\n}\n\ninterface ChangeFinalStatusPayload {\n id: string;\n status: string;\n dataProviderId: string | null;\n resetCheck: boolean | null;\n pageInfo: {\n documentHostname: string;\n page: string;\n title: string;\n affiliation: string;\n } | null;\n}\n\ninterface SkipMarkupPayload {\n ids: string[];\n skipMarkup: boolean;\n}\n\nexport default class UnapprovedPlacementsApi {\n public static async fetchCampaignsV2(payload: FetchCampaignsPayloadV2): Promise> {\n const res = await httpClient.get('/api/v2/unapproved/campaigns', payload);\n\n return res;\n }\n\n public static async fetchPlacementsByCampaignV2(campaignId: string): Promise> {\n const res = await httpClient.get(`/api/v2/unapproved/placements-by-campaign/${campaignId}`);\n\n return res;\n }\n\n public static async fetchCountV2(): Promise> {\n const res = await httpClient.get('/api/v2/unapproved/placement-count');\n\n return res;\n }\n\n // TODO: Описать типы\n public static async fetchCampaigns(payload: FetchPlacementsPayload): Promise> {\n const res = await httpClient.get('/api/unapprovedPlacements', payload);\n\n return res;\n }\n\n public static async fetchPlacementsByCampaign(campaignId: string): Promise> {\n const res = await httpClient.get(`/api/unapprovedPlacements/by-campaign/${campaignId}`);\n\n return res;\n }\n\n public static async fetchCount(): Promise> {\n const res = await httpClient.get('/api/unapprovedPlacements/count');\n\n return res;\n }\n\n public static async fetchPlacementMarkups(payload: FetchPlacementMarkupsPayload): Promise> {\n const res = await httpClient.post('/api/unapprovedPlacements/markups', payload);\n\n return res;\n }\n\n public static async fetchPlacementMetrics(danboId: string): Promise> {\n const res = await httpClient.get(`/api/unapprovedPlacements/metrics/${danboId}`);\n\n return res;\n }\n\n // TODO: Описать типы\n public static async changeStatus(payload: ChangeStatusPayload): Promise> {\n const res = await httpClient.post('/api/unapprovedPlacements/changeStatus', payload);\n\n return res;\n }\n\n public static async changeFinalStatus(payload: ChangeFinalStatusPayload): Promise>> {\n const res = await httpClient.post>('/api/unapprovedPlacements/changeFinalStatus', payload);\n\n return res;\n }\n\n // TODO: Описать типы\n public static async skipMarkup(payload: SkipMarkupPayload): Promise> {\n const res = await httpClient.post('/api/unapprovedPlacements/skipMarkup', payload);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport {\n CampaignPlan,\n CampaignSettings,\n CampaignPlanMetrics,\n CampaignPlanToBackend,\n CampaignEditorPlacement,\n CampaignEditorPlacementDetails,\n} from '@/models/Campaign';\n\nimport { PlacementPlan, PlacementPlanToBackend } from '@/models/Placement';\n\nimport httpClient from '../httpClient';\n\ninterface UpdatePlacementsPayload {\n campaignId: string;\n data: { placements: CampaignEditorPlacement[] }; // TODO: нужно изменить структуру тела запроса\n}\n\ninterface fetchPlacementPayload {\n campaignId: string;\n placementDanboId: string;\n params?: {\n use1CPlan : boolean;\n };\n}\n\ninterface UpdatePlacementPayload {\n campaignId: string;\n data: { placement: CampaignEditorPlacementDetails };\n}\n\nexport default class CampaignEditorApi {\n public static async fetchCampaignPlan(campaignId: string): Promise> {\n const res = await httpClient.get(`/api/campaigneditor/${campaignId}/plan`);\n\n return res;\n }\n\n public static async fetchCampaignSettings(campaignId: string): Promise> {\n const res = await httpClient.get(`/api/campaigneditor/${campaignId}/settings`);\n\n return res;\n }\n\n public static async fetchPlacements(campaignId: string): Promise> {\n const res = await httpClient.get(`/api/campaign-editor/${campaignId}/placements`);\n\n return res;\n }\n\n public static async fetchPlacement(payload: fetchPlacementPayload): Promise> {\n const { campaignId, placementDanboId, params } = payload;\n\n const res = await httpClient.get(`/api/campaign-editor/${campaignId}/placements/${placementDanboId}`, { params });\n\n return res;\n }\n\n public static async fetchCampaignPlanMetrics(): Promise> {\n const res = await httpClient.get('/api/campaigneditor/planmetrics');\n\n return res;\n }\n\n public static async fetchPlacementPlanFrom1c(payload: { campaignId: string; placementDanboId: string}): Promise> {\n const { campaignId, placementDanboId } = payload;\n\n const res = await httpClient.get(`/api/campaigneditor/${campaignId}/plan/${placementDanboId}/from1cPlacements`);\n\n return res;\n }\n\n public static async saveCampaignPlan(payload: { campaignId: string; data: CampaignPlanToBackend }): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post(`/api/campaigneditor/${campaignId}/updatePlacementPlans`, data);\n\n return res;\n }\n\n public static async savePlacementPlan(payload: { campaignId: string; data: PlacementPlanToBackend }): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post(`/api/campaigneditor/${campaignId}/updatePlacementPlanByFlights`, data);\n\n return res;\n }\n\n public static async updatePlacements(payload: UpdatePlacementsPayload): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post<''>(`/api/campaign-editor/${campaignId}/placements`, data);\n\n return res;\n }\n\n public static async updatePlacement(payload: UpdatePlacementPayload): Promise> {\n const { campaignId, data } = payload;\n\n const res = await httpClient.post<''>(`/api/campaign-editor/${campaignId}/placement`, data);\n\n return res;\n }\n\n public static async uploadFlightsPlan(payload: { campaignId: string; data: FormData }): Promise> {\n const { campaignId, data } = payload;\n const res = await httpClient.post(`/api/campaigneditor/${campaignId}/UploadFlightsPlan`, data);\n\n return res;\n }\n\n public static async uploadPlacementPlan(payload: { campaignId: string; data: FormData }): Promise> {\n const { campaignId, data } = payload;\n const res = await httpClient.post(`/api/campaigneditor/${campaignId}/UploadPlacementPlan`, data);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport {\n Targeting,\n TargetingGender,\n TargetingRegion,\n TargetingCappingPeriod,\n TargetingTransmittance,\n TargetingIncomeGroup,\n} from '@/models/Targeting';\n\nimport httpClient from '../httpClient';\n\nexport default class TargetingsApi {\n public static async fetchTargetingsByCampaign(campaignId: string): Promise> {\n const res = await httpClient.get(`/api/targetings/by-campaign/${campaignId}`);\n\n return res;\n }\n\n public static async fetchGenders(): Promise> {\n const res = await httpClient.get('/api/targetings/genders');\n\n return res;\n }\n\n public static async fetchRegions(): Promise> {\n const res = await httpClient.get('/api/targetings/regions');\n\n return res;\n }\n\n public static async fetchCappingPeriods(): Promise> {\n const res = await httpClient.get('/api/targetings/capping-periods');\n\n return res;\n }\n\n public static async fetchTransmittances(): Promise> {\n const res = await httpClient.get('/api/targetings/transmittances');\n\n return res;\n }\n\n public static async fetchIncomeGroups(): Promise> {\n const res = await httpClient.get('/api/targetings/income-groups');\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Goal, GoalLight } from '@/models/Goal';\n\nimport httpClient from '../httpClient';\n\ninterface FetchGoalSettingsPayload {\n params: {\n campaignId: string;\n };\n}\n\ninterface FetchSchemaPayload {\n campaignId: string;\n providerId: string;\n providerSettingsId: string;\n settings?: string;\n}\n\ninterface FetchSchemaResponse {\n errors: string[];\n schema?: string;\n}\n\ninterface FetchGoalsPayload {\n campaignId: string;\n providerId: string;\n providerSettingsId: string;\n}\n\ninterface SetGoalsSettingsPayload {\n CampaignId: string;\n Goals: unknown[];\n}\n\nexport default class GoalsSettingsApi {\n public static async fetchGoalsSettings(payload: FetchGoalSettingsPayload): Promise> {\n const res = await httpClient.get('/api/goalssettings', payload);\n\n return res;\n }\n\n public static async fetchSchema(payload: FetchSchemaPayload): Promise> {\n const res = await httpClient.post('/api/goalssettings/schema', payload);\n\n return res;\n }\n\n public static async fetchGoals(payload: FetchGoalsPayload): Promise> {\n const res = await httpClient.post('/api/goalssettings/goals', payload);\n\n return res;\n }\n\n // TODO: Описать типы\n public static async setGoalsSettings(payload: SetGoalsSettingsPayload): Promise> {\n const res = await httpClient.post('/api/goalssettings', payload);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Markup, MarkupLight } from '@/models/Markup';\n\nimport httpClient from '../httpClient';\n\ninterface FetchMarkupsPayload {\n params?: {\n placementId?: string;\n filter?: string;\n page?: string | number;\n sortBy?: string;\n sortDesc?: boolean;\n };\n}\n\nexport interface FetchMarkupsResponse {\n list: MarkupLight[];\n totalRows: number;\n}\n\nexport interface SetMarkupPayload {\n clientId: string;\n brandId: string;\n campaignId: string;\n placementId: string;\n dataProviderId: string;\n startDate: string;\n value: number;\n}\n\ninterface DeleteMarkupPayload {\n markupId: string;\n config: {\n data: string;\n };\n}\n\nexport default class MarkupsApi {\n public static async fetchMarkups(payload?: FetchMarkupsPayload): Promise> {\n const res = await httpClient.get('/api/markups', payload);\n\n return res;\n }\n\n public static async fetchMarkup(markupId: string): Promise> {\n const res = await httpClient.get(`/api/markups/${markupId}`);\n\n return res;\n }\n\n public static async setMarkup(payload: SetMarkupPayload): Promise> {\n const res = await httpClient.post('/api/markups', payload);\n\n return res;\n }\n\n // TODO: Описать типы\n public static async updateMarkup(payload: unknown): Promise> {\n const res = await httpClient.put('/api/markups', payload);\n\n return res;\n }\n\n public static async deleteMarkup(payload: DeleteMarkupPayload): Promise> {\n const { markupId, config } = payload;\n\n const res = await httpClient.delete<''>(`/api/markups/${markupId}`, config);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Category } from '@/models/Category';\n\nimport { PartialWithout } from '@/utils/type';\n\nimport httpClient from '../httpClient';\n\nexport type SetCategoryPayload = PartialWithout;\n\nexport interface UpdateCategoryPayload {\n category: Category;\n}\n\nexport default class CategoriesApi {\n public static async fetchCategories(): Promise> {\n const res = await httpClient.get('/api/categories');\n\n return res;\n }\n\n public static async fetchCategory(categoryId: string): Promise> {\n const res = await httpClient.get(`/api/categories/${categoryId}`);\n\n return res;\n }\n\n public static async fetchMetrics(): Promise> {\n const res = await httpClient.get('/api/categories/metrics-list');\n\n return res;\n }\n\n public static async setCategory(payload: SetCategoryPayload): Promise> {\n const res = await httpClient.post('/api/categories', payload);\n\n return res;\n }\n\n public static async updateCategory(payload: UpdateCategoryPayload): Promise> {\n const res = await httpClient.put<''>('/api/categories', payload);\n\n return res;\n }\n\n public static async deleteCategory(categoryId: string): Promise> {\n const res = await httpClient.delete<''>(`/api/categories/${categoryId}`);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Token, TokenProvider } from '@/models/Token';\n\nimport httpClient from '../httpClient';\n\ninterface FetchTokensPayload {\n params?: {\n filter?: string;\n page?: string | number;\n };\n}\n\ninterface FetchTokensResponse {\n list: Token[];\n totalRows: number;\n}\n\ninterface AddTokenPayload {\n name: string;\n tokenProviderId: string;\n tokenJson: string;\n}\n\ntype AddTokenResponse = Omit;\n\nexport default class TokensApi {\n public static async fetchTokens(payload: FetchTokensPayload): Promise> {\n const res = await httpClient.get('/api/tokens', payload);\n\n return res;\n }\n\n public static async fetchConnectorTokens(connectorId: string): Promise> {\n const res = await httpClient.get('/api/tokens', { params: { connectorId } });\n\n return res;\n }\n\n public static async fetchTokenProviders(): Promise> {\n const res = await httpClient.get('/api/tokens/tokenproviders');\n\n return res;\n }\n\n public static async addToken(payload: AddTokenPayload): Promise> {\n const res = await httpClient.post('/api/tokens', payload);\n\n return res;\n }\n\n public static async createToken(payload: { code: string; tokenProviderId: string }): Promise> {\n const formData = new FormData();\n\n formData.append('code', payload.code);\n formData.append('tokenProviderId', payload.tokenProviderId);\n\n const res = await httpClient.post('/api/tokens/oauth', formData, { headers: { 'Content-type': 'application/x-www-form-urlencoded' } });\n\n return res;\n }\n\n public static async deleteToken(tokenId: string): Promise> {\n const res = await httpClient.delete(`/api/tokens/${tokenId}`);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Organization } from '@/models/Organization';\n\nimport httpClient from '../httpClient';\n\nexport default class OrganizationsApi {\n public static async fetchServiceOrganizations(): Promise> {\n const res = await httpClient.get('/api/organizations/service');\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Group, GroupClientWithBrands } from '@/models/Group';\n\nimport { PartialWithout } from '@/utils/type';\n\nimport httpClient from '../httpClient';\n\ninterface FetchGroupsPayload {\n page?: number;\n limit?: number;\n filter?: string;\n}\n\ninterface FetchGroupsResponse {\n list: Group[];\n totalRows: number;\n}\n\nexport type SetGroupPayload = PartialWithout;\n\nexport interface UpdateGroupPayload {\n groupId: string;\n data: SetGroupPayload;\n}\n\nexport default class GroupsApi {\n public static async fetchGroups(payload: FetchGroupsPayload): Promise> {\n const res = await httpClient.post('/api/groups/find', payload);\n\n return res;\n }\n\n public static async fetchGroup(groupId: string): Promise> {\n const res = await httpClient.get(`/api/groups/${groupId}`);\n\n return res;\n }\n\n public static async fetchClientsWithBrands(payload: string[]): Promise> {\n const res = await httpClient.post('/api/groups/clientswithbrands', payload);\n\n return res;\n }\n\n public static async setGroup(payload: SetGroupPayload): Promise> {\n const res = await httpClient.post<''>('/api/groups', payload);\n\n return res;\n }\n\n public static async updateGroup(payload: UpdateGroupPayload): Promise> {\n const { groupId, data } = payload;\n\n const res = await httpClient.put<''>(`/api/groups/${groupId}`, data);\n\n return res;\n }\n\n public static async deleteGroup(groupId: string): Promise> {\n const res = await httpClient.delete<''>(`/api/groups/${groupId}`);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { UserLight, UserClientsBrands } from '@/models/User';\n\nimport httpClient from '../httpClient';\n\ninterface FetchUsersPayload {\n page?: number;\n limit?: number;\n filter?: string;\n}\n\ninterface FetchUsersResponse {\n list: UserLight[];\n totalRows: number;\n}\n\nexport interface SetExistingUsersPayload {\n emails: string[];\n roles: string[];\n groups: string[];\n clients: UserClientsBrands[];\n}\n\ninterface SetExistingUsersResponse {\n addedUsers: unknown[]; // TODO: Описать тип\n notFoundEmails: string[];\n}\n\nexport interface SetUserPayload {\n firstName: string;\n lastName: string;\n email: string;\n roles: string[];\n groups: string[];\n clients: UserClientsBrands[];\n}\n\nexport interface UpdateUserPayload {\n userId: string;\n data: SetUserPayload;\n}\n\nexport default class UsersApi {\n public static async fetchUsers(payload: FetchUsersPayload): Promise> {\n const res = await httpClient.post('/api/users/find', payload);\n\n return res;\n }\n\n public static async setUser(payload: SetUserPayload): Promise> {\n const res = await httpClient.post<''>('/api/users', payload);\n\n return res;\n }\n\n public static async setExistingUsers(payload: SetExistingUsersPayload): Promise> {\n const res = await httpClient.post('/api/users/addExistingUsers', payload);\n\n return res;\n }\n\n public static async updateUser(payload: UpdateUserPayload): Promise> {\n const { userId, data } = payload;\n\n const res = await httpClient.put<''>(`/api/users/${userId}`, data);\n\n return res;\n }\n\n public static async fetchUser(userId: string): Promise> {\n const res = await httpClient.get(`/api/users/${userId}`);\n\n return res;\n }\n\n public static async deleteUser(userId: string): Promise> {\n const res = await httpClient.delete<''>(`/api/users/${userId}`);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { PartialWithout } from '@/utils/type';\n\nimport { DataProvider, DataProviderSite, DataProviderType } from '@/models/DataProvider';\n\nimport httpClient from '../httpClient';\n\nexport default class DataProvidersApi {\n public static async fetchDataProviders(): Promise> {\n const res = await httpClient.get('/api/dataproviders');\n\n return res;\n }\n\n public static async fetchSites(): Promise> {\n const res = await httpClient.get('/api/dataproviders/sites');\n\n return res;\n }\n\n public static async fetchTypes(): Promise> {\n const res = await httpClient.get('/api/dataproviders/types');\n\n return res;\n }\n\n public static async fetchDataProvider(dataProviderId: string): Promise> {\n const res = await httpClient.get(`/api/dataproviders/${dataProviderId}`);\n\n return res;\n }\n\n public static async setDataProvider(payload: PartialWithout): Promise> {\n const res = await httpClient.post<''>('/api/dataproviders/', payload);\n\n return res;\n }\n\n public static async deleteDataProvider(dataProviderId: string): Promise> {\n const res = await httpClient.delete<''>(`/api/dataproviders/${dataProviderId}`);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { ProviderSettings, ProviderSettingsLight, ProviderSettingsToken, Provider } from '@/models/ProviderSettings';\nimport { GoalDataProvider } from '@/models/Goal';\nimport { Client } from '@/models/Client';\n//\nimport httpClient from '../httpClient';\n\ninterface FetchProviderSettingsPayload {\n params?: {\n filter: string;\n page: string | number;\n failedOnly: boolean;\n };\n}\n\ninterface FetchProviderSettingsResponse {\n list: ProviderSettings[];\n totalRows: number;\n}\n\ninterface FetchTokensPayload {\n params?: {\n id: string;\n };\n}\n\ninterface FetchSchemaPayload {\n providerId: string;\n tokenId: string | null;\n settings?: string;\n}\n\ninterface FetchSchemaResponse {\n errors: string[];\n schema: string;\n}\n\nexport interface SetProviderSettingsPayload {\n id?: string;\n brandIds: string[];\n clientId: string;\n clientName: string;\n connectorSettings: string;\n dataProviderId: string;\n dataProviderName: string;\n name: string;\n statisticsCollectionDepth: string;\n tokenId: string | null;\n}\n\nexport interface ProviderSettingsResponse {\n brandIds: string[];\n clientId: string;\n connectorSettings: string;\n dataProviderId: string;\n id: string;\n name: string;\n tokenId: string;\n statisticsCollectionDepth: string;\n}\n\nexport default class ProviderSettingsApi {\n public static async fetchProviderSettings(payload: FetchProviderSettingsPayload): Promise> {\n const res = await httpClient.get('/api/providersettings', payload);\n\n return res;\n }\n\n public static async fetchProviderSettingsByCampaign(campaignId: string): Promise> {\n const res = await httpClient.get(`/api/providersettings/campaign/${campaignId}`);\n\n return res;\n }\n\n public static async fetchProviders(): Promise> {\n const res = await httpClient.get('/api/providersettings/providers');\n\n return res;\n }\n\n public static async fetchProvider(providerId: string): Promise> {\n const res = await httpClient.get(`/api/providersettings/${providerId}`);\n\n return res;\n }\n\n public static async fetchClients(): Promise> {\n const res = await httpClient.get('/api/providersettings/clients');\n\n return res;\n }\n\n public static async fetchTokens(payload: FetchTokensPayload): Promise> {\n const res = await httpClient.get('/api/providersettings/tokens', payload);\n\n return res;\n }\n\n public static async fetchSchema(payload: FetchSchemaPayload): Promise> {\n const res = await httpClient.post('/api/providersettings/schema', payload);\n\n return res;\n }\n\n public static async fetchGoalProviders(): Promise> {\n const res = await httpClient.get('/api/providersettings/goals-providers');\n\n return res;\n }\n\n public static async setProvider(payload: SetProviderSettingsPayload): Promise> {\n const res = await httpClient.post('/api/providersettings', payload);\n\n return res;\n }\n\n public static async deleteProvider(providerId: string): Promise> {\n const res = await httpClient.delete<''>(`/api/providersettings/${providerId}`);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { PartialWithout } from '@/utils/type';\n\nimport { DataProvidersSettings, DataProvidersSettingsItem, DataProvidersSettingsToken } from '@/models/DataProvidersSettings';\n\nimport { Client } from '@/models/Client';\n\nimport { Provider } from '@/models/ProviderSettings';\n\nimport httpClient from '../httpClient';\n\ninterface FetchDataProvidersSettingsPayload {\n params?: {\n filter: string;\n page: string | number;\n failedOnly: boolean;\n };\n}\n\ninterface FetchDataProvidersSettingsResponse {\n list: DataProvidersSettings[];\n totalRows: number;\n}\n\ninterface FetchTokensPayload {\n params?: {\n id: string;\n };\n}\n\ninterface FetchStatisticsCollectionDepthsPayload {\n params?: {\n id: string;\n };\n}\n\ninterface GatherStatisticsPayload {\n settingsId: string;\n}\n\nexport default class DataProvidersSettingsApi {\n public static async fetchDataProvidersSettings(payload: FetchDataProvidersSettingsPayload): Promise> {\n const res = await httpClient.get('/api/dataproviderssettings', payload);\n\n return res;\n }\n\n public static async fetchProviderStatus(providerId: string): Promise> {\n const res = await httpClient.get(`/api/dataproviderssettings/status/${providerId}`);\n\n return res;\n }\n\n public static async fetchProviders(): Promise> {\n const res = await httpClient.get('/api/dataproviderssettings/providers');\n\n return res;\n }\n\n public static async fetchProvider(providerId: string): Promise> {\n const res = await httpClient.get(`/api/dataproviderssettings/${providerId}`);\n\n return res;\n }\n\n public static async fetchClients(): Promise> {\n const res = await httpClient.get('/api/dataproviderssettings/clients');\n\n return res;\n }\n\n public static async fetchTokens(payload: FetchTokensPayload): Promise> {\n const res = await httpClient.get('/api/dataproviderssettings/tokens', payload);\n\n return res;\n }\n\n public static async fetchStatisticsCollectionDepths(payload: FetchStatisticsCollectionDepthsPayload): Promise> {\n const res = await httpClient.get('/api/dataproviderssettings/statisticsCollectionDepths', payload);\n\n return res;\n }\n\n public static async gatherStatistics(payload: GatherStatisticsPayload): Promise> {\n const res = await httpClient.post<''>('/api/dataproviderssettings/gather', payload);\n\n return res;\n }\n\n public static async setProviderSettings(payload: PartialWithout): Promise> {\n const res = await httpClient.post<''>('/api/dataproviderssettings', payload);\n\n return res;\n }\n\n public static async deleteProviderSettings(providerId: string): Promise> {\n const res = await httpClient.delete<''>(`/api/dataproviderssettings/${providerId}`);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { ServiceType } from '@/models/ServiceType';\n\nimport httpClient from '../httpClient';\n\nexport default class ServiceTypesApi {\n public static async fetchServiceTypes(): Promise> {\n const res = await httpClient.get('/api/servicetypes');\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { CampaignType } from '@/models/Campaign';\nimport { TaxonomyClientCategory, TaxonomyBrandCategory } from '@/models/Taxonomy';\n\nimport httpClient from '../httpClient';\n\nexport default class TaxonomyApi {\n public static async fetchClientCategories(): Promise> {\n const res = await httpClient.get('/api/taxonomy/client-categories');\n\n return res;\n }\n\n public static async fetchBrandCategories(): Promise> {\n const res = await httpClient.get('/api/taxonomy/brand-categories');\n\n return res;\n }\n\n public static async fetchCampaignTypes(): Promise> {\n const res = await httpClient.get('/api/taxonomy/campaign-types');\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { MetricsCheckTotal, MetricsCheckDataProvider } from '@/models/MetricsCheck';\n\nimport httpClient from '../httpClient';\n\ninterface FetchTotalResponse {\n succeseded: boolean;\n total?: MetricsCheckTotal;\n totalByDataProvider: MetricsCheckDataProvider[];\n rawTotalByDataProvider: MetricsCheckDataProvider[];\n errors: string[];\n}\n\nexport default class MetricsCheckApi {\n public static async fetchTotal(danboId: string): Promise> {\n const res = await httpClient.get(`/api/metrics-check/${danboId}/get-total`);\n\n return res;\n }\n\n // TODO: Описать типы\n public static async fetchTotalFromConnectors(danboId: string): Promise> {\n const res = await httpClient.get(`/api/metrics-check/${danboId}/get-total-from-connectors`);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { UserAction } from '@/models/User';\n\nimport httpClient from '../httpClient';\n\nexport interface FetchUserActionsPayload {\n params: {\n from: string;\n to: string;\n filter: string;\n page: number;\n };\n}\n\nexport interface FetchUserActionsResponse {\n list: UserAction[];\n totalRows: number;\n}\n\nexport default class UserActionsApi {\n public static async fetchUserActions(payload: FetchUserActionsPayload): Promise> {\n const res = await httpClient.get('/api/useractions', payload);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Role, RoleLight } from '@/models/Role';\n\nimport { PartialWithout } from '@/utils/type';\n\nimport httpClient from '../httpClient';\n\nexport type SetRolePayload = PartialWithout;\n\nexport interface UpdateRolePayload {\n roleId: string;\n data: PartialWithout;\n}\n\nexport default class RolesApi {\n public static async fetchRoles(): Promise> {\n const res = await httpClient.get('/api/roles');\n\n return res;\n }\n\n public static async fetchRole(roleId: string): Promise> {\n const res = await httpClient.get(`/api/roles/${roleId}`);\n\n return res;\n }\n\n public static async setRole(payload: SetRolePayload): Promise> {\n const res = await httpClient.post<''>('/api/roles', payload);\n\n return res;\n }\n\n public static async updateRole(payload: UpdateRolePayload): Promise> {\n const { roleId, data } = payload;\n\n const res = await httpClient.put<''>(`/api/roles/${roleId}`, data);\n\n return res;\n }\n\n public static async deleteRole(roleId: string): Promise> {\n const res = await httpClient.delete<''>(`/api/roles/${roleId}`);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { Permission } from '@/models/Permission';\n\nimport { PartialWithout } from '@/utils/type';\n\nimport httpClient from '../httpClient';\n\ninterface FetchPermissionsPayload {\n page?: number;\n limit?: number;\n filter?: string;\n}\n\ninterface FetchPermissionsResponse {\n list: Permission[];\n totalRows: number;\n}\n\nexport interface UpdatePermissionPayload {\n permissionId: string;\n data: PartialWithout;\n}\n\nexport default class PermissionsApi {\n public static async fetchPermissions(payload: FetchPermissionsPayload): Promise> {\n const res = await httpClient.post('/api/permissions/find', payload);\n\n return res;\n }\n\n public static async fetchPermission(permissionId: string): Promise> {\n const res = await httpClient.get(`/api/permissions/${permissionId}`);\n\n return res;\n }\n\n public static async setPermission(payload: Permission): Promise> {\n const res = await httpClient.post<''>('/api/permissions', payload);\n\n return res;\n }\n\n public static async updatePermission(payload: UpdatePermissionPayload): Promise> {\n const { permissionId, data } = payload;\n\n const res = await httpClient.put<''>(`/api/permissions/${permissionId}`, data);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { BenchmarkBoardStatisticsGroup } from '@/models/BenchmarkBoard';\n\nimport httpClient from '../httpClient';\n\nexport interface FetchStatisticsPayload {\n params: {\n dataProviderName: string | number | null;\n clientId: string | number | null;\n brandName: string | number | null;\n capping: string | number | null;\n timing: string | number | null;\n geo: string | number | null;\n transmittance: string | number | null;\n audience: string | number | null;\n siteName: string | number | null;\n adPlace: string | number | null;\n groupDataBy: string | number | null;\n };\n}\n\nexport default class BenchmarkBoardApi {\n public static async fetchStatistics(payload: FetchStatisticsPayload): Promise> {\n const res = await httpClient.get('/api/benchmark-board/statistics', payload);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { MetricType } from '@/models/MetricType';\n\nimport httpClient from '../httpClient';\n\nexport default class ReferenceApi {\n public static async fetchMetricTypes(): Promise> {\n const res = await httpClient.get('/api/reference/metric-types', { cache: true });\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport { MaintenanceClient } from '@/models/Maintenance';\n\nimport httpClient from '../httpClient';\n\nexport default class MaintenanceApi {\n public static async updateCampaignMetrics(payload: MaintenanceClient[]): Promise> {\n const res = await httpClient.post<''>('/api/maintenance/update-campaigns-metrics', payload);\n\n return res;\n }\n\n public static async updatePlacementMetricDataproviders(payload: MaintenanceClient[]): Promise> {\n const res = await httpClient.post<''>('/api/maintenance/update-placements-metrics-dataprovider', payload);\n\n return res;\n }\n\n public static async recalculatePlacementMetrics(payload: MaintenanceClient[]): Promise> {\n const res = await httpClient.post<''>('/api/maintenance/recalculate-placements-metrics', payload);\n\n return res;\n }\n\n public static async updatePlacementMarkups(payload: MaintenanceClient[]): Promise> {\n const res = await httpClient.post<''>('/api/maintenance/update-placements-by-markups', payload);\n\n return res;\n }\n\n public static async recalculatePlacementFlights(payload: MaintenanceClient[]): Promise> {\n const res = await httpClient.post<''>('/api/maintenance/recalculate-placement-flights', payload);\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport httpClient from '../httpClient';\n\nexport default class FactUploadApi {\n // TODO: Описать типы\n public static async uploadFile(payload: FormData): Promise> {\n const res = await httpClient.post('/api/factupload/fileupload', payload, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport httpClient from '../httpClient';\n\ninterface SearchResultClient {\n id: string;\n name: string;\n}\n\ninterface SearchResultBrand {\n id: string;\n name: string;\n clientId: string;\n clientName: string;\n}\n\ninterface SearchResultCampaign {\n id: string;\n name: string;\n clientId: string;\n clientName: string;\n brandId: string;\n brandName: string;\n isActive: boolean;\n state: {\n id: string;\n name: string;\n code: 'paused' | 'active' | 'finished';\n };\n approved: boolean;\n}\n\ninterface SearchResultPlacement {\n id: string;\n name: string;\n danboId: string;\n clientId: string;\n clientName: string;\n brandId: string;\n brandName: string;\n campaignId: string;\n campaignName: string;\n state: {\n id: string;\n name: string;\n code: 'default' | 'paused' | 'running' | 'finished';\n };\n approved: boolean;\n}\n\nexport interface SearchResult {\n isDanboResult: boolean;\n result: {\n clients: SearchResultClient[];\n brands: SearchResultBrand[];\n campaigns: SearchResultCampaign[];\n placements: SearchResultPlacement[];\n };\n}\n\ninterface SearchPayload {\n keyWord: string;\n}\n\nexport default class SearchApi {\n public static async search(payload: SearchPayload): Promise> {\n const res = await httpClient.get('/api/search', { params: payload });\n\n return res;\n }\n}\n","import { AxiosResponse } from 'axios';\n\nimport httpClient from '../httpClient';\n\ninterface FetchUserSettingsResponse {\n favouriteClientIds: string[];\n}\n\nexport default class UserSettingsApi {\n public static async fetchUserSettings(): Promise> {\n const res = await httpClient.get('/api/v2/user-settings');\n\n return res;\n }\n\n public static async addFavoriteClient(clientId: string): Promise> {\n const res = await httpClient.post<''>('/api/v2/user-settings/favourite-clients', `'${clientId}'`);\n\n return res;\n }\n\n public static async deleteFavoriteClient(clientId: string): Promise> {\n const res = await httpClient.delete<''>('/api/v2/user-settings/favourite-clients', {\n data: `'${clientId}'`,\n });\n\n return res;\n }\n}\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorTableLoader.vue?vue&type=style&index=0&id=562a5dab&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientBrandSettingsForm.vue?vue&type=style&index=0&id=c323dadc&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\nimport Vue from 'vue';\n\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { SearchApi } from '@/api';\nimport { SearchResult } from '@/api/modules/search.api';\n\nimport { SearchCategory, SearchFilters } from '../models';\n\nclass ModuleState {\n isShown = false;\n\n isLoading = false;\n\n query = '';\n\n queryLimit = {\n min: 3,\n max: 300,\n };\n\n filters: SearchFilters = {\n status: 'all',\n };\n\n result: SearchResult['result'] | null = null;\n\n hasBeenByDanboId = false;\n}\n\nclass ModuleGetters extends Getters {\n get isShown() {\n return this.state.isShown;\n }\n\n get isLoading() {\n return this.state.isLoading;\n }\n\n get query() {\n return this.state.query;\n }\n\n get queryLimit() {\n return this.state.queryLimit;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get result() {\n return this.state.result;\n }\n\n get resultIsExist() {\n return !!this.getters.result;\n }\n\n get resultIsEmpty() {\n if (!this.getters.result) return true;\n\n return Object.values(this.getters.result).every((list: unknown[]) => !list.length);\n }\n\n get resultContainsOnlyOneItem() {\n if (!this.getters.result) return false;\n\n return Object.values(this.getters.result).flat(2).length === 1;\n }\n\n get categories() {\n const categoriesMap: SearchCategory = {\n clients: {\n title: 'Клиенты',\n items: this.getters.result?.clients?.map((client) => ({\n name: client.name,\n to: `/clients/${client.id}/`,\n })) || [],\n },\n brands: {\n title: 'Бренды',\n items: this.getters.result?.brands?.map((brand) => ({\n name: brand.name,\n to: `/clients/${brand.clientId}/?brandId=${brand.id}`,\n })) || [],\n },\n campaigns: {\n title: 'Кампании',\n items: this.getters.result?.campaigns?.map((campaign) => {\n const iconsMap = {\n paused: 'mdi-pause',\n active: '$d1-play',\n finished: campaign.isActive ? 'mdi-check' : 'mdi-archive',\n };\n\n const item = {\n name: campaign.name,\n to: `/campaigns/${campaign.id}/`,\n icon: iconsMap[campaign.state.code],\n breadcrumbs: [\n {\n label: campaign.clientName,\n to: `/clients/${campaign.clientId}`,\n },\n {\n label: campaign.brandName,\n to: `/clients/${campaign.clientId}/?brandId=${campaign.brandId}`,\n },\n ],\n approved: campaign.approved,\n };\n\n return item;\n }) || [],\n },\n placements: {\n title: 'Размещения',\n items: this.getters.result?.placements?.map((placement) => {\n const iconsMap = {\n default: '$d1-play',\n paused: 'mdi-timer-sand',\n running: '$d1-play',\n finished: 'mdi-check',\n };\n\n const item = {\n id: placement.danboId,\n name: placement.name,\n to: Vue.acl.check('view_sub_danboids')\n ? `/campaigns/${placement.campaignId}/placements/${placement.danboId}`\n : `/campaigns/${placement.campaignId}/?danboId=${placement.danboId}`,\n icon: iconsMap[placement.state.code],\n breadcrumbs: [\n {\n label: placement.clientName,\n to: `/clients/${placement.clientId}`,\n },\n {\n label: placement.brandName,\n to: `/clients/${placement.clientId}/?brandId=${placement.brandId}`,\n },\n {\n label: placement.campaignName,\n to: `/campaigns/${placement.campaignId}/`,\n },\n ],\n approved: placement.approved,\n };\n\n return item;\n }) || [],\n },\n };\n\n return Object.values(categoriesMap).filter((category) => category.items.length);\n }\n\n get hasBeenByDanboId() {\n return this.state.hasBeenByDanboId;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_SHOWN(value: boolean) {\n this.state.isShown = value;\n }\n\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_QUERY(value: string) {\n this.state.query = value;\n }\n\n SET_FILTERS(payload: SearchFilters) {\n this.state.filters = payload;\n }\n\n SET_RESULT(payload: SearchResult) {\n this.state.result = payload.result;\n this.state.hasBeenByDanboId = payload.isDanboResult;\n }\n}\n\nclass ModuleActions extends Actions {\n UPDATE_IS_SHOWN(value: boolean) {\n this.commit('SET_IS_SHOWN', value);\n }\n\n SHOW_SEARCH() {\n this.dispatch('UPDATE_IS_SHOWN', true);\n }\n\n HIDE_SEARCH() {\n this.dispatch('UPDATE_IS_SHOWN', false);\n }\n\n TOOGLE_SEARCH() {\n if (this.getters.isShown) return this.dispatch('HIDE_SEARCH');\n\n return this.dispatch('SHOW_SEARCH');\n }\n\n UPDATE_QUERY(value: string) {\n this.commit('SET_QUERY', value);\n }\n\n UPDATE_FILTERS(payload: Partial) {\n const newFilters = {\n ...this.getters.filters,\n ...payload,\n };\n\n this.commit('SET_FILTERS', newFilters);\n }\n\n async SEARCH() {\n const normalizedQuery = this.getters.query.slice(0, this.getters.queryLimit.max);\n\n const payload = {\n keyWord: normalizedQuery,\n state: this.getters.filters.status,\n };\n\n this.commit('SET_IS_LOADING', true);\n\n const res = await SearchApi.search(payload);\n\n this.commit('SET_RESULT', res.data);\n this.commit('SET_IS_LOADING', false);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const searchStoreMapper = createMapper(module);\n\nexport const useSearchStore = createComposable(module);\n\nexport default module;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsHeader.vue?vue&type=style&index=0&id=26689817&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport metricTypeExtensions from '@/data/metricTypes/metricTypeExtensions.json';\n\nimport { MetricType, MetricTypeExtension } from '@/models/MetricType';\n\nimport { ReferenceApi } from '@/api';\n\nclass ModuleState {\n metricTypes: MetricType[] = [];\n\n metricTypeExtensions: MetricTypeExtension[] = metricTypeExtensions;\n}\n\nclass ModuleGetters extends Getters {\n get metricTypes() {\n return this.state.metricTypes;\n }\n\n get metricTypeExtensions() {\n return this.state.metricTypeExtensions;\n }\n\n get getMetricType() {\n return (name: string) => {\n const slug = name.toLowerCase();\n\n const foundMetricType = this.getters.metricTypes.find((metricType) => {\n const metricTypeSlug = metricType.name.toLowerCase();\n\n return metricTypeSlug === slug;\n });\n\n return foundMetricType;\n };\n }\n\n get getMetricTypeExtension() {\n return (name: string) => {\n const slug = name.toLowerCase();\n\n const foundMetricTypeExtension = this.getters.metricTypeExtensions.find((metricType) => {\n const metricTypeSlug = metricType.name.toLowerCase();\n\n return slug.includes(metricTypeSlug);\n });\n\n return foundMetricTypeExtension;\n };\n }\n\n get getMetricTypeProp() {\n return (name: string, prop: T) => {\n const foundMetricType = this.getters.getMetricType(name);\n\n return foundMetricType?.[prop];\n };\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_METRIC_TYPES(payload: MetricType[]) {\n this.state.metricTypes = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_METRIC_TYPES() {\n const res = await ReferenceApi.fetchMetricTypes();\n\n this.commit('SET_METRIC_TYPES', res.data);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useMetricTypesStore = createComposable(module);\n\nexport default module;\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersAddModal.vue?vue&type=style&index=0&id=dfccb33a&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableSelectCell.vue?vue&type=style&index=0&id=bb410648&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTable.vue?vue&type=style&index=0&id=4cfe3f7f&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupCell.vue?vue&type=style&index=0&id=ded407f4&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignMetrics.vue?vue&type=style&index=0&id=128da76e&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorCategories.vue?vue&type=style&index=0&id=c9f66766&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsAddModal.vue?vue&type=style&index=0&id=3e1f833c&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersCatalog.vue?vue&type=style&index=0&id=048cef16&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorHeader.vue?vue&type=style&index=0&id=046659ad&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightsTableDeleteCell.vue?vue&type=style&index=0&id=2429f5cd&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppRedesignNoticeCard.vue?vue&type=style&index=0&id=18591720&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesAddModal.vue?vue&type=style&index=0&id=32c619d8&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsCatalogHeader.vue?vue&type=style&index=0&id=2a273313&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppView.vue?vue&type=style&index=0&id=0232d926&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsOrderModal.vue?vue&type=style&index=0&id=116acacc&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorSettings.vue?vue&type=style&index=0&id=570c018c&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableRow.vue?vue&type=style&index=0&id=e12d86d0&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsForm.vue?vue&type=style&index=0&id=7461dd1a&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsItemForm.vue?vue&type=style&index=0&id=9f33aa3a&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientList.vue?vue&type=style&index=0&id=44938f06&lang=scss&scoped=true&\"","const isError = (error: unknown): error is Error => error instanceof Error;\n\nexport default isError;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotifyListByPosition.vue?vue&type=style&index=0&id=ffcad548&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignConversionRate.vue?vue&type=style&index=0&id=6d25d8f2&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTableMetricCell.vue?vue&type=style&index=0&id=24bf3286&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalBody.vue?vue&type=style&index=0&id=ea2746ae&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensCallback.vue?vue&type=style&index=0&id=123ca03b&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsCatalogHeader.vue?vue&type=style&index=0&id=0bd0cbe0&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JsonEditor.vue?vue&type=style&index=1&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBrandCategoriesTreeView.vue?vue&type=style&index=0&id=1ad178d4&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModal.vue?vue&type=style&index=0&id=04cfe3de&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryNew.vue?vue&type=style&index=0&id=4175dea4&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorPageLoader.vue?vue&type=style&index=0&id=a152522c&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettings.vue?vue&type=style&index=0&id=602c7a50&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsCheck.vue?vue&type=style&index=0&id=51768758&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoryContent.vue?vue&type=style&index=0&id=455ce265&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorPlacements.vue?vue&type=style&index=0&id=3a3d4bdf&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\nimport Vue from 'vue';\nimport { Store } from 'vuex';\nimport { Getters, Mutations, Actions, Context, Module, createComposable, createMapper } from 'vuex-smart-module';\n\nimport rootUi from '@/store/root/rootUi';\n\nimport auth from '@/store/auth';\nimport navigation from '@/store/navigation';\nimport navigationUnapprovedPlacements from '@/store/navigation/navigationUnapprovedPlacements';\n\nimport client from '@/store/client';\nimport clients from '@/store/clients';\n\nimport campaign from '@/store/campaign';\nimport campaignEditor from '@/store/campaignEditor';\n\nimport reference from '@/store/reference';\n\nclass ModuleState {\n scrollPositions = {};\n}\n\nclass ModuleGetters extends Getters {\n get getScrollPosition() {\n return (path: string) => this.state.scrollPositions[path];\n }\n}\n\nclass ModuleMutations extends Mutations {\n setScrollPosition({ name, scrollPosition }) {\n this.state.scrollPositions[name] = scrollPosition;\n }\n}\n\nclass ModuleActions extends Actions {\n modules!: {\n auth: Context;\n reference: Context;\n navigationUnapprovedPlacements: Context;\n };\n\n $init(store: Store) {\n this.modules = {\n auth: auth.context(store),\n reference: reference.context(store),\n navigationUnapprovedPlacements: navigationUnapprovedPlacements.context(store),\n };\n }\n\n async INIT() {\n await Promise.all([\n this.modules.auth.dispatch('FETCH_USER'),\n this.modules.reference.modules.metricTypes.dispatch('FETCH_METRIC_TYPES'),\n ]);\n\n if (Vue.acl.check('view_sub_danboids')) {\n await this.modules.navigationUnapprovedPlacements.dispatch('FETCH_UNAPPROVED_PLACEMENTS_COUNT');\n }\n }\n}\n\nconst module = new Module({\n modules: {\n ui: rootUi,\n auth,\n navigation,\n client,\n clients,\n campaign,\n campaignEditor,\n reference,\n },\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useRootStore = createComposable(module);\n\nexport const rootStoreMapper = createMapper(module);\n\nexport default module;\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetailsLoader.vue?vue&type=style&index=0&id=36e922ac&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetailsCategoriesEditForm.vue?vue&type=style&index=0&id=a00a351a&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModal.vue?vue&type=style&index=0&id=291d1afc&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoalsAddModal.vue?vue&type=style&index=0&id=1bbd2e2a&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { ClientsApi, UserSettingsApi } from '@/api';\n\nimport { FetchClientsV2Payload } from '@/api/modules/clients.api';\n\nimport { Client } from '@/models/Client';\n\nconst initFilters = () => ({\n page: 1,\n limit: 50,\n state: 'all' as FetchClientsV2Payload['state'],\n});\n\nclass ModuleState {\n clients: Client[] = [];\n\n totalCount = 0;\n\n filters: FetchClientsV2Payload = initFilters();\n\n filtersChanged = false;\n\n isLoading = false;\n}\n\nclass ModuleGetters extends Getters {\n get clients() {\n return this.state.clients;\n }\n\n get totalCount() {\n return this.state.totalCount;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get filtersChanged() {\n return this.state.filtersChanged;\n }\n\n get isLoading() {\n return this.state.isLoading;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_CLIENTS(payload: Client[]) {\n this.state.clients = payload;\n }\n\n SET_TOTAL_COUNT(payload: number) {\n this.state.totalCount = payload;\n }\n\n ADD_CLIENTS(payload: Client[]) {\n this.state.clients = [...this.state.clients, ...payload];\n }\n\n SET_FILTERS(payload: FetchClientsV2Payload) {\n this.state.filters = payload;\n }\n\n SWITCH_CLIENT_IS_FAVOIRITE(payload: Client) {\n const clientIdx = this.state.clients.findIndex((client) => client.id === payload.id);\n\n if (clientIdx === -1) return;\n\n const updatedClient = { ...payload, isFavourite: !payload.isFavourite };\n\n this.state.clients.splice(clientIdx, 1, updatedClient);\n }\n\n SET_FILTERS_CHANGED(payload: boolean) {\n this.state.filtersChanged = payload;\n }\n\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_CLIENTS() {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await ClientsApi.fetchClientsV2(this.getters.filters);\n\n if (this.getters.filters.page === 1) {\n this.commit('SET_CLIENTS', res.data.list);\n } else {\n this.commit('ADD_CLIENTS', res.data.list);\n }\n\n this.commit('SET_TOTAL_COUNT', res.data.totalRows);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async ADD_FAVORITE_CLIENT(clientId: string) {\n await UserSettingsApi.addFavoriteClient(clientId);\n }\n\n async DELETE_FAVORITE_CLIENT(clientId: string) {\n await UserSettingsApi.deleteFavoriteClient(clientId);\n }\n\n async TOGGLE_CLIENT_IS_FAVORITE(client: Client) {\n if (client.isFavourite) {\n await this.dispatch('DELETE_FAVORITE_CLIENT', client.id);\n } else {\n await this.dispatch('ADD_FAVORITE_CLIENT', client.id);\n }\n\n this.commit('SWITCH_CLIENT_IS_FAVOIRITE', client);\n }\n\n UPDATE_FILTERS(filters: Partial) {\n const page = filters.page || 1;\n\n const newFilters = {\n ...this.getters.filters,\n ...filters,\n page,\n };\n\n this.commit('SET_FILTERS', newFilters);\n this.commit('SET_FILTERS_CHANGED', true);\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n this.commit('SET_FILTERS_CHANGED', false);\n }\n\n NEXT_PAGE() {\n if (this.getters.clients.length >= this.getters.totalCount) return;\n\n this.dispatch('UPDATE_FILTERS', { page: this.getters.filters.page + 1 });\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useClientsStore = createComposable(module);\n\nexport const clientsStoreMapper = createMapper(module);\n\nexport default module;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBreadcrumbs.vue?vue&type=style&index=0&id=49d67e52&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FactUploadAfter.vue?vue&type=style&index=0&id=7bf1e3e0&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsItemModal.vue?vue&type=style&index=0&id=3eab4b2b&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientCatalogLoader.vue?vue&type=style&index=0&id=7e3a75e2&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsAddModal.vue?vue&type=style&index=0&id=e885ce2a&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersForm.vue?vue&type=style&index=0&id=f27cbbe8&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsCatalog.vue?vue&type=style&index=0&id=5e6f0080&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=style&index=0&id=d7930dfe&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsCatalogHeader.vue?vue&type=style&index=0&id=79554790&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTable.vue?vue&type=style&index=0&id=ad0edcce&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageCatalogLoader.vue?vue&type=style&index=0&id=6bf2536c&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorCategoriesPageLoader.vue?vue&type=style&index=0&id=55cfda5e&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UersTableRow.vue?vue&type=style&index=0&id=6f87c3c0&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTableInfoCell.vue?vue&type=style&index=0&id=449ea118&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Default.vue?vue&type=style&index=0&id=e52ddadc&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsCatalogLoader.vue?vue&type=style&index=0&id=224349d6&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsTable.vue?vue&type=style&index=0&id=b3968aa2&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/data_provider_2.71b6414f.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensList.vue?vue&type=style&index=0&id=049fadb3&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.modalOptions)?_c('v-dialog',{attrs:{\"max-width\":\"600\",\"value\":_vm.modalOptions.component},on:{\"click:outside\":_vm.modalResolve}},[_c(_vm.modalOptions.component,_vm._b({tag:\"component\",attrs:{\"buttons\":_vm.normalizedButtons},on:{\"on-btn-click\":_vm.modalResolve}},'component',_vm.modalOptions,false))],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ModallyWrapper',{staticClass:\"modally-modal\",attrs:{\"status\":_vm.status}},[_c('ModallyHeader',_vm._b({on:{\"on-btn-click\":function($event){return _vm.$emit('on-btn-click', $event)}}},'ModallyHeader',{ title: _vm.title, subtitle: _vm.subtitle, status: _vm.status },false)),_vm._v(\" \"),_c('ModallyBody',{attrs:{\"content\":_vm.content}}),_vm._v(\" \"),_c('ModallyFooter',_vm._l((_vm.buttons),function(button,index){return _c('v-btn',{key:index,staticClass:\"modally-modal__btn\",attrs:{\"rounded\":\"\",\"outlined\":button.props.outlined,\"color\":button.props.color || _vm.statusBtnColor,\"loading\":button.props.loading,\"disabled\":button.props.disabled},on:{\"click\":function($event){return _vm.onBtnClick(button, index)}}},[_vm._v(\"\\n \"+_vm._s(button.props.text)+\"\\n \")])}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{class:[\n 'modally-wrapper',\n ( _obj = {}, _obj[(\"modally-wrapper--\" + _vm.status)] = _vm.status, _obj )]},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n status: {\n type: String,\n default: '',\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalWrapper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalWrapper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModallyModalWrapper.vue?vue&type=template&id=162ce61b&scoped=true&\"\nimport script from \"./ModallyModalWrapper.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModallyModalWrapper.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ModallyModalWrapper.vue?vue&type=style&index=0&id=162ce61b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"162ce61b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modally-header\"},[_c('div',{staticClass:\"modally-header-content\"},[(_vm.subtitle)?_c('div',{staticClass:\"text-caption grey--text\",domProps:{\"textContent\":_vm._s(_vm.subtitle)}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-baseline\"},[(_vm.status)?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"20\",\"color\":_vm.statusIcons[_vm.status].color}},[_vm._v(\"\\n \"+_vm._s(_vm.statusIcons[_vm.status].icon)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.title)?_c('div',{staticClass:\"text-h5\",domProps:{\"textContent\":_vm._s(_vm.title)}}):_vm._e()],1)]),_vm._v(\" \"),_c('div',{staticClass:\"modally-header-actions\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('on-btn-click', false)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'ModallyHeader',\n props: {\n title: {\n type: [String, Number],\n default: '',\n },\n subtitle: {\n type: String,\n default: '',\n },\n status: {\n type: String,\n default: '',\n },\n },\n setup() {\n const statusIcons = {\n neutral: {\n icon: 'mdi-information',\n color: 'accent',\n },\n positive: {\n icon: 'mdi-check-circle',\n color: 'success',\n },\n warning: {\n icon: 'mdi-information',\n color: 'warning',\n },\n error: {\n icon: 'mdi-information',\n color: 'error',\n },\n };\n\n return { statusIcons };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModallyModalHeader.vue?vue&type=template&id=237f03d4&scoped=true&\"\nimport script from \"./ModallyModalHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModallyModalHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ModallyModalHeader.vue?vue&type=style&index=0&id=237f03d4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"237f03d4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modally-body\",domProps:{\"innerHTML\":_vm._s(_vm.content)}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed } from '@vue/composition-api';\n\nimport { ModallyModalOptions, ModallyModalResolve } from './types';\n\nimport ModallyModal from './components/ModallyModal.vue';\n\nlet modallyRootOnShow: (payload: ModallyModalOptions, resolve: ModallyModalResolve) => void | undefined;\n\nexport function modallyRootShow(payload: ModallyModalOptions, resolve: ModallyModalResolve): void {\n if (modallyRootOnShow) modallyRootOnShow(payload, resolve);\n}\n\nexport default defineComponent({\n setup() {\n const defaultModalConfigs = {\n alert: {\n buttons: [\n {\n props: {\n text: 'Хорошо',\n color: 'primary-gradient',\n },\n action: () => true,\n },\n ],\n },\n confirm: {\n buttons: [\n {\n props: {\n text: 'Подтвердить',\n color: 'primary',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary-gradient',\n },\n action: () => false,\n },\n ],\n },\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const modalOptions = ref | null>(null);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const modalResolve = ref | null>(null);\n\n const loadingButtonIdx = ref(-1);\n\n const normalizedButtons = computed(() => {\n if (!modalOptions.value?.buttons) return [];\n\n const someButtonsIsLoading = loadingButtonIdx.value < modalOptions.value?.buttons.length && loadingButtonIdx.value !== -1;\n\n return modalOptions.value.buttons.map((button, idx) => {\n const buttonIsLoading = idx === loadingButtonIdx.value;\n\n return {\n action: button.action,\n props: {\n ...button.props,\n loading: buttonIsLoading,\n disabled: someButtonsIsLoading && !buttonIsLoading,\n },\n };\n });\n });\n\n modallyRootOnShow = (options, resolve) => {\n const modalType = options.type ?? 'alert';\n const modalButtons = options.buttons ?? defaultModalConfigs[modalType].buttons;\n\n modalOptions.value = {\n ...options,\n buttons: modalButtons,\n component: ModallyModal,\n };\n\n modalResolve.value = async (payload) => {\n if (payload && typeof payload !== 'boolean' && payload.button.action) {\n if (payload.index) {\n loadingButtonIdx.value = payload.index;\n }\n\n try {\n const result = await payload.button.action();\n\n resolve(result);\n } finally {\n loadingButtonIdx.value = -1;\n }\n } else {\n resolve(payload);\n }\n\n modalOptions.value = null;\n modalResolve.value = null;\n };\n };\n\n return {\n modalOptions,\n modalResolve,\n normalizedButtons,\n };\n },\n});\n","\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'ModallyBody',\n props: {\n content: {\n type: String,\n default: '',\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalBody.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalBody.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModallyModalBody.vue?vue&type=template&id=ea2746ae&scoped=true&\"\nimport script from \"./ModallyModalBody.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModallyModalBody.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ModallyModalBody.vue?vue&type=style&index=0&id=ea2746ae&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ea2746ae\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modally-footer\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModallyModalFooter.vue?vue&type=template&id=26b8c4ae&scoped=true&\"\nimport script from \"./ModallyModalFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModallyModalFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ModallyModalFooter.vue?vue&type=style&index=0&id=26b8c4ae&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26b8c4ae\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed } from '@vue/composition-api';\n\nimport ModallyWrapper from './ModallyModalWrapper.vue';\nimport ModallyHeader from './ModallyModalHeader.vue';\nimport ModallyBody from './ModallyModalBody.vue';\nimport ModallyFooter from './ModallyModalFooter.vue';\n\nimport { ModallyModalButton } from '../types';\n\nexport default defineComponent({\n components: {\n ModallyWrapper,\n ModallyHeader,\n ModallyBody,\n ModallyFooter,\n },\n props: {\n type: {\n type: String,\n default: '',\n },\n title: {\n type: [String, Number],\n default: '',\n },\n status: {\n type: String,\n default: '',\n },\n subtitle: {\n type: String,\n default: '',\n },\n content: {\n type: String,\n default: '',\n },\n buttons: {\n type: Array,\n default: () => ([]),\n },\n },\n setup(props, context) {\n const { status } = toRefs(props);\n\n const statusBtnColor = computed(() => {\n const statusBtnColors = {\n neutral: 'accent',\n positive: 'success',\n warning: 'warning',\n error: 'error',\n };\n\n return statusBtnColors[status.value] || 'primary';\n });\n\n const onBtnClick = (button: ModallyModalButton, index: number) => {\n context.emit('on-btn-click', { button, index });\n };\n\n return {\n statusBtnColor,\n onBtnClick,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModallyModal.vue?vue&type=template&id=04cfe3de&scoped=true&\"\nimport script from \"./ModallyModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModallyModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ModallyModal.vue?vue&type=style&index=0&id=04cfe3de&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04cfe3de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyRoot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyRoot.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModallyRoot.vue?vue&type=template&id=2c5799f0&\"\nimport script from \"./ModallyRoot.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModallyRoot.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDialog } from 'vuetify/lib/components/VDialog';\ninstallComponents(component, {VDialog})\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorContent.vue?vue&type=style&index=0&id=1c9a441c&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListHeader.vue?vue&type=style&index=0&id=8ed71278&lang=scss&scoped=true&\"","const parsenv = (env: string) => {\n const isBoolean = (value: string) => value === 'true' || value === 'false';\n\n const isNumeric = (value: string) => !Number.isNaN(+value) && !Number.isNaN(parseFloat(value));\n\n const envIsBoolean = isBoolean(env);\n const envIsNum = isNumeric(env);\n\n if (envIsNum || envIsBoolean) return JSON.parse(env);\n\n return env;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst confique = (config: any): T => new Proxy(config, {\n get(target, prop) {\n prop = String(prop);\n\n if (!(prop in target)) throw new Error(`Config: There is no key named \"${prop}\"`);\n\n let value = target[prop];\n\n if (value === null || value === undefined) throw new Error(`Config: Value for \"${prop}\" is not defined`);\n\n if (typeof value === 'string' && value.startsWith('$VUE_APP_')) {\n // value was not replaced, it seems we are in development.\n // remove $ and get current value from process.env\n const envName = value.substring(1);\n\n value = process.env[envName];\n\n if (value === null || value === undefined) throw new Error(`Config: Environment variable \"${envName}\" is not defined`);\n }\n\n // value was already replaced, it seems we are in production.\n\n const parsedValue = parsenv(value);\n\n return parsedValue;\n },\n});\n\nexport default confique;\n","import Vue from 'vue';\n\nimport confique from '@/packages/confique';\n\nconst configuration = {\n commitSha: '$VUE_APP_CI_COMMIT_SHA',\n backendUrl: '$VUE_APP_BACKEND_URL',\n handsontableLicenseKey: '$VUE_APP_HANDSONTABLE_LICENSE_KEY',\n};\n\nconst confiqueInstance = confique(configuration);\n\nexport type Configuration = typeof confiqueInstance;\n\nVue.configuration = confiqueInstance;\nVue.prototype.$configuration = confiqueInstance;\n\nexport default confiqueInstance;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { SetupContext } from '@vue/composition-api';\nimport VueRouter from 'vue-router';\n\nexport default (context: SetupContext): VueRouter => {\n const router = context.root.$router;\n\n return router;\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-view\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./AppView.vue?vue&type=template&id=0232d926&scoped=true&\"\nvar script = {}\nimport style0 from \"./AppView.vue?vue&type=style&index=0&id=0232d926&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0232d926\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\nimport { defineComponent, computed, watch } from '@vue/composition-api';\n\nimport useRouter from '@/packages/hooks/useRouter';\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport store from '@/store';\nimport authStore from '@/store/auth';\n\nconst authStoreContext = authStore.context(store);\n\nexport default defineComponent({\n components: {\n AppView,\n },\n setup(props, context) {\n const router = useRouter(context);\n const route = useRoute(context);\n\n const user = computed(() => authStoreContext.getters.user);\n const sourceUrl = computed(() => (route.value.query.source_url || '/') as string);\n\n watch(user, (val) => {\n if (!val) return;\n\n router.replace(sourceUrl.value, () => { /* empty */ }); // https://github.com/vuejs/vue-router/issues/2881#issuecomment-520554378\n }, { immediate: true });\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Auth.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Auth.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Auth.vue?vue&type=template&id=05196dad&\"\nimport script from \"./Auth.vue?vue&type=script&lang=ts&\"\nexport * from \"./Auth.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"d-flex justify-center align-center\"},[_c('div',[_c('div',{staticClass:\"d-flex justify-center align-center mb-4\"},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"grey darken-3\",\"size\":\"48\"}},[_vm._v(\"\\n mdi-boom-gate\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"text-h5 grey--text text--darken-3\"},[_vm._v(\"\\n Нет доступа\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"mb-4 body-2 text-center grey--text text--darken-3\"},[_vm._v(\"\\n Эта страница не доступна для вашей учетной записи.\"),_c('br'),_vm._v(\"\\n Обратитесь \"),_c('a',{attrs:{\"href\":\"mailto:help@danbo.digital\",\"target\":\"_blank\"}},[_vm._v(\"в поддержку\")]),_vm._v(\" за доступом, или подождите немного, если ранее его запрашивали.\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-btn',{attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"to\":\"/\"}},[_vm._v(\"\\n Перейти на стартовую страницу\\n \")])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessDenied.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessDenied.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccessDenied.vue?vue&type=template&id=e67dc5aa&\"\nimport script from \"./AccessDenied.vue?vue&type=script&lang=js&\"\nexport * from \"./AccessDenied.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"d-flex justify-center align-center\"},[_c('div',[_c('div',{staticClass:\"d-flex justify-center align-center mb-4\"},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"grey darken-3\",\"size\":\"48\"}},[_vm._v(\"\\n mdi-file-question-outline\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"text-h5 grey--text text--darken-3\"},[_vm._v(\"\\n Страница не найдена\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"mb-4 body-2 text-center grey--text text--darken-3\"},[_vm._v(\"\\n Возможно, ее адрес был изменен или она была удалена.\"),_c('br'),_vm._v(\"\\n Вернитесь на стартовую страницу или обратитесь \"),_c('a',{attrs:{\"href\":\"mailto:help@danbo.digital\",\"target\":\"_blank\"}},[_vm._v(\"в поддержку\")]),_vm._v(\".\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-btn',{attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"to\":\"/\"}},[_vm._v(\"\\n Перейти на стартовую страницу\\n \")])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NotFound.vue?vue&type=template&id=4208c95a&\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js&\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view',{key:_vm.$route.params.clientId})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Clients.vue?vue&type=template&id=701408ca&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"client-catalog\"},[_c('portal',{attrs:{\"to\":\"app-header-content--right\"}},[_c('DSelectInline',{attrs:{\"loading\":_vm.clientsIsLoading,\"items\":_vm.clientsFiltersStateOptions},model:{value:(_vm.activeState),callback:function ($$v) {_vm.activeState=$$v},expression:\"activeState\"}})],1),_vm._v(\" \"),(_vm.clients.length)?_c('ClientCatalogContent',{staticClass:\"client-catalog__content\",attrs:{\"clients\":_vm.clients}}):_c('div',{staticClass:\"client-catalog__content client-catalog__content--stub\"},[(_vm.clientsIsLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Ничего не найдено :-(\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n Попробуйте изменить запрос\\n \")])]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ClientList',{staticClass:\"client-catalog-content\",attrs:{\"clients\":_vm.clients}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',{staticClass:\"client-list pa-0\"},[_vm._l((_vm.clients),function(client,index){return [(index === _vm.clients.length - 5)?_c('ClientListItem',{directives:[{name:\"intersect\",rawName:\"v-intersect.once\",value:(_vm.onIntersect),expression:\"onIntersect\",modifiers:{\"once\":true}}],key:client.id,attrs:{\"client\":client}}):_c('ClientListItem',{key:client.id,attrs:{\"client\":client}})]}),_vm._v(\" \"),(_vm.clientsIsLoading)?_c('v-list-item',{staticClass:\"d-flex justify-center\"},[_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"24\",\"indeterminate\":\"\"}})],1):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-item',{staticClass:\"client-list-item px-6\",attrs:{\"to\":_vm.path,\"ripple\":false}},[_c('v-list-item-content',{staticClass:\"py-2\"},[_c('v-list-item-title',{staticClass:\"client-list-item__title mb-1 subtitle-3\",domProps:{\"textContent\":_vm._s(_vm.title)}}),_vm._v(\" \"),_c('v-list-item-subtitle',{staticClass:\"client-list-item__subtitle body-2\",domProps:{\"textContent\":_vm._s(_vm.subtitle)}})],1),_vm._v(\" \"),_c('v-list-item-action',{staticClass:\"client-list-item__action align-self-stretch pl-6 ma-0\",on:{\"click\":function($event){$event.preventDefault();if($event.target !== $event.currentTarget){ return null; }}}},[_c('div',{staticClass:\"d-flex align-start\"},[_c('div',{staticClass:\"d-flex align-center mr-8\"},[_c('DTooltip',{attrs:{\"center\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar btnHover = ref.hover;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":btnHover ? 'primary' : '',\"to\":_vm.unapprovedPlacementsPath,\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"size\":\"20\"}},[_vm._v(\"\\n mdi-checkbox-multiple-marked-outline\\n \")])],1)]}}],null,true)})]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Непроверенные размещения\")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center\"},[_c('DTooltip',{attrs:{\"min-width\":\"308\",\"center\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"loading\":_vm.favoriteStatusIsLoading,\"color\":\"primary\",\"icon\":\"\"},on:{\"click\":_vm.toggleFavoriteStatus}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"size\":\"20\"}},[_vm._v(\"\\n \"+_vm._s(_vm.client.isFavourite ? 'mdi-star' : 'mdi-star-outline')+\"\\n \")])],1)]}}])},[_vm._v(\" \"),_c('div',{staticClass:\"caption\"},[(_vm.client.isFavourite)?[_vm._v(\"\\n Клиент добавлен в избранное, нажмите,\"),_c('br'),_vm._v(\"\\n чтобы убрать\\n \")]:[_vm._v(\"\\n Добавьте в избранное,\"),_c('br'),_vm._v(\"\\n чтобы видеть этого клиента наверху списка\\n \")]],2)])],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ref, computed, Ref, ComputedRef } from '@vue/composition-api';\n\nimport { Client } from '@/models/Client';\n\nimport { useClientStore } from '@/store/client';\n\ninterface UseClientDetailsProps {\n clientId: Ref;\n}\n\ninterface UseClientDetailsReturn {\n client: ComputedRef;\n clientIsLoading: Ref;\n fetchClient: () => Promise;\n}\n\nexport default (props: UseClientDetailsProps): UseClientDetailsReturn => {\n const { clientId } = props;\n\n const clientStore = useClientStore();\n\n const client = computed(() => clientStore.getters.client);\n\n const clientIsLoading = ref(false);\n\n const fetchClient = async () => {\n clientIsLoading.value = true;\n\n await clientStore.dispatch('FETCH_CLIENT', clientId.value);\n\n clientIsLoading.value = false;\n };\n\n return {\n client,\n clientIsLoading,\n fetchClient,\n };\n};\n","import { ref, computed, Ref, ComputedRef } from '@vue/composition-api';\n\nimport { Campaign } from '@/models/Campaign';\n\nimport { useClientStore } from '@/store/client';\n\ninterface UseClientBrandCampaignListProps {\n brandId: Ref;\n}\n\ninterface UseClientBrandCampaignListReturn {\n activeCampaigns: ComputedRef;\n activeCampaignsIsFetched: Ref;\n activeCampaignsIsLoading: Ref;\n fetchActiveCampaigns: () => void;\n finishedCampaigns: ComputedRef;\n finishedCampaignsCount: ComputedRef;\n finishedCampaignsIsFetched: Ref;\n finishedCampaignsIsLoading: Ref;\n fetchFinishedCampaigns: () => void;\n campaigns: ComputedRef;\n}\n\nexport default (props: UseClientBrandCampaignListProps): UseClientBrandCampaignListReturn => {\n const { brandId } = props;\n\n const clientStore = useClientStore();\n\n const activeCampaigns = computed(() => clientStore.getters.getBrandActiveCampaigns(brandId.value));\n\n const activeCampaignsIsFetched = ref(false);\n const activeCampaignsIsLoading = ref(false);\n\n const fetchActiveCampaigns = async () => {\n if (activeCampaignsIsFetched.value || activeCampaignsIsLoading.value) return;\n\n activeCampaignsIsLoading.value = true;\n\n await clientStore.dispatch('FETCH_ACTIVE_CAMPAIGNS_BY_BRAND', brandId.value);\n\n activeCampaignsIsFetched.value = true;\n\n activeCampaignsIsLoading.value = false;\n };\n\n const finishedCampaigns = computed(() => clientStore.getters.getBrandFinishedCampaigns(brandId.value));\n const finishedCampaignsCount = computed(() => clientStore.getters.getBrandFinishedCampaignsCount(brandId.value));\n\n const finishedCampaignsIsFetched = ref(false);\n const finishedCampaignsIsLoading = ref(false);\n\n const fetchFinishedCampaigns = async () => {\n if (finishedCampaignsIsFetched.value || finishedCampaignsIsLoading.value) return;\n\n finishedCampaignsIsLoading.value = true;\n\n await clientStore.dispatch('FETCH_FINISHED_CAMPAIGNS_BY_BRAND', brandId.value);\n\n finishedCampaignsIsFetched.value = true;\n\n finishedCampaignsIsLoading.value = false;\n };\n\n const campaigns = computed(() => [\n ...activeCampaigns.value,\n ...finishedCampaigns.value,\n ]);\n\n return {\n activeCampaigns,\n activeCampaignsIsFetched,\n activeCampaignsIsLoading,\n fetchActiveCampaigns,\n finishedCampaigns,\n finishedCampaignsCount,\n finishedCampaignsIsFetched,\n finishedCampaignsIsLoading,\n fetchFinishedCampaigns,\n campaigns,\n };\n};\n","import { computed, Ref, ComputedRef } from '@vue/composition-api';\n\nimport { Client } from '@/models/Client';\n\ninterface UseClientPathsProps {\n client: Ref;\n}\n\ninterface UseClientPathsReturn {\n path: ComputedRef;\n unapprovedPlacementsPath: ComputedRef;\n}\n\nexport default (props: UseClientPathsProps): UseClientPathsReturn => {\n const { client } = props;\n\n const path = computed(() => `/clients/${client.value.id}`);\n\n const unapprovedPlacementsPath = computed(() => `/placements?s=${client.value.name}`);\n\n return {\n path,\n unapprovedPlacementsPath,\n };\n};\n","import { computed, Ref, ComputedRef } from '@vue/composition-api';\n\nimport { Client, ClientBrand } from '@/models/Client';\n\ninterface UseClientBrandsProps {\n client: Ref;\n}\n\ninterface UseClientBrandsReturn {\n activeBrands: ComputedRef;\n archiveBrands: ComputedRef;\n activeBrandsCount: ComputedRef;\n archiveBrandsCount: ComputedRef;\n}\n\nexport default (props: UseClientBrandsProps): UseClientBrandsReturn => {\n const { client } = props;\n\n const activeBrands = computed(() => client.value.brands.filter((brand) => brand.active));\n\n const archiveBrands = computed(() => client.value.brands.filter((brand) => !brand.active));\n\n const activeBrandsCount = computed(() => activeBrands.value.length);\n\n const archiveBrandsCount = computed(() => archiveBrands.value.length);\n\n return {\n activeBrands,\n archiveBrands,\n activeBrandsCount,\n archiveBrandsCount,\n };\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref, computed } from '@vue/composition-api';\n\nimport { DTooltip } from '@shared/druid-kit';\n\nimport { useClientPaths, useClientBrands } from '@/composables/client';\n\nimport { Client } from '@/models/Client';\n\nimport { useClientsStore } from '@/store/clients';\n\nexport default defineComponent({\n components: {\n DTooltip,\n },\n props: {\n client: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { client } = toRefs(props);\n\n const clientsStore = useClientsStore();\n\n const { path, unapprovedPlacementsPath } = useClientPaths({ client });\n const { activeBrands, archiveBrands } = useClientBrands({ client });\n\n const visibleBrandsLimit = ref(4);\n const favoriteStatusIsLoading = ref(false);\n\n const visibleBrands = computed(() => [\n ...activeBrands.value,\n ...archiveBrands.value,\n ].slice(0, visibleBrandsLimit.value));\n\n const hiddenBrands = computed(() => activeBrands.value.slice(visibleBrandsLimit.value));\n\n const hiddenBrandsCount = computed(() => hiddenBrands.value.length);\n\n const title = computed(() => client.value.name);\n\n const subtitle = computed(() => {\n const brandNames = visibleBrands.value.map((brand) => brand.name).join(', ');\n\n return hiddenBrandsCount.value ? `${brandNames} и еще ${hiddenBrandsCount.value}` : brandNames;\n });\n\n const toggleFavoriteStatus = async () => {\n favoriteStatusIsLoading.value = true;\n\n try {\n await clientsStore.actions.TOGGLE_CLIENT_IS_FAVORITE(client.value);\n } finally {\n favoriteStatusIsLoading.value = false;\n }\n };\n\n return {\n path,\n unapprovedPlacementsPath,\n title,\n subtitle,\n toggleFavoriteStatus,\n favoriteStatusIsLoading,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientListItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientListItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientListItem.vue?vue&type=template&id=20f9d1ae&scoped=true&\"\nimport script from \"./ClientListItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientListItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ClientListItem.vue?vue&type=style&index=0&id=20f9d1ae&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20f9d1ae\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VHover } from 'vuetify/lib/components/VHover';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VHover,VIcon,VListItem,VListItemAction,VListItemContent,VListItemSubtitle,VListItemTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, computed } from '@vue/composition-api';\n\nimport { useClientsStore } from '@/store/clients';\n\nimport ClientListItem from '@/components/_newDesign/Clients/ClientList/ClientListItem.vue';\n\nimport { Client } from '@/models/Client';\n\nexport default defineComponent({\n components: {\n ClientListItem,\n },\n props: {\n clients: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const clientsStore = useClientsStore();\n\n const clientsIsLoading = computed(() => clientsStore.getters.isLoading);\n\n const onIntersect = (entries: unknown, observer: unknown, isIntersecting: boolean) => {\n if (isIntersecting) clientsStore.actions.NEXT_PAGE();\n };\n\n return {\n clientsIsLoading,\n onIntersect,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientList.vue?vue&type=template&id=44938f06&scoped=true&\"\nimport script from \"./ClientList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ClientList.vue?vue&type=style&index=0&id=44938f06&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44938f06\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VList,VListItem,VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport ClientList from '@/components/_newDesign/Clients/ClientList/ClientList.vue';\n\nimport { Client } from '@/models/Client';\n\nexport default defineComponent({\n components: {\n ClientList,\n },\n props: {\n clients: { type: Array as PropType, required: true },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientCatalogContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientCatalogContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientCatalogContent.vue?vue&type=template&id=405dacf2&\"\nimport script from \"./ClientCatalogContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientCatalogContent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, ref, computed, watch } from '@vue/composition-api';\n\nimport { DSelectInline } from '@shared/druid-kit';\n\nimport useRouter from '@/packages/hooks/useRouter';\nimport { useClientsStore } from '@/store/clients';\n\nimport { FetchClientsV2Payload } from '@/api/modules/clients.api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport ClientCatalogContent from '@/components/_newDesign/Clients/ClientCatalog/ClientCatalogContent.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport { useClientPaths } from '@/composables/client';\n\nexport default defineComponent({\n components: {\n DSelectInline,\n AppView,\n ClientCatalogContent,\n },\n setup(props, context) {\n const router = useRouter(context);\n\n const clientsStore = useClientsStore();\n\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const clientsFiltersStateOptions: { text: string; value: string }[] = [\n { text: 'Все клиенты', value: 'all' },\n { text: 'Только архивные клиенты', value: 'archive' },\n { text: 'С активными кампаниями', value: 'active' },\n ];\n\n const clients = computed(() => clientsStore.getters.clients);\n const clientsIsLoading = computed(() => clientsStore.getters.isLoading);\n const clientsFilters = computed(() => clientsStore.getters.filters);\n const clientsFiltersChanged = computed(() => clientsStore.getters.filtersChanged);\n\n const activeState = computed({\n get() {\n return clientsStore.getters.filters.state;\n },\n set(val: FetchClientsV2Payload['state']) {\n clientsStore.actions.UPDATE_FILTERS({ state: val });\n },\n });\n\n const fetchClients = async () => {\n await clientsStore.actions.FETCH_CLIENTS();\n };\n\n const resetClientsFilters = () => {\n clientsStore.actions.RESET_FILTERS();\n };\n\n const init = async () => {\n updateIsLoading(true);\n\n resetClientsFilters();\n\n try {\n await fetchClients();\n } finally {\n updateIsLoading(false);\n }\n };\n\n watch(clients, (val) => {\n if (val.length !== 1) return;\n\n const { path } = useClientPaths({ client: ref(val[0]) });\n\n router.push(path.value);\n });\n\n watch(clientsFilters, () => {\n if (!clientsFiltersChanged.value) return;\n\n fetchClients();\n });\n\n watch(activeState, (val) => {\n const eventLabels = {\n all: 'All clients',\n archive: 'Archive clients only',\n active: 'With active campaigns',\n } as const;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign List',\n event_action: 'Click on clients filtering',\n event_label: eventLabels[val],\n });\n });\n\n init();\n\n return {\n activeState,\n clients,\n clientsIsLoading,\n clientsFiltersChanged,\n clientsFiltersStateOptions,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientCatalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientCatalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientCatalog.vue?vue&type=template&id=62dfcbcc&scoped=true&\"\nimport script from \"./ClientCatalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientCatalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ClientCatalog.vue?vue&type=style&index=0&id=62dfcbcc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62dfcbcc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"client-details\"},[_c('portal',{attrs:{\"to\":\"app-header-title-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_vm._v(\" \"),(!_vm.isLoading)?_c('ClientDetailsContent',{staticClass:\"client-details__content\",attrs:{\"client\":_vm.client}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"client-details-content\"},[_c('BrandList',{staticClass:\"mb-10\",attrs:{\"brands\":_vm.activeBrands}}),_vm._v(\" \"),(_vm.archiveBrandsCount)?_c('div',{staticClass:\"px-4 mb-4 text-h5\"},[_vm._v(\"\\n Архивные бренды — \"+_vm._s(_vm.archiveBrandsCount)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('BrandList',{attrs:{\"brands\":_vm.archiveBrands}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"brand-list\"},_vm._l((_vm.brands),function(brand){return _c('BrandListItem',{key:brand.id,staticClass:\"mb-2\",attrs:{\"value\":_vm.brands.length === 1 || _vm.queryFilters.brandId === brand.id,\"brand\":brand}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"brand-list-item\",class:{\n 'brand-list-item--archive': !_vm.brand.active,\n }},[_c('v-btn',{staticClass:\"brand-list-item__header justify-start px-3\",class:{ 'brand-list-item__header--disabled': _vm.isLoading },attrs:{\"id\":(\"brand-id-\" + (_vm.brand.id)),\"height\":\"48\",\"elevation\":\"0\",\"color\":\"white\",\"block\":\"\",\"tile\":\"\"},on:{\"click\":_vm.toggle}},[_c('div',{staticClass:\"brand-list-item__wrapper brand-list-item__wrapper--icon-chevron d-flex flex-shrink-0 justify-center align-center mr-1\"},[(_vm.autoShowArchive ? _vm.isLoading : _vm.activeCampaignsIsLoading)?_c('v-progress-circular',{staticClass:\"brand-list-item__icon\",attrs:{\"width\":\"2\",\"size\":\"20\",\"indeterminate\":\"\"}}):_c('v-icon',{staticClass:\"brand-list-item__icon\",class:{ 'brand-list-item__icon--active': _vm.isOpen },attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-chevron-right\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"brand-list-item__title text-h6\"},[_vm._v(\"\\n \"+_vm._s(_vm.brand.name)+\"\\n \")])]),_vm._v(\" \"),(_vm.isShown)?_c('div',{staticClass:\"brand-list-item__content mb-10\"},[(_vm.visibleCampaigns.length || _vm.finishedCampaignsCount)?_c('BrandListItemTable',{attrs:{\"campaigns\":_vm.visibleCampaigns},scopedSlots:_vm._u([(_vm.brandIsActive && _vm.finishedCampaignsCount)?{key:\"body-append\",fn:function(){return [_c('tr',{staticStyle:{\"height\":\"8px\"}}),_vm._v(\" \"),_c('BrandListItemTableShowArchiveRow',{attrs:{\"brand\":_vm.brand,\"count\":_vm.finishedCampaignsCount,\"loading\":_vm.isLoading},model:{value:(_vm.archiveIsOpen),callback:function ($$v) {_vm.archiveIsOpen=$$v},expression:\"archiveIsOpen\"}})]},proxy:true}:null],null,true)}):_c('div',{staticClass:\"pt-2 pb-6 pl-10 grey--text text--darken-1\"},[_vm._v(\"\\n У этого бренда нет кампаний\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.isLoading)?_c('TableLoader',{staticClass:\"brand-list-item__table-loader\"}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MetricsTable',{attrs:{\"headers\":_vm.headers,\"items\":_vm.campaigns,\"metric-cells\":_vm.metricCells},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('BrandListItemTableRow',{attrs:{\"campaign\":item,\"metric-cells\":_vm.metricCells}})]}},{key:\"body-append\",fn:function(){return [_vm._t(\"body-append\")]},proxy:true}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({staticClass:\"metrics-table\",attrs:{\"items\":_vm.items,\"items-per-page\":_vm.items.length},on:{\"update:expanded\":function($event){return _vm.$emit('update:expanded', $event)}},scopedSlots:_vm._u([(_vm.$slots['header-name'])?{key:\"header-name\",fn:function(){return [_vm._t(\"header-name\")]},proxy:true}:null,{key:\"row\",fn:function(ref){\nvar index = ref.index;\nvar item = ref.item;\nvar isExpanded = ref.isExpanded;\nvar expand = ref.expand;\nreturn [(index)?_c('tr',{staticStyle:{\"height\":\"8px\"}}):_vm._e(),_vm._v(\" \"),_vm._t(\"row\",function(){return [_c('MetricsTableRow',{attrs:{\"metrics-plan\":item.metricsPlan,\"metrics-total\":item.metricsTotal,\"metric-cells\":_vm.metricCells},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_vm._t(\"prepend-row\",null,{\"item\":item,\"isExpanded\":isExpanded,\"expand\":expand})]},proxy:true},{key:\"append\",fn:function(){return [_vm._t(\"append-row\",null,{\"item\":item})]},proxy:true}],null,true)})]},{\"item\":item,\"isExpanded\":isExpanded,\"expand\":expand})]}},{key:\"expanded-row\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._t(\"expanded-row\",null,{\"item\":item})]}},{key:\"body-append\",fn:function(){return [_vm._t(\"body-append\")]},proxy:true},{key:\"footer\",fn:function(){return [_vm._t(\"footer\")]},proxy:true}],null,true)},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{directives:[{name:\"intersect\",rawName:\"v-intersect\",value:({\n handler: _vm.onIntersect,\n options: {\n rootMargin: '600px 0px',\n }\n }),expression:\"{\\n handler: onIntersect,\\n options: {\\n rootMargin: '600px 0px',\\n }\\n }\"}],staticClass:\"metrics-table-row\",attrs:{\"height\":\"56px\"}},[(_vm.isIntersect)?[_vm._t(\"prepend\"),_vm._v(\" \"),_vm._l((_vm.filledMetricCells),function(metricCell){return _c('MetricsTableMetricCell',_vm._b({key:metricCell.metric.name},'MetricsTableMetricCell',metricCell,false))}),_vm._v(\" \"),_vm._t(\"append\")]:[_c('td',{attrs:{\"colspan\":\"100%\"}})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableCell',{staticClass:\"metrics-table-cell-metric\"},[_c('div',{staticClass:\"py-2\"},[_c('DTooltip',{attrs:{\"max-width\":\"290\",\"center\":\"\",\"bottom\":\"\",\"interactive\":\"\",\"disabled\":_vm.planInsteadProgress || _vm.disabledTooltip},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('div',_vm._g(_vm._b({staticClass:\"metrics-table-cell-metric__text body-2 black--text\",class:{ 'metrics-table-cell-metric__text--pointer': !_vm.planInsteadProgress, 'font-weight-medium': _vm.total }},'div',attrs,false),on),[_vm._v(\"\\n \"+_vm._s(_vm.formattedFact)+\"\\n \")])]}}])},[_vm._v(\" \"),_c('span',{staticClass:\"metrics-table-cell-metric__text\"},[_vm._v(\"План: \"+_vm._s(_vm.formattedPlan))])]),_vm._v(\" \"),(!_vm.onlyFact)?[(_vm.planInsteadProgress)?_c('div',{staticClass:\"metrics-table-cell-metric__text body-2 grey--text text--darken-1\"},[_vm._v(\"\\n план \"+_vm._s(_vm.formattedPlan)+\"\\n \")]):_c('v-progress-linear',_vm._b({staticClass:\"mt-1\",attrs:{\"value\":_vm.percent}},'v-progress-linear',_vm.progressProps,false))]:_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import numbro from 'numbro';\nimport numbroRuLanguage from 'numbro/languages/ru-RU';\nimport { pickBy, omit } from 'lodash';\n\nnumbro.registerLanguage(numbroRuLanguage);\nnumbro.setLanguage('ru-RU');\n\nexport interface NumatterFormatOptions extends numbro.Format {\n prefix?: string;\n postfix?: string;\n}\n\nexport type NumatterPreset = {\n name: string;\n options: NumatterFormatOptions;\n};\n\ninterface NumatterInputFormatOptions extends NumatterFormatOptions {\n preset?: string;\n}\n\nexport type NumatterFormat = string | NumatterInputFormatOptions;\n\ntype NumatterValue = string | number;\n\n//\n//\n// // // Utils\n//\n\nconst getFilledFormatOptions = (inputFormatOptions: NumatterInputFormatOptions): Partial => pickBy(inputFormatOptions, (value) => value !== null && value !== undefined);\n\n//\n// // //\n//\n//\n\nconst presetsMap = new Map();\n\nconst addPreset = (preset: NumatterPreset): void => {\n const presetName = preset.name;\n const presetOptions = preset.options;\n\n presetsMap.set(presetName, presetOptions);\n};\n\nconst normalizeFormatOptionsForNumbro = (inputFormatOptions: NumatterInputFormatOptions): numbro.Format => {\n const filledFormatOptions = getFilledFormatOptions(inputFormatOptions);\n\n return omit(filledFormatOptions, [\n 'preset',\n 'prefix',\n 'postfix',\n 'spaceSeparated',\n ]);\n};\n\nconst numberFormatter = (inputValue: NumatterValue, inputFormat?: NumatterFormat) => {\n const defaultFormatOptions = {\n mantissa: 2,\n optionalMantissa: true,\n thousandSeparated: true,\n };\n\n if (!inputFormat) return numbro(inputValue).format(defaultFormatOptions);\n\n if (typeof inputFormat === 'string') return numbro(inputValue).format(inputFormat);\n\n const formatOptions = {\n ...defaultFormatOptions,\n ...inputFormat,\n };\n\n const numbroFormatOptions = normalizeFormatOptionsForNumbro(formatOptions);\n\n return numbro(inputValue).format(numbroFormatOptions);\n};\n\nconst format = (inputValue: NumatterValue, inputFormat?: NumatterFormat): string => {\n if (!inputFormat || typeof inputFormat === 'string') return numberFormatter(inputValue, inputFormat);\n\n const presetFormatOptions = inputFormat.preset ? presetsMap.get(inputFormat.preset) : {};\n\n const formatOptions = {\n ...presetFormatOptions,\n ...inputFormat,\n };\n\n const prefix = formatOptions.prefix || '';\n const postfix = formatOptions.postfix || '';\n const separated = formatOptions.spaceSeparated ? ' ' : '';\n\n const formattedPrefix = prefix ? `${prefix}${separated}` : '';\n const formattedPostfix = postfix ? `${separated}${postfix}` : '';\n\n const formattedValue = numberFormatter(inputValue, formatOptions);\n\n return `${formattedPrefix}${formattedValue}${formattedPostfix}`;\n};\n\nexport default {\n get presets(): NumatterPreset[] {\n return [...presetsMap].map(([name, options]) => ({ name, options }));\n },\n addPreset,\n format,\n clearEmptyFormatOptions: getFilledFormatOptions,\n reset(): void {\n presetsMap.clear();\n },\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTooltip,\n} from '@shared/druid-kit';\n\nimport numatter from '@/packages/numatter';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTooltip,\n },\n props: {\n metric: { type: Object as PropType<{ name: string; plan: number; fact: number }>, required: true },\n progressProps: { type: Object as PropType<{ color: string }>, default: () => ({}) },\n total: { type: Boolean, default: false },\n planInsteadProgress: { type: Boolean, default: false },\n onlyFact: { type: Boolean, default: false },\n disabledTooltip: { type: Boolean, default: false },\n },\n setup(props) {\n const { metric } = toRefs(props);\n\n const formattedPlan = computed(() => numatter.format(metric.value.plan, { preset: metric.value.name }));\n const formattedFact = computed(() => numatter.format(metric.value.fact, { preset: metric.value.name }));\n\n const percent = computed(() => (metric.value.fact / metric.value.plan) * 100);\n\n return {\n formattedPlan,\n formattedFact,\n percent,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTableMetricCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTableMetricCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MetricsTableMetricCell.vue?vue&type=template&id=24bf3286&scoped=true&\"\nimport script from \"./MetricsTableMetricCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./MetricsTableMetricCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MetricsTableMetricCell.vue?vue&type=style&index=0&id=24bf3286&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24bf3286\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VProgressLinear})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType, ref } from '@vue/composition-api';\n\nimport { DTableRow } from '@shared/druid-kit';\n\nimport MetricsTableMetricCell from '@/components/_newDesign/common/MetricsTable/cells/MetricsTableMetricCell.vue';\n\nexport interface MetricCell {\n metric: {\n name: string\n };\n planInsteadProgress: boolean;\n onlyFact: boolean;\n disabledTooltip: boolean;\n}\n\nexport default defineComponent({\n components: {\n DTableRow,\n MetricsTableMetricCell,\n },\n props: {\n metricsPlan: { type: Object as PropType>, default: () => ({}) },\n metricsTotal: { type: Object as PropType>, default: () => ({}) },\n metricCells: { type: Array as PropType, default: () => [] },\n },\n setup(props) {\n const { metricsPlan, metricsTotal, metricCells } = toRefs(props);\n\n const isIntersect = ref(false);\n\n const onIntersect = (entries: unknown, observer: unknown, isIntersecting: boolean) => {\n isIntersect.value = isIntersecting;\n };\n\n const filledMetricCells = computed(() => metricCells.value.map((metricCell) => {\n const plan = metricsPlan?.value[metricCell.metric.name] || 0;\n const fact = metricsTotal?.value[metricCell.metric.name] || 0;\n\n return {\n ...metricCell,\n metric: {\n ...metricCell.metric,\n plan,\n fact,\n },\n };\n }));\n\n return {\n filledMetricCells,\n isIntersect,\n onIntersect,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MetricsTableRow.vue?vue&type=template&id=2e32da40&\"\nimport script from \"./MetricsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./MetricsTableRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport { DTable } from '@shared/druid-kit';\n\nimport MetricsTableRow from '@/components/_newDesign/common/MetricsTable/MetricsTableRow.vue';\n\nexport default defineComponent({\n components: {\n DTable,\n MetricsTableRow,\n },\n props: {\n items: { type: Array as PropType, default: () => [] },\n metricCells: { type: Array as PropType, default: () => [] },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MetricsTable.vue?vue&type=template&id=5f29f7ef&scoped=true&\"\nimport script from \"./MetricsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./MetricsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MetricsTable.vue?vue&type=style&index=0&id=5f29f7ef&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f29f7ef\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MetricsTableRow',{staticClass:\"brand-list-item-table-row\",class:{\n 'brand-list-item-table-row--archive': !_vm.campaignIsActive,\n },attrs:{\"metrics-total\":_vm.campaign.metricsTotal,\"metrics-plan\":_vm.campaign.metricsPlan,\"metric-cells\":_vm.coloredMetricCells},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('BrandListItemTableDescCell',{staticClass:\"pr-0\",attrs:{\"campaign\":_vm.campaign}}),_vm._v(\" \"),(_vm.$acl.check('approve_campaigns'))?_c('BrandListItemTableApprovedCell',{attrs:{\"loading\":_vm.toggleCampaignApprovedStatusIsLoading,\"approved\":_vm.campaignIsApproved},on:{\"toggle-approved\":_vm.toggleCampaignApprovedStatus}}):_vm._e(),_vm._v(\" \"),_c('MetricsTablePeriodCell',{staticClass:\"pl-0\",attrs:{\"campaign\":_vm.campaign,\"progress-props\":_vm.progressProps}})]},proxy:true},{key:\"append\",fn:function(){return [_c('DTableCellSpacer')]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableCell',{staticClass:\"metrics-table-period-cell\"},[_c('div',{staticClass:\"metrics-table-period-cell__content\"},[_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.formattedStartDate)+\" – \"+_vm._s(_vm.formattedEndDate)+\"\\n \")]),_vm._v(\" \"),_c('v-progress-linear',_vm._b({staticClass:\"metrics-table-period-cell__progress\",attrs:{\"value\":_vm.percent}},'v-progress-linear',_vm.progressProps,false))],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DTableCell } from '@shared/druid-kit';\n\nimport { Campaign } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DTableCell,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n progressProps: { type: Object as PropType<{ color: string }>, default: () => ({}) },\n },\n setup(props) {\n const { campaign } = toRefs(props);\n\n const formattedStartDate = computed(() => moment.utc(campaign.value.startDate).format('DD.MM'));\n const formattedEndDate = computed(() => moment.utc(campaign.value.endDate).format('DD.MM.YYYY'));\n\n const percent = computed(() => {\n const start = moment(campaign.value.startDate).startOf('day');\n const end = moment(campaign.value.endDate).endOf('day');\n const now = moment();\n\n const total = end.valueOf() - start.valueOf();\n const elapsed = now.valueOf() - start.valueOf();\n\n return elapsed > total ? 100 : (elapsed / total) * 100;\n });\n\n return {\n formattedStartDate,\n formattedEndDate,\n percent,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTablePeriodCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTablePeriodCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MetricsTablePeriodCell.vue?vue&type=template&id=5447f2d0&scoped=true&\"\nimport script from \"./MetricsTablePeriodCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./MetricsTablePeriodCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MetricsTablePeriodCell.vue?vue&type=style&index=0&id=5447f2d0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5447f2d0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VProgressLinear})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableCell',{staticClass:\"brand-list-item-table-desc-cell\",attrs:{\"to\":_vm.path},on:{\"click\":_vm.onRootClick}},[_c('div',{staticClass:\"brand-list-item-table-desc-cell__content\"},[_c('DTooltip',{attrs:{\"center\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"brand-list-item-table-desc-cell__icon flex-shrink-0 align-self-start mt-1 mr-2\",attrs:{\"size\":\"16\"},domProps:{\"textContent\":_vm._s(_vm.status.icon)}},'v-icon',attrs,false),on))]}}])},[_vm._v(\" \"),_c('span',{domProps:{\"textContent\":_vm._s(_vm.status.text)}})]),_vm._v(\" \"),_c('div',{staticClass:\"brand-list-item-table-desc-cell__title flex-grow-1\"},[_c('span',{staticClass:\"brand-list-item-table-desc-cell__name subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.campaign.name)}})])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTooltip,\n} from '@shared/druid-kit';\n\nimport { Campaign } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTooltip,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { campaign } = toRefs(props);\n\n const status = computed(() => {\n const textMap = {\n active: 'Кампания идет',\n paused: 'Кампания на паузе',\n finished: 'Кампания завершена',\n };\n\n const iconsMap = {\n active: '$d1-play',\n paused: 'mdi-pause',\n finished: campaign.value.isActive ? 'mdi-check' : 'mdi-archive',\n };\n\n const text = textMap[campaign.value.state.code];\n const icon = iconsMap[campaign.value.state.code];\n\n return {\n text,\n icon,\n };\n });\n\n const path = computed(() => `/campaigns/${campaign.value.id}`);\n\n const onRootClick = () => {\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign List',\n event_action: 'Open Campaign',\n event_label: campaign.value.id,\n d1d_client_id: campaign.value.clientId,\n d1d_client_name: campaign.value.clientName,\n d1d_brand_id: campaign.value.brandId,\n d1d_brand_name: campaign.value.brandName,\n d1d_campaign_id: campaign.value.id,\n d1d_campaign_name: campaign.value.name,\n });\n };\n\n return {\n status,\n path,\n onRootClick,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableDescCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableDescCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrandListItemTableDescCell.vue?vue&type=template&id=1a3df161&scoped=true&\"\nimport script from \"./BrandListItemTableDescCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrandListItemTableDescCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BrandListItemTableDescCell.vue?vue&type=style&index=0&id=1a3df161&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a3df161\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableCell',{staticClass:\"brand-list-item-table-approved-cell\"},[_c('DTooltip',{attrs:{\"max-width\":\"290\",\"center\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.$emit('toggle-approved')}}},'v-btn',attrs,false),on),[(_vm.loading)?_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"width\":\"2\",\"size\":\"16\",\"indeterminate\":\"\"}}):_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n \"+_vm._s(_vm.approved ? 'mdi-eye' : 'mdi-eye-off-outline')+\"\\n \")])],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.approved\n ? 'Кампания видна клиенту'\n : 'Кампания скрыта от клиента'))])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTooltip,\n} from '@shared/druid-kit';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTooltip,\n },\n props: {\n approved: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableApprovedCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableApprovedCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrandListItemTableApprovedCell.vue?vue&type=template&id=025a514c&scoped=true&\"\nimport script from \"./BrandListItemTableApprovedCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrandListItemTableApprovedCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BrandListItemTableApprovedCell.vue?vue&type=style&index=0&id=025a514c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"025a514c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","import { computed, Ref, ComputedRef } from '@vue/composition-api';\n\nimport { Campaign, CampaignCategory } from '@/models/Campaign';\n\nimport { useCampaignStore } from '@/store/campaign';\n\ninterface UseCampaignDetailsProps {\n campaignId: Ref;\n filters?: Ref<{\n from?: string;\n to?: string;\n }>;\n}\n\ninterface UseCampaignDetailsReturn {\n campaign: ComputedRef;\n campaignCategories: ComputedRef;\n campaignPageTitle: ComputedRef;\n fetchCampaign: () => Promise;\n}\n\nexport default (props: UseCampaignDetailsProps): UseCampaignDetailsReturn => {\n const {\n campaignId,\n filters,\n } = props;\n\n const campaignStore = useCampaignStore();\n\n const campaign = computed(() => campaignStore.getters.campaign);\n\n const campaignCategories = computed(() => campaignStore.getters.campaignCategories);\n\n const campaignPageTitle = computed(() => (campaign.value ? `${campaign.value?.brandName} • ${campaign.value?.name}` : 'Кампания'));\n\n const fetchCampaign = async () => {\n await campaignStore.dispatch('FETCH_CAMPAIGN', {\n campaignId: campaignId.value,\n filters: filters?.value,\n options: {\n withCategories: true,\n },\n });\n };\n\n return {\n campaign,\n campaignCategories,\n campaignPageTitle,\n fetchCampaign,\n };\n};\n","import { ref, computed, Ref, ComputedRef } from '@vue/composition-api';\n\nimport { Campaign } from '@/models/Campaign';\n\nimport { useClientStore } from '@/store/client';\nimport { useCampaignStore } from '@/store/campaign';\n\ninterface UseCampaignApprovedStatusProps {\n campaign: Ref;\n isDetails?: boolean | Ref;\n}\n\ninterface UseCampaignApprovedStatusReturn {\n campaignIsApproved: ComputedRef;\n toggleCampaignApprovedStatusIsLoading: Ref;\n toggleCampaignApprovedStatus: () => Promise;\n}\n\nexport default (props: UseCampaignApprovedStatusProps): UseCampaignApprovedStatusReturn => {\n const {\n campaign,\n isDetails,\n } = props;\n\n const clientStore = useClientStore();\n const campaignStore = useCampaignStore();\n\n const toggleCampaignApprovedStatusIsLoading = ref(false);\n\n const campaignIsApproved = computed(() => campaign.value.approved);\n\n const toggleCampaignApprovedStatus = async () => {\n if (toggleCampaignApprovedStatusIsLoading.value) return;\n\n toggleCampaignApprovedStatusIsLoading.value = true;\n\n const actionValue = !campaignIsApproved.value;\n\n if (isDetails) {\n await campaignStore.dispatch('CAMPAIGN_TOGGLE_APPROVED_STATUS', actionValue);\n } else {\n await clientStore.dispatch('CAMPAIGN_TOGGLE_APPROVED_STATUS', {\n campaign: campaign.value,\n value: actionValue,\n });\n }\n\n toggleCampaignApprovedStatusIsLoading.value = false;\n };\n\n return {\n campaignIsApproved,\n toggleCampaignApprovedStatusIsLoading,\n toggleCampaignApprovedStatus,\n };\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, computed } from '@vue/composition-api';\n\nimport { DTableCellSpacer } from '@shared/druid-kit';\n\nimport MetricsTableRow, { MetricCell } from '@/components/_newDesign/common/MetricsTable/MetricsTableRow.vue';\nimport MetricsTablePeriodCell from '@/components/_newDesign/common/MetricsTable/cells/MetricsTablePeriodCell.vue';\n\nimport BrandListItemTableDescCell from '@/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableDescCell.vue';\nimport BrandListItemTableApprovedCell from '@/components/_newDesign/Brands/BrandList/BrandListItemTable/cells/BrandListItemTableApprovedCell.vue';\n\nimport { useCampaignApprovedStatus } from '@/composables/campaign';\n\nimport { Campaign } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DTableCellSpacer,\n MetricsTableRow,\n BrandListItemTableDescCell,\n BrandListItemTableApprovedCell,\n MetricsTablePeriodCell,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n metricCells: { type: Array as PropType, default: () => [] },\n },\n setup(props) {\n const { campaign, metricCells } = toRefs(props);\n\n const {\n campaignIsApproved,\n toggleCampaignApprovedStatusIsLoading,\n toggleCampaignApprovedStatus,\n } = useCampaignApprovedStatus({ campaign });\n\n const campaignIsActive = computed(() => campaign.value.isActive);\n\n const progressProps = computed(() => ({\n color: campaignIsActive.value ? 'primary' : 'grey darken-4',\n }));\n\n const coloredMetricCells = metricCells.value.map((metricCell) => ({\n ...metricCell,\n progressProps: progressProps.value,\n }));\n\n return {\n campaignIsApproved,\n campaignIsActive,\n toggleCampaignApprovedStatusIsLoading,\n progressProps,\n coloredMetricCells,\n toggleCampaignApprovedStatus,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrandListItemTableRow.vue?vue&type=template&id=e12d86d0&scoped=true&\"\nimport script from \"./BrandListItemTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrandListItemTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BrandListItemTableRow.vue?vue&type=style&index=0&id=e12d86d0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e12d86d0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport { Campaign } from '@/models/Campaign';\n\nimport MetricsTable from '@/components/_newDesign/common/MetricsTable/MetricsTable.vue';\nimport BrandListItemTableRow from '@/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableRow.vue';\n\nexport default defineComponent({\n components: {\n MetricsTable,\n BrandListItemTableRow,\n },\n props: {\n campaigns: { type: Array as PropType, required: true },\n },\n setup() {\n const metricCells = [\n {\n metric: {\n name: 'Cost',\n },\n },\n {\n metric: {\n name: 'Impressions',\n },\n },\n {\n metric: {\n name: 'Clicks',\n },\n },\n {\n metric: {\n name: 'CTR',\n },\n planInsteadProgress: true,\n },\n ];\n\n const headers = [\n {\n class: 'caption pl-10',\n text: 'Кампания',\n value: 'name',\n },\n ...(Vue.acl.check('approve_campaigns') ? [\n {\n sortable: false,\n },\n ] : []),\n {\n class: 'caption pl-0',\n text: 'Период',\n sortable: false,\n },\n ...metricCells.map((metricCell) => ({\n class: 'caption',\n text: metricCell.metric.name,\n value: `metricsTotal.${metricCell.metric.name}`,\n sortable: false,\n })),\n ];\n\n return {\n headers,\n metricCells,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrandListItemTable.vue?vue&type=template&id=0b80c9c4&\"\nimport script from \"./BrandListItemTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrandListItemTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"brand-list-item-table-show-archive-row\",on:{\"click\":_vm.onRootClick}},[_c('DTableCell',{attrs:{\"colspan\":\"100%\"}},[_c('div',{staticClass:\"brand-list-item-table-show-archive-row__content\"},[_c('div',{staticClass:\"brand-list-item-table-show-archive-row__sidebar brand-list-item-table-show-archive-row__sidebar--left mr-2\"},[(_vm.loading)?_c('v-progress-circular',{staticClass:\"brand-list-item-table-show-archive-row__icon\",attrs:{\"width\":\"2\",\"size\":\"16\",\"indeterminate\":\"\"}}):_c('v-icon',{staticClass:\"brand-list-item-table-show-archive-row__icon\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n \"+_vm._s(!_vm.value || _vm.loading ? 'mdi-archive' : 'mdi-close')+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"brand-list-item-table-show-archive-row__main\"},[_c('div',{staticClass:\"brand-list-item-table-show-archive-row__text subtitle-2\"},[_vm._v(\"\\n \"+_vm._s(!_vm.value || _vm.loading ? 'Архивные кампании' : 'Скрыть архивные кампании')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"brand-list-item-table-show-archive-row__text subtext\"},[_vm._v(\"\\n \"+_vm._s(_vm.count)+\" шт.\\n \")])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { Brand } from '@/models/Brand';\n\nimport { useClientStore } from '@/store/client';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n brand: { type: Object as PropType, required: true },\n value: { type: Boolean, default: false },\n count: { type: Number, default: 0 },\n loading: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n brand,\n value,\n loading,\n } = toRefs(props);\n\n const clientStore = useClientStore();\n\n const client = computed(() => clientStore.getters.client);\n\n const onRootClick = () => {\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign List',\n event_action: 'Unroll finished',\n event_label: `${client.value?.name} | ${brand.value.name}`,\n d1d_client_id: client.value?.id,\n d1d_client_name: client.value?.name,\n d1d_brand_id: brand.value.id,\n d1d_brand_name: brand.value.name,\n });\n\n if (loading.value) return;\n\n context.emit('input', !value.value);\n };\n\n return {\n onRootClick,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableShowArchiveRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableShowArchiveRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrandListItemTableShowArchiveRow.vue?vue&type=template&id=ae24041c&scoped=true&\"\nimport script from \"./BrandListItemTableShowArchiveRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrandListItemTableShowArchiveRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BrandListItemTableShowArchiveRow.vue?vue&type=style&index=0&id=ae24041c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ae24041c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"table-loader\"},[(!_vm.withoutHead)?_c('div',{staticClass:\"table-loader__head\"},_vm._l((_vm.columns),function(num){return _c('div',{key:num,staticClass:\"table-loader__head-cell\"},[_c('v-skeleton-loader',{staticClass:\"table-loader__head-cell-content\",attrs:{\"type\":\"text\"}})],1)}),0):_vm._e(),_vm._v(\" \"),_vm._l((_vm.rows),function(rowNum){return _c('div',{key:rowNum,staticClass:\"table-loader__body\"},_vm._l((_vm.columns),function(columnNum){return _c('v-skeleton-loader',{key:columnNum,staticClass:\"table-loader__row-cell\",attrs:{\"type\":\"text\"}})}),1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableLoader.vue?vue&type=template&id=a512b1de&scoped=true&\"\nimport script from \"./TableLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./TableLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableLoader.vue?vue&type=style&index=0&id=a512b1de&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a512b1de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType } from '@vue/composition-api';\n\nimport BrandListItemTable from '@/components/_newDesign/Brands/BrandList/BrandListItemTable/BrandListItemTable.vue';\nimport BrandListItemTableShowArchiveRow from '@/components/_newDesign/Brands/BrandList/BrandListItemTable/rows/BrandListItemTableShowArchiveRow.vue';\n\nimport TableLoader from '@/components/_newDesign/common/loaders/TableLoader.vue';\n\nimport { useClientBrandCampaignList } from '@/composables/client';\n\nimport { Brand } from '@/models/Brand';\n\nexport default defineComponent({\n components: {\n BrandListItemTable,\n BrandListItemTableShowArchiveRow,\n TableLoader,\n },\n props: {\n value: { type: Boolean, default: false },\n brand: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const { value, brand } = toRefs(props);\n\n const isOpen = ref(false);\n\n const archiveIsOpen = ref(false);\n\n const brandId = computed(() => brand.value.id);\n const brandIsActive = computed(() => brand.value.active);\n\n const {\n activeCampaigns,\n activeCampaignsIsLoading,\n fetchActiveCampaigns,\n finishedCampaigns,\n finishedCampaignsCount,\n finishedCampaignsIsLoading,\n fetchFinishedCampaigns,\n campaigns,\n } = useClientBrandCampaignList({ brandId });\n\n const isLoading = computed(() => activeCampaignsIsLoading.value || finishedCampaignsIsLoading.value);\n\n const autoShowArchive = computed(() => !brandIsActive.value || finishedCampaignsCount.value < 2);\n\n const isShown = computed(() => {\n const loading = autoShowArchive.value ? isLoading.value : activeCampaignsIsLoading.value;\n\n return isOpen.value && !loading;\n });\n\n const visibleCampaigns = computed(() => {\n if (archiveIsOpen.value && !isLoading.value) return campaigns.value;\n\n return activeCampaigns.value;\n });\n\n watch(value, (val: boolean) => {\n if (isOpen.value === val) return;\n\n isOpen.value = val;\n }, { immediate: true });\n\n watch(isOpen, (val: boolean) => {\n if (value.value === val) return;\n\n context.emit('input', val);\n });\n\n watch(archiveIsOpen, (val: boolean) => {\n if (!val) return;\n\n fetchFinishedCampaigns();\n });\n\n const open = async () => {\n if (!isOpen.value) return;\n\n await fetchActiveCampaigns();\n\n if (autoShowArchive.value) {\n archiveIsOpen.value = true;\n }\n };\n\n const toggle = () => {\n if (isLoading.value) return;\n\n isOpen.value = !isOpen.value;\n\n open();\n };\n\n open();\n\n return {\n isOpen,\n isLoading,\n isShown,\n brandIsActive,\n archiveIsOpen,\n autoShowArchive,\n activeCampaignsIsLoading,\n finishedCampaignsIsLoading,\n finishedCampaigns,\n finishedCampaignsCount,\n fetchFinishedCampaigns,\n visibleCampaigns,\n toggle,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrandListItem.vue?vue&type=template&id=9f06447e&scoped=true&\"\nimport script from \"./BrandListItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrandListItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BrandListItem.vue?vue&type=style&index=0&id=9f06447e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9f06447e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, inject, ref, PropType, Ref } from '@vue/composition-api';\n\nimport BrandListItem from '@/components/_newDesign/Brands/BrandList/BrandListItem.vue';\n\nimport { Brand } from '@/models/Brand';\n\nexport default defineComponent({\n components: {\n BrandListItem,\n },\n props: {\n brands: { type: Array as PropType, required: true },\n },\n setup() {\n const queryFilters = inject>('queryFilters', ref({}));\n\n return {\n queryFilters,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrandList.vue?vue&type=template&id=04e5c446&\"\nimport script from \"./BrandList.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrandList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs } from '@vue/composition-api';\n\nimport BrandList from '@/components/_newDesign/Brands/BrandList/BrandList.vue';\n\nimport { useClientBrands } from '@/composables/client';\n\nimport { Client } from '@/models/Client';\n\nexport default defineComponent({\n components: {\n BrandList,\n },\n props: {\n client: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { client } = toRefs(props);\n\n const {\n activeBrands,\n archiveBrands,\n archiveBrandsCount,\n } = useClientBrands({ client });\n\n return {\n activeBrands,\n archiveBrands,\n archiveBrandsCount,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetailsContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetailsContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientDetailsContent.vue?vue&type=template&id=1da02e95&\"\nimport script from \"./ClientDetailsContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientDetailsContent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { ref, watch, SetupContext, Ref } from '@vue/composition-api';\n\nimport { debounce, isEqual } from 'lodash';\n\nimport useRouter from '@/packages/hooks/useRouter';\nimport useRoute from '@/packages/hooks/useRoute';\n\ntype Query = { [key: string]: string | (string | null)[] };\n\ntype Filters = { [key: string]: string | (string | null | undefined)[] | undefined };\n\ninterface UseQueryFilterProps {\n filters: Filters;\n}\n\ninterface UseQueryFilterReturn {\n queryFilters: Ref;\n setQueryFilters: (value: { [key: string]: string | undefined }) => void;\n updateQueryFilters: (value: { [key: string]: string | undefined }) => void;\n}\n\nconst createFiltersState = (initFilters: Filters, routeQuery: Query) => {\n const state = Object.entries(initFilters).reduce((filtersStateMap, [slug, value]) => {\n value = routeQuery[slug] || value;\n\n if (!value) return filtersStateMap;\n\n filtersStateMap[slug] = value;\n\n return filtersStateMap;\n }, {});\n\n return state;\n};\n\nconst createQueryFilters = (initFilters: Filters) => {\n const query = Object.entries(initFilters).reduce((queryMap, [slug, value]) => {\n const checkQueryEntry = (val: string | null | undefined) => [null, undefined, ''].includes(val);\n\n const queryEntryIsEmpty = Array.isArray(value) ? value.every((val) => checkQueryEntry(val)) : checkQueryEntry(value);\n\n if (queryEntryIsEmpty) return queryMap;\n\n queryMap[slug] = value as string | (string | null)[];\n\n return queryMap;\n }, {});\n\n return query;\n};\n\nexport default (props: UseQueryFilterProps, context: SetupContext): UseQueryFilterReturn => {\n const { filters } = props;\n\n const router = useRouter(context);\n const route = useRoute(context);\n\n const filtersState = ref(createFiltersState(filters, route.value.query));\n\n const queryFilters = ref(createQueryFilters(filtersState.value));\n\n const setQueryFilters = (payload: Filters) => {\n filtersState.value = payload;\n };\n\n const updateQueryFilters = (payload: Filters) => {\n const newValue = { ...filtersState.value, ...payload };\n\n filtersState.value = newValue;\n };\n\n const setQueryFiltersViaFiltersState = debounce((payload: Filters) => {\n const newQueryFilters = createQueryFilters(payload);\n\n const oldValueIsEqualNewValue = isEqual(queryFilters.value, newQueryFilters);\n\n if (oldValueIsEqualNewValue) return;\n\n queryFilters.value = newQueryFilters;\n }, 30);\n\n const routeReplace = (payload: Query) => {\n const oldValueIsEqualNewValue = isEqual(route.value.query, payload);\n\n if (oldValueIsEqualNewValue) return;\n\n router.replace({ query: payload });\n };\n\n watch(route, () => {\n updateQueryFilters(route.value.query);\n });\n\n watch(filtersState, (newValue) => {\n setQueryFiltersViaFiltersState(newValue);\n });\n\n watch(queryFilters, (newValue) => {\n routeReplace(newValue);\n });\n\n return {\n queryFilters,\n setQueryFilters,\n updateQueryFilters,\n };\n};\n","import { inject, watch, ComputedRef, isRef } from '@vue/composition-api';\n\nimport { MetaInfo } from 'vue-meta';\n\nexport default (payload: MetaInfo | ComputedRef): void => {\n const changeMeta = inject<(payload: MetaInfo) => void>('changeMeta');\n\n if (!changeMeta) return;\n\n if (isRef(payload)) {\n watch((payload), (val) => {\n if (val) changeMeta(val);\n }, { immediate: true });\n } else {\n changeMeta(payload);\n }\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, provide, computed, watch, nextTick } from '@vue/composition-api';\n\nimport goTo from 'vuetify/es5/services/goto';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport ClientDetailsContent from '@/components/_newDesign/Clients/ClientDetails/ClientDetailsContent.vue';\n\nimport useQueryFilters from '@/composables/useQueryFilters';\nimport useMeta from '@/composables/meta/useMeta';\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport { useClientDetails } from '@/composables/client';\n\nexport default defineComponent({\n components: {\n AppView,\n ClientDetailsContent,\n },\n props: {\n clientId: { type: String, required: true },\n },\n setup(props, context) {\n const { clientId } = toRefs(props);\n\n const { queryFilters } = useQueryFilters({\n filters: {\n brandId: undefined,\n },\n }, context);\n\n provide('queryFilters', queryFilters);\n\n const {\n client,\n fetchClient,\n } = useClientDetails({ clientId });\n\n const {\n isLoading,\n updateIsLoading,\n } = useLayoutLoadingStatus();\n\n watch(isLoading, async (val) => {\n if (val) return;\n\n await nextTick();\n\n if (!queryFilters.value.brandId) return;\n\n goTo(`#brand-id-${queryFilters.value.brandId}`, { offset: 100 });\n });\n\n const title = computed(() => `Бренды и кампании ${client.value?.name}`);\n const clientMeta = computed(() => ({ title: client.value?.name || 'Клиент' }));\n\n const fetch = async () => {\n updateIsLoading(true);\n\n try {\n await fetchClient();\n } finally {\n updateIsLoading(false);\n }\n };\n\n useMeta(clientMeta);\n\n fetch();\n\n return {\n isLoading,\n title,\n client,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientDetails.vue?vue&type=template&id=95f9a220&\"\nimport script from \"./ClientDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-details-loader\"},[_c('v-skeleton-loader',{staticClass:\"campaign-details-loader__header\",attrs:{\"type\":\"heading\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetailsLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetailsLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClientDetailsLoader.vue?vue&type=template&id=f56c5500&scoped=true&\"\nimport script from \"./ClientDetailsLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./ClientDetailsLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ClientDetailsLoader.vue?vue&type=style&index=0&id=f56c5500&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f56c5500\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"clients-catalog-loader rounded-0\"},[(_vm.$route.name === 'client-catalog')?_c('v-card',{staticClass:\"clients-catalog-loader__card rounded-0\",attrs:{\"elevation\":\"0\"}},[_c('div',{staticClass:\"clients-catalog-loader__card-content\"},[_c('v-skeleton-loader',{staticClass:\"clients-catalog-loader__card-title\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('v-skeleton-loader',{staticClass:\"clients-catalog-loader__card-descr\",attrs:{\"type\":\"text\"}}),_vm._v(\" \"),_c('v-skeleton-loader',{staticClass:\"clients-catalog-loader__card-descr\",attrs:{\"type\":\"text\"}}),_vm._v(\" \"),_c('v-skeleton-loader',{staticClass:\"clients-catalog-loader__card-descr\",attrs:{\"type\":\"text\"}})],1)]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"clients-catalog-loader__content\"},[_c('ListLoader',{staticClass:\"clients-catalog-loader__list\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport ListLoader from '@/components/_newDesign/common/loaders/ListLoader.vue';\n\nexport default defineComponent({\n components: {\n ListLoader,\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientCatalogLoader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientCatalogLoader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientCatalogLoader.vue?vue&type=template&id=7e3a75e2&scoped=true&\"\nimport script from \"./ClientCatalogLoader.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientCatalogLoader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ClientCatalogLoader.vue?vue&type=style&index=0&id=7e3a75e2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e3a75e2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VCard,VSkeletonLoader})\n","import Clients from '@/views/Clients.vue';\n\nimport ClientCatalog from '@/views/Clients/ClientCatalog.vue';\nimport ClientDetails from '@/views/Clients/ClientDetails.vue';\n\nimport ClientDetailsLoader from '@/components/_newDesign/Clients/ClientDetailsLoader.vue';\nimport ClientCatalogLoader from '@/components/_newDesign/Clients/ClientCatalogLoader.vue';\n\nimport { AppRouteConfig } from '@/models/AppRouter';\n\nconst routeConfig: AppRouteConfig = {\n path: '/clients',\n component: Clients,\n children: [\n {\n name: 'client-catalog',\n path: '',\n component: ClientCatalog,\n meta: {\n title: 'Клиенты',\n loader: ClientCatalogLoader,\n },\n },\n {\n name: 'client-details',\n path: ':clientId',\n component: ClientDetails,\n meta: {\n title: 'Бренды и кампании',\n loader: ClientDetailsLoader,\n },\n props: true,\n },\n ],\n};\n\nexport default routeConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view',_vm._b({},'router-view',_vm.routerViewProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nexport default defineComponent({\n setup(props, context) {\n const route = useRoute(context);\n\n const routerViewProps = computed(() => ({\n key: route.value.params.campaignId,\n }));\n\n return {\n routerViewProps,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Campaigns.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Campaigns.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Campaigns.vue?vue&type=template&id=20677e5c&\"\nimport script from \"./Campaigns.vue?vue&type=script&lang=ts&\"\nexport * from \"./Campaigns.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[(!_vm.isLoading)?_c('CampaignDetailsHeader',{attrs:{\"campaign\":_vm.campaign}}):_vm._e()],1),_vm._v(\" \"),(!_vm.isLoading)?_c('CampaignDetailsContent',{attrs:{\"campaign\":_vm.campaign,\"campaign-categories\":_vm.campaignCategories}}):_vm._e(),_vm._v(\" \"),_c('CampaignDetailsCategoriesEditModal',_vm._b({model:{value:(_vm.modalsMap.categories.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.categories, \"value\", $$v)},expression:\"modalsMap.categories.value\"}},'CampaignDetailsCategoriesEditModal',_vm.modalsMap.categories.props,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-details-header d-flex align-center\"},[_c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}}),_vm._v(\" \"),(_vm.$acl.check('plan_edit'))?_c('v-btn',{staticClass:\"mr-8 ml-2 text-decoration-none\",attrs:{\"color\":\"primary\",\"to\":_vm.campaignEditorPath,\"small\":\"\",\"icon\":\"\"},nativeOn:{\"click\":function($event){return _vm.onCampaignEditorBtnClick.apply(null, arguments)}}},[_c('v-icon',{attrs:{\"size\":\"18\"}},[_vm._v(\"\\n mdi-cog\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.$acl.check('view_unapproved_campaigns'))?_c('div',{staticClass:\"d-flex align-center ml-auto\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"small\":\"\",\"rounded\":\"\",\"disabled\":!_vm.$acl.check('approve_campaigns')},on:{\"click\":_vm.toggleCampaignApprovedStatus}},[(_vm.toggleCampaignApprovedStatusIsLoading)?_c('v-progress-circular',{attrs:{\"width\":\"2\",\"size\":\"16\",\"indeterminate\":\"\"}}):_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n \"+_vm._s(_vm.campaignIsApproved ? 'mdi-eye' : 'mdi-eye-off-outline')+\"\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"ml-2 caption\"},[(_vm.$acl.check('approve_campaigns'))?[_vm._v(\"\\n \"+_vm._s(_vm.campaignIsApproved ? 'Скрыть кампанию от клиента' : 'Показать кампанию клиенту')+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.campaignIsApproved ? 'Кампания показана клиенту' : 'Кампания скрыта от клиента')+\"\\n \")]],2)],1),_vm._v(\" \"),_c('DTooltip',{attrs:{\"max-width\":\"290\",\"center\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-information-outline\\n \")])],1)]}}],null,false,3972132588)},[_vm._v(\" \"),_c('span',[(_vm.$acl.check('approve_campaigns'))?[_vm._v(\"\\n \"+_vm._s(_vm.campaignIsApproved ? 'Будут скрыты план и факт.' : 'Будет виден только план. Для показа факта по размещениям нужно каждое проверить и показать отдельно.')+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.campaignIsApproved ? 'Виден план. Для показа факта по размещениям нужно каждое проверить и показать отдельно.' : 'План и факт не видны')+\"\\n \")]],2)])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport {\n DBreadcrumbs,\n DTooltip,\n} from '@shared/druid-kit';\n\nimport { useCampaignApprovedStatus } from '@/composables/campaign';\n\nimport { Campaign } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n DTooltip,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { campaign } = toRefs(props);\n\n const {\n campaignIsApproved,\n toggleCampaignApprovedStatusIsLoading,\n toggleCampaignApprovedStatus,\n } = useCampaignApprovedStatus({ campaign, isDetails: true });\n\n const breadcrumbs = computed(() => [\n {\n label: campaign.value.brandName,\n path: `/clients/${campaign.value.clientId}/?brandId=${campaign.value.brandId}`,\n },\n {\n label: campaign.value.name,\n path: `/campaigns/${campaign.value.id}`,\n },\n ]);\n\n const campaignEditorPath = computed(() => `/campaigns/${campaign.value.id}/edit`);\n\n const onCampaignEditorBtnClick = () => {\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign',\n event_action: 'Click to Campaign Editor',\n event_label: campaign.value.id,\n d1d_client_id: campaign.value.clientId,\n d1d_client_name: campaign.value.clientName,\n d1d_brand_id: campaign.value.brandId,\n d1d_brand_name: campaign.value.brandName,\n d1d_campaign_id: campaign.value.id,\n d1d_campaign_name: campaign.value.name,\n });\n };\n\n return {\n campaignIsApproved,\n toggleCampaignApprovedStatusIsLoading,\n breadcrumbs,\n campaignEditorPath,\n toggleCampaignApprovedStatus,\n onCampaignEditorBtnClick,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetailsHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetailsHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignDetailsHeader.vue?vue&type=template&id=2a506415&\"\nimport script from \"./CampaignDetailsHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignDetailsHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-details-content\"},[_c('div',{staticClass:\"campaign-details-content__block campaign-details-content__block--white d-flex px-6 py-4 mb-4\"},[_c('CampaignMetrics',{staticClass:\"campaign-details-content__metrics flex-shrink-0\",attrs:{\"metrics-data\":_vm.campaign}}),_vm._v(\" \"),_c('div',{staticClass:\"d-flex flex-column flex-grow-1\"},[_c('div',{staticClass:\"d-flex\"},[_c('CampaignDateFilterBtn',{attrs:{\"campaign\":_vm.campaign}}),_vm._v(\" \"),_c('CampaignDownloadReportBtn',{attrs:{\"campaign\":_vm.campaign}})],1),_vm._v(\" \"),_c('CampaignChart',{staticClass:\"campaign-details-content__chart mt-auto\",attrs:{\"metrics\":_vm.campaign.metrics,\"visible-metric-names\":['Impressions', 'Clicks', 'CR']}})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-details-content__block mb-4\"},[_c('CampaignCategoriesTable',{attrs:{\"campaign\":_vm.campaign,\"campaign-categories\":_vm.campaignCategories}})],1),_vm._v(\" \"),(_vm.campaignLastUpdateDate)?_c('div',{staticClass:\"campaign-details-content__block d-flex justify-end px-6\"},[_c('div',{staticClass:\"caption grey--text text--darken-1\"},[_vm._v(\"\\n Обновлено \"+_vm._s(_vm.campaignLastUpdateDate)+\"\\n \")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-metrics\"},[_c('CampaignMetricsItem',{staticClass:\"campaign-metrics__item\",attrs:{\"percent\":_vm.periodMetricItem.percent},scopedSlots:_vm._u([{key:\"title-content\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.periodMetricItem.title)+\"\\n \")]},proxy:true},{key:\"subtitle-content\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.periodMetricItem.subtitle)+\"\\n \")]},proxy:true},{key:\"descr-content\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.periodMetricItem.descr)+\"\\n \")]},proxy:true}])}),_vm._v(\" \"),_c('div',{staticClass:\"campaign-metrics__wrapper\",class:{ 'campaign-metrics__wrapper--without-progress': !_vm.metricsWithProgress }},_vm._l((_vm.defaultMetricItems),function(metricItem,idx){return _c('CampaignMetricsItem',{key:idx,staticClass:\"campaign-metrics__item\",class:{ 'campaign-metrics__item--without-progress': !_vm.metricsWithProgress },attrs:{\"percent\":metricItem.percent,\"with-progress\":_vm.metricsWithProgress},scopedSlots:_vm._u([{key:\"title-content\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(metricItem.title)+\"\\n \")]},proxy:true},{key:\"subtitle-content\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(metricItem.subtitle)+\"\\n \")]},proxy:true},(_vm.metricsWithProgress)?{key:\"descr-content\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(metricItem.descr)+\"\\n \")]},proxy:true}:null],null,true)})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Plural forms for russian words\n * @param {Integer} count quantity for word\n * @param {Array} words Array of words. Example: ['депутат', 'депутата', 'депутатов'], ['коментарий', 'коментария', 'комментариев']\n * @return {String} Plural form for word\n */\nconst plural = (count: number, words: [string, string, string], options?: { withCount: boolean }): string => {\n count = Math.floor(Math.abs(count));\n\n const cases = [2, 0, 1, 1, 1, 2];\n\n const wordIdx = (count % 100 > 4 && count % 100 < 20) ? 2 : cases[Math.min(count % 10, 5)];\n\n const currentWord = `${words[wordIdx]}`;\n\n return options?.withCount ? `${count} ${currentWord}` : currentWord;\n};\n\nexport default plural;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-metrics-item\"},[_c('div',{staticClass:\"campaign-metrics-item__header d-flex\"},[_c('div',{staticClass:\"campaign-metrics-item__title caption\"},[_vm._t(\"title-content\")],2)]),_vm._v(\" \"),_c('div',{staticClass:\"py-1\"},[(_vm.withProgress)?_c('v-progress-linear',{attrs:{\"color\":\"primary darken-1\",\"height\":\"16\",\"value\":_vm.percent}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-metrics-item__footer d-flex justify-space-between\"},[_c('div',{staticClass:\"campaign-metrics-item__subtitle caption\"},[_vm._t(\"subtitle-content\")],2),_vm._v(\" \"),_c('div',{staticClass:\"px-4\"}),_vm._v(\" \"),_c('div',{staticClass:\"campaign-metrics-item__descr subtext grey--text text--darken-1\"},[_vm._t(\"descr-content\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n percent: { type: [String, Number], default: 0 },\n withProgress: { type: Boolean, default: true },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignMetricsItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignMetricsItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignMetricsItem.vue?vue&type=template&id=0b87a9c2&\"\nimport script from \"./CampaignMetricsItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignMetricsItem.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VProgressLinear})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, computed } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport numatter from '@/packages/numatter';\n\nimport plural from '@/utils/plural';\n\nimport CampaignMetricsItem from '@/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetricsItem.vue';\n\nimport { Campaign } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n CampaignMetricsItem,\n },\n props: {\n metricsData: { type: Object as PropType, required: true },\n metricsWithProgress: { type: Boolean, default: true },\n },\n setup(props) {\n const { metricsData, metricsWithProgress } = toRefs(props);\n\n const periodMetricItem = computed(() => {\n const {\n startDate,\n endDate,\n } = metricsData.value;\n\n const start = moment(startDate).startOf('day');\n const end = moment(endDate).endOf('day');\n const now = moment();\n\n const total = end.diff(start);\n const elapsed = now.diff(start);\n const remained = now.diff(end);\n\n const percent = total > elapsed ? (elapsed / total) * 100 : 100;\n\n const remainingDays = Math.floor(Math.abs(moment.duration(remained).asDays()));\n\n const formattedRemainingDays = percent < 100 ? `Еще ${remainingDays} ${plural(remainingDays, ['день', 'дня', 'дней'])}` : '';\n\n const formattedStartDate = moment.utc(startDate).format('DD.MM.YYYY');\n const formattedEndDate = moment.utc(endDate).format('DD.MM.YYYY');\n\n const formattedPeriod = `${formattedStartDate} – ${formattedEndDate}`;\n\n return {\n title: 'Период',\n subtitle: formattedRemainingDays,\n descr: formattedPeriod,\n percent,\n };\n });\n\n const defaultMetricItems = computed(() => {\n const metricNames = [\n 'Cost',\n 'Impressions',\n 'Clicks',\n ];\n\n const titles = {\n Cost: 'Cost без АК, без НДС',\n };\n\n return metricNames.map((metricName) => {\n const { metricsPlan, metricsTotal } = metricsData.value;\n\n const plan = metricsPlan?.[metricName] || 0;\n const fact = metricsTotal?.[metricName] || 0;\n\n let percent = 0;\n\n if (plan === 0 && fact === 0) {\n percent = 0;\n } else {\n percent = plan ? (fact / plan) * 100 : 100;\n }\n\n const formattedPlan = numatter.format(plan, { preset: metricName });\n const formattedFact = numatter.format(fact, { preset: metricName });\n\n return {\n title: titles[metricName] || metricName,\n subtitle: metricsWithProgress.value ? numatter.format(percent, { postfix: '%' }) : formattedFact,\n descr: `${formattedFact} из ${formattedPlan}`,\n percent,\n };\n });\n });\n\n return {\n periodMetricItem,\n defaultMetricItems,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignMetrics.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignMetrics.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignMetrics.vue?vue&type=template&id=128da76e&scoped=true&\"\nimport script from \"./CampaignMetrics.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignMetrics.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignMetrics.vue?vue&type=style&index=0&id=128da76e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"128da76e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-chart\"},[_c('div',{staticClass:\"campaign-chart__wrapper\"},[_c('canvas',{ref:\"chartCanvasEl\",staticClass:\"campaign-chart__canvas\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, shallowRef, onMounted, PropType } from '@vue/composition-api';\n\nimport lodash from 'lodash';\nimport moment from 'moment';\n\nimport {\n Chart,\n LineController,\n CategoryScale,\n LinearScale,\n LineElement,\n PointElement,\n TimeScale,\n Legend,\n Tooltip,\n} from 'chart.js';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\n\nimport 'chartjs-adapter-moment';\n\nimport numatter from '@/packages/numatter';\n\nimport hasOwnProperty from '@/utils/hasOwnProperty';\n\nChart.register({\n LineController,\n CategoryScale,\n LinearScale,\n LineElement,\n PointElement,\n TimeScale,\n Legend,\n Tooltip,\n ChartDataLabels,\n});\n\nexport default defineComponent({\n props: {\n metrics: { type: Array as PropType[]>, required: true },\n visibleMetricNames: { type: Array as PropType, required: true },\n },\n setup(props) {\n const { metrics, visibleMetricNames } = toRefs(props);\n\n const metricsParams = {\n Impressions: {\n color: '#5A00BD',\n format: '0,0[.]00 a',\n infoPosition: 'left',\n },\n Clicks: {\n color: '#4ED05D',\n format: '0,0[.]00 a',\n infoPosition: 'right',\n },\n CR: {\n color: '#307FFF',\n format: '0[.]00{%}',\n infoPosition: 'right',\n },\n };\n\n const chartInstance = shallowRef(null);\n\n const chartCanvasEl = ref(null);\n\n const createChart = () => {\n const chartCanvasElContext = chartCanvasEl.value?.getContext('2d');\n\n if (!chartCanvasElContext) return;\n\n chartInstance.value = new Chart(chartCanvasElContext, {\n type: 'line',\n data: {\n datasets: visibleMetricNames.value.map((name, idx) => ({\n label: name,\n yAxisID: `y${idx}`,\n data: [],\n fill: false,\n backgroundColor: metricsParams[name].color,\n pointBackgroundColor: '#FFFFFF',\n pointHoverBackgroundColor: metricsParams[name].color,\n borderColor: metricsParams[name].color,\n borderWidth: 2,\n })),\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n elements: {\n point: {\n radius: 5,\n hoverRadius: 5,\n backgroundColor: '#FFFFFF',\n borderWidth: 2,\n hoverBorderWidth: 4,\n },\n },\n scales: {\n x: {\n type: 'time',\n grid: {\n display: false,\n },\n time: {\n displayFormats: {\n day: 'DD MMM',\n },\n tooltipFormat: 'dddd, DD.MM.YYYY',\n minUnit: 'day',\n },\n ticks: {\n autoSkipPadding: 0,\n padding: 0,\n },\n },\n ...(visibleMetricNames.value.reduce((acc, name, idx) => {\n acc[`y${idx}`] = {\n type: 'linear',\n position: metricsParams[name].infoPosition,\n beginAtZero: true,\n title: {\n display: true,\n text: name,\n },\n ticks: {\n maxTicksLimit: 5,\n callback(value: string | number) {\n return numatter.format(value, metricsParams[name].format);\n },\n },\n };\n\n return acc;\n }, {})),\n },\n plugins: {\n legend: {\n display: true,\n },\n datalabels: {\n display: false,\n },\n tooltip: {\n enabled: false,\n intersect: true,\n mode: 'index',\n callbacks: {\n label(tooltipContext) {\n const formatedMetrics = visibleMetricNames.value.map((name) => ([name, metricsParams[name].format]));\n const [name, format] = formatedMetrics[tooltipContext.datasetIndex];\n\n if (!(tooltipContext.raw && typeof tooltipContext.raw === 'object' && hasOwnProperty(tooltipContext.raw, 'y') && typeof tooltipContext.raw.y === 'number')) return '';\n\n const value = numatter.format(tooltipContext.raw.y, format);\n\n return `${name}: ${value}`;\n },\n },\n external({ tooltip }) {\n if (!chartInstance.value) return;\n\n let tooltipEl = document.getElementById('campaign-chart__tooltip');\n\n if (!tooltipEl) {\n tooltipEl = document.createElement('div');\n\n tooltipEl.id = 'campaign-chart__tooltip';\n\n chartInstance.value.canvas.parentNode?.appendChild(tooltipEl);\n }\n\n if (tooltip.opacity === 0) {\n tooltipEl.style.opacity = '0';\n\n return;\n }\n\n tooltipEl.className = '';\n\n if (tooltip.yAlign) {\n tooltipEl.classList.add(tooltip.yAlign);\n }\n\n if (tooltip.xAlign) {\n tooltipEl.classList.add(tooltip.xAlign);\n }\n\n if (tooltip.body) {\n const titleLines = tooltip.title || [];\n const bodyLines = tooltip.body.map((bodyItem) => bodyItem.lines);\n\n const createHead = () => titleLines.map((title) => `
${title}
`).join('');\n\n const createBody = () => bodyLines.map((body, i) => {\n const colors = tooltip.labelColors[i];\n\n const style = `\n background: ${colors.borderColor};\n border-color: ${colors.borderColor};\n border-width: 2px;\n `;\n\n return `\n
\n
\n ${body}\n
\n `;\n }).join('');\n\n const innerHtml = `\n
\n
${createHead()}
\n
${createBody()}
\n
\n `;\n\n tooltipEl.innerHTML = innerHtml;\n }\n\n const positionY = chartInstance.value.canvas.offsetTop;\n const positionX = chartInstance.value.canvas.offsetLeft;\n\n let left = positionX + tooltip.caretX;\n\n switch (tooltip.xAlign.toLowerCase()) {\n case 'left':\n left = positionX + tooltip.caretX;\n\n break;\n case 'right':\n left = positionX + tooltip.caretX - tooltipEl.offsetWidth;\n\n break;\n case 'center':\n left = positionX + tooltip.caretX - tooltipEl.offsetWidth / 2;\n\n break;\n // no default\n }\n\n let top = positionY + tooltip.caretY;\n\n switch (tooltip.yAlign.toLowerCase()) {\n case 'top':\n top = positionY + tooltip.caretY;\n\n break;\n case 'bottom':\n top = positionY + tooltip.caretY - tooltipEl.offsetHeight;\n\n break;\n case 'center':\n top = positionY + tooltip.caretY - tooltipEl.offsetHeight / 2;\n\n break;\n // no default\n }\n\n tooltipEl.style.opacity = '1';\n tooltipEl.style.left = `${left}px`;\n tooltipEl.style.top = `${top}px`;\n },\n },\n },\n },\n });\n };\n\n const updateChart = () => {\n const currentChartInstance = chartInstance.value;\n\n if (!currentChartInstance) return;\n\n const dateMetricsList = lodash.sortBy(metrics.value, (metric) => metric.date);\n\n currentChartInstance.data.datasets.forEach((dataset, idx) => {\n currentChartInstance.data.datasets[idx].data.length = 0;\n });\n\n dateMetricsList.forEach((dateMetrics) => {\n const mDate = moment(dateMetrics.date).toDate();\n\n visibleMetricNames.value.forEach((metricName, idx) => {\n currentChartInstance.data.datasets[idx].data.push({\n x: mDate as unknown as number,\n y: dateMetrics.metrics[metricName] || 0,\n });\n });\n });\n\n currentChartInstance.update();\n };\n\n onMounted(() => {\n createChart();\n updateChart();\n });\n\n return {\n chartCanvasEl,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignChart.vue?vue&type=template&id=ae4229ac&scoped=true&\"\nimport script from \"./CampaignChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignChart.vue?vue&type=style&index=0&id=ae4229ac&lang=scss&scoped=true&\"\nimport style1 from \"./CampaignChart.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ae4229ac\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MetricsTable',{attrs:{\"headers\":_vm.headers,\"items\":_vm.campaignCategories,\"metric-cells\":_vm.metricCells,\"expanded\":_vm.expanded},on:{\"update:expanded\":[function($event){_vm.expanded=$event},_vm.updateExpanded]},scopedSlots:_vm._u([{key:\"header-name\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center\"},[_c('span',{staticClass:\"pl-2 text-h6 grey--text text--darken-1\"},[_vm._v(\"Размещения\")]),_vm._v(\" \"),(_vm.campaignCategories.length > 1)?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"color\":\"primary\",\"small\":\"\",\"icon\":\"\"},on:{\"click\":_vm.openCategoriesOrderModal}},[_c('v-icon',{attrs:{\"size\":\"18\"}},[_vm._v(\"\\n mdi-cog\\n \")])],1):_vm._e()],1)]},proxy:true},{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar isExpanded = ref.isExpanded;\nvar expand = ref.expand;\nreturn [_c('CampaignCategoriesTableRow',{staticClass:\"campaign-details-table__row\",attrs:{\"campaign\":_vm.campaign,\"campaign-category\":item,\"metric-cells\":_vm.metricCells,\"expanded\":isExpanded},on:{\"expand\":expand,\"open-modal\":_vm.openModal}})]}},{key:\"expanded-row\",fn:function(ref){\nvar item = ref.item;\nreturn _vm._l((item.placements),function(placement){return _c('CampaignPlacementsTableRow',{key:placement.id,staticClass:\"campaign-details-table__row\",class:{ 'campaign-details-table__row--matched': placement.danboId === _vm.$route.query.danboId },attrs:{\"id\":(\"placement-danbo-id-\" + (placement.danboId)),\"placement\":placement,\"metric-cells\":_vm.metricCells}})})}},{key:\"footer\",fn:function(){return [_c('CampaignCategoriesOrderModal',{attrs:{\"campaign-categories\":_vm.campaignCategories},model:{value:(_vm.modalsMap.categoriesOrder.isShown),callback:function ($$v) {_vm.$set(_vm.modalsMap.categoriesOrder, \"isShown\", $$v)},expression:\"modalsMap.categoriesOrder.isShown\"}}),_vm._v(\" \"),(_vm.modalsMap.placementsOrder.isShown)?_c('CampaignPlacementsOrderModal',_vm._b({model:{value:(_vm.modalsMap.placementsOrder.isShown),callback:function ($$v) {_vm.$set(_vm.modalsMap.placementsOrder, \"isShown\", $$v)},expression:\"modalsMap.placementsOrder.isShown\"}},'CampaignPlacementsOrderModal',_vm.modalsMap.placementsOrder.props,false)):_vm._e()]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MetricsTableRow',{staticClass:\"campaign-categories-table-row\",attrs:{\"metric-cells\":_vm.metricCells,\"metrics-total\":_vm.campaignCategory.metricsTotal,\"metrics-plan\":_vm.campaignCategory.metricsPlan},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('DTableCell',{staticClass:\"campaign-categories-table-row__cell campaign-categories-table-row__cell--link\",attrs:{\"colspan\":_vm.$acl.check('markups_edit') ? 4 : 3},on:{\"click\":_vm.onFirstCellClick}},[_c('div',{staticClass:\"d-flex py-2\"},[_c('v-icon',{staticClass:\"campaign-categories-table-row__icon campaign-categories-table-row__icon--expanded align-self-start mt-1 mr-1\",class:{ 'campaign-categories-table-row__icon--rotate-90': _vm.expanded },attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-chevron-right\\n \")]),_vm._v(\" \"),_c('div',[_c('div',{staticClass:\"campaign-categories-table-row__title d-flex align-center\"},[_c('router-link',{staticClass:\"campaign-categories-table-row__name text-h6\",attrs:{\"to\":_vm.categoryPath}},[_vm._v(\"\\n \"+_vm._s(_vm.campaignCategory.name)+\"\\n \")]),_vm._v(\" \"),(_vm.expanded && _vm.campaignCategory.placements.length > 1)?_c('v-btn',{staticClass:\"ml-1\",attrs:{\"color\":\"primary\",\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.openCategoryPlacementsOrderModal.apply(null, arguments)}}},[_c('v-icon',{attrs:{\"size\":\"18\"}},[_vm._v(\"\\n mdi-cog\\n \")])],1):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"caption grey--text text--darken-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.activePlacementsCount ? (_vm.activePlacementsCount + \" из \" + (_vm.campaignCategory.placements.length) + \" активно\") : 'Нет активных')+\"\\n \")])])],1)])]},proxy:true},{key:\"append\",fn:function(){return [_c('DTableCellSpacer')]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableCellSpacer,\n} from '@shared/druid-kit';\n\nimport MetricsTableRow from '@/components/_newDesign/common/MetricsTable/MetricsTableRow.vue';\n\nimport { Campaign, CampaignCategory } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableCellSpacer,\n MetricsTableRow,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n campaignCategory: { type: Object as PropType, required: true },\n metricCells: { type: Array as PropType<{ metric: { name: string }; planInsteadProgress: boolean; onlyFact: boolean }[]>, default: () => [] },\n expanded: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n campaign,\n campaignCategory,\n expanded,\n } = toRefs(props);\n\n const activePlacements = computed(() => campaignCategory.value.placements.filter((placement) => placement.state.code !== 'finished'));\n\n const activePlacementsCount = computed(() => activePlacements.value.length);\n\n const categoryPath = computed(() => `/campaigns/${campaign.value.id}/category/${campaignCategory.value.id}`);\n\n const openCategoryPlacementsOrderModal = () => {\n context.emit('open-modal', { slug: 'placementsOrder', props: { campaignCategory: campaignCategory.value } });\n };\n\n const onFirstCellClick = () => {\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign',\n event_action: 'Unroll service type',\n event_label: campaignCategory.value.name,\n campaign_id: campaign.value.id,\n d1d_client_id: campaign.value.clientId,\n d1d_client_name: campaign.value.clientName,\n d1d_brand_id: campaign.value.brandId,\n d1d_brand_name: campaign.value.brandName,\n d1d_campaign_id: campaign.value.id,\n d1d_campaign_name: campaign.value.name,\n });\n\n context.emit('expand', !expanded.value);\n };\n\n return {\n activePlacementsCount,\n categoryPath,\n openCategoryPlacementsOrderModal,\n onFirstCellClick,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoriesTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoriesTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignCategoriesTableRow.vue?vue&type=template&id=4694b876&scoped=true&\"\nimport script from \"./CampaignCategoriesTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignCategoriesTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignCategoriesTableRow.vue?vue&type=style&index=0&id=4694b876&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4694b876\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MetricsTableRow',{attrs:{\"metrics-total\":_vm.placement.metricsTotal,\"metrics-plan\":_vm.placement.metricsPlan,\"metric-cells\":_vm.metricCells},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('InfoCell',{attrs:{\"placement\":_vm.placement}}),_vm._v(\" \"),(_vm.$acl.check('markups_edit'))?_c('MarkupCell',{attrs:{\"placement\":_vm.placement}}):_vm._e(),_vm._v(\" \"),_c('TargetingCell',{attrs:{\"comment\":_vm.placement.comment}}),_vm._v(\" \"),_c('TypeCell',{attrs:{\"type\":_vm.placement.placementType}})]},proxy:true},{key:\"append\",fn:function(){return [_c('DTableCellSpacer')]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableCell',{staticClass:\"info-cell pr-0\",attrs:{\"to\":_vm.placementPath}},[_c('div',{staticClass:\"d-flex py-2\"},[_c('DTooltip',{attrs:{\"center\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"flex-shrink-0 align-self-start mt-1 mr-3\",attrs:{\"size\":\"16\"},domProps:{\"textContent\":_vm._s(_vm.placementStatus.icon)}},'v-icon',attrs,false),on))]}}])},[_vm._v(\" \"),_c('span',{domProps:{\"textContent\":_vm._s(_vm.placementStatus.text)}})]),_vm._v(\" \"),_c('DTooltip',{attrs:{\"max-width\":\"380\",\"bottom\":\"\",\"interactive\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({staticClass:\"flex-grow-1 text-truncate\"},'div',attrs,false),on),[_c('div',{staticClass:\"info-cell__title\"},[_c('span',{staticClass:\"info-cell__site-name subtitle-2\",class:{\n 'info-cell__site-name--link': _vm.userCanViewSubDanboiIds,\n },domProps:{\"textContent\":_vm._s(_vm.placement.siteName)}}),_vm._v(\" \"),_c('span',{staticClass:\"info-cell__danbo-id body-2 grey--text text--darken-1\",domProps:{\"textContent\":_vm._s(_vm.placement.danboId)}})]),_vm._v(\" \"),_c('div',{staticClass:\"caption grey--text text--darken-3 text-truncate\"},[_vm._v(\"\\n \"+_vm._s(_vm.placementInfo)+\"\\n \")])])]}}])},[_vm._v(\" \"),_c('div',[(_vm.placement.metricsDataProviders.length)?_c('div',{staticClass:\"mb-2\"},[_c('div',[_vm._v(\"\\n Источники данных:\\n \")]),_vm._v(\" \"),_vm._l((_vm.placement.metricsDataProviders),function(metricDataProvider){return _c('div',{key:metricDataProvider,domProps:{\"textContent\":_vm._s(metricDataProvider)}})})],2):_vm._e(),_vm._v(\" \"),_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.placementInfo)+\"\\n \")])])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTooltip,\n} from '@shared/druid-kit';\n\nimport { Placement } from '@/models/Placement';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTooltip,\n },\n props: {\n placement: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { placement } = toRefs(props);\n\n const userCanViewSubDanboiIds = computed(() => Vue.acl.check('view_sub_danboids'));\n\n const placementStatus = computed(() => {\n const textMap = {\n running: 'Идет',\n paused: 'На паузе',\n finished: 'Завершено',\n };\n\n const iconsMap = {\n running: '$d1-play',\n paused: 'mdi-timer-sand',\n finished: 'mdi-check',\n };\n\n const text = textMap[placement.value.state.code];\n const icon = iconsMap[placement.value.state.code];\n\n return {\n text,\n icon,\n };\n });\n\n const placementPath = computed(() => (userCanViewSubDanboiIds.value ? `/campaigns/${placement.value.campaignId}/placements/${placement.value.danboId}` : ''));\n const placementInfo = computed(() => `${placement.value.section} ${placement.value.adPlace ? '/' : ''} ${placement.value.adPlace}`);\n\n return {\n userCanViewSubDanboiIds,\n placementStatus,\n placementPath,\n placementInfo,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InfoCell.vue?vue&type=template&id=e7c65994&scoped=true&\"\nimport script from \"./InfoCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./InfoCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InfoCell.vue?vue&type=style&index=0&id=e7c65994&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e7c65994\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableCell',{staticClass:\"markup-cell\"},[(_vm.placement.hasMarkup || _vm.placement.canSetupMarkup)?_c('DTooltip',{attrs:{\"max-width\":\"116\",\"center\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"markup-cell__btn\",class:{\n 'markup-cell__btn--active': _vm.placement.hasMarkup,\n },attrs:{\"to\":(\"/markups/placement/\" + (_vm.placement.id)),\"small\":\"\",\"icon\":\"\"},nativeOn:{\"click\":function($event){return _vm.onClick.apply(null, arguments)}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"size\":\"18\"}},[_vm._v(\"\\n $d1-sell\\n \")])],1)]}}],null,false,2859423906)},[_vm._v(\" \"),_c('span',{staticClass:\"caption\"},[_vm._v(_vm._s(_vm.placement.hasMarkup ? 'Есть наценка' : 'Нет наценки'))])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, PropType, computed, toRefs } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTooltip,\n} from '@shared/druid-kit';\n\nimport { Placement } from '@/models/Placement';\n\nimport { useCampaignStore } from '@/store/campaign';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTooltip,\n },\n props: {\n placement: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n placement,\n } = toRefs(props);\n\n const campaignStore = useCampaignStore();\n\n const campaign = computed(() => campaignStore.getters.campaign);\n\n const onClick = () => {\n if (!campaign.value || placement.value.hasMarkup) return;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign',\n event_action: 'Click to Add Markup',\n event_label: placement.value.danboId,\n d1d_client_id: campaign.value.clientId,\n d1d_client_name: campaign.value.clientName,\n d1d_brand_id: campaign.value.brandId,\n d1d_brand_name: campaign.value.brandName,\n d1d_campaign_id: campaign.value.id,\n d1d_campaign_name: campaign.value.name,\n d1d_danbo_id: placement.value.danboId,\n });\n };\n\n return {\n onClick,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupCell.vue?vue&type=template&id=ded407f4&scoped=true&\"\nimport script from \"./MarkupCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MarkupCell.vue?vue&type=style&index=0&id=ded407f4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ded407f4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableCell',{staticClass:\"targeting-cell\"},[_c('DTooltip',{attrs:{\"max-width\":\"290\",\"center\":\"\",\"bottom\":\"\",\"interactive\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"size\":\"18\"}},[_vm._v(\"\\n mdi-crosshairs-gps\\n \")])],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.comment || 'Комментарий отсутствует'))])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTooltip,\n} from '@shared/druid-kit';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTooltip,\n },\n props: {\n comment: { type: String, default: '' },\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TargetingCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TargetingCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TargetingCell.vue?vue&type=template&id=d508a794&scoped=true&\"\nimport script from \"./TargetingCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./TargetingCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TargetingCell.vue?vue&type=style&index=0&id=d508a794&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d508a794\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableCell',{staticClass:\"type-cell pr-0\"},[_c('div',{staticClass:\"py-2 text-truncate\"},[_c('span',{staticClass:\"body-2\",domProps:{\"textContent\":_vm._s(_vm.type)}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport { DTableCell } from '@shared/druid-kit';\n\nexport default defineComponent({\n components: {\n DTableCell,\n },\n props: {\n type: { type: String, default: '' },\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TypeCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TypeCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TypeCell.vue?vue&type=template&id=7c91d25c&\"\nimport script from \"./TypeCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./TypeCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TypeCell.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport { DTableCellSpacer } from '@shared/druid-kit';\n\nimport MetricsTableRow, { MetricCell } from '@/components/_newDesign/common/MetricsTable/MetricsTableRow.vue';\n\nimport InfoCell from '@/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/InfoCell.vue';\nimport MarkupCell from '@/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/MarkupCell.vue';\nimport TargetingCell from '@/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TargetingCell.vue';\nimport TypeCell from '@/components/_newDesign/Campaigns/CampaignPlacementsTable/cells/TypeCell.vue';\n\nimport { Placement } from '@/models/Placement';\n\nexport default defineComponent({\n components: {\n DTableCellSpacer,\n MetricsTableRow,\n InfoCell,\n MarkupCell,\n TargetingCell,\n TypeCell,\n },\n props: {\n placement: { type: Object as PropType, required: true },\n metricCells: { type: Array as PropType, default: () => [] },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementsTableRow.vue?vue&type=template&id=663f1cd3&\"\nimport script from \"./CampaignPlacementsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementsTableRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"campaign-categories-order-modal\",attrs:{\"width\":\"472\",\"title\":\"Порядок категорий\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main-content\",fn:function(){return [_c('VueDraggable',{staticClass:\"mb-2\",attrs:{\"ghost-class\":\"elevation-4\"},model:{value:(_vm.categories),callback:function ($$v) {_vm.categories=$$v},expression:\"categories\"}},_vm._l((_vm.categories),function(category){return _c('v-card',{key:category.id,staticClass:\"campaign-categories-order-modal__drag-item py-2 px-3\"},[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-drag-horizontal-variant\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"body-1\",domProps:{\"textContent\":_vm._s(category.name)}})],1)}),1),_vm._v(\" \"),_c('div',{staticClass:\"caption grey--text text--darken-1\"},[_vm._v(\"\\n Для изменения порядка категорий перетащите их мышью.\\n \")])]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary-gradient\",\"loading\":_vm.isLoading,\"rounded\":\"\"},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',_vm._g(_vm._b({staticClass:\"app-modal\",attrs:{\"retain-focus\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function(props){return [_vm._t(\"activator\",null,null,props)]}}],null,true)},'v-dialog',_vm.$attrs,false),_vm.$listeners),[_vm._v(\" \"),_c('v-card',[_vm._t(\"default\",function(){return [_vm._t(\"header\",function(){return [_c('div',{staticClass:\"app-modal__header\"},[_c('div',{staticClass:\"app-modal__header-content\"},[_vm._t(\"header-content\",function(){return [(_vm.title)?_c('div',{staticClass:\"text-h5\",domProps:{\"textContent\":_vm._s(_vm.title)}}):_vm._e()]},null,_vm.slotProps)],2),_vm._v(\" \"),_c('div',{staticClass:\"app-modal__header-actions\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])]},null,_vm.slotProps),_vm._v(\" \"),_vm._t(\"main\",function(){return [_c('div',{staticClass:\"app-modal__main\"},[_vm._t(\"main-content\",null,null,_vm.slotProps)],2)]},null,_vm.slotProps),_vm._v(\" \"),_vm._t(\"footer\",function(){return [_c('div',{staticClass:\"app-modal__footer\"},[_vm._t(\"footer-content\",null,null,_vm.slotProps)],2)]},null,_vm.slotProps)]},null,_vm.slotProps)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n title: { type: String, default: '' },\n },\n setup(props, context) {\n const close = () => {\n context.emit('input', false);\n };\n\n const slotProps = computed(() => ({\n close,\n }));\n\n return {\n slotProps,\n close,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppModal.vue?vue&type=template&id=291d1afc&scoped=true&\"\nimport script from \"./AppModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppModal.vue?vue&type=style&index=0&id=291d1afc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"291d1afc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VCard,VDialog,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, PropType, watch, computed } from '@vue/composition-api';\n\nimport VueDraggable from 'vuedraggable';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { CampaignCategory } from '@/models/Campaign';\n\nimport { useCampaignStore } from '@/store/campaign';\n\nexport default defineComponent({\n components: {\n VueDraggable,\n AppModal,\n },\n props: {\n value: { type: Boolean, default: false },\n campaignCategories: { type: Array as PropType, default: () => [] },\n },\n setup(props, context) {\n const {\n value,\n campaignCategories,\n } = toRefs(props);\n\n const campaignStore = useCampaignStore();\n\n const isLoading = ref(false);\n\n const categories = ref([]);\n\n const categoriesOrderHasBeenChanged = computed(() => !categories.value.some((category, idx) => {\n const currentCampaignCategory = campaignCategories.value[idx];\n\n return category.id !== currentCampaignCategory?.id;\n }));\n\n watch(value, () => {\n categories.value = campaignCategories.value;\n });\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (isLoading.value) return;\n\n if (categoriesOrderHasBeenChanged.value) return close();\n\n isLoading.value = true;\n\n await campaignStore.dispatch('UPDATE_CAMPAIGN_CATEGORIES_ORDER', categories.value);\n\n isLoading.value = false;\n\n close();\n };\n\n return {\n isLoading,\n categories,\n categoriesOrderHasBeenChanged,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoriesOrderModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoriesOrderModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignCategoriesOrderModal.vue?vue&type=template&id=e227e8a8&scoped=true&\"\nimport script from \"./CampaignCategoriesOrderModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignCategoriesOrderModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignCategoriesOrderModal.vue?vue&type=style&index=0&id=e227e8a8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e227e8a8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VCard,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"campaign-placements-order-modal\",attrs:{\"width\":\"472\",\"title\":\"Порядок размещений\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main-content\",fn:function(){return [_c('VueDraggable',{staticClass:\"mb-2\",attrs:{\"ghost-class\":\"elevation-4\"},model:{value:(_vm.placements),callback:function ($$v) {_vm.placements=$$v},expression:\"placements\"}},_vm._l((_vm.placements),function(placement){return _c('v-card',{key:placement.id,staticClass:\"campaign-placements-order-modal__drag-item py-2 px-3\"},[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-drag-horizontal-variant\\n \")]),_vm._v(\" \"),_c('div',[_c('span',{staticClass:\"body-1\",domProps:{\"textContent\":_vm._s(placement.siteName)}}),_vm._v(\" \"),_c('span',{staticClass:\"body-2 grey--text text--darken-1\",domProps:{\"textContent\":_vm._s(placement.danboId)}})])],1)}),1),_vm._v(\" \"),_c('div',{staticClass:\"caption grey--text text--darken-1\"},[_vm._v(\"\\n Для изменения порядка размещений перетащите их мышью.\\n \")])]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary-gradient\",\"loading\":_vm.isLoading,\"rounded\":\"\"},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, PropType, watch, computed } from '@vue/composition-api';\n\nimport VueDraggable from 'vuedraggable';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { Placement } from '@/models/Placement';\nimport { CampaignCategory } from '@/models/Campaign';\n\nimport { useCampaignStore } from '@/store/campaign';\n\nexport default defineComponent({\n components: {\n VueDraggable,\n AppModal,\n },\n props: {\n value: { type: Boolean, default: false },\n campaignCategory: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const {\n value,\n campaignCategory,\n } = toRefs(props);\n\n const campaignStore = useCampaignStore();\n\n const isLoading = ref(false);\n\n const placements = ref([]);\n\n const placementsOrderHasBeenChanged = computed(() => !placements.value.some((placement, idx) => {\n const currentCampaignPlacement = campaignCategory.value.placements[idx];\n\n return placement.id !== currentCampaignPlacement?.id;\n }));\n\n watch(value, () => {\n placements.value = campaignCategory.value.placements;\n }, { immediate: true });\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (isLoading.value) return;\n\n if (placementsOrderHasBeenChanged.value) return close();\n\n isLoading.value = true;\n\n await campaignStore.dispatch('UPDATE_CAMPAIGN_PLACEMENTS_ORDER', {\n ...campaignCategory.value,\n placements: placements.value,\n });\n\n isLoading.value = false;\n\n close();\n };\n\n return {\n isLoading,\n placements,\n placementsOrderHasBeenChanged,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsOrderModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsOrderModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementsOrderModal.vue?vue&type=template&id=116acacc&scoped=true&\"\nimport script from \"./CampaignPlacementsOrderModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementsOrderModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignPlacementsOrderModal.vue?vue&type=style&index=0&id=116acacc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"116acacc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VCard,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\n\nimport { defineComponent, ref, computed, PropType, toRefs, onMounted, watch, nextTick } from '@vue/composition-api';\n\nimport goTo from 'vuetify/es5/services/goto';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport MetricsTable from '@/components/_newDesign/common/MetricsTable/MetricsTable.vue';\n\nimport CampaignCategoriesTableRow from '@/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTableRow.vue';\nimport CampaignPlacementsTableRow from '@/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTableRow.vue';\n\nimport CampaignCategoriesOrderModal from '@/components/_newDesign/Campaigns/modals/CampaignCategoriesOrderModal.vue';\nimport CampaignPlacementsOrderModal from '@/components/_newDesign/Campaigns/modals/CampaignPlacementsOrderModal.vue';\n\nimport { Campaign, CampaignCategory } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n MetricsTable,\n CampaignCategoriesTableRow,\n CampaignPlacementsTableRow,\n CampaignCategoriesOrderModal,\n CampaignPlacementsOrderModal,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n campaignCategories: { type: Array as PropType, default: () => [] },\n },\n setup(props, context) {\n const route = useRoute(context);\n const expanded = ref([]);\n\n const { campaignCategories } = toRefs(props);\n\n const categoryIdx = computed(() => campaignCategories.value\n .findIndex(({ placements }) => placements.some(({ danboId }) => danboId === route.value.query.danboId)));\n\n const metricCells = [\n {\n metric: {\n name: 'Cost',\n },\n },\n {\n metric: {\n name: 'Impressions',\n },\n },\n {\n metric: {\n name: 'Clicks',\n },\n },\n {\n metric: {\n name: 'CTR',\n },\n planInsteadProgress: true,\n },\n {\n metric: {\n name: 'CR',\n },\n onlyFact: true,\n },\n ].map((metricCell) => ({\n ...metricCell,\n total: true,\n progressProps: {\n color: 'primary darken-1',\n },\n }));\n\n const headers = computed(() => [\n {\n class: '',\n text: '',\n value: 'name',\n sortable: false,\n },\n ...(Vue.acl.check('markups_edit') ? [\n {\n text: '',\n value: '',\n sortable: false,\n },\n ] : []),\n {\n text: '',\n value: '',\n sortable: false,\n },\n {\n text: '',\n value: '',\n sortable: false,\n },\n ...metricCells.map((metricCell) => ({\n class: 'caption',\n text: metricCell.metric.name,\n value: `metricsTotal.${metricCell.metric.name}`,\n sortable: false,\n })),\n ]);\n\n const modalSlugs = [\n 'categoriesOrder',\n 'placementsOrder',\n ] as const;\n\n type ModalSlug = typeof modalSlugs[number];\n\n const modalsMap = ref }>>({\n categoriesOrder: {\n isShown: false,\n },\n placementsOrder: {\n isShown: false,\n },\n });\n\n const openModal = (payload: { slug: ModalSlug, props?: Record }) => {\n modalsMap.value[payload.slug].props = payload.props;\n modalsMap.value[payload.slug].isShown = true;\n };\n\n const openCategoriesOrderModal = () => {\n openModal({ slug: 'categoriesOrder' });\n };\n\n const updateExpanded = (val: unknown[]) => {\n expanded.value = val;\n };\n\n const scrollToPlacement = async () => {\n if (!route.value.query.danboId || !expanded.value.length) return;\n\n await nextTick();\n\n goTo(`#placement-danbo-id-${route.value.query.danboId}`);\n };\n\n watch(campaignCategories, (val) => {\n if (categoryIdx.value !== -1) {\n expanded.value = [val[categoryIdx.value]];\n } else {\n expanded.value = val.length === 1 ? [val[0]] : expanded.value;\n }\n }, { immediate: true });\n\n onMounted(() => {\n scrollToPlacement();\n });\n\n return {\n updateExpanded,\n expanded,\n metricCells,\n headers,\n modalsMap,\n openModal,\n openCategoriesOrderModal,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoriesTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoriesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignCategoriesTable.vue?vue&type=template&id=3a36f46d&scoped=true&\"\nimport script from \"./CampaignCategoriesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignCategoriesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignCategoriesTable.vue?vue&type=style&index=0&id=3a36f46d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a36f46d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DDatePeriodPickerInline',{attrs:{\"presets\":_vm.presets,\"custom-presets\":_vm.customPresets,\"default-label\":\"Данные за всю кампанию\",\"btn-class\":\"ml-auto mr-6\"},model:{value:(_vm.campaignFilters),callback:function ($$v) {_vm.campaignFilters=$$v},expression:\"campaignFilters\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, inject, ref, computed, PropType, Ref } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DDatePeriodPickerInline } from '@shared/druid-kit';\n\nimport { Campaign } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DDatePeriodPickerInline,\n },\n props: {\n btnClass: { type: String, default: '' },\n campaign: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { campaign } = toRefs(props);\n\n const queryFilters = inject>('queryFilters', ref({}));\n const updateQueryFilters = inject<(value: { [key: string]: string }) => void>('updateQueryFilters');\n\n const campaignStartDate = computed(() => moment(campaign.value.startDate).format('YYYY-MM-DD'));\n const campaignEndDate = computed(() => moment(campaign.value.endDate).format('YYYY-MM-DD'));\n\n const campaignFilters = computed({\n get() {\n return {\n from: queryFilters.value?.from || campaignStartDate.value,\n to: queryFilters.value?.to || campaignEndDate.value,\n };\n },\n set(val: { [key: string]: string }) {\n if (updateQueryFilters) updateQueryFilters(val);\n },\n });\n\n const yesterday = moment().add(-1, 'days').startOf('day').format('YYYY-MM-DD');\n\n const presets = ['yesterday', 'last-7-days', 'last-30-days', 'last-week', 'last-month'];\n\n const customPresets = computed(() => [\n {\n label: 'За всю кампанию',\n icon: 'mdi-calendar-week',\n value: {\n from: '',\n to: '',\n },\n },\n {\n label: 'С начала по вчера',\n icon: 'mdi-calendar-week',\n value: {\n from: campaignStartDate.value,\n to: yesterday,\n },\n },\n ]);\n\n return {\n presets,\n customPresets,\n campaignFilters,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDateFilterBtn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDateFilterBtn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignDateFilterBtn.vue?vue&type=template&id=035fd2e2&scoped=true&\"\nimport script from \"./CampaignDateFilterBtn.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignDateFilterBtn.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignDateFilterBtn.vue?vue&type=style&index=0&id=035fd2e2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"035fd2e2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.reports.length)?_c('v-menu',{staticClass:\"campaign-download-report-btn\",attrs:{\"nudge-bottom\":\"8\",\"offset-y\":\"\",\"tile\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('DBtnInline',_vm._g(_vm._b({scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-download\\n \")])]},proxy:true}],null,true)},'DBtnInline',attrs,false),on),[_vm._v(\" \"),_c('span',{staticClass:\"body-2\"},[_vm._v(\"Скачать отчет\")])])]}}],null,false,927684741)},[_vm._v(\" \"),_c('v-list',_vm._l((_vm.reports),function(report){return _c('v-list-item',{key:report.slug,on:{\"click\":function($event){return _vm.selectReport(report)}}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"body-2\",domProps:{\"textContent\":_vm._s(report.label)}})],1)],1)}),1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AxiosResponse } from 'axios';\n\nimport { httpClient } from '@/api';\n\ntype DownloadFileOptions = {\n url: string;\n name?: string;\n params?: Record;\n} | {\n name?: string;\n fetcher: () => AxiosResponse;\n};\n\nconst downloadFile = async (options: DownloadFileOptions): Promise => {\n const fetcher = 'fetcher' in options ? options.fetcher : () => httpClient.get(options.url, {\n responseType: 'blob',\n params: options.params,\n });\n\n const res = await fetcher();\n\n const fileUrl = window.URL.createObjectURL(new Blob([res.data]));\n const fileLink = document.createElement('a');\n\n const fileName = options.name || res.headers['content-disposition'].split('filename=')[1].split(';')[0].replace(/\"/g, '');\n\n fileLink.href = fileUrl;\n fileLink.setAttribute('download', fileName);\n\n document.body.appendChild(fileLink);\n\n fileLink.click();\n fileLink.remove();\n\n window.URL.revokeObjectURL(fileUrl);\n};\n\nexport default downloadFile;\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, toRefs, computed, PropType, inject, ref, Ref } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport downloadFile from '@/utils/downloadFile';\n\nimport { Campaign } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { campaign } = toRefs(props);\n\n const reports = computed(() => {\n const list = [\n {\n slug: 'clientPlacementReportByPeriod',\n label: 'план-факт',\n permissions: 'get_client_placement_report_by_period',\n gtm: {\n eventLabel: 'Period',\n },\n },\n {\n slug: 'generalReport',\n label: 'за период',\n permissions: 'get_campaign_report_by_period',\n gtm: {\n eventLabel: 'Client Period',\n },\n },\n {\n slug: 'report',\n label: 'по дням',\n permissions: 'get_campaign_report',\n gtm: {\n eventLabel: 'Daily',\n },\n },\n {\n slug: 'amnetCampaignReport',\n label: 'Amnet',\n permissions: 'get_amnet_campaign_report',\n gtm: {\n eventLabel: 'AmnetCampaignReport',\n },\n },\n ];\n\n return list.filter((report) => Vue.acl.check(report.permissions));\n });\n\n const createReportPath = (reportSlug: string) => `/api/campaigns/${campaign.value.id}/${reportSlug}`;\n\n const queryFilters = inject>('queryFilters', ref({}));\n\n const downloadReport = async (report: typeof reports.value[number]) => {\n const path = createReportPath(report.slug);\n\n const params = {\n periodFrom: queryFilters.value.from || moment(campaign.value.startDate).format('YYYY-MM-DD'),\n periodTo: queryFilters.value.to || moment(campaign.value.endDate).format('YYYY-MM-DD'),\n };\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign',\n event_action: 'Download Report',\n event_label: report.gtm.eventLabel,\n d1d_client_id: campaign.value.clientId,\n d1d_client_name: campaign.value.clientName,\n d1d_brand_id: campaign.value.brandId,\n d1d_brand_name: campaign.value.brandName,\n d1d_campaign_id: campaign.value.id,\n d1d_campaign_name: campaign.value.name,\n });\n\n await downloadFile({ url: path, params });\n };\n\n const selectReport = (report: typeof reports.value[number]) => {\n downloadReport(report);\n };\n\n return {\n reports,\n selectReport,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDownloadReportBtn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDownloadReportBtn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignDownloadReportBtn.vue?vue&type=template&id=0150a66e&\"\nimport script from \"./CampaignDownloadReportBtn.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignDownloadReportBtn.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VIcon,VList,VListItem,VListItemContent,VListItemTitle,VMenu})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, PropType } from '@vue/composition-api';\n\nimport CampaignMetrics from '@/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetrics.vue';\nimport CampaignChart from '@/components/_newDesign/Campaigns/CampaignChart.vue';\nimport CampaignCategoriesTable from '@/components/_newDesign/Campaigns/CampaignCategoriesTable/CampaignCategoriesTable.vue';\n\nimport CampaignDateFilterBtn from '@/components/_newDesign/Campaigns/buttons/CampaignDateFilterBtn.vue';\nimport CampaignDownloadReportBtn from '@/components/_newDesign/Campaigns/buttons/CampaignDownloadReportBtn.vue';\n\nimport { Campaign, CampaignCategory } from '@/models/Campaign';\n\nimport { useCampaignStore } from '@/store/campaign';\n\nexport default defineComponent({\n components: {\n CampaignMetrics,\n CampaignChart,\n CampaignCategoriesTable,\n CampaignDateFilterBtn,\n CampaignDownloadReportBtn,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n campaignCategories: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const campaignStore = useCampaignStore();\n\n const campaignLastUpdateDate = computed(() => campaignStore.getters.campaignLastUpdateDate);\n\n return {\n campaignLastUpdateDate,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetailsContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetailsContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignDetailsContent.vue?vue&type=template&id=916256ce&scoped=true&\"\nimport script from \"./CampaignDetailsContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignDetailsContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignDetailsContent.vue?vue&type=style&index=0&id=916256ce&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"916256ce\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({attrs:{\"max-width\":\"730\",\"title\":\"Выбор категории\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('CampaignDetailsCategoriesEditForm',{ref:\"campaignDetailsCategoriesEditFormRef\",attrs:{\"valid\":_vm.categoriesFormIsValid},on:{\"update:valid\":function($event){_vm.categoriesFormIsValid=$event}},model:{value:(_vm.categoriesFormData),callback:function ($$v) {_vm.categoriesFormData=$$v},expression:\"categoriesFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"px-6 mb-6\"},[_c('v-alert',{staticClass:\"mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[(!_vm.canSaveCategories)?_c('div',{staticClass:\"d-flex align-center mr-2\"},[_c('span',{staticClass:\"caption warning--text\"},[_vm._v(\"\\n Если категории и тип кампании не будут заполнены, статистика не будет показана\\n \")])]):_vm._e(),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Выйти из кампании\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":!_vm.canSaveCategories},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from 'axios';\n\nconst { isAxiosError } = axios;\n\nexport default isAxiosError;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"rootRef\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"campaign-details-categories-form\"},[_c('div',{staticClass:\"campaign-details-categories-form__row\"},[_c('div',{staticClass:\"campaign-details-categories-form__col\"},[_c('div',{staticClass:\"campaign-details-categories-form__field mt-8\"},[_c('DAutocomplete',{attrs:{\"label\":\"Категории клиента\",\"items\":_vm.taxonomyClientCategories,\"disabled\":_vm.taxonomyClientCategoriesIsDisabled,\"loading\":_vm.taxonomyClientCategoriesIsLoading,\"rules\":_vm.taxonomyClientCategoriesIdsRules,\"item-text\":\"title\",\"item-value\":\"id\",\"multiple\":\"\"},model:{value:(_vm.currentTaxonomyClientCategoriesIds),callback:function ($$v) {_vm.currentTaxonomyClientCategoriesIds=$$v},expression:\"currentTaxonomyClientCategoriesIds\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-details-categories-form__field\"},[_c('DAutocomplete',{attrs:{\"label\":\"Категории бренда\",\"items\":_vm.taxonomyBrandCategories,\"disabled\":_vm.taxonomyBrandCategoriesIsDisabled,\"loading\":_vm.taxonomyBrandCategoriesIsLoading,\"rules\":_vm.taxonomyBrandCategoriesIdsRules,\"item-text\":\"title\",\"item-value\":\"id\",\"multiple\":\"\"},model:{value:(_vm.currentTaxonomyBrandCategoriesIds),callback:function ($$v) {_vm.currentTaxonomyBrandCategoriesIds=$$v},expression:\"currentTaxonomyBrandCategoriesIds\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-details-categories-form__field\"},[_c('DAutocomplete',{attrs:{\"label\":\"Тип кампании\",\"items\":_vm.taxonomyCampaignTypes,\"disabled\":_vm.taxonomyCampaignTypesIsDisabled,\"loading\":_vm.taxonomyCampaignTypesIsLoading,\"rules\":_vm.taxonomyCampaignTypeIdRules,\"item-text\":\"title\",\"item-value\":\"id\"},model:{value:(_vm.currentTaxonomyCampaignTypeId),callback:function ($$v) {_vm.currentTaxonomyCampaignTypeId=$$v},expression:\"currentTaxonomyCampaignTypeId\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"campaign-details-categories-form__col\"},[_c('div',{staticClass:\"mb-3 body-2 font-weight-bold\"},[_vm._v(\"\\n Категории кампании\\n \")]),_vm._v(\" \"),_c('AppBrandCategoriesTreeView',{staticClass:\"campaign-details-categories-form__tree-view\",attrs:{\"categories\":_vm.taxonomyBrandCategories,\"loading\":_vm.taxonomyBrandCategoriesIsLoading},model:{value:(_vm.currentTaxonomyCampaignCategoriesIds),callback:function ($$v) {_vm.currentTaxonomyCampaignCategoriesIds=$$v},expression:\"currentTaxonomyCampaignCategoriesIds\"}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-brand-categories-tree-view\"},[_c('v-radio-group',{staticClass:\"flex-shrink-0 py-2 ma-0 mb-4\",attrs:{\"row\":\"\",\"hide-details\":\"\"},model:{value:(_vm.sortFilter),callback:function ($$v) {_vm.sortFilter=$$v},expression:\"sortFilter\"}},[_c('v-radio',{attrs:{\"label\":\"По алфавиту\",\"value\":\"alphabet\"}}),_vm._v(\" \"),_c('v-radio',{attrs:{\"label\":\"По выбранным\",\"value\":\"checked\"}})],1),_vm._v(\" \"),_c('DTreeView',{staticClass:\"app-brand-categories-tree-view__tree-view flex-grow-1\",attrs:{\"items\":_vm.sortedCategories,\"loading\":_vm.loading,\"item-text\":\"title\",\"open-on-click\":\"\",\"searchable\":\"\",\"selectable\":\"\"},model:{value:(_vm.selectedCategories),callback:function ($$v) {_vm.selectedCategories=$$v},expression:\"selectedCategories\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType } from '@vue/composition-api';\n\nimport { orderBy } from 'lodash';\n\nimport { DTreeView } from '@shared/druid-kit';\n\nimport { TaxonomyClientCategory } from '@/models/Taxonomy';\n\nexport default defineComponent({\n components: {\n DTreeView,\n },\n props: {\n categories: { type: Array as PropType, default: () => [] },\n value: { type: Array as PropType, default: () => [] },\n loading: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n categories,\n loading,\n } = toRefs(props);\n\n const sortedCategories = ref([]);\n\n const selectedCategories = computed({\n get() {\n return value.value;\n },\n set(val: string[]) {\n context.emit('input', val);\n },\n });\n\n const sortFilter = ref<'alphabet' | 'checked'>('checked');\n\n const sortMethod = computed(() => {\n const methods: Record TaxonomyClientCategory[]> = {\n alphabet(list) {\n return orderBy(list, 'name', 'asc');\n },\n checked(list) {\n const preSortedList = methods.alphabet(list);\n\n return orderBy(preSortedList, (category) => {\n const isSelected = category.children.some((child) => value.value.includes(child.id));\n\n return isSelected ? 1 : 0;\n }, 'desc');\n },\n };\n\n return methods[sortFilter.value];\n });\n\n const sortCategories = (list: TaxonomyClientCategory[]) => (sortMethod.value ? sortMethod.value(list) : list);\n\n watch(sortFilter, () => {\n sortedCategories.value = sortCategories(categories.value);\n });\n\n watch(loading, (val) => {\n if (!val) {\n sortedCategories.value = sortCategories(categories.value);\n }\n });\n\n return {\n sortFilter,\n selectedCategories,\n sortedCategories,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBrandCategoriesTreeView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBrandCategoriesTreeView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppBrandCategoriesTreeView.vue?vue&type=template&id=1ad178d4&scoped=true&\"\nimport script from \"./AppBrandCategoriesTreeView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppBrandCategoriesTreeView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppBrandCategoriesTreeView.vue?vue&type=style&index=0&id=1ad178d4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ad178d4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\ninstallComponents(component, {VRadio,VRadioGroup})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport { DAutocomplete } from '@shared/druid-kit';\n\nimport AppBrandCategoriesTreeView from '@/components/_newDesign/common/inputs/AppBrandCategoriesTreeView.vue';\n\nimport { TaxonomyApi } from '@/api';\n\nimport { SetCampaignCategoriesPayload } from '@/api/modules/campaigns.api';\n\nimport { TaxonomyClientCategory, TaxonomyBrandCategory } from '@/models/Taxonomy';\n\nimport { CampaignType } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DAutocomplete,\n AppBrandCategoriesTreeView,\n },\n props: {\n value: { type: Object as PropType, default: null },\n valid: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const rootRef = ref(null);\n\n const isValid = ref(false);\n\n watch(isValid, (val) => {\n context.emit('update:valid', val);\n }, { immediate: true });\n\n const resetValidation = () => {\n if (!rootRef.value) return;\n\n rootRef.value.resetValidation();\n };\n\n const updateSettings = (payload: Partial) => {\n const newSettings = {\n ...value.value,\n ...payload,\n };\n\n context.emit('input', newSettings);\n };\n\n // // // // //\n\n const taxonomyClientCategoriesIdsRules = ref([\n (val: string[]) => !!val.length,\n ]);\n\n const taxonomyClientCategories = ref([]);\n const taxonomyClientCategoriesIsLoading = ref(false);\n\n const taxonomyClientCategoriesIsDisabled = computed(() => !taxonomyClientCategories.value.length || taxonomyClientCategoriesIsLoading.value);\n\n const currentTaxonomyClientCategoriesIds = computed({\n get() {\n return value.value?.clientCategoriesIds || [];\n },\n set(val: string[]) {\n updateSettings({ clientCategoriesIds: val });\n },\n });\n\n const fetchTaxonomyClientCategories = async () => {\n taxonomyClientCategoriesIsLoading.value = true;\n\n try {\n const res = await TaxonomyApi.fetchClientCategories();\n\n taxonomyClientCategories.value = res.data;\n } finally {\n taxonomyClientCategoriesIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const taxonomyBrandCategoriesIdsRules = ref([\n (val: string[]) => !!val.length,\n ]);\n\n const taxonomyBrandCategories = ref([]);\n const taxonomyBrandCategoriesIsLoading = ref(false);\n\n const taxonomyBrandCategoriesIsDisabled = computed(() => !taxonomyBrandCategories.value.length || taxonomyBrandCategoriesIsLoading.value);\n\n const currentTaxonomyBrandCategoriesIds = computed({\n get() {\n return value.value?.brandCategoriesIds || [];\n },\n set(val: string[]) {\n updateSettings({ brandCategoriesIds: val });\n },\n });\n\n const fetchTaxonomyBrandCategories = async () => {\n taxonomyBrandCategoriesIsLoading.value = true;\n\n try {\n const res = await TaxonomyApi.fetchBrandCategories();\n\n taxonomyBrandCategories.value = res.data;\n } finally {\n taxonomyBrandCategoriesIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const taxonomyCampaignTypeIdRules = ref([\n (val: string) => !!val,\n ]);\n\n const taxonomyCampaignTypes = ref([]);\n const taxonomyCampaignTypesIsLoading = ref(false);\n\n const taxonomyCampaignTypesIsDisabled = computed(() => !taxonomyCampaignTypes.value.length || taxonomyCampaignTypesIsLoading.value);\n\n const currentTaxonomyCampaignTypeId = computed({\n get() {\n return value.value?.campaignTypeId || '';\n },\n set(val: string) {\n updateSettings({ campaignTypeId: val });\n },\n });\n\n const fetchTaxonomyCampaignTypes = async () => {\n taxonomyCampaignTypesIsLoading.value = true;\n\n try {\n const res = await TaxonomyApi.fetchCampaignTypes();\n\n taxonomyCampaignTypes.value = res.data;\n } finally {\n taxonomyCampaignTypesIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const currentTaxonomyCampaignCategoriesIds = computed({\n get() {\n return value.value?.campaignCategoriesIds || [];\n },\n set(val: string[]) {\n updateSettings({ campaignCategoriesIds: val });\n },\n });\n\n // // // // //\n\n const init = async () => {\n await Promise.all([\n fetchTaxonomyClientCategories(),\n fetchTaxonomyBrandCategories(),\n fetchTaxonomyCampaignTypes(),\n ]);\n };\n\n init();\n\n return {\n rootRef,\n isValid,\n resetValidation,\n //\n taxonomyClientCategories,\n taxonomyClientCategoriesIdsRules,\n currentTaxonomyClientCategoriesIds,\n taxonomyClientCategoriesIsLoading,\n taxonomyClientCategoriesIsDisabled,\n //\n taxonomyBrandCategories,\n taxonomyBrandCategoriesIdsRules,\n taxonomyBrandCategoriesIsLoading,\n taxonomyBrandCategoriesIsDisabled,\n currentTaxonomyBrandCategoriesIds,\n //\n taxonomyCampaignTypes,\n taxonomyCampaignTypeIdRules,\n taxonomyCampaignTypesIsLoading,\n taxonomyCampaignTypesIsDisabled,\n currentTaxonomyCampaignTypeId,\n //\n currentTaxonomyCampaignCategoriesIds,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetailsCategoriesEditForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetailsCategoriesEditForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignDetailsCategoriesEditForm.vue?vue&type=template&id=a00a351a&scoped=true&\"\nimport script from \"./CampaignDetailsCategoriesEditForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignDetailsCategoriesEditForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignDetailsCategoriesEditForm.vue?vue&type=style&index=0&id=a00a351a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a00a351a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\ninstallComponents(component, {VForm})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport { SetCampaignCategoriesPayload } from '@/api/modules/campaigns.api';\n\nimport useRouter from '@/packages/hooks/useRouter';\n\nimport { useCampaignStore } from '@/store/campaign';\n\nimport CampaignDetailsCategoriesEditForm from '@/components/_newDesign/Campaigns/CampaignDetails/forms/CampaignDetailsCategoriesEditForm.vue';\n\nexport default defineComponent({\n components: {\n AppModal,\n CampaignDetailsCategoriesEditForm,\n },\n props: {\n value: { type: Boolean, default: false },\n campaignId: { type: String as PropType, default: null },\n },\n setup(props, context) {\n const {\n value,\n campaignId,\n } = toRefs(props);\n\n const router = useRouter(context);\n\n const campaignStore = useCampaignStore();\n\n const categoriesFormRef = ref(null);\n const categoriesFormData = ref(null);\n const categoriesFormIsValid = ref(false);\n\n const campaign = computed(() => campaignStore.getters.campaign);\n const client = computed(() => campaignStore.getters.client);\n const clientBrand = computed(() => campaignStore.getters.clientBrand);\n\n const categoriesFormResetValidation = async () => {\n if (!categoriesFormRef.value) return;\n\n categoriesFormRef.value.resetValidation();\n };\n\n const newCategories = computed(() => {\n if (!categoriesFormData.value || !categoriesFormIsValid.value) return null;\n\n return categoriesFormData.value;\n });\n\n const saving = ref(false);\n const savingIsDone = ref(false);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const canSaveCategories = computed(() => newCategories.value && newCategories.value.campaignCategoriesIds.length);\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!campaignId.value || !newCategories.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await campaignStore.dispatch('SET_CAMPAIGN_CATEGORIES', {\n campaignId: campaignId.value,\n data: newCategories.value,\n });\n\n savingIsDone.value = true;\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data?.errors || {})\n .reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n const init = () => {\n categoriesFormData.value = {\n clientCategoriesIds: client.value?.categoriesIds || [],\n brandCategoriesIds: clientBrand.value?.categoriesIds || [],\n campaignCategoriesIds: campaign.value?.categoriesIds || [],\n campaignTypeId: campaign.value?.typeId || '',\n };\n };\n\n watch(value, (val) => {\n if (!val && !savingIsDone.value) {\n router.push({\n path: `/clients/${client.value?.id}`,\n query: { brandId: clientBrand.value?.id },\n });\n\n return;\n }\n\n categoriesFormData.value = null;\n\n categoriesFormResetValidation();\n init();\n });\n\n return {\n categoriesFormRef,\n categoriesFormData,\n categoriesFormIsValid,\n saving,\n canSaveCategories,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetailsCategoriesEditModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetailsCategoriesEditModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignDetailsCategoriesEditModal.vue?vue&type=template&id=e7be904c&\"\nimport script from \"./CampaignDetailsCategoriesEditModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignDetailsCategoriesEditModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","import { ref, Ref } from '@vue/composition-api';\n\ninterface useModalsReturn {\n modalsMap: Ref<{\n [slug: string]: {\n value: boolean;\n props?: Record | undefined;\n };\n }>;\n openModal: (payload: string | { slug: string; props?: Record }) => void;\n}\n\nexport default (modals: string[]): useModalsReturn => {\n type ModalSlug = typeof modals[number];\n\n type Modal = Record }>;\n\n const modalsMap = ref(modals.reduce((acc, slug) => {\n acc[slug] = {\n value: false,\n };\n\n return acc;\n }, {} as Modal));\n\n const openModal = (payload: ModalSlug | { slug: ModalSlug; props?: Record }) => {\n if (typeof payload !== 'string') {\n modalsMap.value[payload.slug].props = payload.props;\n modalsMap.value[payload.slug].value = true;\n } else {\n modalsMap.value[payload].value = true;\n }\n };\n\n return {\n modalsMap,\n openModal,\n };\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, provide, computed, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport CampaignDetailsHeader from '@/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsHeader.vue';\nimport CampaignDetailsContent from '@/components/_newDesign/Campaigns/CampaignDetails/CampaignDetailsContent.vue';\nimport CampaignDetailsCategoriesEditModal from '@/components/_newDesign/Campaigns/CampaignDetails/modals/CampaignDetailsCategoriesEditModal.vue';\n\nimport useQueryFilters from '@/composables/useQueryFilters';\nimport useModals from '@/composables/useModals';\nimport useMeta from '@/composables/meta/useMeta';\nimport { useCampaignStore } from '@/store/campaign';\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport { useCampaignDetails } from '@/composables/campaign';\n\nexport default defineComponent({\n components: {\n AppView,\n CampaignDetailsHeader,\n CampaignDetailsContent,\n CampaignDetailsCategoriesEditModal,\n },\n props: {\n campaignId: { type: String, required: true },\n },\n setup(props, context) {\n const { campaignId } = toRefs(props);\n\n const campaignStore = useCampaignStore();\n\n const {\n queryFilters,\n updateQueryFilters,\n } = useQueryFilters({\n filters: {\n from: undefined,\n to: undefined,\n },\n }, context);\n\n provide('queryFilters', queryFilters);\n provide('updateQueryFilters', updateQueryFilters);\n\n const {\n modalsMap,\n openModal,\n } = useModals(['categories']);\n\n const {\n isLoading,\n updateIsLoading,\n } = useLayoutLoadingStatus();\n\n const {\n campaign,\n campaignCategories,\n fetchCampaign,\n campaignPageTitle,\n } = useCampaignDetails({\n campaignId,\n filters: queryFilters,\n });\n\n const pageMeta = computed(() => ({ title: campaignPageTitle.value }));\n\n const client = computed(() => campaignStore.getters.client);\n const clientBrand = computed(() => campaignStore.getters.clientBrand);\n const categoriesIsEdit = computed(() => !client?.value?.categoriesIds.length || !clientBrand?.value?.categoriesIds.length || !campaign.value?.categoriesIds.length || !campaign.value?.typeId);\n\n useMeta(pageMeta);\n\n const fetchClient = async (clientId: string) => {\n await campaignStore.dispatch('FETCH_CLIENT', clientId);\n };\n\n const fetch = async () => {\n updateIsLoading(true);\n\n try {\n await fetchCampaign();\n\n if (!campaign.value || !context.root.$acl.check('set_client_categories')) return;\n\n await fetchClient(campaign.value.clientId);\n\n if (categoriesIsEdit.value) {\n openModal({\n slug: 'categories',\n props: { campaignId: campaign.value?.id },\n });\n }\n } finally {\n updateIsLoading(false);\n }\n };\n\n watch(queryFilters, () => fetch());\n\n fetch();\n\n return {\n modalsMap,\n isLoading,\n campaign,\n campaignCategories,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignDetails.vue?vue&type=template&id=0437150c&\"\nimport script from \"./CampaignDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[(!_vm.isLoading)?_c('CampaignCategoryHeader',{attrs:{\"campaign\":_vm.campaign,\"category\":_vm.category}}):_vm._e()],1),_vm._v(\" \"),(!_vm.isLoading)?_c('CampaignCategoryContent',{attrs:{\"campaign\":_vm.campaign,\"category\":_vm.category}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport { DBreadcrumbs } from '@shared/druid-kit';\n\nimport { Campaign, CampaignCategory } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n category: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { campaign, category } = toRefs(props);\n\n const categoryName = computed(() => category.value?.name || 'Категория');\n\n const breadcrumbs = computed(() => [\n {\n label: campaign.value.brandName,\n path: `/clients/${campaign.value.clientId}/?brandId=${campaign.value.brandId}`,\n },\n {\n label: campaign.value.name,\n path: `/campaigns/${campaign.value.id}`,\n },\n {\n label: categoryName.value,\n path: `/campaigns/${campaign.value.id}/category/${category.value.id}`,\n },\n ]);\n\n return { breadcrumbs };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoryHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoryHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignCategoryHeader.vue?vue&type=template&id=5db4c797&\"\nimport script from \"./CampaignCategoryHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignCategoryHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-category-content\"},[_c('div',{staticClass:\"campaign-category-content__block campaign-category-content__block--white d-flex px-6 py-4 mb-4\"},[_c('CampaignMetrics',{staticClass:\"campaign-category-content__metrics flex-shrink-0\",attrs:{\"metrics-data\":_vm.metricsData}}),_vm._v(\" \"),_c('div',{staticClass:\"d-flex flex-column flex-grow-1\"},[_c('CampaignDateFilterBtn',{attrs:{\"campaign\":_vm.campaign}}),_vm._v(\" \"),_c('CampaignChart',{staticClass:\"campaign-category-content__chart mt-auto\",attrs:{\"metrics\":_vm.category.metrics,\"visible-metric-names\":['Impressions', 'Clicks']}})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-category-content__block mb-4\"},[_c('CampaignPlacementsTable',{attrs:{\"placements\":_vm.category.placements,\"metrics\":_vm.category.displayableMetrics}})],1),_vm._v(\" \"),(_vm.categoryPlacementsLastUpdate)?_c('div',{staticClass:\"campaign-category-content__block d-flex justify-end px-6\"},[_c('div',{staticClass:\"caption grey--text text--darken-1\"},[_vm._v(\"\\n Обновлено \"+_vm._s(_vm.categoryPlacementsLastUpdate)+\"\\n \")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MetricsTable',{staticClass:\"campaign-placements-table\",attrs:{\"headers\":_vm.headers,\"items\":_vm.placements,\"metric-cells\":_vm.metricCells},scopedSlots:_vm._u([{key:\"header-name\",fn:function(){return [_c('div',{staticClass:\"text-h6 grey--text text--darken-1\",domProps:{\"textContent\":_vm._s(_vm.placements[0].category.categoryName)}}),_vm._v(\" \"),_c('div',{staticClass:\"mb-2 caption grey--text text--darken-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.activePlacementsCount ? (_vm.activePlacementsCount + \" из \" + (_vm.placements.length) + \" активно\") : 'Нет активных')+\"\\n \")])]},proxy:true},{key:\"row\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('CampaignPlacementsTableRow',{attrs:{\"placement\":item,\"metric-cells\":_vm.metricCells}})]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, computed, PropType, toRefs } from '@vue/composition-api';\n\nimport MetricsTable from '@/components/_newDesign/common/MetricsTable/MetricsTable.vue';\n\nimport { MetricCell } from '@/components/_newDesign/common/MetricsTable/MetricsTableRow.vue';\n\nimport CampaignPlacementsTableRow from '@/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTableRow.vue';\n\nimport { Placement } from '@/models/Placement';\n\nimport { useMetricTypesStore } from '@/store/reference/metricTypes';\n\nexport default defineComponent({\n components: {\n MetricsTable,\n CampaignPlacementsTableRow,\n },\n props: {\n placements: { type: Array as PropType, default: () => [] },\n metrics: { type: Array as PropType, default: () => ['Cost', 'Impressions', 'Clicks', 'CTR', 'CR'] },\n },\n setup(props) {\n const {\n placements,\n metrics,\n } = toRefs(props);\n\n const metricTypesStore = useMetricTypesStore();\n\n const metricCells = computed(() => metrics.value.map((metricName) => {\n const metric = metricTypesStore.getters.getMetricType(metricName);\n\n return {\n metric: {\n name: metricName,\n },\n planInsteadProgress: metric?.format === 'Percent',\n onlyFact: !metric?.canBePlanned,\n disabledTooltip: !metric?.canBePlanned,\n };\n }));\n\n const headers = computed(() => [\n {\n class: '',\n text: '',\n value: 'name',\n sortable: false,\n },\n ...Vue.acl.check('markups_edit') ? [\n {\n text: '',\n value: '',\n sortable: false,\n },\n ] : [],\n {\n text: '',\n value: '',\n sortable: false,\n },\n {\n text: '',\n value: '',\n sortable: false,\n },\n ...metricCells.value.map((metricCell) => ({\n class: 'caption',\n text: metricCell.metric.name,\n value: `metricsTotal.${metricCell.metric.name}`,\n sortable: false,\n })),\n ]);\n\n const activePlacements = computed(() => placements.value.filter(({ state }) => state.code !== 'finished'));\n const activePlacementsCount = computed(() => activePlacements.value.length);\n\n return {\n metricCells,\n headers,\n activePlacementsCount,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementsTable.vue?vue&type=template&id=6f52821a&scoped=true&\"\nimport script from \"./CampaignPlacementsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignPlacementsTable.vue?vue&type=style&index=0&id=6f52821a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f52821a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, PropType, toRefs } from '@vue/composition-api';\n\nimport moment from 'moment';\nimport _ from 'lodash';\n\nimport CampaignMetrics from '@/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetrics.vue';\nimport CampaignChart from '@/components/_newDesign/Campaigns/CampaignChart.vue';\nimport CampaignPlacementsTable from '@/components/_newDesign/Campaigns/CampaignPlacementsTable/CampaignPlacementsTable.vue';\n\nimport CampaignDateFilterBtn from '@/components/_newDesign/Campaigns/buttons/CampaignDateFilterBtn.vue';\n\nimport { Campaign, CampaignCategory } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n CampaignMetrics,\n CampaignChart,\n CampaignPlacementsTable,\n CampaignDateFilterBtn,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n category: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n campaign,\n category,\n } = toRefs(props);\n\n const metricsData = computed(() => ({\n ...category.value,\n startDate: campaign.value.startDate,\n endDate: campaign.value.endDate,\n }));\n\n const categoryPlacementsLastUpdate = computed(() => {\n if (category.value) {\n const lastModifiedItem = _(category.value.placements)\n .filter((placement) => !!placement.metricsUpdatedAt)\n .maxBy((placement) => moment(placement.metricsUpdatedAt));\n\n if (lastModifiedItem && lastModifiedItem.metricsUpdatedAt) {\n return moment(lastModifiedItem.metricsUpdatedAt).format(\n 'DD.MM.YYYY HH:mm',\n );\n }\n }\n\n return '';\n });\n\n return {\n categoryPlacementsLastUpdate,\n metricsData,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoryContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategoryContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignCategoryContent.vue?vue&type=template&id=455ce265&scoped=true&\"\nimport script from \"./CampaignCategoryContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignCategoryContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignCategoryContent.vue?vue&type=style&index=0&id=455ce265&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"455ce265\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, provide, computed, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport CampaignCategoryHeader from '@/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryHeader.vue';\nimport CampaignCategoryContent from '@/components/_newDesign/Campaigns/CampaignCategory/CampaignCategoryContent.vue';\n\nimport useQueryFilters from '@/composables/useQueryFilters';\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport { useCampaignDetails } from '@/composables/campaign';\nimport useMeta from '@/composables/meta/useMeta';\n\nexport default defineComponent({\n components: {\n AppView,\n CampaignCategoryHeader,\n CampaignCategoryContent,\n },\n props: {\n campaignId: { type: String, required: true },\n categoryId: { type: String, required: true },\n },\n setup(props, context) {\n const { campaignId, categoryId } = toRefs(props);\n\n const {\n queryFilters,\n updateQueryFilters,\n } = useQueryFilters({\n filters: {\n from: undefined,\n to: undefined,\n },\n }, context);\n\n provide('queryFilters', queryFilters);\n provide('updateQueryFilters', updateQueryFilters);\n\n const {\n isLoading,\n updateIsLoading,\n } = useLayoutLoadingStatus();\n\n const {\n campaign,\n campaignCategories,\n fetchCampaign,\n campaignPageTitle,\n } = useCampaignDetails({\n campaignId,\n filters: queryFilters,\n });\n\n const category = computed(() => campaignCategories.value.find(({ id }) => id === categoryId.value));\n\n const pageMeta = computed(() => ({ title: campaignPageTitle.value }));\n\n useMeta(pageMeta);\n\n const fetch = async () => {\n updateIsLoading(true);\n\n try {\n await fetchCampaign();\n } finally {\n updateIsLoading(false);\n }\n };\n\n watch(queryFilters, () => fetch());\n\n fetch();\n\n return {\n campaign,\n category,\n campaignCategories,\n isLoading,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategory.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategory.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignCategory.vue?vue&type=template&id=edc7d7d8&\"\nimport script from \"./CampaignCategory.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignCategory.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[(!_vm.isLoading)?_c('CampaignPlacementHeader',{attrs:{\"danbo-id\":_vm.danboId,\"campaign\":_vm.campaign,\"campaign-placement\":_vm.campaignPlacement,\"campaign-category\":_vm.campaignCategory}}):_vm._e()],1),_vm._v(\" \"),(!_vm.isLoading)?_c('CampaignPlacementContent',{attrs:{\"campaign\":_vm.campaign,\"campaign-placement\":_vm.campaignPlacement,\"campaign-category\":_vm.campaignCategory,\"danbo-id\":_vm.danboId}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-placement-header d-flex align-center\"},[_c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}}),_vm._v(\" \"),(_vm.$acl.check('plan_edit'))?_c('v-btn',{staticClass:\"ml-2 text-decoration-none\",attrs:{\"color\":\"primary\",\"to\":_vm.placementEditorPath,\"small\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"size\":\"18\"}},[_vm._v(\"\\n mdi-cog\\n \")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport { DBreadcrumbs } from '@shared/druid-kit';\n\nimport { Campaign, CampaignPlacement, CampaignCategory } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n },\n props: {\n danboId: { type: String, required: true },\n campaign: { type: Object as PropType, required: true },\n campaignPlacement: { type: Object as PropType, required: true },\n campaignCategory: { type: Object as PropType, default: () => null },\n },\n setup(props) {\n const {\n danboId,\n campaign,\n campaignPlacement,\n campaignCategory,\n } = toRefs(props);\n\n const breadcrumbs = computed(() => [\n {\n label: campaign.value.brandName,\n path: `/clients/${campaign.value.clientId}/?brandId=${campaign.value.brandId}`,\n },\n {\n label: campaign.value.name,\n path: `/campaigns/${campaign.value.id}`,\n },\n ...(campaignCategory.value ? [\n {\n label: campaignCategory.value.name,\n path: `/campaigns/${campaign.value.id}/category/${campaignCategory.value.id}`,\n },\n ] : []),\n {\n label: campaignPlacement.value.marker.name,\n path: `/campaigns/${campaign.value.id}/placements/${campaignPlacement.value.marker.id}`,\n },\n ]);\n\n const placementEditorPath = computed(() => `/campaigns/${campaign.value.id}/placements/${danboId.value}/edit`);\n\n return {\n breadcrumbs,\n placementEditorPath,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementHeader.vue?vue&type=template&id=57d82f15&\"\nimport script from \"./CampaignPlacementHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-placement-content\"},[_c('div',{staticClass:\"campaign-placement-content__block campaign-placement-content__block--white d-flex px-6 py-4 mb-4\"},[_c('CampaignMetrics',{staticClass:\"campaign-placement-content__metrics flex-shrink-0\",attrs:{\"metrics-data\":_vm.metricsData}}),_vm._v(\" \"),_c('div',{staticClass:\"d-flex flex-column flex-grow-1\"},[_c('CampaignDateFilterBtn',{attrs:{\"campaign\":_vm.campaign}}),_vm._v(\" \"),_c('CampaignChart',{staticClass:\"mt-auto\",attrs:{\"metrics\":_vm.campaignPlacement.marker.metrics,\"visible-metric-names\":['Impressions', 'Clicks']}})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-placement-content__block mb-4\"},[_c('CampaignTabs',{attrs:{\"tabs\":_vm.tabs},scopedSlots:_vm._u([{key:\"items\",fn:function(ref){\nvar items = ref.items;\nreturn [_c('MetricsTableSimple',{attrs:{\"items\":items},scopedSlots:_vm._u([{key:\"header-name\",fn:function(){return [_vm._v(\"\\n Рекламные объекты\\n \")]},proxy:true},{key:\"row-prepend\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('DTableCell',{staticClass:\"campaign-placement-content__cell campaign-placement-content__cell--info\",attrs:{\"to\":(\"/campaigns/\" + (_vm.campaign.id) + \"/placements/\" + (_vm.campaignPlacement.marker.id) + \"/connectors/\" + (item.id))}},[_c('div',{staticClass:\"campaign-placement-content__table-link d-flex py-2 subtitle-2\",domProps:{\"textContent\":_vm._s(item.dataProviderName)}})])]}}],null,true)})]}}])})],1),_vm._v(\" \"),(_vm.campaignPlacementLastUpdate)?_c('div',{staticClass:\"campaign-category-placement__block d-flex justify-end px-6\"},[_c('div',{staticClass:\"caption grey--text text--darken-1\"},[_vm._v(\"\\n Обновлено \"+_vm._s(_vm.campaignPlacementLastUpdate)+\"\\n \")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MetricsTable',{attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"items-per-page\":_vm.items.length},scopedSlots:_vm._u([{key:\"header-name\",fn:function(){return [_c('div',{staticClass:\"text-h6 grey--text text--darken-1 pl-0\"},[_vm._t(\"header-name\")],2)]},proxy:true},{key:\"row\",fn:function(ref){\nvar index = ref.index;\nvar item = ref.item;\nreturn [(index)?_c('tr',{staticStyle:{\"height\":\"8px\"}}):_vm._e(),_vm._v(\" \"),_c('MetricsTableRow',{attrs:{\"metrics-total\":item.metricsTotal,\"metric-cells\":_vm.metricCells},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_vm._t(\"row-prepend\",null,{\"item\":item})]},proxy:true},{key:\"append\",fn:function(){return [_c('DTableCellSpacer')]},proxy:true}],null,true)})]}}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, toRefs, PropType } from '@vue/composition-api';\n\nimport { DTableCellSpacer } from '@shared/druid-kit';\n\nimport MetricsTable from '@/components/_newDesign/common/MetricsTable/MetricsTable.vue';\nimport MetricsTableRow from '@/components/_newDesign/common/MetricsTable/MetricsTableRow.vue';\n\ninterface Item {\n metricsTotal: Record\n}\n\nexport default defineComponent({\n components: {\n DTableCellSpacer,\n MetricsTable,\n MetricsTableRow,\n },\n props: {\n items: { type: Array as PropType, default: () => [] },\n },\n setup(props) {\n const { items } = toRefs(props);\n\n const actualDisplayableMetricsNames = computed(() => {\n const allMetricsTotalNames = items.value\n .reduce((acc: string[], { metricsTotal }) => {\n acc = [...acc, ...Object.keys(metricsTotal)];\n\n return acc;\n }, []);\n\n return [...new Set(allMetricsTotalNames)];\n });\n\n const metricCells = computed(() => actualDisplayableMetricsNames.value\n .map((name) => ({\n metric: { name },\n onlyFact: true,\n disabledTooltip: true,\n })));\n\n const headers = computed(() => [\n {\n class: '',\n text: '',\n value: 'name',\n sortable: false,\n },\n ...metricCells.value.map((metricCell) => ({\n class: 'caption',\n text: metricCell.metric.name,\n value: `metricsTotal.${metricCell.metric.name}`,\n sortable: false,\n })),\n {\n text: '',\n value: '',\n sortable: false,\n },\n ]);\n\n return {\n metricCells,\n headers,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTableSimple.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsTableSimple.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MetricsTableSimple.vue?vue&type=template&id=11c63884&\"\nimport script from \"./MetricsTableSimple.vue?vue&type=script&lang=ts&\"\nexport * from \"./MetricsTableSimple.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.tabs.length)?_c('div',{staticClass:\"campaign-tabs\"},[_c('v-tabs',{staticClass:\"campaign-tabs__items mb-4 px-4 text-body-2\",attrs:{\"background-color\":\"transparent\"},model:{value:(_vm.activeTabIdx),callback:function ($$v) {_vm.activeTabIdx=$$v},expression:\"activeTabIdx\"}},_vm._l((_vm.tabs),function(tab,idx){return _c('v-tab',{key:idx,staticClass:\"campaign-tabs__item\",attrs:{\"active-class\":\"campaign-tabs__tab--active\",\"slider-size\":\"4\",\"exact\":\"\"}},[_vm._v(\"\\n \"+_vm._s(tab.name)+\"\\n \")])}),1),_vm._v(\" \"),_vm._t(\"items\",null,{\"items\":_vm.tabs[_vm.activeTabIdx].items})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, PropType } from '@vue/composition-api';\n\ninterface TabsItem {\n name: string;\n type: string;\n items: Record[];\n}\n\nexport default defineComponent({\n props: {\n tabs: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const activeTabIdx = ref(0);\n\n return { activeTabIdx };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignTabs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignTabs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignTabs.vue?vue&type=template&id=8baeb1e2&scoped=true&\"\nimport script from \"./CampaignTabs.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignTabs.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignTabs.vue?vue&type=style&index=0&id=8baeb1e2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8baeb1e2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VTab,VTabs})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, computed, toRefs } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DTableCell } from '@shared/druid-kit';\n\nimport { Campaign, CampaignPlacement } from '@/models/Campaign';\n\nimport MetricsTableSimple from '@/components/_newDesign/common/MetricsTable/MetricsTableSimple.vue';\n\nimport CampaignMetrics from '@/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetrics.vue';\nimport CampaignChart from '@/components/_newDesign/Campaigns/CampaignChart.vue';\nimport CampaignTabs from '@/components/_newDesign/Campaigns/CampaignTabs.vue';\n\nimport CampaignDateFilterBtn from '@/components/_newDesign/Campaigns/buttons/CampaignDateFilterBtn.vue';\n\nexport default defineComponent({\n components: {\n DTableCell,\n MetricsTableSimple,\n CampaignMetrics,\n CampaignChart,\n CampaignTabs,\n CampaignDateFilterBtn,\n },\n props: {\n danboId: { type: String, required: true },\n campaign: { type: Object as PropType, required: true },\n campaignPlacement: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { campaign, campaignPlacement } = toRefs(props);\n\n const campaignPlacementLastUpdate = computed(() => moment(campaignPlacement.value.marker.updatedAt)\n .format('DD.MM.YYYY HH:mm'));\n\n const metricsData = computed(() => ({\n metricsTotal: campaignPlacement.value.marker.metricsTotal,\n metricsPlan: campaignPlacement.value.planMetrics,\n startDate: campaign.value.startDate,\n endDate: campaign.value.endDate,\n }));\n\n const tabs = computed(() => {\n const { sources } = campaignPlacement.value.marker;\n\n return [\n {\n name: 'Отображаемые',\n type: 'shown',\n items: sources.filter((source) => source.isActive && source.dataProviderType.id !== 'Analytics'),\n },\n {\n name: 'Площадки',\n type: 'placements',\n items: sources.filter((source) => source.dataProviderType.id === 'Placement'),\n },\n {\n name: 'Адсервинги',\n type: 'adservings',\n items: sources.filter((source) => source.dataProviderType.id === 'AdServing'),\n },\n {\n name: 'Аналитика',\n type: 'analytics',\n items: sources.filter((source) => source.dataProviderType.id === 'Analytics'),\n },\n ].map((tab) => ({\n ...tab,\n items: tab.items.sort((a, b) => a.dataProviderName.toLowerCase().localeCompare(b.dataProviderName.toLowerCase())),\n })).filter(({ items }) => items.length);\n });\n\n return {\n metricsData,\n campaignPlacementLastUpdate,\n tabs,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementContent.vue?vue&type=template&id=3172bdfa&scoped=true&\"\nimport script from \"./CampaignPlacementContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignPlacementContent.vue?vue&type=style&index=0&id=3172bdfa&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3172bdfa\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, provide, computed, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport CampaignPlacementHeader from '@/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementHeader.vue';\nimport CampaignPlacementContent from '@/components/_newDesign/Campaigns/CampaignPlacement/CampaignPlacementContent.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport useQueryFilters from '@/composables/useQueryFilters';\nimport { useCampaignDetails } from '@/composables/campaign';\nimport useMeta from '@/composables/meta/useMeta';\n\nimport { useCampaignStore } from '@/store/campaign';\n\nexport default defineComponent({\n components: {\n AppView,\n CampaignPlacementHeader,\n CampaignPlacementContent,\n },\n props: {\n campaignId: { type: String, required: true },\n danboId: { type: String, required: true },\n },\n setup(props, context) {\n const { campaignId, danboId } = toRefs(props);\n\n const campaignStore = useCampaignStore();\n\n const {\n isLoading,\n updateIsLoading,\n } = useLayoutLoadingStatus();\n\n const {\n queryFilters,\n updateQueryFilters,\n } = useQueryFilters({\n filters: {\n from: undefined,\n to: undefined,\n },\n }, context);\n\n const campaignPlacement = computed(() => campaignStore.getters.campaignPlacement);\n\n provide('queryFilters', queryFilters);\n provide('updateQueryFilters', updateQueryFilters);\n\n const {\n campaign,\n campaignCategories,\n campaignPageTitle,\n fetchCampaign,\n } = useCampaignDetails({ campaignId });\n\n const campaignCategory = computed(() => campaignCategories.value\n .filter(({ placements }) => placements.find((placement) => placement.danboId === danboId.value))[0] ?? null);\n\n const pageMeta = computed(() => ({ title: campaignPageTitle.value }));\n\n useMeta(pageMeta);\n\n const fetch = async () => {\n updateIsLoading(true);\n\n try {\n await Promise.all([\n fetchCampaign(),\n campaignStore.dispatch('FETCH_CAMPAIGN_PLACEMENT', {\n campaignId: campaignId.value,\n danboId: danboId.value,\n params: queryFilters.value,\n }),\n ]);\n } finally {\n updateIsLoading(false);\n }\n };\n\n watch(queryFilters, () => fetch());\n\n fetch();\n\n return {\n campaign,\n campaignPlacement,\n campaignCategory,\n isLoading,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacement.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacement.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacement.vue?vue&type=template&id=ac38b83a&\"\nimport script from \"./CampaignPlacement.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacement.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[(!_vm.isLoading)?_c('CampaignConnectorHeader',{attrs:{\"campaign\":_vm.campaign,\"campaign-category\":_vm.campaignCategory,\"danbo-id\":_vm.danboId,\"connector-id\":_vm.connectorId}}):_vm._e()],1),_vm._v(\" \"),(!_vm.isLoading)?_c('CampaignConnectorContent',{attrs:{\"campaign\":_vm.campaign,\"danbo-id\":_vm.danboId,\"campaign-connector\":_vm.campaignConnector}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport { DBreadcrumbs } from '@shared/druid-kit';\n\nimport { Campaign, CampaignCategory } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n campaignCategory: { type: Object as PropType, default: () => null },\n danboId: { type: String, required: true },\n connectorId: { type: String, required: true },\n },\n setup(props) {\n const {\n campaign,\n campaignCategory,\n danboId,\n connectorId,\n } = toRefs(props);\n\n const breadcrumbs = computed(() => [\n {\n label: campaign.value.brandName,\n path: `/clients/${campaign.value.clientId}/?brandId=${campaign.value.brandId}`,\n },\n {\n label: campaign.value.name,\n path: `/campaigns/${campaign.value.id}`,\n },\n {\n label: danboId.value,\n path: `/campaigns/${campaign.value.id}/placements/${danboId.value}`,\n },\n {\n label: connectorId.value,\n path: `/campaigns/${campaign.value.id}/placements/${danboId.value}/connectors/${connectorId.value}`,\n },\n ]);\n\n if (campaignCategory.value) {\n breadcrumbs.value.splice(2, 0, {\n label: campaignCategory.value.name,\n path: `/campaigns/${campaign.value.id}/category/${campaignCategory.value.id}`,\n });\n }\n\n return { breadcrumbs };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignConnectorHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignConnectorHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignConnectorHeader.vue?vue&type=template&id=ff3e0252&\"\nimport script from \"./CampaignConnectorHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignConnectorHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-connector-content\"},[_c('div',{staticClass:\"campaign-connector-content__block campaign-connector-content__block--white d-flex px-6 py-4 mb-4\"},[_c('CampaignMetrics',{staticClass:\"campaign-connector-content__metrics flex-shrink-0\",attrs:{\"metrics-data\":_vm.metricsData}}),_vm._v(\" \"),_c('div',{staticClass:\"d-flex flex-column flex-grow-1\"},[_c('CampaignDateFilterBtn',{attrs:{\"campaign\":_vm.campaign}}),_vm._v(\" \"),_c('CampaignChart',{staticClass:\"mt-auto\",attrs:{\"metrics\":_vm.campaignConnector.source.metrics,\"visible-metric-names\":['Impressions', 'Clicks']}})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-connector-content__block mb-4\"},[_c('CampaignTabs',{attrs:{\"tabs\":_vm.tabs},scopedSlots:_vm._u([{key:\"items\",fn:function(ref){\nvar items = ref.items;\nreturn [_c('MetricsTableSimple',{attrs:{\"items\":items},scopedSlots:_vm._u([{key:\"header-name\",fn:function(){return [_vm._v(\"\\n Рекламные объекты\\n \")]},proxy:true},{key:\"row-prepend\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('DTableCell',{staticClass:\"campaign-connector-content__cell campaign-connector-content__cell--info\",attrs:{\"to\":(\"/campaigns/\" + (_vm.campaign.id) + \"/placements/\" + _vm.danboId + \"/connectors/\" + (_vm.campaignConnector.source.id) + \"/\" + (item.level) + \"/\" + (item.type) + \"/\" + (item.onSiteId))}},[_c('div',{staticClass:\"campaign-connector-content__table-link d-flex py-2 subtitle-2\",domProps:{\"textContent\":_vm._s(item.name)}})])]}}],null,true)})]}}])})],1),_vm._v(\" \"),(_vm.campaignConnectorLastUpdate)?_c('div',{staticClass:\"campaign-category-placement__block d-flex justify-end px-6\"},[_c('div',{staticClass:\"caption grey--text text--darken-1\"},[_vm._v(\"\\n Обновлено \"+_vm._s(_vm.campaignConnectorLastUpdate)+\"\\n \")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, computed, toRefs } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DTableCell } from '@shared/druid-kit';\n\nimport { Campaign, CampaignConnector } from '@/models/Campaign';\n\nimport MetricsTableSimple from '@/components/_newDesign/common/MetricsTable/MetricsTableSimple.vue';\n\nimport CampaignMetrics from '@/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetrics.vue';\nimport CampaignChart from '@/components/_newDesign/Campaigns/CampaignChart.vue';\nimport CampaignTabs from '@/components/_newDesign/Campaigns/CampaignTabs.vue';\n\nimport CampaignDateFilterBtn from '@/components/_newDesign/Campaigns/buttons/CampaignDateFilterBtn.vue';\n\nexport default defineComponent({\n components: {\n DTableCell,\n MetricsTableSimple,\n CampaignMetrics,\n CampaignChart,\n CampaignTabs,\n CampaignDateFilterBtn,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n danboId: { type: String, required: true },\n campaignConnector: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { campaign, campaignConnector } = toRefs(props);\n\n const campaignConnectorLastUpdate = computed(() => moment(campaignConnector.value.source.updatedAt)\n .format('DD.MM.YYYY HH:mm'));\n\n const metricsData = computed(() => ({\n metricsTotal: campaignConnector.value.source.metricsTotal,\n metricsPlan: campaignConnector.value.planMetrics,\n startDate: campaign.value.startDate,\n endDate: campaign.value.endDate,\n }));\n\n const tabs = computed(() => {\n const uniqTypes = [...new Set(campaignConnector.value.adObjects.map(({ type }) => type))];\n\n return uniqTypes.map((type) => ({\n type,\n name: type,\n items: campaignConnector.value.adObjects.filter((addObject) => addObject.type === type),\n }));\n });\n\n return {\n metricsData,\n campaignConnectorLastUpdate,\n tabs,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignConnectorContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignConnectorContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignConnectorContent.vue?vue&type=template&id=70036b20&scoped=true&\"\nimport script from \"./CampaignConnectorContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignConnectorContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignConnectorContent.vue?vue&type=style&index=0&id=70036b20&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70036b20\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, provide, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport CampaignConnectorHeader from '@/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorHeader.vue';\nimport CampaignConnectorContent from '@/components/_newDesign/Campaigns/CampaignConnector/CampaignConnectorContent.vue';\n\nimport useQueryFilters from '@/composables/useQueryFilters';\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport { useCampaignDetails } from '@/composables/campaign';\nimport useMeta from '@/composables/meta/useMeta';\n\nimport { useCampaignStore } from '@/store/campaign';\n\nexport default defineComponent({\n components: {\n CampaignConnectorHeader,\n CampaignConnectorContent,\n AppView,\n },\n props: {\n campaignId: { type: String, required: true },\n danboId: { type: String, required: true },\n connectorId: { type: String, required: true },\n },\n setup(props, context) {\n const { campaignId, danboId, connectorId } = toRefs(props);\n\n const campaignStore = useCampaignStore();\n\n const {\n queryFilters,\n updateQueryFilters,\n } = useQueryFilters({\n filters: {\n from: undefined,\n to: undefined,\n },\n }, context);\n\n provide('queryFilters', queryFilters);\n provide('updateQueryFilters', updateQueryFilters);\n\n const {\n updateIsLoading,\n isLoading,\n } = useLayoutLoadingStatus();\n\n const {\n campaign,\n campaignCategories,\n campaignPageTitle,\n fetchCampaign,\n } = useCampaignDetails({ campaignId });\n\n const campaignConnector = computed(() => campaignStore.getters.campaignConnector);\n\n const campaignCategory = computed(() => campaignCategories.value\n .filter(({ placements }) => placements.find((placement) => placement.danboId === danboId.value))[0] ?? null);\n\n const pageMeta = computed(() => ({ title: campaignPageTitle.value }));\n\n useMeta(pageMeta);\n\n const fetch = async () => {\n updateIsLoading(true);\n\n try {\n await Promise.all([\n fetchCampaign(),\n campaignStore.dispatch('FETCH_CAMPAIGN_CONNECTOR', {\n campaignId: campaignId.value,\n danboId: danboId.value,\n connectorId: connectorId.value,\n params: queryFilters.value,\n }),\n ]);\n } finally {\n updateIsLoading(false);\n }\n };\n\n watch(queryFilters, () => fetch());\n\n fetch();\n\n return {\n campaign,\n campaignCategory,\n campaignConnector,\n isLoading,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignConnector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignConnector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignConnector.vue?vue&type=template&id=80e0d2e0&\"\nimport script from \"./CampaignConnector.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignConnector.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[(!_vm.isLoading)?_c('CampaignAdObjectHeader',{attrs:{\"campaign\":_vm.campaign,\"campaign-category\":_vm.campaignCategory,\"danbo-id\":_vm.danboId,\"connector-name\":_vm.adObject.parentAdObject.name,\"connector-id\":_vm.connectorId,\"level\":_vm.level,\"type\":_vm.type,\"on-site-id\":_vm.onSiteId}}):_vm._e()],1),_vm._v(\" \"),(!_vm.isLoading)?_c('CampaignAdObjectContent',{attrs:{\"campaign\":_vm.campaign,\"danbo-id\":_vm.danboId,\"connector-id\":_vm.connectorId,\"ad-object\":_vm.adObject}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport { DBreadcrumbs } from '@shared/druid-kit';\n\nimport { Campaign, CampaignCategory } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n campaignCategory: { type: Object as PropType, default: () => null },\n danboId: { type: String, required: true },\n connectorId: { type: String, required: true },\n connectorName: { type: String, required: true },\n level: { type: String, required: true },\n type: { type: String, required: true },\n onSiteId: { type: String, required: true },\n },\n setup(props) {\n const {\n campaign,\n campaignCategory,\n danboId,\n connectorId,\n connectorName,\n level,\n type,\n onSiteId,\n } = toRefs(props);\n\n const breadcrumbs = computed(() => [\n {\n label: campaign.value.brandName,\n path: `/clients/${campaign.value.clientId}/?brandId=${campaign.value.brandId}`,\n },\n {\n label: campaign.value.name,\n path: `/campaigns/${campaign.value.id}`,\n },\n {\n label: danboId.value,\n path: `/campaigns/${campaign.value.id}/placements/${danboId.value}`,\n },\n {\n label: connectorId.value,\n path: `/campaigns/${campaign.value.id}/placements/${danboId.value}/connectors/${connectorId.value}`,\n },\n {\n label: connectorName.value || '—',\n path: `/campaigns/${campaign.value.id}/placements/${danboId.value}/connectors/${connectorId.value}/${level.value}/${type.value}/${onSiteId.value}`,\n },\n ]);\n\n if (campaignCategory.value) {\n breadcrumbs.value.splice(2, 0, {\n label: campaignCategory.value.name,\n path: `/campaigns/${campaign.value.id}/category/${campaignCategory.value.id}`,\n });\n }\n\n return { breadcrumbs };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignAdObjectHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignAdObjectHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignAdObjectHeader.vue?vue&type=template&id=ed8c37d8&\"\nimport script from \"./CampaignAdObjectHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignAdObjectHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-ad-object-content\"},[_c('div',{staticClass:\"campaign-ad-object-content__block campaign-ad-object-content__block--white d-flex px-6 py-4 mb-4\"},[_c('CampaignMetrics',{staticClass:\"campaign-ad-object-content__metrics flex-shrink-0\",attrs:{\"metrics-data\":_vm.metricsData,\"metrics-with-progress\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"d-flex flex-column flex-grow-1\"},[_c('CampaignDateFilterBtn',{attrs:{\"campaign\":_vm.campaign}}),_vm._v(\" \"),_c('CampaignChart',{staticClass:\"mt-auto\",attrs:{\"metrics\":_vm.adObject.parentAdObject.metrics,\"visible-metric-names\":['Impressions', 'Clicks']}})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-ad-object-content__block mb-4\"},[_c('CampaignTabs',{attrs:{\"tabs\":_vm.tabs},scopedSlots:_vm._u([{key:\"items\",fn:function(ref){\nvar items = ref.items;\nreturn [_c('MetricsTableSimple',{attrs:{\"items\":items},scopedSlots:_vm._u([{key:\"header-name\",fn:function(){return [_vm._v(\"\\n Рекламные объекты\\n \")]},proxy:true},{key:\"row-prepend\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('DTableCell',{staticClass:\"campaign-ad-object-content__cell campaign-ad-object-content__cell--info\",attrs:{\"to\":(\"/campaigns/\" + (_vm.campaign.id) + \"/placements/\" + _vm.danboId + \"/connectors/\" + _vm.connectorId + \"/\" + (item.level) + \"/\" + (item.type) + \"/\" + (item.onSiteId))}},[_c('div',{staticClass:\"campaign-ad-object-content__table-link d-flex py-2 subtitle-2\",domProps:{\"textContent\":_vm._s(item.name || '–')}})])]}}],null,true)})]}}])})],1),_vm._v(\" \"),(_vm.adObjectLastUpdate)?_c('div',{staticClass:\"campaign-category-placement__block d-flex justify-end px-6\"},[_c('div',{staticClass:\"caption grey--text text--darken-1\"},[_vm._v(\"\\n Обновлено \"+_vm._s(_vm.adObjectLastUpdate)+\"\\n \")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, computed, toRefs } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DTableCell } from '@shared/druid-kit';\n\nimport { Campaign, CampaignAdObject } from '@/models/Campaign';\n\nimport MetricsTableSimple from '@/components/_newDesign/common/MetricsTable/MetricsTableSimple.vue';\n\nimport CampaignMetrics from '@/components/_newDesign/Campaigns/CampaignMetrics/CampaignMetrics.vue';\nimport CampaignChart from '@/components/_newDesign/Campaigns/CampaignChart.vue';\nimport CampaignTabs from '@/components/_newDesign/Campaigns/CampaignTabs.vue';\n\nimport CampaignDateFilterBtn from '@/components/_newDesign/Campaigns/buttons/CampaignDateFilterBtn.vue';\n\nexport default defineComponent({\n components: {\n DTableCell,\n MetricsTableSimple,\n CampaignMetrics,\n CampaignChart,\n CampaignDateFilterBtn,\n CampaignTabs,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n danboId: { type: String, required: true },\n connectorId: { type: String, required: true },\n adObject: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { campaign, adObject } = toRefs(props);\n\n const adObjectLastUpdate = computed(() => moment(adObject.value.parentAdObject.updatedAt)\n .format('DD.MM.YYYY HH:mm'));\n\n const metricsData = computed(() => ({\n metricsTotal: adObject.value.parentAdObject.metricsTotal,\n startDate: campaign.value.startDate,\n endDate: campaign.value.endDate,\n }));\n\n const tabs = computed(() => {\n const { adObjects } = adObject.value;\n\n const uniqTypes = [...new Set(adObjects.map(({ type }) => type))];\n\n return uniqTypes.map((type) => ({\n type,\n name: type,\n items: adObjects.filter((addObject) => addObject.type === type),\n }));\n });\n\n return {\n metricsData,\n adObjectLastUpdate,\n tabs,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignAdObjectContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignAdObjectContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignAdObjectContent.vue?vue&type=template&id=0cb94365&scoped=true&\"\nimport script from \"./CampaignAdObjectContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignAdObjectContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignAdObjectContent.vue?vue&type=style&index=0&id=0cb94365&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0cb94365\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, provide, watch } from '@vue/composition-api';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport CampaignAdObjectHeader from '@/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectHeader.vue';\nimport CampaignAdObjectContent from '@/components/_newDesign/Campaigns/CampaignAdObject/CampaignAdObjectContent.vue';\n\nimport useQueryFilters from '@/composables/useQueryFilters';\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport { useCampaignDetails } from '@/composables/campaign';\nimport useMeta from '@/composables/meta/useMeta';\n\nimport { useCampaignStore } from '@/store/campaign';\n\nexport default defineComponent({\n components: {\n CampaignAdObjectHeader,\n CampaignAdObjectContent,\n AppView,\n },\n props: {\n campaignId: { type: String, required: true },\n danboId: { type: String, required: true },\n connectorId: { type: String, required: true },\n level: { type: String, required: true },\n type: { type: String, required: true },\n onSiteId: { type: String, required: true },\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const {\n campaignId,\n danboId,\n connectorId,\n level,\n type,\n onSiteId,\n } = toRefs(props);\n\n const campaignStore = useCampaignStore();\n\n const {\n queryFilters,\n updateQueryFilters,\n } = useQueryFilters({\n filters: {\n from: undefined,\n to: undefined,\n },\n }, context);\n\n provide('queryFilters', queryFilters);\n provide('updateQueryFilters', updateQueryFilters);\n\n const {\n updateIsLoading,\n isLoading,\n } = useLayoutLoadingStatus();\n\n const {\n campaign,\n campaignCategories,\n fetchCampaign,\n campaignPageTitle,\n } = useCampaignDetails({ campaignId });\n\n const adObject = computed(() => campaignStore.getters.campaignAdObject);\n\n const campaignCategory = computed(() => campaignCategories.value\n .filter(({ placements }) => placements.find((placement) => placement.danboId === danboId.value))[0] ?? null);\n\n const pageMeta = computed(() => ({ title: campaignPageTitle.value }));\n\n useMeta(pageMeta);\n\n const fetch = async () => {\n updateIsLoading(true);\n\n try {\n await Promise.all([\n fetchCampaign(),\n campaignStore.dispatch('FETCH_CAMPAIGN_AD_OBJECT', {\n campaignId: campaignId.value,\n danboId: danboId.value,\n connectorId: connectorId.value,\n level: level.value,\n type: type.value,\n onSiteId: onSiteId.value,\n params: queryFilters.value,\n }),\n ]);\n } finally {\n updateIsLoading(false);\n }\n };\n\n watch(() => route.value, () => fetch());\n\n fetch();\n\n return {\n campaign,\n campaignCategory,\n adObject,\n isLoading,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignAdObject.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignAdObject.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignAdObject.vue?vue&type=template&id=48547ac8&\"\nimport script from \"./CampaignAdObject.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignAdObject.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"campaign-editor\"},[_c('portal',{staticClass:\"campaign-editor-header\",attrs:{\"to\":\"app-header-content\"}},[(!_vm.isLoading)?_c('CampaignEditorHeader',{attrs:{\"campaign\":_vm.campaign}}):_vm._e()],1),_vm._v(\" \"),(!_vm.isLoading)?_c('CampaignEditorContent',{staticClass:\"campaign-editor__content\",attrs:{\"campaign\":_vm.campaign}}):_vm._e(),_vm._v(\" \"),(!_vm.isLoading)?_c('CampaignEditorFooter',{attrs:{\"campaign\":_vm.campaign},on:{\"save\":_vm.save,\"cancel\":_vm.cancel}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-editor-header d-flex align-center justify-space-between\"},[_c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}}),_vm._v(\" \"),(_vm.searchIsShown)?_c('v-text-field',{staticClass:\"campaign-editor-header__search\",attrs:{\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"DanboId\",\"prepend-inner-icon\":\"mdi-magnify\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport { DBreadcrumbs } from '@shared/druid-kit';\n\nimport { Campaign } from '@/models/Campaign';\n\nimport { useCampaignEditorPlacementsStore } from '@/store/campaignEditor/campaignEditorPlacements';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const { campaign } = toRefs(props);\n\n const campaignEditorPlacementsStore = useCampaignEditorPlacementsStore();\n\n const breadcrumbs = computed(() => [\n {\n label: campaign.value.brandName,\n path: `/clients/${campaign.value.clientId}/?brandId=${campaign.value.brandId}`,\n },\n {\n label: campaign.value.name,\n path: `/campaigns/${campaign.value.id}`,\n },\n {\n label: 'Настройки кампании',\n path: { name: 'campaign-editor' },\n },\n ]);\n\n const query = computed({\n get() {\n return campaignEditorPlacementsStore.getters.filters.filter;\n },\n set: debounce((val: string) => {\n campaignEditorPlacementsStore.actions.UPDATE_FILTERS({ filter: val });\n }, 300),\n });\n\n const searchIsShown = computed(() => route.value.name === 'campaign-editor-placements');\n\n return {\n breadcrumbs,\n query,\n searchIsShown,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignEditorHeader.vue?vue&type=template&id=046659ad&scoped=true&\"\nimport script from \"./CampaignEditorHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignEditorHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignEditorHeader.vue?vue&type=style&index=0&id=046659ad&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"046659ad\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-editor-content\"},[_c('div',{staticClass:\"campaign-editor-content__header px-6 mb-5\"},[_c('v-tabs',{staticClass:\"text-body-2\",attrs:{\"background-color\":\"transparent\",\"slider-color\":\"primary-gradient\"}},_vm._l((_vm.tabs),function(tab,idx){return _c('v-tab',{key:idx,staticClass:\"campaign-editor-content__tab body-2\",class:{\n 'mr-4': idx < _vm.tabs.length - 1,\n },attrs:{\"active-class\":\"campaign-editor-content__tab--active\",\"to\":tab.to}},[_vm._v(\"\\n \"+_vm._s(tab.label)+\"\\n \")])}),1)],1),_vm._v(\" \"),_c('keep-alive',[_c('router-view',{staticClass:\"campaign-editor-content__main\",attrs:{\"campaign\":_vm.campaign}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\n\nimport { Campaign } from '@/models/Campaign';\n\nexport default defineComponent({\n props: {\n campaign: { type: Object as PropType, required: true },\n },\n setup() {\n const tabs = ref([\n {\n label: 'Размещения',\n to: { name: 'campaign-editor-placements' },\n },\n {\n label: 'Цели',\n to: { name: 'campaign-editor-goals' },\n },\n {\n label: 'Категории',\n to: { name: 'campaign-editor-categories' },\n },\n {\n label: 'Основные настройки',\n to: { name: 'campaign-editor-settings' },\n },\n ]);\n\n return {\n tabs,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignEditorContent.vue?vue&type=template&id=9c87a3ea&scoped=true&\"\nimport script from \"./CampaignEditorContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignEditorContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignEditorContent.vue?vue&type=style&index=0&id=9c87a3ea&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9c87a3ea\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VTab,VTabs})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('portal',{attrs:{\"to\":\"app-bottom-navigation-content\"}},[_c('div',[(_vm.campaignHasBeenChanged)?_c('div',{staticClass:\"px-6 py-2 warning\"},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"16\",\"color\":\"white\"}},[_vm._v(\"\\n mdi-alert-circle-outline\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"caption white--text\"},[_vm._v(\"Сохраните настройки кампании, чтобы применить изменения\")])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center px-6 py-3\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"loading\":_vm.isSaving,\"rounded\":\"\",\"small\":\"\",\"disabled\":_vm.saveBtnDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Сохранить настройки кампании\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"small\":\"\"},on:{\"click\":_vm.cancel}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Отмена\")])])],1),_vm._v(\" \"),(_vm.filesButttonsIsShown)?_c('div',{staticClass:\"d-flex ml-auto\"},[_c('DBtnInline',{staticClass:\"mr-5\",on:{\"click\":function($event){return _vm.openModal('reports')}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-download\\n \")])]},proxy:true}],null,false,1194711284)},[_vm._v(\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n Скачать план/флайты\\n \")])]),_vm._v(\" \"),_c('DBtnInline',{on:{\"click\":function($event){return _vm.openModal('uploadFiles')}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-upload\\n \")])]},proxy:true}],null,false,2890127395)},[_vm._v(\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n Загрузить план/флайты\\n \")])])],1):_vm._e(),_vm._v(\" \"),_c('CampaignPlacementsReportsModal',{attrs:{\"campaign\":_vm.campaign},model:{value:(_vm.modalsMap.reports.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.reports, \"value\", $$v)},expression:\"modalsMap.reports.value\"}}),_vm._v(\" \"),_c('CampaignPlacementsUploadFilesModal',{attrs:{\"campaign\":_vm.campaign},model:{value:(_vm.modalsMap.uploadFiles.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.uploadFiles, \"value\", $$v)},expression:\"modalsMap.uploadFiles.value\"}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({attrs:{\"width\":\"542\",\"title\":\"Скачать план/флайты\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main-content\",fn:function(){return [_c('div',{staticClass:\"mb-4 body-2\"},[_vm._v(\"\\n Файл в формате .xls\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex\"},_vm._l((_vm.reports),function(report){return _c('v-btn',{key:report.slug,staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"loading\":_vm.reportLoadingsMap[report.slug],\"rounded\":\"\"},on:{\"click\":function($event){return _vm.downloadReport(report)}}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(report.name)}})])}),1)]},proxy:true}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, toRefs, ref, PropType } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport downloadFile from '@/utils/downloadFile';\n\nimport { Campaign } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n AppModal,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const { campaign } = toRefs(props);\n\n const reports = ref([\n {\n slug: 'placements',\n url: `/api/campaigneditor/${campaign.value.id}/reports/plan`,\n name: 'План по размещениям',\n gtm: {\n eventAction: 'Download MediaPlan',\n eventLabel: 'MediaPlan',\n },\n },\n {\n slug: 'flights',\n url: `/api/campaigneditor/${campaign.value.id}/reports/flights-plan`,\n name: 'План с разбивкой по флайтам',\n gtm: {\n eventAction: 'Download Flights',\n eventLabel: 'Flights',\n },\n },\n ] as const);\n\n type Report = typeof reports.value[number];\n\n const reportLoadingsMap = ref(reports.value.reduce((map, report) => {\n map[report.slug] = false;\n\n return map;\n }, {} as Record));\n\n const close = () => {\n context.emit('input', false);\n };\n\n const downloadReport = async (report: Report) => {\n reportLoadingsMap.value[report.slug] = true;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign Editor',\n event_action: report.gtm.eventAction,\n event_label: report.gtm.eventLabel,\n d1d_client_id: campaign.value.clientId,\n d1d_client_name: campaign.value.clientName,\n d1d_brand_id: campaign.value.brandId,\n d1d_brand_name: campaign.value.brandName,\n d1d_campaign_id: campaign.value.id,\n d1d_campaign_name: campaign.value.name,\n });\n\n try {\n await downloadFile({ url: report.url });\n\n close();\n\n // TODO: Обработать ошибку, показывать модалку\n } finally {\n reportLoadingsMap.value[report.slug] = false;\n }\n };\n\n return {\n reports,\n reportLoadingsMap,\n close,\n downloadReport,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsReportsModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsReportsModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementsReportsModal.vue?vue&type=template&id=56a11b9e&\"\nimport script from \"./CampaignPlacementsReportsModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementsReportsModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({attrs:{\"width\":\"542\",\"title\":\"Загрузить план/флайты\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main-content\",fn:function(){return [_c('div',{staticClass:\"mb-4 body-2\"},[_vm._v(\"\\n Файл в формате .xls\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center ml-auto\"},_vm._l((_vm.reports),function(report){return _c('DBtnUpload',{key:report.slug,staticClass:\"mr-2\",attrs:{\"loading\":_vm.reportsLoadingsMap[report.slug],\"accept\":\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"},on:{\"input\":function($event){return _vm.uploadFiles($event, report)}}},[_vm._v(\"\\n \"+_vm._s(report.name)+\"\\n \")])}),1)]},proxy:true}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, ref, toRefs, PropType } from '@vue/composition-api';\n\nimport { DBtnUpload } from '@shared/druid-kit';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { Campaign } from '@/models/Campaign';\n\nimport { useCampaignEditorPlacementsStore } from '@/store/campaignEditor/campaignEditorPlacements';\n\nimport modally from '@/services/modally';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nexport default defineComponent({\n components: {\n DBtnUpload,\n AppModal,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const { campaign } = toRefs(props);\n\n const campaignEditorPlacementsStore = useCampaignEditorPlacementsStore();\n\n const reports = ref([\n {\n slug: 'placements',\n action: 'UPLOAD_PLACEMENT_PLAN',\n name: 'Загрузить планы',\n gtm: {\n eventAction: 'Upload MediaPlan',\n },\n },\n {\n slug: 'flights',\n action: 'UPLOAD_FLIGHTS_PLAN',\n name: 'Загрузить флайты',\n gtm: {\n eventAction: 'Upload Flights',\n },\n },\n ] as const);\n\n type Report = typeof reports.value[number];\n\n const reportsLoadingsMap = ref(reports.value.reduce((map, report) => {\n map[report.slug] = false;\n\n return map;\n }, {} as Record));\n\n const close = () => {\n context.emit('input', false);\n };\n\n const uploadFiles = async (formData: FormData, report: Report) => {\n reportsLoadingsMap.value[report.slug] = true;\n\n try {\n await campaignEditorPlacementsStore.dispatch(report.action, { campaignId: campaign.value.id, formData });\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign Editor',\n event_action: report.gtm.eventAction,\n event_label: 'Success',\n d1d_client_id: campaign.value.clientId,\n d1d_client_name: campaign.value.clientName,\n d1d_brand_id: campaign.value.brandId,\n d1d_brand_name: campaign.value.brandName,\n d1d_campaign_id: campaign.value.id,\n d1d_campaign_name: campaign.value.name,\n });\n\n close();\n } catch (e) {\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign Editor',\n event_action: report.gtm.eventAction,\n event_label: 'Failed',\n d1d_client_id: campaign.value.clientId,\n d1d_client_name: campaign.value.clientName,\n d1d_brand_id: campaign.value.brandId,\n d1d_brand_name: campaign.value.brandName,\n d1d_campaign_id: campaign.value.id,\n d1d_campaign_name: campaign.value.name,\n });\n\n if (!isError(e)) return;\n\n if (isAxiosError(e)) {\n const response = e.response?.data;\n\n if ((typeof response) !== 'string' && !Array.isArray(response)) return;\n\n const errors = Array.isArray(response) ? response : [response];\n\n modally.show({ title: 'Произошла ошибка', content: errors.join(', '), status: 'error' });\n } else {\n throw new AppJsonError({ error: e, options: { showingModal: false } });\n }\n } finally {\n reportsLoadingsMap.value[report.slug] = false;\n }\n };\n\n return {\n reports,\n uploadFiles,\n reportsLoadingsMap,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsUploadFilesModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsUploadFilesModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementsUploadFilesModal.vue?vue&type=template&id=4d57b336&\"\nimport script from \"./CampaignPlacementsUploadFilesModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementsUploadFilesModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, computed } from '@vue/composition-api';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport { Campaign } from '@/models/Campaign';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport useModals from '@/composables/useModals';\n\nimport { useCampaignEditorStore } from '@/store/campaignEditor';\n\nimport CampaignPlacementsReportsModal from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsReportsModal.vue';\nimport CampaignPlacementsUploadFilesModal from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsUploadFilesModal.vue';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n CampaignPlacementsReportsModal,\n CampaignPlacementsUploadFilesModal,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const campaignEditorStore = useCampaignEditorStore();\n\n const {\n modalsMap,\n openModal,\n } = useModals(['reports', 'uploadFiles']);\n\n const isSaving = computed(() => campaignEditorStore.getters.isSaving);\n\n const campaignHasBeenChanged = computed(() => campaignEditorStore.getters.hasBeenChanged);\n\n const saveBtnDisabled = computed(() => !isSaving.value && !campaignEditorStore.getters.hasBeenChanged);\n\n const filesButttonsIsShown = computed(() => ['campaign-editor-plan', 'campaign-editor-placements'].includes(route.value.name || ''));\n\n const save = () => {\n context.emit('save');\n };\n\n const cancel = () => {\n context.emit('cancel');\n };\n\n return {\n modalsMap,\n openModal,\n isSaving,\n campaignHasBeenChanged,\n saveBtnDisabled,\n filesButttonsIsShown,\n save,\n cancel,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignEditorFooter.vue?vue&type=template&id=bb45dcea&\"\nimport script from \"./CampaignEditorFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignEditorFooter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed } from '@vue/composition-api';\nimport { Route, NavigationGuardNext } from 'vue-router';\n\nimport useRouter from '@/packages/hooks/useRouter';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport CampaignEditorHeader from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorHeader.vue';\nimport CampaignEditorContent from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorContent.vue';\nimport CampaignEditorFooter from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorFooter.vue';\n\nimport useMeta from '@/composables/meta/useMeta';\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport { useCampaignEditorStore } from '@/store/campaignEditor';\nimport { useCampaignStore } from '@/store/campaign';\n\nimport modally from '@/services/modally';\n\nexport default defineComponent({\n components: {\n AppView,\n CampaignEditorHeader,\n CampaignEditorContent,\n CampaignEditorFooter,\n },\n async beforeRouteEnter(to: Route, from: Route, next: NavigationGuardNext): Promise {\n next(async (vm) => {\n await vm.$store.dispatch('campaignEditor/RESET_EDITORS_CHANGES');\n });\n },\n async beforeRouteLeave(to: Route, from: Route, next: NavigationGuardNext): Promise {\n const customNext = async () => {\n await this.$store.dispatch('campaignEditor/RESET_EDITORS_CHANGES');\n\n next();\n };\n\n if (!this.campaignHasBeenChanged) return customNext();\n\n if (this.isSaving) {\n const result = await modally.show({\n type: 'confirm',\n status: 'warning',\n title: 'Идет сохранение. Выйти из редактирования?',\n });\n\n if (!result) return;\n\n customNext();\n } else if (!this.isCanceling) {\n await modally.show({\n status: 'warning',\n title: 'Есть несохраненные данные',\n content: 'Изменения в настройках кампании будут сброшены',\n buttons: [\n {\n props: {\n text: 'Выйти без сохранения',\n color: 'warning',\n outlined: true,\n },\n action: customNext,\n },\n {\n props: {\n text: 'Сохранить и выйти',\n color: 'primary',\n outlined: true,\n },\n action: async () => {\n await this.save({ withConfirm: false });\n\n customNext();\n },\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary-gradient',\n },\n action: () => { /* empty */ },\n },\n ],\n });\n } else {\n customNext();\n }\n },\n props: {\n campaignId: { type: String, required: true },\n },\n setup(props, context) {\n const { campaignId } = toRefs(props);\n\n const router = useRouter(context);\n\n const campaignStore = useCampaignStore();\n const campaignEditorStore = useCampaignEditorStore();\n\n const {\n isLoading,\n updateIsLoading,\n } = useLayoutLoadingStatus();\n\n const isSaving = computed(() => campaignEditorStore.getters.isSaving);\n const isCanceling = computed(() => campaignEditorStore.getters.isCanceling);\n\n const campaign = computed(() => campaignStore.getters.campaign);\n const campaignPath = computed(() => `/campaigns/${campaign.value?.id}`);\n const campaignHasBeenChanged = computed(() => campaignEditorStore.getters.hasBeenChanged);\n\n const pageMeta = computed(() => ({\n title: campaign.value\n ? `${campaign.value.brandName} • ${campaign.value.name} • Настройки кампании`\n : 'Настройки кампании',\n }));\n\n useMeta(pageMeta);\n\n const fetch = async () => {\n updateIsLoading(true);\n\n try {\n await campaignEditorStore.dispatch('FETCH', { campaignId: campaignId.value });\n } finally {\n updateIsLoading(false);\n }\n };\n\n const save = async (options: { withConfirm: boolean }) => {\n await campaignEditorStore.dispatch('SAVE', { options });\n };\n\n const cancel = async () => {\n const redirectCallback = () => {\n campaignEditorStore.commit('SET_IS_CANCELING', false);\n };\n\n const redirect = () => {\n router.push(campaignPath.value, redirectCallback, redirectCallback);\n };\n\n campaignEditorStore.commit('SET_IS_CANCELING', true);\n\n if (isSaving.value || !campaignHasBeenChanged.value) return redirect();\n\n const result = await modally.show({\n status: 'warning',\n title: 'Есть несохраненные данные',\n content: 'Изменения в настройках кампании будут сброшены',\n buttons: [\n {\n props: {\n text: 'Выйти без сохранения',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary-gradient',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) {\n campaignEditorStore.commit('SET_IS_CANCELING', false);\n\n return;\n }\n\n redirect();\n };\n\n fetch();\n\n return {\n isLoading,\n isSaving,\n isCanceling,\n campaign,\n campaignHasBeenChanged,\n save,\n cancel,\n };\n },\n});\n","var render, staticRenderFns\nimport script from \"./HnTableCellMixin.vue?vue&type=script&lang=ts&\"\nexport * from \"./HnTableCellMixin.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignEditor.vue?vue&type=template&id=7385218c&scoped=true&\"\nimport script from \"./CampaignEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignEditor.vue?vue&type=style&index=0&id=7385218c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7385218c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"campaign-editor-placments\"},[(_vm.isLoading)?_c('CampaignEditorTableLoader'):[_c('div',{staticClass:\"campaign-editor-placments__header d-flex align-baseline px-6 mb-4\"},[_c('div',{staticClass:\"mr-2 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Размещения\\n \")]),_vm._v(\" \"),_c('DBtnInline',{staticClass:\"mr-auto\",on:{\"click\":function($event){_vm.placementsIsHidden = !_vm.placementsIsHidden}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n \"+_vm._s(_vm.placementsIsHidden ? 'mdi-eye-off-outline' : 'mdi-eye')+\"\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n \"+_vm._s(_vm.placementsIsHidden ? 'Только скрытые' : 'Только видимые')+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center flex-shrink-0\"},[_c('span',{staticClass:\"mr-3 caption grey--text\"},[_vm._v(\"Колонки\")]),_vm._v(\" \"),_c('v-item-group',{attrs:{\"value\":_vm.currentColumnsPresetsSlugs,\"mandatory\":\"\",\"multiple\":\"\"},on:{\"change\":_vm.onChangeCurrentColumnsPresetsSlugs}},_vm._l((_vm.columnsPresets),function(preset){return _c('v-item',{key:preset.slug,attrs:{\"value\":preset.slug},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar active = ref.active;\nvar toggle = ref.toggle;\nreturn [_c('v-btn',{staticClass:\"campaign-editor-placments__tab-btn mr-2\",class:[\n active ? 'campaign-editor-placments__tab-btn--active' : '',\n (\"campaign-editor-placments__tab-btn--\" + (preset.slug)) ],attrs:{\"outlined\":!active,\"rounded\":\"\",\"small\":\"\",\"dense\":\"\"},on:{\"click\":toggle}},[_vm._v(\"\\n \"+_vm._s(preset.label)+\"\\n \")])]}}],null,true)})}),1),_vm._v(\" \"),(_vm.metricsBtnIsShown)?[_c('v-divider',{staticClass:\"my-1 mr-2 text grey--text text--lghten-1\",attrs:{\"vertical\":\"\"}}),_vm._v(\" \"),_c('DBtnInline',{on:{\"click\":_vm.openMetricsModal},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-cog\\n \")])]},proxy:true}],null,false,1742849833)},[_vm._v(\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n Метрики\\n \")])])]:_vm._e()],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-editor-placments__main\",class:{ 'campaign-editor-placments__main--stub': !_vm.placements.length }},[(_vm.placements.length)?_c('CampaignPlacementsTable',{staticClass:\"campaign-editor-placments__table\",attrs:{\"campaign\":_vm.campaign,\"campaign-placements\":_vm.placements,\"campaign-plan-metrics\":_vm.visibleCampaignPlanMetrics,\"placements-has-been-changed\":_vm.placementsHasBeenChanged,\"columns-presets-slugs\":_vm.currentColumnsPresetsSlugs},on:{\"change\":_vm.onChangePlacementsTable}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Нет ни одного размещения :-(\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n Попробуйте изменить запрос\\n \")])]],2),_vm._v(\" \"),_c('CampaignPlacementsMetricsModal',_vm._b({model:{value:(_vm.modalsMap.metrics.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.metrics, \"value\", $$v)},expression:\"modalsMap.metrics.value\"}},'CampaignPlacementsMetricsModal',_vm.modalsMap.metrics.props,false)),_vm._v(\" \"),_c('CampaignPlacementsMarkupsModal',_vm._b({model:{value:(_vm.modalsMap.markups.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.markups, \"value\", $$v)},expression:\"modalsMap.markups.value\"}},'CampaignPlacementsMarkupsModal',_vm.modalsMap.markups.props,false))]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mitt from 'mitt';\n\nimport { CampaignEditorPlacement } from '@/models/Campaign';\n\nconst campaignEditorPlacementsEmitter = mitt<{\n openMarkupsModal: { placement: CampaignEditorPlacement };\n closeMarkupsModal: { markupsIsChanged: boolean };\n}>();\n\nexport type CampaignEditorPlacementsEmitter = typeof campaignEditorPlacementsEmitter;\n\nexport default campaignEditorPlacementsEmitter;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"tableEl\",staticClass:\"campaign-placements-table\"},[_c('HnTable',{staticClass:\"campaign-placements-table__content\",attrs:{\"data\":_vm.campaignPlacements,\"columns\":_vm.hnTableColumns,\"settings\":_vm.hnTableSettings,\"data-has-been-changed\":_vm.placementsHasBeenChanged,\"columns-presets-map\":_vm.columnsPresetsMap,\"columns-presets-slugs\":_vm.cuurentColumnsPresetsSlugs},on:{\"initialized\":_vm.onHnTableInitialized}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.hotTableInitialized)?_c('HotTable',{key:_vm.hotTableKey,ref:\"hotTableComponent\",staticClass:\"hn-table\",attrs:{\"settings\":_vm.hotSettings}},_vm._l((_vm.hotColumns),function(hotColumn,idx){return _c('HotColumn',{key:((hotColumn.data) + \"-\" + idx),attrs:{\"data\":hotColumn.data,\"settings\":hotColumn.settings}},[(hotColumn.rendererComponent)?_c(hotColumn.rendererComponent,_vm._b({key:((hotColumn.data) + \"-\" + idx + \"-renderer\"),tag:\"component\",attrs:{\"is-first-col\":idx === 0,\"is-last-col\":idx === _vm.hotColumns.length - 1,\"hot-renderer\":\"\"}},'component',Object.assign({}, hotColumn.props),false)):_vm._e(),_vm._v(\" \"),(hotColumn.editorComponent)?_c(hotColumn.editorComponent,_vm._b({key:((hotColumn.data) + \"-\" + idx + \"-editor\"),tag:\"component\",attrs:{\"is-first-col\":idx === 0,\"is-last-col\":idx === _vm.hotColumns.length - 1,\"hot-editor\":\"\"}},'component',Object.assign({}, hotColumn.props),false)):_vm._e()],1)}),1):_c('div',{ref:\"rootEl\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed, SetupContext, ComputedRef } from '@vue/composition-api';\nimport { Configuration } from '@/configuration';\n\nexport default (context: SetupContext): ComputedRef => {\n const configuration = computed(() => context.root.$configuration);\n\n return configuration;\n};\n","import Handsontable from 'handsontable';\n\nexport interface Coords { row: number; col: number }\n\nclass HnTableCellClassName {\n private table: Handsontable;\n\n private coords: Coords;\n\n constructor({ table, coords }: { table: Handsontable; coords: Coords }) {\n this.table = table;\n this.coords = coords;\n }\n\n public get(): string {\n const cellMeta = this.table.getCellMeta(this.coords.row, this.coords.col);\n\n let classList = cellMeta.className || '';\n\n if (Array.isArray(classList)) {\n classList = classList.join(' ');\n }\n\n return classList;\n }\n\n public add(className: string): void {\n const classList = this.get();\n const classListIncludesClassName = classList.includes(className);\n\n if (classListIncludesClassName) return;\n\n const newClassList = `${classList} ${className}`;\n\n this.table.setCellMeta(this.coords.row, this.coords.col, 'className', newClassList);\n }\n\n public remove(className: string): void {\n const classList = this.get();\n const newClassList = classList.replace(className, '');\n\n this.table.setCellMeta(this.coords.row, this.coords.col, 'className', newClassList);\n }\n}\n\nexport { HnTableCellClassName };\nexport default HnTableCellClassName;\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\n\nimport {\n defineComponent,\n PropType,\n toRefs,\n provide,\n ref,\n computed,\n watch,\n onMounted,\n nextTick,\n ComponentInstance,\n onBeforeUnmount,\n} from '@vue/composition-api';\n\nimport Handsontable from 'handsontable';\nimport { HotTable, HotColumn } from '@handsontable/vue';\nimport { get, cloneDeep } from 'lodash';\n\nimport useConfiguration from '@/packages/hooks/useConfiguration';\n\nimport HnTableColumn from '../models/HnTableColumn';\n\nimport { HnTableChangedCells } from '../types';\n\nimport { HnTableCellClassName } from '../utils';\n\ninterface HTableSettings extends Handsontable.GridSettings {\n fixedColumnsRight?: number;\n fixedColumnsRightWithBorder?: boolean;\n}\n\nexport default defineComponent({\n components: {\n HotTable,\n HotColumn,\n },\n props: {\n data: { type: Array as PropType, default: () => [] },\n columns: { type: Array as PropType, default: () => [] },\n settings: { type: Object as PropType, default: () => ({}) },\n dataHasBeenChanged: { type: Boolean, default: false },\n columnsPresetsMap: { type: Object as PropType>, default: () => ({}) },\n columnsPresetsSlugs: { type: Array as PropType, default: () => [] },\n },\n setup(props, context) {\n const {\n data,\n columns,\n settings,\n dataHasBeenChanged,\n columnsPresetsMap,\n columnsPresetsSlugs,\n } = toRefs(props);\n\n const configuration = useConfiguration(context);\n\n const hotTableKey = ref(1);\n\n const rootEl = ref(null);\n const hotTableComponent = ref(null);\n\n const hotTableInitialized = ref(false);\n\n const hotTableHeight = ref<(() => number | string) | string | number | undefined>(undefined);\n\n const hotTableColumnSortingConfig = ref(null);\n\n const hotTableChangedCells = ref([]);\n\n provide('hotTableChangedCells', hotTableChangedCells);\n\n const hotInstance = computed(() => {\n const instance = get(hotTableComponent.value, 'hotInstance');\n\n if (!instance) return undefined;\n\n return instance as Handsontable;\n });\n\n const headers = computed(() => columns.value.map((column) => ({\n text: column.title,\n ...column.header,\n })));\n\n const hotData = ref([]);\n\n const cellsWidthsMap = ref>({});\n\n const hiddenColumnsData = ref([]);\n\n const hotHeaders = computed(() => headers.value.map((header) => header.text));\n\n const hotColumns = computed(() => columns.value);\n\n const hotTableViewportColumnRenderingOffset = computed(() => {\n if (settings.value?.fixedColumnsLeft || settings.value?.fixedColumnsRight) return hotColumns.value.length;\n\n return settings.value?.viewportColumnRenderingOffset || 'auto';\n });\n\n const hiddenColumns = computed({\n get() {\n const currentHotInstance = hotInstance.value;\n\n if (!currentHotInstance) return hiddenColumnsData.value;\n\n const disabledPresets = Object.keys(columnsPresetsMap.value).filter((key) => !columnsPresetsSlugs.value.includes(key));\n\n const colProps = disabledPresets.reduce((acc, slug) => {\n acc.push(...columnsPresetsMap.value[slug].map((col) => col.data));\n\n return acc;\n }, []);\n\n const hiddenColIndexes = colProps.map((prop) => currentHotInstance.propToCol(prop));\n\n return [...new Set([\n ...hiddenColumnsData.value,\n ...hiddenColIndexes,\n ])];\n },\n set(val: number[]) {\n hiddenColumnsData.value = val;\n },\n });\n\n const setHotData = () => {\n hotData.value = cloneDeep(data.value);\n };\n\n const refreshHotData = () => {\n hotData.value = [...hotData.value];\n };\n\n const updateHotData = async () => {\n await nextTick();\n\n hotInstance.value?.loadData(hotData.value);\n };\n\n const hotTableCellsHighlightEnable = async () => {\n await nextTick();\n\n const localHotInstance = hotInstance.value;\n\n if (!localHotInstance) return;\n\n hotTableChangedCells.value.forEach((cell) => {\n const hnTableCellClassName = new HnTableCellClassName({ table: localHotInstance, coords: cell });\n\n hnTableCellClassName.add('hn-table__cell--edited');\n });\n\n localHotInstance.render();\n };\n\n const hotTableCellsHighlightDisable = async () => {\n await nextTick();\n\n const localHotInstance = hotInstance.value;\n\n if (!localHotInstance) return;\n\n hotTableChangedCells.value.forEach((cell) => {\n const hnTableCellClassName = new HnTableCellClassName({ table: localHotInstance, coords: cell });\n\n hnTableCellClassName.remove('hn-table__cell--edited');\n });\n\n hotTableChangedCells.value = [];\n\n localHotInstance.render();\n };\n\n watch(data, () => {\n // TODO: Разобраться в чем дело\n // Нужен либо setTimeout либо два (!) nextTick, чтобы Handsontable отобразил данные на странице редактирования размещения (флайтов)\n setTimeout(() => {\n setHotData();\n }, 30);\n }, { immediate: true });\n\n watch(dataHasBeenChanged, (value) => {\n if (value) return;\n\n hotTableCellsHighlightDisable();\n });\n\n watch(hotInstance, async (value) => {\n if (!value) return;\n\n context.emit('initialized', value);\n });\n\n watch(hotData, () => {\n updateHotData();\n\n hotTableCellsHighlightEnable();\n }, { immediate: true });\n\n watch(hotColumns, async () => {\n refreshHotData(); // костыль для обновления колонок\n\n hotTableKey.value += 1;\n }, { immediate: true });\n\n watch(hotTableChangedCells, () => {\n hotTableCellsHighlightEnable();\n });\n\n watch(hiddenColumns, (val, prevVal) => {\n const currentHotInstance = hotInstance.value;\n\n if (!currentHotInstance) return;\n\n const hiddenColumnsPlugin = currentHotInstance.getPlugin('hiddenColumns');\n\n hiddenColumnsPlugin.showColumns(prevVal);\n hiddenColumnsPlugin.hideColumns(val);\n\n currentHotInstance.render();\n });\n\n const setHotTableHeight = async () => {\n await nextTick();\n\n if (['firefox', 'safari'].includes(Vue.device.browser.slug) && settings.value.height === '100%') {\n const parentEl = rootEl.value?.parentNode;\n\n if (parentEl instanceof HTMLElement) {\n const parentElClientRect = parentEl.getBoundingClientRect();\n const parentElHeight = parentElClientRect.height;\n\n hotTableHeight.value = parentElHeight;\n }\n } else {\n hotTableHeight.value = settings.value.height ?? 'auto';\n }\n };\n\n onMounted(async () => {\n await setHotTableHeight();\n\n await nextTick();\n\n hotTableInitialized.value = true;\n });\n\n const getFixedCellsWidthsMap = () => {\n const { fixedColumnsLeft, fixedColumnsRight } = settings.value;\n\n const columnsLength = hotColumns.value.length;\n const rightColumnsRange = fixedColumnsRight ? columnsLength - 1 - fixedColumnsRight : null;\n\n let leftPosition = 0;\n let rightPosition = 0;\n\n return Object.keys(cellsWidthsMap.value).reduce>((acc, key) => {\n const cellIdx = parseInt(key, 10);\n\n if (fixedColumnsLeft && cellIdx < fixedColumnsLeft) {\n leftPosition += cellsWidthsMap.value?.[cellIdx - 1] || 0;\n\n acc[cellIdx] = leftPosition;\n }\n\n if (fixedColumnsRight && cellIdx < fixedColumnsRight) {\n rightPosition += cellsWidthsMap.value?.[columnsLength - cellIdx] || 0;\n }\n\n if (rightColumnsRange && cellIdx > rightColumnsRange) {\n acc[cellIdx] = rightPosition;\n\n rightPosition -= cellsWidthsMap.value?.[cellIdx + 1] || 0;\n }\n\n return acc;\n }, {});\n };\n\n const addFixedCellStyles = (cellEl: HTMLTableCellElement, cellIdx: number) => {\n const fixedCellsWidthsMap = getFixedCellsWidthsMap();\n\n if (!(cellIdx in fixedCellsWidthsMap)) return;\n\n const { fixedColumnsLeft, fixedColumnsRight, fixedColumnsRightWithBorder } = settings.value;\n\n const direction = fixedColumnsLeft && cellIdx < fixedColumnsLeft ? 'left' : 'right';\n const position = fixedCellsWidthsMap[cellIdx];\n\n cellEl.style.position = 'sticky';\n cellEl.style.zIndex = '1';\n\n const maxIdx = Object.keys(fixedCellsWidthsMap).reduce((idxA, idxB) => Math.max(idxA, parseInt(idxB, 10)), 0);\n\n if (fixedColumnsRight && fixedColumnsRightWithBorder && cellIdx === (maxIdx - fixedColumnsRight + 1)) {\n cellEl.style.borderLeft = '1px solid #9E9E9E';\n }\n\n cellEl.style[direction] = `${position}px`;\n };\n\n const generateCellsWidthsMap = () => {\n if (!hotInstance.value) return;\n\n const tableData = hotInstance.value.getData();\n\n tableData.forEach((row, rowIdx) => {\n row.forEach((cellValue: unknown, cellIdx: number) => {\n if (!hotInstance.value) return;\n\n const cellVisualIdx = hotInstance.value.toVisualColumn(cellIdx);\n const cell = hotInstance.value.getCell(rowIdx, cellVisualIdx);\n\n if (!cell) return;\n\n cellsWidthsMap.value[cellVisualIdx] = cell.scrollWidth;\n });\n });\n };\n\n const hnTableValidateCells = () => {\n const localHotInstance = hotInstance.value;\n\n if (!localHotInstance || localHotInstance.isDestroyed) return;\n\n localHotInstance.validateCells();\n };\n\n const afterLoadData: Handsontable.GridSettings['afterLoadData'] = async (...args) => {\n await nextTick();\n\n const localHotInstance = hotInstance.value;\n\n if (!localHotInstance) return;\n\n const columnSorting = localHotInstance.getPlugin('columnSorting');\n\n if (hotTableColumnSortingConfig.value) columnSorting.sort(hotTableColumnSortingConfig.value);\n\n if (settings.value.afterLoadData) settings.value.afterLoadData(...args);\n };\n\n const afterGetColHeader: Handsontable.GridSettings['afterGetColHeader'] = (...args) => {\n const [col, th] = args;\n\n const columnHeader = headers.value[col];\n\n if (typeof columnHeader === 'string') return;\n\n const className = columnHeader?.className;\n const style = columnHeader?.style;\n\n if (className) {\n th.classList.add(className);\n }\n\n if (style) {\n th.style.cssText = style;\n }\n\n addFixedCellStyles(th, col);\n\n if (settings.value.afterGetColHeader) settings.value.afterGetColHeader(...args);\n };\n\n const afterColumnSort: Handsontable.GridSettings['afterColumnSort'] = (...args) => {\n const [_currentSortConfig, destinationSortConfigs] = args;\n\n [hotTableColumnSortingConfig.value] = destinationSortConfigs;\n\n if (settings.value.afterColumnSort) settings.value.afterColumnSort(...args);\n };\n\n const beforePaste: Handsontable.GridSettings['beforePaste'] = (...args) => {\n const [pasteData, coords] = args;\n\n let currentRow = coords[0].startRow;\n let currentCol = coords[0].startCol;\n\n pasteData.forEach((rowValue, rowIdx) => {\n currentCol = coords[0].startCol;\n\n pasteData[rowIdx].forEach((cellValue, cellIdx) => {\n const cellType = hotInstance.value?.getCellMeta(currentRow, currentCol).type;\n\n currentCol += 1;\n\n if (cellType !== 'numeric') return;\n\n const value = parseFloat(cellValue.replace(',', '.')) || '';\n\n if (value === '') return;\n\n pasteData[rowIdx][cellIdx] = value;\n });\n\n currentRow += 1;\n });\n\n if (settings.value.beforePaste) settings.value.beforePaste(...args);\n };\n\n const beforeChange: Handsontable.GridSettings['beforeChange'] = (...args) => {\n const [changes, source] = args;\n\n const filteredChanges = changes.filter(([_row, _prop, oldValue, newValue]) => {\n const valuesAreEqual = `${oldValue}` === `${newValue}`;\n const leastOneValueIsFilled = !!oldValue || !!newValue;\n\n return !valuesAreEqual && leastOneValueIsFilled;\n });\n\n if (!filteredChanges.length && source === 'edit') return false;\n\n if (settings.value.beforeChange) settings.value.beforeChange(...args);\n };\n\n const afterChange: Handsontable.GridSettings['afterChange'] = async (...args) => {\n await nextTick();\n\n const localHotInstance = hotInstance.value;\n\n if (!localHotInstance) return;\n\n const [changes] = args;\n\n if (changes) {\n changes.forEach(([row, prop]) => hotTableChangedCells.value.push({ row, col: localHotInstance.propToCol(prop), prop }));\n }\n\n if (settings.value.afterChange) settings.value.afterChange(...args);\n };\n\n const afterRender: Handsontable.GridSettings['afterRender'] = (...args) => {\n const [isForced] = args;\n\n if (!isForced) return;\n\n hnTableValidateCells();\n\n generateCellsWidthsMap();\n\n if (settings.value.afterRender) settings.value.afterRender(...args);\n };\n\n const afterRenderer: Handsontable.GridSettings['afterRenderer'] = (...args) => {\n const td = args[0];\n const column = args[2];\n\n addFixedCellStyles(td, column);\n\n if (settings.value.afterRenderer) settings.value.afterRenderer(...args);\n };\n\n const hotSettings = computed(() => ({\n columnSorting: true,\n ...settings.value,\n licenseKey: configuration.value.handsontableLicenseKey,\n colHeaders: hotHeaders.value,\n height: hotTableHeight.value,\n viewportColumnRenderingOffset: hotTableViewportColumnRenderingOffset.value,\n autoRowSize: false,\n autoColumnSize: false,\n fixedColumnsLeft: 0,\n currentRowClassName: 'hn-table__row--current',\n invalidCellClassName: 'hn-table__cell--invalid',\n readOnlyCellClassName: 'hn-table__cell--readonly',\n afterLoadData,\n afterGetColHeader,\n afterColumnSort,\n beforePaste,\n beforeChange,\n afterChange,\n afterRender,\n afterRenderer,\n hiddenColumns: {\n columns: hiddenColumns.value,\n },\n }));\n\n onBeforeUnmount(() => {\n const localHotInstance = hotInstance.value;\n\n if (!localHotInstance) return;\n\n localHotInstance.destroy();\n });\n\n return {\n hotTableKey,\n rootEl,\n hotTableComponent,\n hotTableInitialized,\n hotInstance,\n hotSettings,\n hotColumns,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HnTable.vue?vue&type=template&id=4cfe3f7f&scoped=true&\"\nimport script from \"./HnTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./HnTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HnTable.vue?vue&type=style&index=0&id=4cfe3f7f&lang=scss&scoped=true&\"\nimport style1 from \"./HnTable.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4cfe3f7f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('HnTableCellWrapper',_vm._b({staticClass:\"hn-table-date-cell\",class:{\n 'text-truncate': _vm.isRenderer\n },scopedSlots:_vm._u([{key:\"renderer\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.rendererValue)+\"\\n \")]},proxy:true},{key:\"editor\",fn:function(){return [_c('div',{staticClass:\"hn-table-date-cell-editor\"},[_c('v-text-field',{ref:\"editorInput\",staticClass:\"hn-table-date-cell-editor__text-field body-2\",attrs:{\"value\":_vm.textFieldValue,\"hide-details\":\"\",\"dense\":\"\"},on:{\"change\":_vm.onTextFieldChange,\"keydown\":_vm.onTextFieldKeyDown}}),_vm._v(\" \"),_c('div',{staticClass:\"hn-table-date-cell-editor__container hn-table-date-cell-editor__contaier--date-picker\"},[_c('DDatePicker',{staticClass:\"hn-table-date-cell-editor__date-picker\",attrs:{\"elevation\":\"6\",\"value\":_vm.datePickerValue},on:{\"change\":_vm.onDatePickerChange}})],1)],1)]},proxy:true}])},'HnTableCellWrapper',_vm.hnTbaleCellWrapperProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isRenderer)?_c('div',{class:_vm.rootElClasses},[_vm._t(\"renderer\")],2):(_vm.isEditor && _vm.isVisible)?_c('div',{class:_vm.rootElClasses,on:{\"mousedown\":_vm.stopPropagation}},[_vm._t(\"editor\")],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor } from 'vue';\nimport { Ref } from '@vue/composition-api';\n\nimport { HnTableChangedCells } from '../types';\n\ninterface HnTableCellWrapperInject {\n hotTableChangedCells: Ref;\n}\n\nexport interface HnTableCellWrapperProps {\n prop?: string;\n isRenderer?: boolean;\n isEditor?: boolean;\n isVisible?: boolean;\n //\n style?: Partial;\n textAlign?: string;\n readonly?: boolean;\n //\n cellRow: number;\n invalid?: boolean;\n //\n isFirstCol?: boolean;\n isLastCol?: boolean;\n}\n\nexport default (Vue as VueConstructor).extend({\n name: 'HnTableCellWrapper',\n inject: [\n 'hotTableChangedCells',\n ],\n props: {\n prop: { type: String, default: '' },\n isRenderer: { type: Boolean, default: false },\n isEditor: { type: Boolean, default: false },\n isVisible: { type: Boolean, default: false },\n //\n textAlign: { type: String, default: '' },\n readonly: { type: Boolean, default: false },\n //\n cellRow: { type: Number, default: -1 },\n invalid: { type: Boolean, default: false },\n //\n isFirstCol: { type: Boolean, default: false },\n isLastCol: { type: Boolean, default: false },\n },\n computed: {\n cellType() {\n if (this.isRenderer) return 'renderer';\n\n if (this.isEditor) return 'editor';\n\n return '';\n },\n cellHasBeenEdited(): boolean {\n return this.hotTableChangedCells.value.some((cell) => cell.row === this.cellRow && cell.prop === this.prop);\n },\n rootElClasses(): string[] {\n const base = 'hn-table-cell-wrapper';\n\n const classes = [\n base,\n `${base}${this.cellType ? `-${this.cellType}` : ''}`,\n this.readonly ? `${base}--readonly` : '',\n this.cellHasBeenEdited ? `${base}--edited` : '',\n this.invalid ? `${base}--invalid` : '',\n ];\n\n if (this.cellType === 'renderer') {\n classes.push(...[\n 'body-2',\n this.isFirstCol ? `${base}-renderer--first-col` : '',\n this.isLastCol ? `${base}-renderer--last-col` : '',\n ]);\n }\n\n if (this.textAlign) {\n classes.push(`${base}--text-${this.textAlign}`);\n }\n\n return classes;\n },\n },\n methods: {\n stopPropagation(e: Event) {\n e.stopPropagation();\n },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableCellWrapper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableCellWrapper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HnTableCellWrapper.vue?vue&type=template&id=e99fe9e2&scoped=true&\"\nimport script from \"./HnTableCellWrapper.vue?vue&type=script&lang=ts&\"\nexport * from \"./HnTableCellWrapper.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HnTableCellWrapper.vue?vue&type=style&index=0&id=e99fe9e2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e99fe9e2\",\n null\n \n)\n\nexport default component.exports","\nimport Vue, { VueConstructor } from 'vue';\nimport { Ref } from '@vue/composition-api';\n\nimport { BaseEditorComponent } from '@handsontable/vue';\nimport Handsontable from 'handsontable/base';\n\nimport { HnTableChangedCells } from '../types';\n\nimport HnTableCellWrapper, { HnTableCellWrapperProps } from '../components/HnTableCellWrapper.vue';\n\ninterface HnTableCellWrapperInject {\n hotTableChangedCells: Ref;\n}\n\nexport default (Vue as VueConstructor).extend({\n components: {\n HnTableCellWrapper,\n },\n extends: BaseEditorComponent,\n inject: [\n 'hotTableChangedCells',\n ],\n props: {\n textAlign: { type: String, default: '' },\n readonly: { type: Boolean, default: false },\n isFirstCol: { type: Boolean, default: false },\n isLastCol: { type: Boolean, default: false },\n },\n data() {\n return {\n TD: null as HTMLTableCellElement | null,\n hotInstance: null as Handsontable | null,\n cellProperties: null as Handsontable.CellProperties | null,\n originalValue: null as unknown | null,\n value: null as unknown | null,\n row: -1,\n col: -1,\n prop: '',\n isRenderer: false,\n isEditor: false,\n isVisible: false,\n editorStyle: {\n left: '0',\n top: '0',\n width: '0',\n height: '0',\n },\n //\n editorInputFocusActionName: 'focus',\n //\n cellRow: -1,\n cellIsInvalid: false,\n };\n },\n computed: {\n hnTbaleCellWrapperProps(): HnTableCellWrapperProps {\n return {\n ...this.$attrs,\n prop: this.prop,\n isRenderer: this.isRenderer,\n isEditor: this.isEditor,\n isVisible: this.isVisible,\n //\n style: this.isEditor && this.isVisible ? this.editorStyle : undefined,\n textAlign: this.textAlign,\n readonly: this.readonly,\n //\n cellRow: this.cellRow,\n invalid: this.cellIsInvalid,\n //\n isFirstCol: this.isFirstCol,\n isLastCol: this.isLastCol,\n };\n },\n cellHasBeenEdited(): boolean {\n return this.hotTableChangedCells.value.some((cell) => cell.row === this.cellRow && cell.prop === this.prop);\n },\n },\n watch: {\n hotInstance: {\n async handler() {\n await this.$nextTick();\n\n if (!this.hotInstance || this.hotInstance.isDestroyed) return;\n\n this.setCellRowWatch();\n this.setCellIsInvalidWatch();\n },\n immediate: true,\n },\n },\n methods: {\n setCellRowWatch() {\n const callback = () => {\n this.cellRow = this.cellProperties.row ?? -1;\n };\n\n this.hotInstance?.removeHook('afterRender', callback);\n\n this.hotInstance?.addHook('afterRender', callback);\n },\n setCellIsInvalidWatch() {\n const callback = () => {\n this.cellIsInvalid = !(this.cellProperties?.valid ?? true);\n };\n\n this.hotInstance?.removeHook('afterValidate', callback);\n\n this.hotInstance?.addHook('afterValidate', callback);\n },\n //\n prepare(row: number, col: number, prop: string | number, TD: HTMLTableCellElement, originalValue: unknown, cellProperties: Handsontable.CellProperties) {\n // We'll need to call the `prepare` method from\n // the `BaseEditorComponent` class, as it provides\n // the component with the information needed to use the editor\n // (hotInstance, row, col, prop, TD, originalValue, cellProperties)\n //\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (BaseEditorComponent as any).options.methods.prepare.call(this, row, col, prop, TD, originalValue, cellProperties);\n\n const appEl = document.getElementById('app');\n\n if (appEl && !appEl.contains(this.$el)) appEl.appendChild(this.$el);\n\n const tdPosition = TD.getBoundingClientRect();\n\n // As the `prepare` method is triggered after selecting\n // any cell, we're updating the styles for the editor element,\n // so it shows up in the correct position.\n this.editorStyle.left = `${tdPosition.left + window.pageXOffset}px`;\n this.editorStyle.top = `${tdPosition.top + window.pageYOffset}px`;\n this.editorStyle.width = `${tdPosition.width}px`;\n this.editorStyle.height = `${tdPosition.height}px`;\n },\n beginEditing(...args: unknown[]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (BaseEditorComponent as any).options.methods.beginEditing.call(this, ...args);\n\n this.focus();\n },\n open() {\n this.isVisible = true;\n },\n close() {\n this.isVisible = false;\n },\n async focus() {\n await this.$nextTick();\n\n const input = this.$refs.editorInput as HTMLElement;\n\n if (!input) return;\n\n const inputFocusAction = input[this.editorInputFocusActionName];\n\n if (typeof inputFocusAction !== 'function') return;\n\n input[this.editorInputFocusActionName]();\n },\n setValue(value: unknown | null) {\n this.value = value;\n },\n getValue() {\n return this.value;\n },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableCellMixin.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableCellMixin.vue?vue&type=script&lang=ts&\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor } from 'vue';\n\nimport moment from 'moment';\nimport Handsontable from 'handsontable/base';\n\nimport { DDatePicker } from '@shared/druid-kit';\n\nimport HnTableCellMixin from '../../mixins/HnTableCellMixin.vue';\n\ntype HnTableDateCellValue = string | null;\n\nexport default (Vue as VueConstructor>).extend({\n name: 'HnTableDateCell',\n components: {\n DDatePicker,\n },\n mixins: [\n HnTableCellMixin,\n ],\n props: {\n format: { type: String, default: 'YYYY-MM-DDTHH:mm:ss[Z]' },\n },\n data() {\n return {\n value: null as HnTableDateCellValue | null,\n textFieldFormat: 'DD.MM.YYYY',\n datePickerFormat: 'YYYY-MM-DD',\n };\n },\n computed: {\n rendererValue(): string {\n const momentDate = moment(this.value);\n\n const valueIsValidDate = momentDate.isValid();\n\n if (!valueIsValidDate) return '—';\n\n return moment.utc(this.value).format('DD.MM.YYYY');\n },\n editorValue(): HnTableDateCellValue {\n const momentDate = moment(this.originalValue);\n\n const valueIsValidDate = momentDate.isValid();\n\n if (!valueIsValidDate) return null;\n\n return moment.utc(this.originalValue).format(this.datePickerFormat);\n },\n textFieldValue(): HnTableDateCellValue {\n if (!this.editorValue) return null;\n\n return moment.utc(this.editorValue).format(this.textFieldFormat);\n },\n datePickerValue(): HnTableDateCellValue {\n if (!this.editorValue) return null;\n\n return moment.utc(this.editorValue).format(this.datePickerFormat);\n },\n },\n methods: {\n getDate(payload: { value: string | null, format: string }) {\n const momentDate = moment(payload.value, payload.format);\n\n const date = momentDate.format(this.format);\n const isValid = momentDate.isValid();\n\n return {\n date,\n isValid,\n };\n },\n onTextFieldChange(value: string) {\n const { date, isValid } = this.getDate({ value, format: this.textFieldFormat });\n\n if (!isValid) return this.finishEditing();\n\n this.setValue(date);\n\n this.finishEditing();\n },\n onTextFieldKeyDown(e: KeyboardEvent) {\n switch (e.keyCode) {\n case Handsontable.helper.KEY_CODES.ESCAPE:\n this.finishEditing();\n\n break;\n case Handsontable.helper.KEY_CODES.ENTER:\n break;\n\n default:\n e.stopPropagation();\n }\n },\n onDatePickerChange(value: string) {\n const { date, isValid } = this.getDate({ value, format: this.datePickerFormat });\n\n if (!isValid) return this.finishEditing();\n\n this.setValue(date);\n\n this.finishEditing();\n },\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableDateCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableDateCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HnTableDateCell.vue?vue&type=template&id=7678ff45&scoped=true&\"\nimport script from \"./HnTableDateCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./HnTableDateCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HnTableDateCell.vue?vue&type=style&index=0&id=7678ff45&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7678ff45\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('HnTableCellWrapper',_vm._b({staticClass:\"hn-table-select-cell\",scopedSlots:_vm._u([{key:\"renderer\",fn:function(){return [_c('DTooltip',_vm._b({attrs:{\"bottom\":\"\",\"disabled\":!_vm.tooltip},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('div',{staticClass:\"body-2 text-truncate\",domProps:{\"textContent\":_vm._s(_vm.rendererValue)}})])]}}])},'DTooltip',_vm.tooltip ? _vm.tooltip.props : {},false),[_vm._v(\" \"),_c('div',{domProps:{\"textContent\":_vm._s(_vm.tooltip ? _vm.tooltip.content : '')}})])]},proxy:true},{key:\"editor\",fn:function(){return [_c('div',{ref:\"hnTableCellEditorEl\",staticClass:\"hn-table-select-cell-editor\"},[_c('DSelect',{ref:\"editorInput\",staticClass:\"hn-table-select-cell-editor__select\",attrs:{\"attach\":_vm.$refs.hnTableCellEditorEl,\"value\":_vm.editorValue,\"items\":_vm.selectItems,\"multiple\":_vm.multiple,\"hide-selected\":_vm.hideSelected && !_vm.multiple,\"item-text\":_vm.itemText,\"item-value\":_vm.itemValue,\"append-icon\":\"mdi-chevron-down\",\"outlined\":false,\"dense\":false},on:{\"input\":_vm.onSelectInput},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar index = ref.index;\nreturn [_c('div',{staticClass:\"hn-table-select-cell-editor__select-label-text body-2 text-truncate\"},[(index === 0)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.rendererValue)+\"\\n \")]):_vm._e()])]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"hn-table-select-cell-editor__select-item-text body-2\",domProps:{\"textContent\":_vm._s(item[_vm.itemText])}})]}},{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"hn-table-select-cell-editor__select-no-data\"},[_c('div',{staticClass:\"hn-table-select-cell-editor__select-no-data-text body-2\"},[_vm._v(\"\\n Список пуст\\n \")])])]},proxy:true}])})],1)]},proxy:true}])},'HnTableCellWrapper',_vm.hnTbaleCellWrapperProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor, PropType } from 'vue';\n\nimport {\n DSelect,\n DTooltip,\n} from '@shared/druid-kit';\n\nimport HnTableCellMixin from '../../mixins/HnTableCellMixin.vue';\n\nimport {\n HnTableSelectCellValue,\n HnTableSelectCellItem,\n HnTableSelectCellItems,\n} from '../../types';\n\nexport default (Vue as VueConstructor>).extend({\n name: 'HnTableSelectCell',\n components: {\n DSelect,\n DTooltip,\n },\n mixins: [\n HnTableCellMixin,\n ],\n props: {\n items: { type: [Array, Function] as PropType, default: () => [] },\n hideSelected: { type: Boolean, default: true },\n multiple: { type: Boolean, default: false },\n itemText: { type: String, default: 'text' },\n itemValue: { type: String, default: 'value' },\n tooltip: { type: Object as PropType<{ props: Record; text: string } | null>, default: () => null },\n },\n data() {\n return {\n value: null as HnTableSelectCellValue | null,\n //\n editorInputFocusActionName: 'activateMenu',\n };\n },\n computed: {\n selectItems(): HnTableSelectCellItem[] {\n if (this.hotInstance?.isDestroyed) return [];\n\n if (typeof this.items === 'function') {\n return this.items({\n TD: this.TD,\n hotInstance: this.hotInstance,\n cellProperties: this.cellProperties,\n originalValue: this.originalValue,\n value: this.value,\n row: this.row,\n col: this.col,\n prop: this.prop,\n });\n }\n\n return this.items;\n },\n rendererValue(): string | number {\n const value = this.isRenderer ? this.value : this.originalValue;\n const normalizedValue = Array.isArray(value) ? value : [value];\n\n const intersectionItems = this.selectItems.filter((item) => normalizedValue.includes(item[this.itemValue]));\n\n return intersectionItems.map((item) => item[this.itemText]).join(', ') || '—';\n },\n editorValue(): HnTableSelectCellValue {\n if (this.originalValue === '') return null;\n\n return this.originalValue ?? null;\n },\n },\n watch: {\n // Здесь нужен вотч, т.к. компьютед не всеггда реагирует на изменения, в частности при открытии выпадающего списка мультиселекта\n value(val) {\n if (this.multiple && !Array.isArray(this.value)) {\n this.value = val.split(',').filter((item) => !!item);\n }\n },\n },\n methods: {\n onSelectInput(value: string) {\n this.setValue(value);\n\n this.finishEditing();\n },\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableSelectCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableSelectCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HnTableSelectCell.vue?vue&type=template&id=bb410648&scoped=true&\"\nimport script from \"./HnTableSelectCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./HnTableSelectCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HnTableSelectCell.vue?vue&type=style&index=0&id=bb410648&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bb410648\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('HnTableCellWrapper',_vm._b({staticClass:\"hn-table-stub-cell\",scopedSlots:_vm._u([{key:\"renderer\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.text)+\"\\n \")]},proxy:true}])},'HnTableCellWrapper',_vm.hnTbaleCellWrapperProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor } from 'vue';\n\nimport HnTableCellMixin from '../../mixins/HnTableCellMixin.vue';\n\nexport default (Vue as VueConstructor>).extend({\n name: 'HnTableStubCell',\n mixins: [\n HnTableCellMixin,\n ],\n props: {\n text: { type: [String, Number], default: '' },\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableStubCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableStubCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HnTableStubCell.vue?vue&type=template&id=b8da9ff4&\"\nimport script from \"./HnTableStubCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./HnTableStubCell.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { VueConstructor } from 'vue';\n\nimport Handsontable from 'handsontable';\nimport moment from 'moment';\n\nimport HnTableDateCell from '../components/cells/HnTableDateCell.vue';\nimport HnTableSelectCell from '../components/cells/HnTableSelectCell.vue';\nimport HnTableStubCell from '../components/cells/HnTableStubCell.vue';\n\nconst hnTableColumnCustomCellTypesMap = {\n stub: 'stub',\n} as const;\n\nconst hnTableColumnCellTypesMap = {\n text: 'text',\n number: 'numeric',\n date: 'date',\n select: 'dropdown',\n checkbox: 'checkbox',\n ...hnTableColumnCustomCellTypesMap,\n} as const;\n\nconst hnTableColumnCellTypes = Object.values(hnTableColumnCellTypesMap);\n\nObject.values(hnTableColumnCustomCellTypesMap).forEach((type) => {\n Handsontable.cellTypes.registerCellType(type, {});\n});\n\ntype HnTableColumnCellType = typeof hnTableColumnCellTypes[number];\n\ntype HnTableColumnOptionsHeader = {\n className?: string;\n style?: string;\n text?: string;\n};\n\ntype HnTableColumnOptionsSettings = {\n type?: HnTableColumnCellType;\n width?: number;\n className?: string;\n readOnly?: boolean;\n disableVisualSelection?: boolean;\n skipColumnOnPaste?: boolean;\n editor?: boolean;\n placeholder?: string;\n allowInvalid?: boolean;\n allowEmpty?: boolean;\n numericFormat?: {\n pattern?: string | {\n mantissa?: number;\n };\n };\n dateFormat?: string;\n validator?: { $gte?: string; $lte?: string } | ((value: string | number, callback: (value: boolean) => void) => void);\n};\n\ntype HnTableColumnOptionsProps = Record;\n\ntype HnTableColumnOptions = {\n title: string;\n data: string;\n header?: HnTableColumnOptionsHeader;\n settings: HnTableColumnOptionsSettings;\n props?: HnTableColumnOptionsProps;\n rendererComponent?: VueConstructor;\n editorComponent?: VueConstructor;\n};\n\ninterface HnTableColumnCell {\n type: HnTableColumnCellType;\n header?: HnTableColumnOptionsHeader;\n settings?: HnTableColumnOptionsSettings;\n settingsToProps?: {\n setting: keyof HnTableColumnOptionsSettings;\n prop: keyof HnTableColumnOptionsProps;\n }[];\n rendererComponent?: VueConstructor;\n editorComponent?: VueConstructor;\n}\n\nconst hnTableColumnCellText: HnTableColumnCell = {\n type: hnTableColumnCellTypesMap.text,\n};\n\nconst hnTableColumnCellDefault = hnTableColumnCellText;\n\nconst hnTableColumnCells: HnTableColumnCell[] = [\n hnTableColumnCellDefault,\n {\n type: hnTableColumnCellTypesMap.number,\n },\n {\n type: hnTableColumnCellTypesMap.date,\n settings: {\n dateFormat: 'YYYY-MM-DDTHH:mm:ss[Z]',\n },\n settingsToProps: [\n {\n setting: 'dateFormat',\n prop: 'format',\n },\n ],\n rendererComponent: HnTableDateCell,\n editorComponent: HnTableDateCell,\n },\n {\n type: hnTableColumnCellTypesMap.select,\n rendererComponent: HnTableSelectCell,\n editorComponent: HnTableSelectCell,\n },\n {\n type: hnTableColumnCellTypesMap.stub,\n settings: {\n readOnly: true,\n disableVisualSelection: true,\n skipColumnOnPaste: true,\n },\n rendererComponent: HnTableStubCell,\n },\n];\n\nconst getColumnCell = (type?: HnTableColumnCellType) => hnTableColumnCells.find((cell) => cell.type === type) || hnTableColumnCellDefault;\n\nconst getColumnHeader = (cell: HnTableColumnCell, options: HnTableColumnOptions) => {\n const cellHeader = cell.header;\n\n return {\n ...cellHeader,\n ...options.header,\n };\n};\n\nconst getColumnSettings = (cell: HnTableColumnCell, options: HnTableColumnOptions) => {\n const cellSettings = cell.settings;\n\n return {\n placeholder: '—',\n ...cellSettings,\n ...options.settings,\n };\n};\n\nconst getColumnProps = (cell: HnTableColumnCell, options: HnTableColumnOptions) => {\n const settingsToProps = cell.settingsToProps || [];\n\n const providedProps = settingsToProps.reduce((obj, { setting, prop }) => {\n const val = options.settings[setting];\n\n if (val === undefined) return obj;\n\n obj[prop] = val;\n\n return obj;\n }, {} as Record);\n\n return {\n ...providedProps,\n ...options.props,\n readonly: options.settings.readOnly,\n };\n};\n\nconst getColumnComponents = (cell: HnTableColumnCell, options: HnTableColumnOptions) => {\n const cellRendererComponent = cell.rendererComponent;\n const cellEditorComponent = cell.editorComponent;\n\n return {\n renderer: options.rendererComponent || cellRendererComponent,\n editor: options.editorComponent || cellEditorComponent,\n };\n};\n\ntype HnTableColumnGenerators = Record<'default', (options: HnTableColumnOptions) => HnTableColumnOptions> & Partial HnTableColumnOptions>>;\n\nconst hnTableColumnGenerators: HnTableColumnGenerators = {\n default: (options) => {\n const cell = getColumnCell(options.settings.type);\n\n const header = getColumnHeader(cell, options);\n const settings = getColumnSettings(cell, options);\n const props = getColumnProps(cell, options);\n const components = getColumnComponents(cell, options);\n\n return {\n title: options.title,\n data: options.data,\n header,\n settings,\n props,\n rendererComponent: components.renderer,\n editorComponent: components.editor,\n };\n },\n date: (options) => {\n const cell = getColumnCell(options.settings.type);\n\n const header = getColumnHeader(cell, options);\n const settings = getColumnSettings(cell, options);\n\n if (settings.validator && typeof settings.validator !== 'function') {\n const validatorOptions = settings.validator;\n\n // Тут важно не потерять this\n // Функция выполняется внутри Handsontable, поэтому this будет равен Handsontable.CellMeta\n settings.validator = function (this: Handsontable.CellMeta, value, callback) {\n const { instance, visualRow } = this;\n\n let status = moment(value).isValid();\n\n if (!status) return callback(status);\n\n const gteValue = validatorOptions.$gte ? instance.getDataAtRowProp(visualRow, validatorOptions.$gte) : null;\n const lteValue = validatorOptions.$lte ? instance.getDataAtRowProp(visualRow, validatorOptions.$lte) : null;\n\n const gteStatus = gteValue ? moment(value).isSameOrAfter(moment(gteValue), 'day') : true;\n const lteStatus = lteValue ? moment(value).isSameOrBefore(moment(lteValue), 'day') : true;\n\n status = gteStatus && lteStatus;\n\n callback(status);\n };\n }\n\n const props = getColumnProps(cell, options);\n const components = getColumnComponents(cell, options);\n\n return {\n title: options.title,\n data: options.data,\n header,\n settings,\n props,\n rendererComponent: components.renderer,\n editorComponent: components.editor,\n };\n },\n};\n\nexport default class HnTableColumn {\n title = '';\n\n data = '';\n\n header: HnTableColumnOptionsHeader;\n\n settings: HnTableColumnOptionsSettings;\n\n props: HnTableColumnOptionsProps;\n\n rendererComponent?: VueConstructor;\n\n editorComponent?: VueConstructor;\n\n constructor(payload: HnTableColumnOptions) {\n const options = { ...payload };\n\n const generator = hnTableColumnGenerators[options.settings.type || ''] || hnTableColumnGenerators.default;\n\n const column = generator(options);\n\n this.title = column.title;\n this.data = column.data;\n this.header = column.header;\n this.settings = column.settings;\n this.props = column.props;\n this.rendererComponent = column.rendererComponent;\n this.editorComponent = column.editorComponent;\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('HnTableCellWrapper',_vm._b({staticClass:\"placements-table-info-cell\",class:{ 'placements-table-info-cell--edited': _vm.cellHasBeenEdited },scopedSlots:_vm._u([{key:\"renderer\",fn:function(){return [_c('div',{staticClass:\"placements-table-info-cell__sidebar d-flex flex-column py-1 mr-1\"},[_c('DTooltip',{attrs:{\"max-width\":\"304\",\"center\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-n2\",staticStyle:{\"margin-top\":\"-2px\"},attrs:{\"icon\":\"\",\"small\":\"\"},nativeOn:{\"click\":function($event){return _vm.toggleVisible.apply(null, arguments)}}},'v-btn',attrs,false),on),[_c('v-icon',{staticClass:\"placements-table-info-cell__icon\",attrs:{\"size\":\"18\"}},[_vm._v(\"\\n \"+_vm._s(_vm.value ? 'mdi-eye-off-outline' : 'mdi-eye')+\"\\n \")])],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"\\n Размещение видно на вкладке План\"),_c('br'),_vm._v(\"\\n и на странице Кампании с данными плана.\"),_c('br'),_vm._v(\"\\n Видимость факта размещения для клиента\"),_c('br'),_vm._v(\"\\n управляется на странице Кампании.\\n \")])])],1),_vm._v(\" \"),(_vm.placement)?_c('div',{staticClass:\"placements-table-info-cell__content text-truncate\"},[_c('div',{staticClass:\"placements-table-info-cell__header\"},[_c('DTooltip',{attrs:{\"max-width\":\"346\",\"right\":\"\",\"interactive\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('span',_vm._g(_vm._b({staticClass:\"text-truncate\"},'span',attrs,false),on),[_c('router-link',{staticClass:\"placements-table-info-cell__title subtitle-2\",attrs:{\"to\":_vm.campaignPlacementEditorPath},nativeOn:{\"click\":function($event){return _vm.onCampaignPlacementEditorLinkClick.apply(null, arguments)}}},[_c('span',{domProps:{\"textContent\":_vm._s(_vm.title)}}),_vm._v(\" \"),_c('span',{staticClass:\"subtext\",domProps:{\"textContent\":_vm._s(_vm.placement.danboId)}})])],1)]}}],null,false,3684471476),model:{value:(_vm.tooltipIsShown),callback:function ($$v) {_vm.tooltipIsShown=$$v},expression:\"tooltipIsShown\"}},[_vm._v(\" \"),_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.title)}}),_vm._v(\" \"),_c('div',{domProps:{\"textContent\":_vm._s(_vm.placement.danboId)}}),_vm._v(\" \"),(_vm.placementComment)?_c('div',{staticClass:\"mt-4\",domProps:{\"textContent\":_vm._s(_vm.placementComment)}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"mt-6\"},[_vm._v(\"\\n Флайтов: \"+_vm._s(_vm.flightsCount)+\"\\n \")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"placements-table-info-cell__main\"},[_c('div',{staticClass:\"caption text-truncate\",domProps:{\"textContent\":_vm._s(_vm.subtitle)}})])]):_vm._e()]},proxy:true}])},'HnTableCellWrapper',_vm.hnTbaleCellWrapperProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor, PropType } from 'vue';\n\nimport { DTooltip } from '@shared/druid-kit';\nimport { HnTableCellMixin } from '@/packages/hn-table/src/mixins';\n\nimport { Campaign, CampaignEditorPlacement } from '@/models/Campaign';\n\nexport default (Vue as VueConstructor>).extend({\n name: 'PlacementsTableInfoCell',\n components: {\n DTooltip,\n },\n mixins: [\n HnTableCellMixin,\n ],\n props: {\n campaign: { type: Object as PropType, required: true },\n campaignPlacements: { type: Array as PropType, required: true },\n },\n data() {\n return {\n placement: null as CampaignEditorPlacement | null,\n tooltipIsShown: false,\n };\n },\n computed: {\n cellPropertiesRow(): number | undefined {\n return this.cellProperties?.row;\n },\n flightsCount(): number {\n return this.placement?.flightsCount || 0;\n },\n campaignPlacementEditorPath(): string {\n if (!this.placement) return '';\n\n return `/campaigns/${this.campaign.id}/placements/${this.placement.danboId}/edit`;\n },\n title(): string {\n return this.placement?.siteName ?? '';\n },\n subtitle(): string {\n return [\n this.placement?.adPlace,\n this.placement?.placementType,\n ].filter((text) => text).join(' / ');\n },\n placementIsHidden(): boolean {\n return !!this.placement?.hidden;\n },\n placementComment(): string {\n return this.placement?.comment ?? '';\n },\n },\n watch: {\n hotInstance: {\n handler(newValue, oldValue) {\n oldValue?.removeHook('afterChange', this.afterChange);\n\n newValue?.addHook('afterChange', this.afterChange);\n },\n immediate: true,\n },\n campaignPlacements: {\n handler() {\n this.initPlacement();\n },\n immediate: true,\n },\n async cellPropertiesRow() {\n await this.initPlacement();\n },\n },\n beforeDestroy() {\n this.hotInstance?.removeHook('afterChange', this.afterChange);\n },\n methods: {\n async initPlacement() {\n if (typeof this.cellPropertiesRow !== 'number') return;\n\n await this.$nextTick();\n\n const campaignPlacement = this.campaignPlacements[this.cellPropertiesRow];\n\n this.placement = campaignPlacement;\n },\n afterChange() {\n this.initPlacement();\n },\n closeTooltip() {\n this.tooltipIsShown = false;\n },\n toggleVisible() {\n if (!this.hotInstance) return;\n\n this.hotInstance.setDataAtCell(this.cellRow, this.col, !this.value);\n },\n onCampaignPlacementEditorLinkClick() {\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Placement Editor',\n event_action: 'Open Flights Editor',\n event_label: this.placement?.danboId,\n d1d_client_id: this.campaign.clientId,\n d1d_client_name: this.campaign.clientName,\n d1d_brand_id: this.campaign.brandId,\n d1d_brand_name: this.campaign.brandName,\n d1d_campaign_id: this.campaign.id,\n d1d_campaign_name: this.campaign.name,\n });\n\n this.closeTooltip();\n },\n },\n});\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableInfoCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableInfoCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlacementsTableInfoCell.vue?vue&type=template&id=3159fdb4&scoped=true&\"\nimport script from \"./PlacementsTableInfoCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlacementsTableInfoCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PlacementsTableInfoCell.vue?vue&type=style&index=0&id=3159fdb4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3159fdb4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('HnTableCellWrapper',_vm._b({staticClass:\"placements-table-source-cell\",scopedSlots:_vm._u([{key:\"renderer\",fn:function(){return [(_vm.value)?_c('div',{staticClass:\"body-2 grey--text text--darken-1\"},[_vm._v(\"\\n Из 1С\\n \")]):_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Вручную\\n \")])]},proxy:true}])},'HnTableCellWrapper',_vm.hnTbaleCellWrapperProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor } from 'vue';\n\nimport { HnTableCellMixin } from '@/packages/hn-table/src/mixins';\n\nexport default (Vue as VueConstructor>).extend({\n name: 'PlacementsTableSourceCell',\n mixins: [\n HnTableCellMixin,\n ],\n props: {\n //\n },\n data() {\n return {\n value: null as boolean | null,\n };\n },\n});\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableSourceCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableSourceCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlacementsTableSourceCell.vue?vue&type=template&id=86ab8120&\"\nimport script from \"./PlacementsTableSourceCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlacementsTableSourceCell.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('HnTableCellWrapper',_vm._b({staticClass:\"placements-table-markups-cell\",scopedSlots:_vm._u([{key:\"renderer\",fn:function(){return [_c('div',{staticClass:\"placements-table-markups-cell__wrapper\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\",\"color\":\"primary\"},nativeOn:{\"click\":function($event){return _vm.openModal.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.value)+\"\\n \")])],1)]},proxy:true}])},'HnTableCellWrapper',_vm.hnTbaleCellWrapperProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor, PropType } from 'vue';\n\nimport { HnTableCellMixin } from '@/packages/hn-table/src/mixins';\n\nimport { CampaignEditorPlacement } from '@/models/Campaign';\n\nimport { CampaignEditorPlacementsEmitter } from '../../campaignEditorPlacementsEmitter';\n\nexport default (Vue as VueConstructor>).extend({\n name: 'PlacementsTableMarkupsCell',\n mixins: [\n HnTableCellMixin,\n ],\n props: {\n campaignPlacements: { type: Array as PropType, required: true },\n emitter: { type: Object as PropType, required: true },\n },\n data() {\n return {\n placement: null as CampaignEditorPlacement | null,\n };\n },\n computed: {\n cellPropertiesRow(): number | undefined {\n return this.cellProperties?.row;\n },\n },\n watch: {\n hotInstance: {\n handler(newValue, oldValue) {\n oldValue?.removeHook('afterChange', this.afterChange);\n\n newValue?.addHook('afterChange', this.afterChange);\n },\n immediate: true,\n },\n campaignPlacements: {\n handler() {\n this.initPlacement();\n },\n immediate: true,\n },\n async cellPropertiesRow() {\n await this.initPlacement();\n },\n },\n beforeDestroy() {\n this.hotInstance?.removeHook('afterChange', this.afterChange);\n },\n methods: {\n async initPlacement() {\n if (typeof this.cellPropertiesRow !== 'number') return;\n\n await this.$nextTick();\n\n const campaignPlacement = this.campaignPlacements[this.cellPropertiesRow];\n\n this.placement = campaignPlacement;\n },\n afterChange() {\n this.initPlacement();\n },\n openModal() {\n if (!this.placement) return;\n\n this.emitter.emit('openMarkupsModal', { placement: this.placement });\n },\n },\n});\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableMarkupsCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableMarkupsCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlacementsTableMarkupsCell.vue?vue&type=template&id=2d5c52c0&scoped=true&\"\nimport script from \"./PlacementsTableMarkupsCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlacementsTableMarkupsCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PlacementsTableMarkupsCell.vue?vue&type=style&index=0&id=2d5c52c0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d5c52c0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('HnTableCellWrapper',_vm._b({staticClass:\"placements-table-metric-cell\",scopedSlots:_vm._u([{key:\"renderer\",fn:function(){return [_c('div',{staticClass:\"placements-table-metric-cell__content text-right\"},[(_vm.factIsShown)?_c('div',{staticClass:\"placements-table-metric-cell__fact\",domProps:{\"textContent\":_vm._s(_vm.factValue)}}):_vm._e(),_vm._v(\" \"),(_vm.planIsShown)?_c('div',{staticClass:\"placements-table-metric-cell__plan\"},[_vm._v(\"\\n \"+_vm._s(_vm.factIsShown ? (\"из \" + _vm.currentValue) : _vm.currentValue)+\"\\n \")]):_vm._e()])]},proxy:true}])},'HnTableCellWrapper',_vm.hnTbaleCellWrapperProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor, PropType } from 'vue';\n\nimport { HnTableCellMixin } from '@/packages/hn-table/src/mixins';\nimport numatter, { NumatterFormat } from '@/packages/numatter';\n\nimport { CampaignEditorPlacement } from '@/models/Campaign';\n\nexport default (Vue as VueConstructor>).extend({\n name: 'PlacementsTableMetricCell',\n mixins: [\n HnTableCellMixin,\n ],\n props: {\n metricName: { type: String, default: '' },\n campaignPlacements: { type: Array as PropType, required: true },\n format: { type: Object as PropType, default: undefined },\n planIsShown: { type: Boolean, default: false },\n factIsShown: { type: Boolean, default: false },\n },\n data() {\n return {\n placement: null as CampaignEditorPlacement | null,\n value: 0 as number,\n };\n },\n computed: {\n cellPropertiesRow(): number | undefined {\n return this.cellProperties?.row;\n },\n currentValue(): string {\n return numatter.format(this.value || 0, this.format);\n },\n factValue(): string {\n if (!this.placement) return '—';\n\n const factTotalMetrics = this.placement.factTotalMetrics || {};\n\n const totalMetricValue = factTotalMetrics[this.metricName];\n\n if (typeof totalMetricValue !== 'number') return '—';\n\n return numatter.format(totalMetricValue, this.format);\n },\n },\n watch: {\n campaignPlacements: {\n handler() {\n this.initPlacement();\n },\n immediate: true,\n },\n async cellPropertiesRow() {\n await this.initPlacement();\n },\n },\n methods: {\n async initPlacement() {\n if (typeof this.cellPropertiesRow !== 'number') return;\n\n await this.$nextTick();\n\n const campaignPlacement = this.campaignPlacements[this.cellPropertiesRow];\n\n this.placement = campaignPlacement;\n },\n afterChange() {\n this.initPlacement();\n },\n },\n});\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableMetricCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableMetricCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlacementsTableMetricCell.vue?vue&type=template&id=e9db5060&scoped=true&\"\nimport script from \"./PlacementsTableMetricCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlacementsTableMetricCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PlacementsTableMetricCell.vue?vue&type=style&index=0&id=e9db5060&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e9db5060\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('HnTableCellWrapper',_vm._b({staticClass:\"placements-table-checkbox-cell\",scopedSlots:_vm._u([{key:\"renderer\",fn:function(){return [_c('DTooltip',{attrs:{\"max-width\":\"304\",\"center\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({staticClass:\"placements-table-checkbox-cell__checkbox-wrapper\"},'div',attrs,false),on),[_c('v-checkbox',{attrs:{\"disabled\":_vm.readonly,\"color\":\"success\",\"off-icon\":\"mdi-checkbox-blank-circle-outline\",\"on-icon\":\"mdi-checkbox-marked-circle\",\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v},expression:\"currentValue\"}})],1)]}}])},[_vm._v(\" \"),_c('span',{domProps:{\"textContent\":_vm._s(_vm.tooltipTextComputed)}})])]},proxy:true}])},'HnTableCellWrapper',_vm.hnTbaleCellWrapperProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor, PropType } from 'vue';\n\nimport Handsontable from 'handsontable/base';\n\nimport { DTooltip } from '@shared/druid-kit';\nimport { HnTableCellMixin } from '@/packages/hn-table/src/mixins';\n\nimport { CampaignEditorPlacement } from '@/models/Campaign';\n\ntype HnTableCheckboxValue = boolean | null;\n\nexport default (Vue as VueConstructor>).extend({\n name: 'HnTableCheckboxCell',\n components: {\n DTooltip,\n },\n mixins: [\n HnTableCellMixin,\n ],\n props: {\n campaignPlacements: { type: Array as PropType, required: true },\n tooltipText: { type: [String, Array] as PropType, default: '' },\n },\n data() {\n return {\n value: null as HnTableCheckboxValue | null,\n placement: null as CampaignEditorPlacement | null,\n };\n },\n computed: {\n currentValue: {\n get() {\n return this.value;\n },\n set() {\n this.onChange();\n },\n },\n cellPropertiesRow(): number | undefined {\n return this.cellProperties?.row;\n },\n tooltipTextComputed(): string {\n if (typeof this.tooltipText === 'string') return this.tooltipText;\n\n const foundText = this.tooltipText.find(([value]) => value === this.currentValue);\n\n return foundText ? foundText[1] : '';\n },\n },\n watch: {\n hotInstance: {\n handler(newValue, oldValue) {\n oldValue?.removeHook('afterChange', this.afterChange);\n oldValue?.removeHook('beforeKeyDown', this.beforeKeyDown);\n\n newValue?.addHook('afterChange', this.afterChange);\n newValue?.addHook('beforeKeyDown', this.beforeKeyDown);\n },\n immediate: true,\n },\n campaignPlacements: {\n handler() {\n this.initPlacement();\n },\n immediate: true,\n },\n async cellPropertiesRow() {\n await this.initPlacement();\n },\n },\n beforeDestroy() {\n this.hotInstance?.removeHook('beforeKeyDown', this.beforeKeyDown);\n },\n methods: {\n async initPlacement() {\n if (typeof this.cellPropertiesRow !== 'number') return;\n\n await this.$nextTick();\n\n const campaignPlacement = this.campaignPlacements[this.cellPropertiesRow];\n\n this.placement = campaignPlacement;\n },\n afterChange() {\n this.initPlacement();\n },\n onChange() {\n if (!this.hotInstance) return;\n\n this.hotInstance.setDataAtCell(this.cellRow, this.col, !this.value);\n },\n beforeKeyDown(e: KeyboardEvent) {\n if (!this.hotInstance || e.keyCode !== Handsontable.helper.KEY_CODES.ENTER) return;\n\n const selected = this.hotInstance.getSelected() || [];\n\n const selectedRow = selected[0][0];\n const selectedCol = selected[0][1];\n\n if (selectedRow === this.cellRow && selectedCol === this.col) {\n this.onChange();\n }\n },\n },\n});\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableApprovedCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsTableApprovedCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlacementsTableApprovedCell.vue?vue&type=template&id=4ab11994&scoped=true&\"\nimport script from \"./PlacementsTableApprovedCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlacementsTableApprovedCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PlacementsTableApprovedCell.vue?vue&type=style&index=0&id=4ab11994&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ab11994\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\ninstallComponents(component, {VCheckbox})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, computed, watch, ref } from '@vue/composition-api';\n\nimport Handsontable from 'handsontable';\nimport { cloneDeep } from 'lodash';\n\nimport { HnTable } from '@/packages/hn-table/src/components';\nimport { HnTableColumn } from '@/packages/hn-table/src/models';\nimport { HnTableSelectCellItems } from '@/packages/hn-table/src/types';\n\nimport { useAuthStore } from '@/store/auth';\nimport { useMetricTypesStore } from '@/store/reference/metricTypes';\nimport { useCampaignEditorPlacementsStore } from '@/store/campaignEditor/campaignEditorPlacements';\n\nimport { Campaign, CampaignEditorPlacement } from '@/models/Campaign';\nimport { MetricTypeLight } from '@/models/MetricType';\n\nimport campaignEditorPlacementsEmitter from '../campaignEditorPlacementsEmitter';\n\nimport PlacementsTableInfoCell from './cells/PlacementsTableInfoCell.vue';\nimport PlacementsTableSourceCell from './cells/PlacementsTableSourceCell.vue';\nimport PlacementsTableMarkupsCell from './cells/PlacementsTableMarkupsCell.vue';\nimport PlacementsTableMetricCell from './cells/PlacementsTableMetricCell.vue';\nimport PlacementsTableApprovedCell from './cells/PlacementsTableApprovedCell.vue';\n\nlet H_TABLE_INSTANCE: Handsontable | null = null;\n\nconst validateTargetingAge = (value: string | number, callback: (val: boolean) => void) => callback(value >= 12 && value <= 64);\n\nexport default defineComponent({\n components: {\n HnTable,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n campaignPlacements: { type: Array as PropType, required: true },\n campaignPlanMetrics: { type: Array as PropType, required: true },\n placementsHasBeenChanged: { type: Boolean, default: false },\n columnsPresetsSlugs: { type: Array as PropType, default: () => [] },\n },\n setup(props, context) {\n const {\n campaign,\n campaignPlacements,\n campaignPlanMetrics,\n placementsHasBeenChanged,\n columnsPresetsSlugs,\n } = toRefs(props);\n\n const authStore = useAuthStore();\n const metricTypesStore = useMetricTypesStore();\n const campaignEditorPlacementsStore = useCampaignEditorPlacementsStore();\n\n const tableEl = ref(null);\n\n const userIsDp = computed(() => authStore.getters.userIsDp);\n const userIsBu = computed(() => authStore.getters.userIsBu);\n\n const planIsShown = computed(() => columnsPresetsSlugs.value.includes('planMetrics'));\n const factIsShown = computed(() => columnsPresetsSlugs.value.includes('factMetrics'));\n\n const cuurentColumnsPresetsSlugs = computed(() => {\n const newSlugs = columnsPresetsSlugs.value.filter((slug) => slug !== 'planMetrics' && slug !== 'factMetrics');\n\n if (planIsShown.value || factIsShown.value) {\n newSlugs.push('metrics');\n }\n\n return newSlugs;\n });\n\n const categorySelectOptions = computed(() => campaignEditorPlacementsStore\n .getters\n .categories\n .map(({ id, name }) => ({ value: id, text: name })));\n\n const genders = computed(() => campaignEditorPlacementsStore.state.genders);\n const transmittances = computed(() => campaignEditorPlacementsStore.state.transmittances);\n const regions = computed(() => campaignEditorPlacementsStore.state.regions);\n const cappingPeriods = computed(() => campaignEditorPlacementsStore.state.cappingPeriods);\n const incomeGroups = computed(() => campaignEditorPlacementsStore.state.incomeGroups);\n\n const dataProviderSelectOptions = computed(() => {\n const { dataProviders } = campaignEditorPlacementsStore.getters;\n\n return (cell) => {\n const rowData = cell.hotInstance?.getSourceDataAtRow(cell.row);\n\n if (!rowData || Array.isArray(rowData)) return [];\n\n return [\n { value: null, text: 'Сумма по площадкам' },\n ...dataProviders\n .filter(({ id, name }) => id === rowData.preferredDataProviderId || rowData.metricsDataProviders.includes(name))\n .map(({ id, name }) => ({ value: id, text: name })),\n ];\n };\n });\n\n const columnsPresetsMap = computed(() => ({\n settings: [\n new HnTableColumn({\n data: 'vat',\n title: 'НДС',\n header: {\n className: 'htRight',\n },\n settings: {\n type: 'numeric',\n width: 54,\n numericFormat: {\n pattern: '0{%}',\n },\n },\n }),\n new HnTableColumn({\n data: 'startDate',\n title: 'Старт',\n header: {\n className: 'htRight',\n },\n settings: {\n type: 'date',\n width: 94,\n validator: { $lte: 'endDate' },\n },\n props: {\n textAlign: 'right',\n },\n }),\n new HnTableColumn({\n title: '',\n data: 'settings-stub',\n settings: {\n type: 'stub',\n width: 32,\n },\n props: {\n text: '—',\n },\n }),\n new HnTableColumn({\n title: 'Конец',\n data: 'endDate',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'date',\n width: 94,\n validator: { $gte: 'startDate' },\n },\n props: {\n textAlign: 'left',\n },\n }),\n new HnTableColumn({\n title: 'Тип закупки',\n data: 'placementType',\n header: {\n className: 'htRight',\n },\n settings: {\n className: 'htRight',\n width: 86,\n readOnly: true,\n },\n }),\n new HnTableColumn({\n title: 'Категория',\n data: 'category.categoryId',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'dropdown',\n width: 154,\n },\n props: {\n items: categorySelectOptions.value,\n textAlign: 'left',\n },\n }),\n new HnTableColumn({\n title: 'Тип сервиса',\n data: 'serviceTypeFullPath',\n header: {\n className: 'htLeft',\n },\n settings: {\n className: 'htLeft',\n width: 182,\n readOnly: true,\n },\n }),\n ...(userIsBu.value ? [\n new HnTableColumn({\n title: 'Наценки',\n data: 'markupsCount',\n settings: {\n width: 76,\n readOnly: true,\n },\n props: {\n campaignPlacements: campaignPlacements.value,\n textAlign: 'center',\n emitter: campaignEditorPlacementsEmitter,\n },\n rendererComponent: PlacementsTableMarkupsCell,\n }),\n ] : []),\n new HnTableColumn({\n title: 'Сумма с наценкой',\n data: 'totalCost',\n header: {\n className: 'htRight',\n },\n settings: {\n type: 'numeric',\n className: 'htRight',\n width: 120,\n placeholder: '—',\n readOnly: true,\n numericFormat: {\n pattern: {\n mantissa: 2,\n },\n },\n },\n }),\n ],\n targetings: [\n new HnTableColumn({\n title: 'Регион',\n data: 'targeting.geo',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'dropdown',\n width: 222,\n },\n props: {\n items: regions.value,\n textAlign: 'left',\n itemText: 'name',\n itemValue: 'code',\n multiple: true,\n },\n }),\n new HnTableColumn({\n title: 'Пол',\n data: 'targeting.gender',\n header: {\n className: 'htRight',\n },\n settings: {\n type: 'dropdown',\n width: 60,\n },\n props: {\n items: genders.value,\n textAlign: 'right',\n itemText: 'name',\n itemValue: 'code',\n },\n }),\n new HnTableColumn({\n data: 'targeting.ageFrom',\n title: 'Возраст от',\n header: {\n className: 'htRight',\n },\n settings: {\n type: 'numeric',\n validator: validateTargetingAge,\n allowInvalid: false,\n width: 80,\n placeholder: '—',\n className: 'htRight',\n },\n }),\n new HnTableColumn({\n title: '',\n data: 'targetings-stub',\n settings: {\n type: 'stub',\n width: 32,\n },\n props: {\n text: '—',\n },\n }),\n new HnTableColumn({\n data: 'targeting.ageTo',\n title: 'Возраст до',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'numeric',\n validator: validateTargetingAge,\n allowInvalid: false,\n width: 80,\n placeholder: '—',\n className: 'htLeft',\n },\n }),\n new HnTableColumn({\n title: 'Пропускаемость',\n data: 'targeting.transmittance',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'dropdown',\n width: 120,\n },\n props: {\n items: transmittances.value,\n textAlign: 'left',\n itemText: 'name',\n itemValue: 'code',\n },\n }),\n new HnTableColumn({\n data: 'targeting.interests',\n title: 'Таргетинг по интересам',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'text',\n width: 154,\n placeholder: '—',\n className: 'htLeft',\n },\n }),\n new HnTableColumn({\n title: 'Период ограничения по частоте',\n data: 'targeting.cappingPeriod',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'dropdown',\n width: 154,\n },\n props: {\n items: cappingPeriods.value,\n textAlign: 'left',\n itemText: 'name',\n itemValue: 'code',\n },\n }),\n new HnTableColumn({\n data: 'targeting.capping',\n title: 'Ограничение по частоте',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'numeric',\n width: 110,\n placeholder: '—',\n className: 'htLeft',\n },\n }),\n new HnTableColumn({\n data: 'targeting.timing',\n title: 'Хронометраж',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'numeric',\n width: 110,\n placeholder: '—',\n className: 'htLeft',\n },\n }),\n new HnTableColumn({\n title: 'Тип дохода',\n data: 'targeting.income',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'dropdown',\n width: 86,\n },\n props: {\n items: incomeGroups.value,\n textAlign: 'left',\n itemText: 'name',\n itemValue: 'code',\n },\n }),\n ],\n metrics: [\n new HnTableColumn({\n title: 'Данные плана',\n data: 'getPlanFrom1C',\n header: {\n className: 'htRight',\n },\n settings: {\n width: 80,\n readOnly: true,\n },\n props: {\n textAlign: 'right',\n },\n rendererComponent: PlacementsTableSourceCell,\n }),\n new HnTableColumn({\n title: 'Источник данных',\n data: 'preferredDataProviderId',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'dropdown',\n width: 182,\n },\n props: {\n items: dataProviderSelectOptions.value,\n textAlign: 'left',\n },\n }),\n ...campaignPlanMetrics.value.map((planMetric) => {\n const metricTypeAccuracy = metricTypesStore.getters.getMetricTypeProp(planMetric.name, 'accuracy') || 0;\n\n return new HnTableColumn({\n title: planMetric.displayName,\n data: `planTotalMetrics.${planMetric.name}`,\n header: {\n className: 'htRight',\n },\n settings: {\n type: 'numeric',\n width: 168,\n className: 'htRight',\n placeholder: '—',\n allowInvalid: false,\n allowEmpty: true,\n readOnly: !planIsShown.value && factIsShown.value,\n },\n props: {\n metricName: planMetric.name,\n campaignPlacements: campaignPlacements.value,\n format: {\n mantissa: metricTypeAccuracy,\n },\n planIsShown: planIsShown.value,\n factIsShown: factIsShown.value,\n },\n rendererComponent: PlacementsTableMetricCell,\n });\n }),\n ],\n }));\n\n const hnTableColumns = computed(() => [\n new HnTableColumn({\n title: 'Размещение',\n data: 'hidden',\n header: {\n className: 'htLeft',\n },\n settings: {\n width: 320,\n readOnly: true,\n },\n props: {\n campaign: campaign.value,\n campaignPlacements: campaignPlacements.value,\n },\n rendererComponent: PlacementsTableInfoCell,\n }),\n ...columnsPresetsMap.value.settings,\n ...columnsPresetsMap.value.targetings,\n ...columnsPresetsMap.value.metrics,\n new HnTableColumn({\n title: 'DP',\n data: 'check.approvedByPlanning',\n settings: {\n width: 60,\n readOnly: !userIsDp.value,\n },\n props: {\n textAlign: 'center',\n campaignPlacements: campaignPlacements.value,\n tooltipText: [\n [true, 'Сделать непроверенным Digital Planer’ом'],\n [false, 'Отметить размещение как проверенное Digital Planer’ом'],\n ],\n },\n rendererComponent: PlacementsTableApprovedCell,\n }),\n new HnTableColumn({\n title: 'BU',\n data: 'check.approvedByBuying',\n settings: {\n width: 80,\n readOnly: !userIsBu.value,\n },\n props: {\n textAlign: 'center',\n campaignPlacements: campaignPlacements.value,\n tooltipText: [\n [true, 'Сделать непроверенным Buying Unit’ом'],\n [false, 'Отметить размещение как проверенное Buying Unit’ом'],\n ],\n },\n rendererComponent: PlacementsTableApprovedCell,\n }),\n ]);\n\n const beforeChange = (changes: Handsontable.CellChange[], source: Handsontable.ChangeSource) => {\n const localHnTableInstance = H_TABLE_INSTANCE;\n\n if (!localHnTableInstance || !changes || source === 'loadData') return;\n\n const changesWithoutGetPlanFrom1C = changes.filter(([_row, prop]) => prop !== 'getPlanFrom1C');\n const changedRowsWithoutGetPlanFrom1C = changesWithoutGetPlanFrom1C.map(([row]) => row);\n const uniqueChangedRowsWithoutGetPlanFrom1C = [...new Set(changedRowsWithoutGetPlanFrom1C)];\n\n uniqueChangedRowsWithoutGetPlanFrom1C.forEach((row) => {\n const oldValue = localHnTableInstance.getDataAtRowProp(row, 'getPlanFrom1C');\n\n if (oldValue) changes.push([row, 'getPlanFrom1C', oldValue, false]);\n });\n };\n\n const afterChange = (changes: Handsontable.CellChange[], source: Handsontable.ChangeSource) => {\n const localHnTableInstance = H_TABLE_INSTANCE;\n\n if (!localHnTableInstance || source === 'loadData') return;\n\n const sourceData = cloneDeep(localHnTableInstance.getSourceData()) as CampaignEditorPlacement[];\n\n const changedRows = changes.map(([row]) => row);\n const uniqueChangedRows = [...new Set(changedRows)];\n\n const changedPlacements = uniqueChangedRows.map((row) => {\n const physicalRow = localHnTableInstance.rowIndexMapper.getPhysicalFromVisualIndex(row) as number;\n\n return sourceData[physicalRow];\n });\n\n context.emit('change', changedPlacements);\n };\n\n const hnTableSettings = computed(() => ({\n height: '100%',\n beforeChange,\n afterChange,\n fixedColumnsLeft: 1,\n fixedColumnsRight: 2,\n fixedColumnsRightWithBorder: columnsPresetsSlugs.value.some((slug) => slug !== 'settings'),\n }));\n\n const onHnTableInitialized = (localHnTableInstance: Handsontable) => {\n H_TABLE_INSTANCE = localHnTableInstance;\n };\n\n watch(placementsHasBeenChanged, (val) => {\n const localHnTableInstance = H_TABLE_INSTANCE;\n\n if (!localHnTableInstance || !tableEl.value) return;\n\n const { clientHeight } = tableEl.value;\n const tableHeight = val ? clientHeight - 40 : clientHeight + 40;\n\n tableEl.value.style.height = `${tableHeight}px`;\n\n localHnTableInstance.refreshDimensions();\n }, { immediate: true });\n\n return {\n cuurentColumnsPresetsSlugs,\n hnTableColumns,\n hnTableSettings,\n onHnTableInitialized,\n columnsPresetsMap,\n tableEl,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementsTable.vue?vue&type=template&id=b3968aa2&scoped=true&\"\nimport script from \"./CampaignPlacementsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignPlacementsTable.vue?vue&type=style&index=0&id=b3968aa2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b3968aa2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-editor-table-loader\"},[(!_vm.withoutHeader)?_c('v-skeleton-loader',{staticClass:\"campaign-editor-table-loader__content-title\",attrs:{\"type\":\"text\"}}):_vm._e(),_vm._v(\" \"),_c('TableLoader',{attrs:{\"rows\":3}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorTableLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorTableLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CampaignEditorTableLoader.vue?vue&type=template&id=562a5dab&scoped=true&\"\nimport script from \"./CampaignEditorTableLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./CampaignEditorTableLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CampaignEditorTableLoader.vue?vue&type=style&index=0&id=562a5dab&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"562a5dab\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"capmaign-placements-metrics-modal\",attrs:{\"width\":\"560\",\"title\":\"Дополнительные метрики\",\"value\":_vm.value,\"scrollable\":\"\"},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('div',{staticClass:\"capmaign-placements-metrics-modal__main\"},[_c('v-list',{staticClass:\"py-0\"},[_c('v-list-item-group',{attrs:{\"multiple\":\"\"},model:{value:(_vm.selectedPlanMetricsNames),callback:function ($$v) {_vm.selectedPlanMetricsNames=$$v},expression:\"selectedPlanMetricsNames\"}},_vm._l((_vm.planMetricsOptions),function(planMetricOption){return _c('v-list-item',{key:planMetricOption.value,staticClass:\"capmaign-placements-metrics-modal__list-item\",attrs:{\"active-class\":\"capmaign-placements-metrics-modal__list-item--active\",\"value\":planMetricOption.value,\"dense\":\"\",\"disabled\":planMetricOption.disabled},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar active = ref.active;\nreturn [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":active}})],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(planMetricOption.text))])],1)]}}],null,true)})}),1)],1)],1)]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Закрыть\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"loading\":_vm.isLoading,\"rounded\":\"\",\"disabled\":!_vm.selectedPlanMetricsNames.length},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref, computed, watch } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { useCampaignEditorPlacementsStore } from '@/store/campaignEditor/campaignEditorPlacements';\nimport { MetricTypeLight } from '@/models/MetricType';\n\nexport default defineComponent({\n components: {\n AppModal,\n },\n props: {\n value: { type: Boolean, default: false },\n filledPlanMetrics: { type: Array as PropType, default: () => [] },\n visiblePlanMetrics: { type: Array as PropType, default: () => [] },\n },\n setup(props, context) {\n const {\n value,\n filledPlanMetrics,\n visiblePlanMetrics,\n } = toRefs(props);\n\n const campaignEditorPlacementsStore = useCampaignEditorPlacementsStore();\n\n const selectedPlanMetricsNames = ref([]);\n\n const isLoading = ref(false);\n\n const campaignPlanMetrics = computed(() => campaignEditorPlacementsStore.getters.campaignPlanMetrics);\n\n const planMetricsOptions = computed(() => campaignPlanMetrics.value.map((planMetric) => ({\n text: planMetric.displayName,\n value: planMetric.name,\n disabled: filledPlanMetrics.value.some(({ name }) => name === planMetric.name),\n })));\n\n watch(value, (val: boolean) => {\n if (!val) return;\n\n selectedPlanMetricsNames.value = visiblePlanMetrics.value.map(({ name }) => name);\n });\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = () => {\n const planMetric = campaignPlanMetrics.value.filter(({ name }) => selectedPlanMetricsNames.value.includes(name));\n\n campaignEditorPlacementsStore.commit('SET_SELECTED_PLAN_METRICS', planMetric);\n\n close();\n };\n\n return {\n isLoading,\n selectedPlanMetricsNames,\n planMetricsOptions,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsMetricsModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsMetricsModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementsMetricsModal.vue?vue&type=template&id=e0b5e7b2&scoped=true&\"\nimport script from \"./CampaignPlacementsMetricsModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementsMetricsModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignPlacementsMetricsModal.vue?vue&type=style&index=0&id=e0b5e7b2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e0b5e7b2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VCheckbox,VList,VListItem,VListItemAction,VListItemContent,VListItemGroup,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({attrs:{\"max-width\":\"1200\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"header-content\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"mr-3 text-h5\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_vm._v(\" \"),_c('v-menu',{attrs:{\"nudge-bottom\":\"8\",\"offset-y\":\"\",\"tile\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('DBtnInline',_vm._g(_vm._b({staticClass:\"mt-1\",attrs:{\"loading\":_vm.isLoading},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}],null,true)},'DBtnInline',attrs,false),on),[_vm._v(\" \"),_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Новый коннектор\\n \")])])]}}]),model:{value:(_vm.connectorsMenuIsOpen),callback:function ($$v) {_vm.connectorsMenuIsOpen=$$v},expression:\"connectorsMenuIsOpen\"}},[_vm._v(\" \"),_c('v-list',{attrs:{\"max-height\":\"200\"}},_vm._l((_vm.filteredDataProviders),function(dataProvider){return _c('v-list-item',{key:dataProvider.id,staticClass:\"placements-markups-modal__data-provider\",on:{\"click\":function($event){return _vm.openCreateModal(dataProvider)}}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"body-2\",domProps:{\"textContent\":_vm._s(dataProvider.name)}})],1)],1)}),1)],1)],1)]},proxy:true},{key:\"main-content\",fn:function(){return [(_vm.placementMarkups.length)?_c('div',[_vm._l((_vm.placementMarkups),function(markup,index){return _c('PlacementsMarkup',{key:markup.dataProviderId,attrs:{\"value\":index === 0,\"markup\":markup}})}),_vm._v(\" \"),_c('div',{staticClass:\"mt-4 mb-1 body-2 grey--text text--darken-1\"},[_vm._v(\"\\n Здесь показаны только те площадки и источники данных, для которых в размещение приехала статистика и в принципе можно\"),_c('br'),_vm._v(\"\\n поставить наценку (т.е. не включая постклик и коллтрекинг).\\n \")])],2):_c('div',{staticClass:\"pt-4 pb-6 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n У этого размещения нет наценок\\n \")]),_vm._v(\" \"),_c('CampaignPlacementsCreateMarkupModal',_vm._b({model:{value:(_vm.modalsMap.create.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.create, \"value\", $$v)},expression:\"modalsMap.create.value\"}},'CampaignPlacementsCreateMarkupModal',_vm.modalsMap.create.props,false))]},proxy:true}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"placements-markup\"},[_c('v-btn',{staticClass:\"placements-markup__header px-6 mx-n6 justify-start\",attrs:{\"disabled\":_vm.isLoading,\"height\":\"48\",\"elevation\":\"0\",\"color\":\"grey lighten-5\",\"block\":\"\",\"tile\":\"\"},on:{\"click\":_vm.toggle}},[(_vm.isLoading)?_c('v-progress-circular',{staticClass:\"placements-markup__header-icon\",attrs:{\"width\":\"2\",\"size\":\"20\",\"indeterminate\":\"\"}}):_c('v-icon',{staticClass:\"placements-markup__header-icon\",class:{ 'placements-markup__header-icon--active': _vm.isOpen },attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-chevron-right\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"placements-markup__header-text text-h6\"},[_vm._v(\"\\n \"+_vm._s(_vm.markup.dataProviderName)+\"\\n \")])],1),_vm._v(\" \"),(_vm.isShown)?_c('MarkupsPeriodsTable',{attrs:{\"markup\":_vm.markupsDataProvider}}):_vm._e(),_vm._v(\" \"),(_vm.isLoading)?_c('TableLoader',{staticClass:\"py-3\",attrs:{\"columns\":4}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"markup-periods-table d-flex py-3\"},[_c('DTable',{attrs:{\"headers\":_vm.headers,\"items\":_vm.markupsWithCost,\"items-per-page\":_vm.markupsWithCost.length},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [_c('MarkupPeriodsTableRow',{attrs:{\"period\":item,\"markup\":_vm.markup,\"index\":index}}),_vm._v(\" \"),(index === _vm.markupsWithCost.length - 1)?_c('MarkupPeriodsTableFooterRow',{attrs:{\"markup\":_vm.markup},on:{\"open-add-modal\":_vm.openAddModal}}):_vm._e()]}}])}),_vm._v(\" \"),_c('MarkupPeriodsTableAddModal',_vm._b({model:{value:(_vm.modalsMap.add.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.add, \"value\", $$v)},expression:\"modalsMap.add.value\"}},'MarkupPeriodsTableAddModal',_vm.modalsMap.add.props,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',[_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.startDate)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"subtitle-2 grey--text text--darken-4\"},[_vm._v(\"\\n \"+_vm._s(_vm.multiplier)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.rawCost)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.cost)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_c('v-btn',{staticClass:\"ml-2\",attrs:{\"small\":\"\",\"icon\":\"\",\"loading\":_vm.deletion},on:{\"click\":_vm.deletePeriod}},[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { NotifyItemPushOptions } from '@/services/notify/types';\n\nimport store from '@/store';\nimport notifyStore from './store/notify.store';\n\nconst notifyStoreContext = notifyStore.context(store);\n\nexport default {\n push(payload: NotifyItemPushOptions): void {\n notifyStoreContext.dispatch('PUSH_NOTIFICATION', payload);\n },\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, PropType } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport numatter from '@/packages/numatter';\n\nimport modally from '@/services/modally';\nimport notify from '@/services/notify';\n\nimport { Markup } from '@/models/Markup';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useCampaignEditorPlacementDetailsStore } from '@/store/campaignEditor/campaignEditorPlacementDetails';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n period: { type: Object as PropType, required: true },\n index: { type: Number, required: true },\n markup: { type: Object as PropType, default: null },\n },\n setup(props) {\n const {\n period,\n index,\n markup,\n } = toRefs(props);\n\n const campaignEditorPlacementDetailsStore = useCampaignEditorPlacementDetailsStore();\n\n const markupsWithCost = computed(() => markup.value?.markupsWithCost || []);\n\n const isOnlyOne = computed(() => markupsWithCost.value.length <= 1);\n\n const startDate = computed(() => moment.utc(period.value.startDate).format('DD.MM.YYYY'));\n const multiplier = computed(() => numatter.format(period.value.value, '0,0[.]0000'));\n const rawCost = computed(() => numatter.format(period.value.rawCost, '0,0[.]00'));\n const cost = computed(() => numatter.format(period.value.cost, '0,0[.]00'));\n\n const deletion = ref(false);\n\n const deletePeriod = async () => {\n const result = await modally.show({\n title: isOnlyOne.value\n ? 'Удалить последний период?'\n : `Удалить период от ${startDate.value}?`,\n content: isOnlyOne.value\n ? 'Наценка будет удалена.\\nКоэффицент 1 будет использоваться по умолчанию\\nна весь период размещения.'\n : 'Будет применен предыдущий коэффицент.\\nЧтобы восстановить период, создайте его заново.',\n buttons: [\n {\n props: {\n text: 'Удалить',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary',\n },\n action: () => false,\n },\n ],\n });\n\n if (!markup.value || !result) return;\n\n deletion.value = true;\n\n try {\n if (isOnlyOne.value) {\n await campaignEditorPlacementDetailsStore.dispatch('DELETE_MARKUP', {\n placementId: markup.value.placementId,\n markupId: markup.value.id,\n });\n\n notify.push({\n text: `Наценка для ${markup.value.dataProviderName} удалена`,\n position: ['bottom', 'center'],\n status: 'positive',\n });\n } else {\n await campaignEditorPlacementDetailsStore.dispatch('DELETE_MARKUP_PERIOD', {\n markupId: markup.value.id,\n index: index.value,\n });\n\n notify.push({\n text: `Период наценки для ${markup.value.dataProviderName} удален`,\n position: ['bottom', 'center'],\n status: 'positive',\n });\n }\n } catch (e) {\n if (!isError(e) || !isAxiosError(e)) return;\n\n const message = e.response?.data?.message;\n\n if (message) {\n modally.show({ status: 'error', title: 'Ошибка при удалении периода', content: message });\n } else {\n throw e;\n }\n } finally {\n deletion.value = false;\n }\n };\n\n return {\n startDate,\n multiplier,\n rawCost,\n cost,\n deletion,\n deletePeriod,\n };\n },\n});\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupPeriodsTableRow.vue?vue&type=template&id=2f14d429&\"\nimport script from \"./MarkupPeriodsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupPeriodsTableRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',[_c('DTableCell',{attrs:{\"colspan\":\"2\"}},[_c('v-btn',{staticClass:\"markup-periods__btn\",attrs:{\"color\":\"primary\",\"outlined\":\"\",\"rounded\":\"\",\"small\":\"\"},on:{\"click\":_vm.openAddModal}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"caption\"},[_vm._v(\"Новый период наценки\")])],1)],1),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.calculatedRawCost)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.calculatedCost)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_c('DBtnInline',{staticClass:\"ml-4 caption\",on:{\"click\":_vm.deleteMarkup},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])]},proxy:true}])},[_vm._v(\"\\n Удалить все\\n \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport modally from '@/services/modally';\nimport notify from '@/services/notify';\n\nimport numatter from '@/packages/numatter';\n\nimport { Markup } from '@/models/Markup';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useCampaignEditorPlacementDetailsStore } from '@/store/campaignEditor/campaignEditorPlacementDetails';\n\nimport { computed, defineComponent, PropType, ref, toRefs } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n DBtnInline,\n} from '@shared/druid-kit';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n DBtnInline,\n },\n props: {\n markup: { type: Object as PropType, default: null },\n },\n setup(props, context) {\n const { markup } = toRefs(props);\n\n const campaignEditorPlacementStore = useCampaignEditorPlacementDetailsStore();\n\n const deleting = ref(false);\n\n const markupsWithCost = computed(() => markup.value?.markupsWithCost || []);\n\n const calculatedCost = computed(() => {\n const result = markupsWithCost.value.reduce((acc, { cost }) => acc + cost, 0);\n\n return numatter.format(result, '0,0[.]00');\n });\n\n const calculatedRawCost = computed(() => {\n const result = markupsWithCost.value.reduce((acc, { rawCost }) => acc + rawCost, 0);\n\n return numatter.format(result, '0,0[.]00');\n });\n\n const deleteMarkup = async () => {\n const result = await modally.show({\n title: 'Удалить все периоды?',\n content: 'Наценка будет удалена.\\nКоэффицент 1 будет использоваться по умолчанию\\nна весь период размещения.',\n buttons: [\n {\n props: {\n text: 'Удалить все',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary',\n },\n action: () => false,\n },\n ],\n });\n\n if (!markup.value || !result) return;\n\n deleting.value = true;\n\n try {\n await campaignEditorPlacementStore.dispatch('DELETE_MARKUP', {\n placementId: markup.value.placementId,\n markupId: markup.value.id,\n });\n\n notify.push({\n text: `Наценка для ${markup.value.dataProviderName} удалена`,\n position: ['bottom', 'center'],\n status: 'positive',\n });\n } catch (e) {\n if (!isError(e) || !isAxiosError(e)) return;\n\n const message = e.response?.data?.message;\n\n if (message) {\n modally.show({ status: 'error', title: 'Ошибка при удалении наценки', content: message });\n } else {\n throw e;\n }\n } finally {\n deleting.value = false;\n }\n };\n\n const openAddModal = () => {\n context.emit('open-add-modal');\n };\n\n return {\n calculatedCost,\n calculatedRawCost,\n deleteMarkup,\n openAddModal,\n };\n },\n});\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableFooterRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableFooterRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupPeriodsTableFooterRow.vue?vue&type=template&id=128a8138&\"\nimport script from \"./MarkupPeriodsTableFooterRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupPeriodsTableFooterRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"markup-periods-table-add-modal\",attrs:{\"width\":\"480\",\"title\":_vm.title,\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('div',{staticClass:\"markup-periods-table-add-modal__block d-flex px-6 mb-6\"},[_c('div',{staticClass:\"markup-periods-table-add-modal__field markup-periods-table-add-modal__field--width-xs mr-4\"},[_c('DDatePickerTextField',{attrs:{\"text-field-classes\":\"markup-periods-table-add-modal__date-picker-text-field\",\"label\":\"Дата начала\"},model:{value:(_vm.currentStartDate),callback:function ($$v) {_vm.currentStartDate=$$v},expression:\"currentStartDate\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"markup-periods-table-add-modal__field markup-periods-table-add-modal__field--width-xs\"},[_c('v-text-field',{staticClass:\"markup-periods-table-add-modal__text-field\",attrs:{\"label\":\"Коэффицент\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.currentMultiplier),callback:function ($$v) {_vm.currentMultiplier=$$v},expression:\"currentMultiplier\"}})],1)]),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"markup-periods-table-add-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"markup-periods-table-add-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"markup-periods-table-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DDatePickerTextField } from '@shared/druid-kit';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport notify from '@/services/notify';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useCampaignEditorPlacementDetailsStore } from '@/store/campaignEditor/campaignEditorPlacementDetails';\n\nimport { Markup } from '@/models/Markup';\n\nexport default defineComponent({\n components: {\n AppModal,\n DDatePickerTextField,\n },\n props: {\n value: { type: Boolean, default: false },\n markup: { type: Object as PropType, default: null },\n },\n setup(props, context) {\n const {\n value,\n markup,\n } = toRefs(props);\n\n const campaignEditorPlacementsDetailsStore = useCampaignEditorPlacementDetailsStore();\n\n const title = computed(() => (markup.value ? `Наценка для ${markup.value.dataProviderName}` : 'Наценка'));\n\n const markupsWithCost = computed(() => markup.value?.markupsWithCost || []);\n\n const maxMarkupPeriodStartDate = computed(() => {\n const markupPeriodsStartDates = markupsWithCost.value.map((period) => moment(period.startDate));\n\n return moment.utc(moment.max(markupPeriodsStartDates)).format('YYYY-MM-DDTHH:mm:ss[Z]');\n });\n\n const currentStartDate = ref(moment(maxMarkupPeriodStartDate.value).add(1, 'day').format('YYYY-MM-DD'));\n\n const currentMultiplier = ref(1);\n\n const newMarkupPeriod = computed(() => {\n if (!markup.value || !currentStartDate.value || !currentMultiplier.value) return null;\n\n return {\n clientId: markup.value.clientId,\n brandId: markup.value.brandId,\n campaignId: markup.value.campaignId,\n placementId: markup.value.placementId,\n dataProviderId: markup.value.dataProviderId,\n startDate: moment.utc(currentStartDate.value).toISOString(),\n value: currentMultiplier.value,\n };\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => saving.value || !newMarkupPeriod.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!markup.value || !newMarkupPeriod.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await campaignEditorPlacementsDetailsStore.dispatch('ADD_MARKUP_PERIOD', {\n markupId: markup.value.id,\n data: newMarkupPeriod.value,\n });\n\n notify.push({\n text: `Наценка для ${markup.value.dataProviderName} добавлена`,\n position: ['bottom', 'center'],\n status: 'positive',\n });\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const message = error.response?.data?.message;\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: [message],\n };\n } else {\n saveError.value = {\n title: 'Произошла ошибка. Обратитесь к администратору',\n messages: [],\n };\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n }\n } finally {\n saving.value = false;\n }\n };\n\n watch(value, (val) => {\n if (!val) return;\n\n currentStartDate.value = moment(maxMarkupPeriodStartDate.value).add(1, 'day').format('YYYY-MM-DD');\n currentMultiplier.value = 1;\n });\n\n return {\n title,\n currentStartDate,\n currentMultiplier,\n saveBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableAddModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableAddModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupPeriodsTableAddModal.vue?vue&type=template&id=043cd95c&scoped=true&\"\nimport script from \"./MarkupPeriodsTableAddModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupPeriodsTableAddModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MarkupPeriodsTableAddModal.vue?vue&type=style&index=0&id=043cd95c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"043cd95c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, toRefs } from '@vue/composition-api';\n\nimport {\n DTable,\n} from '@shared/druid-kit';\n\nimport { Markup } from '@/models/Markup';\n\nimport useModals from '@/composables/useModals';\n\nimport MarkupPeriodsTableRow from './rows/MarkupPeriodsTableRow.vue';\nimport MarkupPeriodsTableFooterRow from './rows/MarkupPeriodsTableFooterRow.vue';\n\nimport MarkupPeriodsTableAddModal from './modals/MarkupPeriodsTableAddModal.vue';\n\nexport default defineComponent({\n components: {\n DTable,\n MarkupPeriodsTableRow,\n MarkupPeriodsTableFooterRow,\n MarkupPeriodsTableAddModal,\n },\n props: {\n markup: { type: Object as PropType, default: null },\n },\n setup(props) {\n const { markup } = toRefs(props);\n\n const headers = [\n {\n class: 'caption',\n text: 'Дата начала',\n value: 'startDate',\n },\n {\n class: 'caption',\n text: 'Коэффицент',\n value: 'value',\n },\n {\n class: 'caption',\n text: 'Бюджет без наценки',\n value: 'rawCost',\n },\n {\n class: 'caption',\n text: 'Бюджет с наценкой',\n value: 'cost',\n },\n {\n sortable: false,\n },\n ];\n\n const { modalsMap, openModal } = useModals(['add']);\n\n const markupsWithCost = computed(() => markup.value?.markupsWithCost || []);\n\n const openAddModal = () => {\n openModal({ slug: 'add', props: { markup: markup.value } });\n };\n\n return {\n headers,\n markupsWithCost,\n modalsMap,\n openAddModal,\n };\n },\n});\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsPeriodsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsPeriodsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupsPeriodsTable.vue?vue&type=template&id=29179a00&\"\nimport script from \"./MarkupsPeriodsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupsPeriodsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref, watch, computed } from '@vue/composition-api';\n\nimport { Markup } from '@/models/Markup';\n\nimport { useCampaignEditorPlacementDetailsStore } from '@/store/campaignEditor/campaignEditorPlacementDetails';\n\nimport TableLoader from '@/components/_newDesign/common/loaders/TableLoader.vue';\n\nimport MarkupsPeriodsTable from './MarkupPeriodsTable/MarkupsPeriodsTable.vue';\n\nexport default defineComponent({\n components: {\n TableLoader,\n MarkupsPeriodsTable,\n },\n props: {\n value: { type: Boolean, default: false },\n markup: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const {\n value,\n markup,\n } = toRefs(props);\n\n const campaignEditorPlacementStore = useCampaignEditorPlacementDetailsStore();\n\n const isOpen = ref(false);\n const isLoading = ref(false);\n\n const markupsDataProvider = computed(() => campaignEditorPlacementStore.getters.getMarkupWithCost(markup.value.id));\n const isShown = computed(() => isOpen.value && !isLoading.value);\n\n const fetch = async () => {\n isLoading.value = true;\n\n try {\n await campaignEditorPlacementStore.dispatch('FETCH_MARKUP', markup.value.id);\n } finally {\n isLoading.value = false;\n }\n };\n\n const open = async () => {\n if (!isOpen.value) return;\n\n await fetch();\n };\n\n watch(value, (val: boolean) => {\n if (isOpen.value === val) return;\n\n isOpen.value = val;\n\n open();\n }, { immediate: true });\n\n watch(isOpen, (val: boolean) => {\n if (value.value === val) return;\n\n context.emit('input', val);\n });\n\n const toggle = () => {\n if (isLoading.value) return;\n\n isOpen.value = !isOpen.value;\n\n open();\n };\n\n return {\n isOpen,\n isLoading,\n isShown,\n toggle,\n markupsDataProvider,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsMarkup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsMarkup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlacementsMarkup.vue?vue&type=template&id=a5ae6584&scoped=true&\"\nimport script from \"./PlacementsMarkup.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlacementsMarkup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PlacementsMarkup.vue?vue&type=style&index=0&id=a5ae6584&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a5ae6584\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"campaign-placements-create-markup-modal\",attrs:{\"width\":\"480\",\"title\":_vm.title,\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('div',{staticClass:\"campaign-placements-create-markup-modal__block d-flex px-6 mb-6\"},[_c('div',{staticClass:\"campaign-placements-create-markup-modal__field campaign-placements-create-markup-modal__field--width-xs mr-4\"},[_c('DDatePickerTextField',{attrs:{\"text-field-classes\":\"campaign-placements-create-markup-modal__date-picker-text-field\",\"label\":\"Дата начала\"},model:{value:(_vm.currentStartDate),callback:function ($$v) {_vm.currentStartDate=$$v},expression:\"currentStartDate\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-placements-create-markup-modal__field campaign-placements-create-markup-modal__field--width-xs\"},[_c('v-text-field',{staticClass:\"campaign-placements-create-markup-modal__text-field\",attrs:{\"label\":\"Коэффицент\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.currentMultiplier),callback:function ($$v) {_vm.currentMultiplier=$$v},expression:\"currentMultiplier\"}})],1)]),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"campaign-placements-create-markup-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"campaign-placements-create-markup-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"campaign-placements-create-markup-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DDatePickerTextField } from '@shared/druid-kit';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport notify from '@/services/notify';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useCampaignEditorPlacementDetailsStore } from '@/store/campaignEditor/campaignEditorPlacementDetails';\n\nimport { Markup } from '@/models/Markup';\n\nexport default defineComponent({\n components: {\n AppModal,\n DDatePickerTextField,\n },\n props: {\n value: { type: Boolean, default: false },\n markup: { type: Object as PropType, default: null },\n },\n setup(props, context) {\n const {\n value,\n markup,\n } = toRefs(props);\n\n const campaignEditorPlacementDetailsStore = useCampaignEditorPlacementDetailsStore();\n\n const title = computed(() => (markup.value ? `Наценка для ${markup.value.dataProviderName}` : 'Наценка'));\n\n const markupsWithCost = computed(() => markup.value?.markupsWithCost || []);\n\n const maxMarkupPeriodStartDate = computed(() => {\n const markupPeriodsStartDates = markupsWithCost.value.map((period) => moment(period.startDate));\n\n return moment.utc(moment.max(markupPeriodsStartDates)).format('YYYY-MM-DDTHH:mm:ss[Z]');\n });\n\n const currentStartDate = ref(moment(maxMarkupPeriodStartDate.value).add(1, 'day').format('YYYY-MM-DD'));\n\n const currentMultiplier = ref(1);\n\n const newMarkup = computed(() => {\n if (!markup.value || !currentStartDate.value || !currentMultiplier.value) return null;\n\n return {\n clientId: markup.value.clientId,\n brandId: markup.value.brandId,\n campaignId: markup.value.campaignId,\n placementId: markup.value.placementId,\n dataProviderId: markup.value.dataProviderId,\n startDate: moment.utc(currentStartDate.value).toISOString(),\n value: currentMultiplier.value,\n };\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => saving.value || !newMarkup.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!markup.value || !newMarkup.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await campaignEditorPlacementDetailsStore.dispatch('ADD_PLACEMENT_MARKUP', newMarkup.value);\n\n notify.push({\n text: `Наценка для ${markup.value.dataProviderName} добавлена`,\n position: ['bottom', 'center'],\n status: 'positive',\n });\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const message = error.response?.data?.message;\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: [message],\n };\n } else {\n saveError.value = {\n title: 'Произошла ошибка. Обратитесь к администратору',\n messages: [],\n };\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n }\n } finally {\n saving.value = false;\n }\n };\n\n watch(value, (val) => {\n if (!val) return;\n\n currentStartDate.value = moment(maxMarkupPeriodStartDate.value).add(1, 'day').format('YYYY-MM-DD');\n currentMultiplier.value = 1;\n });\n\n return {\n title,\n currentStartDate,\n currentMultiplier,\n saveBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsCreateMarkupModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsCreateMarkupModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementsCreateMarkupModal.vue?vue&type=template&id=11feaa5c&scoped=true&\"\nimport script from \"./CampaignPlacementsCreateMarkupModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementsCreateMarkupModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignPlacementsCreateMarkupModal.vue?vue&type=style&index=0&id=11feaa5c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11feaa5c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, toRefs, ref, watch } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport { CampaignEditorPlacement } from '@/models/Campaign';\nimport { DataProvider } from '@/models/DataProvider';\n\nimport useModals from '@/composables/useModals';\n\nimport { useCampaignStore } from '@/store/campaign';\nimport { useCampaignEditorPlacementsStore } from '@/store/campaignEditor/campaignEditorPlacements';\nimport { useCampaignEditorPlacementDetailsStore } from '@/store/campaignEditor/campaignEditorPlacementDetails';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport campaignEditorPlacementsEmitter from '../campaignEditorPlacementsEmitter';\n\nimport PlacementsMarkup from '../CampaignPlacementsMarkup/PlacementsMarkup.vue';\nimport CampaignPlacementsCreateMarkupModal from './CampaignPlacementsCreateMarkupModal.vue';\n\nexport default defineComponent({\n components: {\n AppModal,\n DBtnInline,\n PlacementsMarkup,\n CampaignPlacementsCreateMarkupModal,\n },\n props: {\n value: { type: Boolean, default: false },\n placement: { type: Object as PropType, default: null },\n },\n setup(props, context) {\n const { modalsMap, openModal } = useModals(['create']);\n\n const campaignStore = useCampaignStore();\n const campaignEditorPlacementsStore = useCampaignEditorPlacementsStore();\n const campaignEditorPlacementDetailsStore = useCampaignEditorPlacementDetailsStore();\n\n const { value, placement } = toRefs(props);\n\n const connectorsMenuIsOpen = ref(false);\n const isLoading = ref(false);\n\n const currentDate = ref(moment().format('YYYY-MM-DD'));\n const currentMultiplier = ref(1);\n\n const campaign = computed(() => campaignStore.getters.campaign);\n const dataProviders = computed(() => campaignEditorPlacementsStore.getters.dataProviders);\n const placementMarkups = computed(() => campaignEditorPlacementDetailsStore.getters.placementMarkups);\n const placementMarkupsIsChanged = computed(() => campaignEditorPlacementDetailsStore.getters.placementMarkupsIsChanged);\n\n const filteredDataProviders = computed(() => {\n const selectedDataProvidersIds = placementMarkups.value.map(({ dataProviderId }) => dataProviderId);\n\n return dataProviders.value.filter(({ id }) => !selectedDataProvidersIds.includes(id));\n });\n\n const title = computed(() => `Наценки размещения ${placement.value?.siteName || ''} (${placement.value?.danboId || ''})`);\n\n const openCreateModal = (dataProvider: DataProvider) => {\n if (!campaign.value || !placement.value) return;\n\n const newMarkup = {\n clientId: campaign.value.clientId,\n brandId: campaign.value.brandId,\n campaignId: campaign.value.id,\n placementId: placement.value.id,\n dataProviderId: dataProvider.id,\n dataProviderName: dataProvider.name,\n startDate: moment.utc(currentDate.value).toISOString(),\n value: currentMultiplier.value,\n };\n\n openModal({ slug: 'create', props: { markup: newMarkup } });\n };\n\n const close = () => {\n context.emit('input', false);\n };\n\n const fetch = async () => {\n if (!placement.value) return;\n\n isLoading.value = true;\n\n try {\n await campaignEditorPlacementDetailsStore.dispatch('FETCH_MARKUPS', placement.value.id);\n } finally {\n isLoading.value = false;\n }\n };\n\n watch(value, async (val) => {\n if (!val) {\n campaignEditorPlacementsEmitter.emit('closeMarkupsModal', {\n markupsIsChanged: placementMarkupsIsChanged.value,\n });\n\n campaignEditorPlacementDetailsStore.dispatch('RESET_MARKUPS');\n\n return;\n }\n\n fetch();\n });\n\n return {\n modalsMap,\n placementMarkups,\n connectorsMenuIsOpen,\n isLoading,\n filteredDataProviders,\n title,\n openCreateModal,\n close,\n };\n },\n});\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed } from '@vue/composition-api';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport campaignEditorPlacementsEmitter from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/campaignEditorPlacementsEmitter';\n\nimport CampaignPlacementsTable from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/CampaignPlacementsTable/CampaignPlacementsTable.vue';\nimport CampaignEditorTableLoader from '@/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorTableLoader.vue';\nimport CampaignPlacementsMetricsModal from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMetricsModal.vue';\nimport CampaignPlacementsMarkupsModal from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMarkupsModal.vue';\n\nimport { CampaignEditorPlacement } from '@/models/Campaign';\n\nimport { useCampaignStore } from '@/store/campaign';\n\nimport { useCampaignEditorPlacementsStore } from '@/store/campaignEditor/campaignEditorPlacements';\n\nimport useModals from '@/composables/useModals';\n\n// eslint-disable-next-line no-shadow\nenum ColumnPresetSlugs {\n Settings = 'settings',\n Targetings = 'targetings',\n PlanMetrics = 'planMetrics',\n FactMetrics = 'factMetrics',\n}\n\ntype ColumnPresetSlug = (typeof ColumnPresetSlugs)[keyof typeof ColumnPresetSlugs];\n\nexport default defineComponent({\n components: {\n DBtnInline,\n AppView,\n CampaignPlacementsTable,\n CampaignEditorTableLoader,\n CampaignPlacementsMetricsModal,\n CampaignPlacementsMarkupsModal,\n },\n props: {\n campaignId: { type: String, required: true },\n },\n setup(props) {\n const { campaignId } = toRefs(props);\n\n const campaignStore = useCampaignStore();\n const campaignEditorPlacementsStore = useCampaignEditorPlacementsStore();\n\n const isLoading = ref(false);\n\n const {\n modalsMap,\n openModal,\n } = useModals(['metrics', 'markups']);\n\n const currentColumnsPresetsSlugs = ref([\n ColumnPresetSlugs.Settings,\n ]);\n\n const onChangeCurrentColumnsPresetsSlugs = (val: ColumnPresetSlug[]) => {\n currentColumnsPresetsSlugs.value = val;\n };\n\n const campaign = computed(() => campaignStore.getters.campaign);\n const placementsHasBeenChanged = computed(() => campaignEditorPlacementsStore.getters.hasBeenChanged);\n const visiblePlacements = computed(() => campaignEditorPlacementsStore.getters.visiblePlacements);\n const hiddenPlacements = computed(() => campaignEditorPlacementsStore.getters.hiddenPlacements);\n const placementsFilter = computed(() => campaignEditorPlacementsStore.getters.filters.filter);\n const visibleCampaignPlanMetrics = computed(() => campaignEditorPlacementsStore.getters.visiblePlanMetrics);\n const filledPlanMetrics = computed(() => campaignEditorPlacementsStore.getters.filledPlanMetrics);\n\n const metricsBtnIsShown = computed(() => currentColumnsPresetsSlugs.value.includes(ColumnPresetSlugs.PlanMetrics));\n\n const placementsIsHidden = computed({\n get() {\n return campaignEditorPlacementsStore.getters.filters.hidden;\n },\n set(val: boolean) {\n campaignEditorPlacementsStore.dispatch('UPDATE_FILTERS', { hidden: val });\n },\n });\n\n const placements = computed(() => {\n const visibilityPlacements = placementsIsHidden.value ? hiddenPlacements.value : visiblePlacements.value;\n\n const filteredPlacements = placementsFilter.value\n ? visibilityPlacements.filter(({ danboId }) => danboId.includes(placementsFilter.value))\n : visibilityPlacements;\n\n return filteredPlacements.map((placement) => ({\n ...placement,\n targeting: {\n ...placement.targeting,\n interests: Array.isArray(placement.targeting.interests) // TODO: убрать после фикса типа данных на беке\n ? placement.targeting.interests[0]\n : placement.targeting.interests,\n },\n }));\n });\n\n const columnsPresets = computed(() => [\n {\n label: 'Настройки',\n slug: ColumnPresetSlugs.Settings,\n },\n {\n label: 'Taргетинги',\n slug: ColumnPresetSlugs.Targetings,\n },\n {\n label: 'Плановые показатели',\n slug: ColumnPresetSlugs.PlanMetrics,\n },\n {\n label: 'Фактические показатели',\n slug: ColumnPresetSlugs.FactMetrics,\n },\n ]);\n\n const init = async () => {\n isLoading.value = true;\n\n try {\n await Promise.all([\n campaignEditorPlacementsStore.dispatch('FETCH', campaignId.value),\n campaignEditorPlacementsStore.dispatch('FETCH_CATALOGS'),\n campaignEditorPlacementsStore.dispatch('FETCH_CATEGORIES'),\n ]);\n } finally {\n isLoading.value = false;\n }\n };\n\n const refetchPlacements = async () => {\n isLoading.value = true;\n\n try {\n await campaignEditorPlacementsStore.dispatch('FETCH', campaignId.value);\n } finally {\n isLoading.value = false;\n }\n };\n\n const openMetricsModal = () => {\n openModal({\n slug: 'metrics',\n props: {\n visiblePlanMetrics: visibleCampaignPlanMetrics.value,\n filledPlanMetrics: filledPlanMetrics.value,\n },\n });\n };\n\n campaignEditorPlacementsEmitter.on('openMarkupsModal', (placement) => {\n openModal({ slug: 'markups', props: placement });\n });\n\n campaignEditorPlacementsEmitter.on('closeMarkupsModal', ({ markupsIsChanged }) => {\n if (!markupsIsChanged) return;\n\n refetchPlacements();\n });\n\n const onChangePlacementsTable = (payload: CampaignEditorPlacement[]) => {\n const normalizedPayload = payload.map((placement) => ({\n ...placement,\n targeting: {\n ...placement.targeting,\n interests: Array.isArray(placement.targeting.interests) // TODO: убрать после фикса типа данных на беке\n ? placement.targeting.interests\n : [placement.targeting.interests],\n },\n }));\n\n campaignEditorPlacementsStore.dispatch('PUSH_TO_CHANGED_PLACEMENTS', normalizedPayload);\n };\n\n init();\n\n return {\n isLoading,\n modalsMap,\n placementsIsHidden,\n placements,\n campaign,\n placementsHasBeenChanged,\n visibleCampaignPlanMetrics,\n metricsBtnIsShown,\n openMetricsModal,\n onChangePlacementsTable,\n //\n currentColumnsPresetsSlugs,\n columnsPresets,\n onChangeCurrentColumnsPresetsSlugs,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsMarkupsModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsMarkupsModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementsMarkupsModal.vue?vue&type=template&id=71f4c67c&scoped=true&\"\nimport script from \"./CampaignPlacementsMarkupsModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementsMarkupsModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignPlacementsMarkupsModal.vue?vue&type=style&index=0&id=71f4c67c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71f4c67c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VIcon,VList,VListItem,VListItemContent,VListItemTitle,VMenu})\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorPlacements.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorPlacements.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignEditorPlacements.vue?vue&type=template&id=3a3d4bdf&scoped=true&\"\nimport script from \"./CampaignEditorPlacements.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignEditorPlacements.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignEditorPlacements.vue?vue&type=style&index=0&id=3a3d4bdf&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a3d4bdf\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VItem } from 'vuetify/lib/components/VItemGroup';\nimport { VItemGroup } from 'vuetify/lib/components/VItemGroup';\ninstallComponents(component, {VBtn,VDivider,VIcon,VItem,VItemGroup})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"campaign-editor-goals\"},[(_vm.goals.length)?[_c('div',{staticClass:\"campaign-editor-goals__header d-flex align-baseline px-6 mb-4\"},[_c('div',{staticClass:\"mr-4\"},[_c('div',{staticClass:\"text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Цели\\n \")])]),_vm._v(\" \"),_c('div',[_c('DBtnInline',{on:{\"click\":_vm.openAddModal},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}],null,false,2029177945)},[_vm._v(\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n Добавить цель\\n \")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"ml-auto\"},[_c('DBtnInline',{on:{\"click\":_vm.refresh},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-cached\\n \")])]},proxy:true}],null,false,1612489416)},[_vm._v(\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n Обновить\\n \")])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"campaign-editor-goals__main\",class:{ 'campaign-editor-goals__main--empty': !_vm.goals.length }},[_c('GoalsTable',{attrs:{\"goals\":_vm.goals}})],1)]:(_vm.isLoading)?_c('CampaignEditorTableLoader'):_c('div',{staticClass:\"campaign-editor-goals__empty\"},[_c('v-icon',{staticClass:\"mb-1\",attrs:{\"color\":\"grey\",\"size\":\"80\"}},[_vm._v(\"\\n mdi-bullseye\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"mb-4 body-1 grey--text text--darken-1\"},[_vm._v(\"\\n Пока не добавлено ни одной цели\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":_vm.openAddModal}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1)],1),_vm._v(\" \"),_c('GoalsAddModal',{attrs:{\"campaign\":_vm.campaign},on:{\"added\":_vm.onAddModalAdded},model:{value:(_vm.modalsMap.add),callback:function ($$v) {_vm.$set(_vm.modalsMap, \"add\", $$v)},expression:\"modalsMap.add\"}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',{staticClass:\"goals-table\",attrs:{\"headers\":_vm.headers,\"items\":_vm.goals,\"items-per-page\":_vm.goals.length},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('DTableRow',[_c('DTableCell',{staticClass:\"body-2 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(item.mainGoal ? 'Да' : 'Нет')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\",class:{ 'warning--text': _vm.getGoalHasBeenChanged(item) }},[_vm._v(\"\\n \"+_vm._s(item.name)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(item.providerName)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(item.providerSettingsName)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_c('v-btn',{attrs:{\"size\":\"18\",\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.deleteGoal(item)}}},[_c('v-icon',[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport {\n DTable,\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { Campaign } from '@/models/Campaign';\nimport { Goal } from '@/models/Goal';\n\nimport { useCampaignEditorGoalsStore } from '@/store/campaignEditor/campaignEditorGoals';\n\nexport default defineComponent({\n components: {\n DTable,\n DTableCell,\n DTableRow,\n },\n props: {\n goals: { type: Array as PropType, required: true },\n },\n setup() {\n const campaignEditorGoalsStore = useCampaignEditorGoalsStore();\n\n const headers = [\n {\n class: 'caption',\n text: 'Главная',\n value: 'mainGoal',\n width: 80,\n },\n {\n class: 'caption',\n text: 'Название',\n value: 'name',\n width: 270,\n },\n {\n class: 'caption',\n text: 'Площадка',\n value: 'providerName',\n width: 210,\n },\n {\n class: 'caption',\n text: 'Доступ',\n value: 'providerSettingsName',\n width: 300,\n },\n {\n class: 'caption',\n text: '',\n sortable: false,\n },\n ];\n\n const getGoalHasBeenChanged = (goal: Goal) => campaignEditorGoalsStore.getters.changedGoals.some(({ id, providerId, providerSettingsId }) => (\n id === goal.id\n && providerId === goal.providerId\n && providerSettingsId === goal.providerSettingsId\n ));\n\n const deleteGoal = (goal: Goal) => {\n campaignEditorGoalsStore.dispatch('DELETE_GOAL', goal);\n };\n\n return {\n headers,\n getGoalHasBeenChanged,\n deleteGoal,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoalsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoalsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GoalsTable.vue?vue&type=template&id=16baa923&\"\nimport script from \"./GoalsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./GoalsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"goals-add-modal\",attrs:{\"width\":\"606\",\"title\":\"Новые цели\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main-content\",fn:function(){return [_c('div',{staticClass:\"goals-add-modal__field mb-6\"},[_c('DSelect',{staticClass:\"goals-add-modal__select\",attrs:{\"label\":\"Площадка\",\"items\":_vm.dataProviders,\"item-value\":\"id\",\"item-text\":\"name\",\"return-object\":\"\",\"loading\":_vm.isLoading},model:{value:(_vm.currentDataProvider),callback:function ($$v) {_vm.currentDataProvider=$$v},expression:\"currentDataProvider\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"goals-add-modal__field mb-6\"},[_c('DSelect',{staticClass:\"goals-add-modal__select\",attrs:{\"label\":\"Доступ\",\"items\":_vm.dataProviderSettings,\"item-value\":\"id\",\"item-text\":\"name\",\"return-object\":\"\",\"loading\":_vm.isLoading,\"disabled\":!_vm.currentDataProvider},model:{value:(_vm.currentDataProviderSettings),callback:function ($$v) {_vm.currentDataProviderSettings=$$v},expression:\"currentDataProviderSettings\"}})],1),_vm._v(\" \"),_c('div',[_c('div',{staticClass:\"mb-8\"},[(_vm.schemaIsLoading)?_c('v-progress-linear',{attrs:{\"height\":\"1\",\"indeterminate\":\"\"}}):_c('div',{staticClass:\"goals-add-modal__divider\"})],1),_vm._v(\" \"),(!_vm.currentDataProviderSettings)?_c('span',{staticClass:\"grey--text text--darken-1\"},[_vm._v(\"После выбора площадки и доступа здесь появятся дополнительные настройки\")]):(_vm.schemaIsLoading && !_vm.schema)?_c('span',{staticClass:\"grey--text text--darken-1\"},[_vm._v(\"Загрузка схемы...\")]):(_vm.currentDataProviderSettings && !_vm.schema && !_vm.schemaErrors.length)?_c('span',{staticClass:\"grey--text text--darken-1\"},[_vm._v(\"Дополнительные настройки отстутствуют\")]):_vm._e()]),_vm._v(\" \"),_c('div',[(_vm.schemaErrors.length)?_c('v-alert',{staticClass:\"goals-add-modal__error\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"mb-4 subtitle-2\"},[_vm._v(\"\\n Произошла ошибка. Обратитесь к администратору\\n \")]),_vm._v(\" \"),_vm._l((_vm.schemaErrors),function(text,idx){return _c('div',{key:idx,staticClass:\"goals-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})})],2):_vm._e(),_vm._v(\" \"),_c('JsonEditor',{attrs:{\"schema\":_vm.schema,\"enabled\":!_vm.schemaIsLoading,\"autopostback\":\"\",\"redesign\":\"\"},on:{\"autopostback\":_vm.onCurrnetSettigsAutoPostBack,\"validate\":_vm.onCurrentSettingsValidate},model:{value:(_vm.currentSettings),callback:function ($$v) {_vm.currentSettings=$$v},expression:\"currentSettings\"}})],1)]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить цели\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.redesign)?_c('div',{directives:[{name:\"mutate\",rawName:\"v-mutate.attr\",value:(_vm.onMutateRootEl),expression:\"onMutateRootEl\",modifiers:{\"attr\":true}}],staticClass:\"json-editor\",style:(_vm.rootStyle)},[_c('portal',{attrs:{\"to\":\"app-json-editor-form\"}},[_c('div',{directives:[{name:\"mutate\",rawName:\"v-mutate.attr\",value:(_vm.onMutateEditorEl),expression:\"onMutateEditorEl\",modifiers:{\"attr\":true}}],ref:\"jsonEditorEl\",staticClass:\"json-editor__editor json-editor__editor--redesign\",style:(_vm.editorStyle)})])],1):_c('div',{staticClass:\"json-editor\"},[_c('div',{ref:\"jsonEditorEl\",staticClass:\"json-editor__editor\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\n\nimport { JSONEditor } from '@json-editor/json-editor';\n\ninterface JSONEditorInstance {\n root: {\n path: string;\n };\n editors: {\n options: Record;\n };\n ready: boolean;\n watch: (key: string, callback: () => void) => void;\n on: (key: string, callback: () => void) => void;\n enable: () => void;\n getValue: () => Record;\n setValue: (value: unknown) => void;\n validate: () => unknown[];\n disable: () => void;\n destroy: () => void;\n}\n\ninterface JSONSchema {\n type?: 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array';\n title?: string;\n format?: string;\n definitions?: {\n [key: string]: JSONSchema;\n };\n properties?: {\n [key: string]: JSONSchema;\n };\n}\n\nexport default Vue.extend({\n model: {\n prop: 'value',\n event: 'change',\n },\n props: {\n value: { type: Object, default: null },\n options: { type: Object, default: () => ({ ajax: false }) },\n schema: { type: Object, default: null },\n autopostback: { type: Boolean, default: false },\n enabled: { type: Boolean, default: true },\n redesign: { type: Boolean, default: false }, // TODO: выпилить после редизайна\n editorHeight: { type: String, default: 'auto' },\n },\n data() {\n return {\n jsonEditorInstance: null as JSONEditorInstance | null,\n inputValue: null as Record | null,\n isAutoPostBack: false,\n rootStyle: {\n height: '0',\n },\n editorStyle: {\n left: '0',\n top: '0',\n width: '0',\n height: this.editorHeight,\n },\n };\n },\n computed: {\n schemaComputed() {\n if (!this.schema) return null;\n\n const schema: JSONSchema = { ...this.schema };\n\n if (schema.properties) {\n Object.values(schema.properties)\n .filter((input) => !input.type && !input.format)\n .forEach((input) => {\n input.format = 'select2';\n });\n }\n\n return schema;\n },\n },\n watch: {\n value: {\n handler(val) {\n if (val === this.inputValue || val === null || val === undefined) return;\n\n this.setValue(val);\n },\n deep: true,\n },\n schema() {\n this.attachEditor();\n },\n enabled(val) {\n this.setEnabled(val);\n },\n inputValue(val) {\n this.$emit('change', val);\n },\n },\n beforeDestroy() {\n this.destroyEditor();\n },\n methods: {\n onMutateRootEl(mutations: MutationRecord[]) {\n mutations.forEach((mutation) => {\n const clientRect = (mutation.target as HTMLElement).getBoundingClientRect();\n\n this.editorStyle.left = `${clientRect.left}px`;\n this.editorStyle.top = `${clientRect.top}px`;\n this.editorStyle.width = `${clientRect.width}px`;\n });\n },\n onMutateEditorEl(mutations: MutationRecord[]) {\n mutations.forEach((mutation) => {\n const clientRect = (mutation.target as HTMLElement).getBoundingClientRect();\n\n this.rootStyle.height = `${clientRect.height}px`;\n });\n },\n attachEditor() {\n this.destroyEditor();\n\n if (!this.schemaComputed) return;\n\n const options = {\n theme: 'bootstrap4',\n iconlib: 'fontawesome4',\n required_by_default: true,\n disable_collapse: true,\n disable_edit_json: true,\n disable_properties: true,\n disable_array_reorder: true,\n disable_array_delete_last_row: true,\n show_errors: 'interaction',\n startval: this.value,\n ...this.options,\n schema: this.schemaComputed,\n };\n\n this.jsonEditorInstance = new JSONEditor(this.$refs.jsonEditorEl, options);\n\n const { jsonEditorInstance } = this;\n\n if (!jsonEditorInstance) return;\n\n if (this.autopostback) {\n Object.keys(jsonEditorInstance.editors).forEach((key) => {\n const editor = jsonEditorInstance.editors[key];\n\n if (!editor) return;\n\n if (editor.options && (editor.options.autopostback === true || editor.options.autopostback === 'true')) {\n jsonEditorInstance.watch(key, this.onAutoPostBack);\n }\n });\n }\n\n jsonEditorInstance.on('ready', () => {\n jsonEditorInstance.on('change', this.onChange);\n });\n },\n attached() {\n return this.jsonEditorInstance && this.jsonEditorInstance.ready;\n },\n destroyEditor() {\n if (!this.jsonEditorInstance) return;\n\n this.jsonEditorInstance.destroy();\n\n this.jsonEditorInstance = null;\n },\n setEnabled(value: boolean) {\n if (!this.jsonEditorInstance || !this.attached()) return;\n\n if (value) {\n this.jsonEditorInstance.enable();\n } else {\n this.jsonEditorInstance.disable();\n }\n },\n getValue() {\n if (!this.jsonEditorInstance || !this.attached()) return null;\n\n return this.jsonEditorInstance.getValue();\n },\n setValue(value: Record) {\n if (!this.jsonEditorInstance || !this.attached()) return;\n\n this.jsonEditorInstance.setValue(value);\n },\n validate() {\n if (!this.jsonEditorInstance || !this.attached()) return [];\n\n return this.jsonEditorInstance.validate();\n },\n onAutoPostBack() {\n this.isAutoPostBack = true;\n },\n onChange() {\n this.$emit('validate', this.validate());\n\n this.inputValue = this.getValue();\n\n if (this.isAutoPostBack) {\n this.$emit('autopostback', this.inputValue);\n\n this.isAutoPostBack = false;\n }\n },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JsonEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JsonEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./JsonEditor.vue?vue&type=template&id=e3bc583e&scoped=true&\"\nimport script from \"./JsonEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./JsonEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./JsonEditor.vue?vue&type=style&index=0&id=e3bc583e&lang=scss&scoped=true&\"\nimport style1 from \"./JsonEditor.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e3bc583e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Mutate from 'vuetify/lib/directives/mutate'\ninstallDirectives(component, {Mutate})\n","import JsonEditor from './components/JsonEditor.vue';\n\nexport { JsonEditor };\nexport default JsonEditor;\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType } from '@vue/composition-api';\n\nimport { DSelect } from '@shared/druid-kit';\n\nimport { JsonEditor } from '@/packages/json-editor/src';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { GoalsSettingsApi } from '@/api';\n\nimport { Campaign } from '@/models/Campaign';\nimport { GoalDataProvider } from '@/models/Goal';\nimport { ProviderSettingsLight } from '@/models/ProviderSettings';\n\nimport { useCampaignEditorGoalsStore } from '@/store/campaignEditor/campaignEditorGoals';\n\nexport default defineComponent({\n components: {\n DSelect,\n JsonEditor,\n AppModal,\n },\n props: {\n value: { type: Boolean, default: false },\n campaign: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const {\n value,\n campaign,\n } = toRefs(props);\n\n const campaignEditorGoalsStore = useCampaignEditorGoalsStore();\n\n const isLoading = ref(false);\n const schemaIsLoading = ref(false);\n\n const currentDataProvider = ref(null);\n const currentDataProviderSettings = ref(null);\n\n const currentSettings = ref<{ goals: string[] } | null>(null);\n const currentSettingsErrors = ref([]);\n\n const schema = ref | null>(null);\n const schemaErrors = ref([]);\n\n const dataProviders = computed(() => campaignEditorGoalsStore.getters.dataProviders);\n\n const dataProviderSettings = computed(() => {\n if (!currentDataProvider.value) return [];\n\n return campaignEditorGoalsStore\n .getters\n .dataProviderSettings\n .filter(({ providerId }) => providerId === currentDataProvider.value?.id);\n });\n\n const saveBtnIsDisabled = computed(() => schemaIsLoading.value || !!currentSettingsErrors.value.length || !currentSettings.value?.goals.length);\n\n const fetch = async () => {\n isLoading.value = true;\n\n try {\n await Promise.all([\n campaignEditorGoalsStore.dispatch('FETCH_DATA_PROVIDERS'),\n campaignEditorGoalsStore.dispatch('FETCH_DATA_PROVIDER_SETTINGS', { campaignId: campaign.value.id }),\n ]);\n } finally {\n isLoading.value = false;\n }\n };\n\n const fetchSchema = async (payload?: string) => {\n if (!currentDataProvider.value || !currentDataProviderSettings.value) return;\n\n schemaIsLoading.value = true;\n\n schemaErrors.value = [];\n currentSettings.value = null;\n\n try {\n const res = await GoalsSettingsApi.fetchSchema({\n campaignId: campaign.value.id,\n providerId: currentDataProvider.value.id,\n providerSettingsId: currentDataProviderSettings.value.id,\n settings: payload || '',\n });\n\n schema.value = res.data.schema ? JSON.parse(res.data.schema) : null;\n schemaErrors.value = res.data.errors;\n } finally {\n schemaIsLoading.value = false;\n }\n };\n\n const onCurrnetSettigsAutoPostBack = (payload: Record) => {\n if (schemaIsLoading.value) return;\n\n fetchSchema(JSON.stringify(payload));\n };\n\n const onCurrentSettingsValidate = (payload: string[]) => {\n currentSettingsErrors.value = payload;\n };\n\n watch(value, (val) => {\n if (val) {\n fetch();\n } else {\n currentDataProvider.value = null;\n }\n });\n\n watch(currentDataProvider, () => {\n currentDataProviderSettings.value = null;\n });\n\n watch(currentDataProviderSettings, (val) => {\n if (val) {\n fetchSchema();\n } else {\n schema.value = null;\n schemaErrors.value = [];\n currentSettings.value = null;\n }\n });\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = () => {\n if (!currentDataProvider.value || !currentDataProviderSettings.value || !currentSettings.value) return;\n\n const providerId = currentDataProvider.value.id;\n const providerName = currentDataProvider.value.name;\n const providerSettingsId = currentDataProviderSettings.value.id;\n const providerSettingsName = currentDataProviderSettings.value.name;\n\n const goals = currentSettings.value.goals.map((settingGoalAsString) => {\n const rawSettingGoal = JSON.parse(settingGoalAsString) as { Id: string; Name: string };\n\n const settingGoal = Object.entries(rawSettingGoal).reduce((newObj, [key, val]) => {\n // настройки могут прийти с ключами в разном регистре\n newObj[key.toLowerCase()] = val;\n\n return newObj;\n }, {} as { id: string; name: string; });\n\n const goal = {\n ...settingGoal,\n providerId,\n providerName,\n providerSettingsId,\n providerSettingsName,\n mainGoal: false,\n };\n\n return goal;\n });\n\n campaignEditorGoalsStore.dispatch('CHANGE_GOALS', goals);\n\n context.emit('added', goals);\n\n close();\n };\n\n return {\n isLoading,\n schemaIsLoading,\n dataProviders,\n currentDataProvider,\n dataProviderSettings,\n currentDataProviderSettings,\n schema,\n schemaErrors,\n currentSettings,\n currentSettingsErrors,\n saveBtnIsDisabled,\n onCurrnetSettigsAutoPostBack,\n onCurrentSettingsValidate,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoalsAddModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoalsAddModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GoalsAddModal.vue?vue&type=template&id=1bbd2e2a&scoped=true&\"\nimport script from \"./GoalsAddModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./GoalsAddModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GoalsAddModal.vue?vue&type=style&index=0&id=1bbd2e2a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1bbd2e2a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VAlert,VBtn,VProgressLinear})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref, computed } from '@vue/composition-api';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport GoalsTable from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/GoalsTable/GoalsTable.vue';\nimport GoalsAddModal from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorGoals/modals/GoalsAddModal.vue';\nimport CampaignEditorTableLoader from '@/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorTableLoader.vue';\n\nimport { Campaign } from '@/models/Campaign';\n\nimport { useCampaignEditorGoalsStore } from '@/store/campaignEditor/campaignEditorGoals';\n\nimport notify from '@/services/notify';\nimport modally from '@/services/modally';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n AppView,\n GoalsTable,\n GoalsAddModal,\n CampaignEditorTableLoader,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n campaign,\n } = toRefs(props);\n\n const campaignEditorGoalsStore = useCampaignEditorGoalsStore();\n\n const isLoading = ref(false);\n\n const modalsMap = ref({\n add: false,\n });\n\n const goals = computed(() => campaignEditorGoalsStore.getters.goals);\n\n const fetch = async () => {\n isLoading.value = true;\n\n try {\n await campaignEditorGoalsStore.dispatch('FETCH_GOALS', { campaignId: campaign.value.id });\n } finally {\n isLoading.value = false;\n }\n };\n\n const refresh = async () => {\n const result = await modally.show({\n type: 'confirm',\n status: 'warning',\n title: 'При обновлении списка целей изменения будут утеряны!',\n });\n\n if (!result) return;\n\n campaignEditorGoalsStore.commit('RESET_CHANGES');\n\n fetch();\n };\n\n const openModal = (modalSlug: keyof typeof modalsMap.value) => {\n modalsMap.value[modalSlug] = true;\n };\n\n const openAddModal = () => {\n openModal('add');\n };\n\n const onAddModalAdded = () => notify.push({\n text: 'Цели добавлены',\n position: ['bottom', 'center'],\n status: 'positive',\n });\n\n fetch();\n\n return {\n isLoading,\n modalsMap,\n goals,\n refresh,\n openAddModal,\n onAddModalAdded,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorGoals.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorGoals.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignEditorGoals.vue?vue&type=template&id=41da74b6&scoped=true&\"\nimport script from \"./CampaignEditorGoals.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignEditorGoals.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignEditorGoals.vue?vue&type=style&index=0&id=41da74b6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41da74b6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"campaign-editor-categories\"},[(_vm.isLoading)?_c('CampaignEditorCategoriesLoader'):[_c('div',{staticClass:\"campaign-editor-categories__header d-flex align-baseline px-6 mb-4\"},[_c('div',{staticClass:\"mr-4\"},[_c('div',{staticClass:\"text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Категории\\n \")])])]),_vm._v(\" \"),_c('CampaignCategorySettings',{staticClass:\"campaign-editor-categories__settings px-6\"}),_vm._v(\" \"),_c('div',{staticClass:\"campaign-editor-categories__header d-flex align-baseline px-6 mt-10 mb-4\"},[_c('div',{staticClass:\"mr-4\"},[_c('div',{staticClass:\"text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Категории кампании\\n \")])])]),_vm._v(\" \"),_c('CampaignCategories',{staticClass:\"campaign-editor-categories__categories\"})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-category-settings\"},[_c('div',{staticClass:\"campaign-category-settings__field\"},[_c('DSelect',{staticClass:\"campaign-category-settings__select\",attrs:{\"label\":\"Тип кампании\",\"items\":_vm.campaignTypes,\"item-value\":\"id\",\"item-text\":\"title\"},model:{value:(_vm.campaignTypeId),callback:function ($$v) {_vm.campaignTypeId=$$v},expression:\"campaignTypeId\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { DSelect } from '@shared/druid-kit';\n\nimport store from '@/store';\nimport { useCampaignEditorCategoriesStore } from '@/store/campaignEditor/campaignEditorCategories';\nimport referenceStore from '@/store/reference';\n\nconst referenceStoreContext = referenceStore.context(store);\n\nexport default defineComponent({\n components: {\n DSelect,\n },\n setup() {\n const campaignEditorCategoriesStore = useCampaignEditorCategoriesStore();\n\n const campaignTypes = computed(() => referenceStoreContext.getters.campaignTypes);\n\n const campaignTypeId = computed({\n get() {\n return campaignEditorCategoriesStore.getters.currentData.typeId;\n },\n set(val: string) {\n campaignEditorCategoriesStore.dispatch('CHANGE_DATA', { typeId: val });\n },\n });\n\n return {\n campaignTypes,\n campaignTypeId,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategorySettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategorySettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignCategorySettings.vue?vue&type=template&id=53ef1fe2&scoped=true&\"\nimport script from \"./CampaignCategorySettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignCategorySettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignCategorySettings.vue?vue&type=style&index=0&id=53ef1fe2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53ef1fe2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-categories\"},[_c('div',{staticClass:\"campaign-categories__header\"},[_c('div',{staticClass:\"campaign-categories__chips px-6 pt-4 pb-2\"},[(_vm.campaignSelectedCategories.length)?_vm._l((_vm.campaignSelectedCategories),function(category){return _c('v-chip',{key:category.id,staticClass:\"mr-4 mb-2\",attrs:{\"close-icon\":\"mdi-close\",\"small\":\"\",\"close\":\"\"},on:{\"click:close\":function($event){return _vm.onChipClickClose(category)}}},[_vm._v(\"\\n \"+_vm._s(category.title)+\"\\n \")])}):[_c('div',{staticClass:\"pb-2 body-2 grey--text\"},[_vm._v(\"\\n Выберите категории из списка ниже\\n \")])]],2)]),_vm._v(\" \"),_c('div',{staticClass:\"campaign-categories__main\"},[_c('div',{staticClass:\"campaign-categories__list px-6 py-8\"},_vm._l((_vm.categoryGroups),function(itemGroup,idx){return _c('div',{key:((itemGroup.title) + \"-\" + idx),staticClass:\"campaign-categories__group mb-6\"},[_c('div',{staticClass:\"pl-1 mb-3 text-h6 grey--text text--darken-1\",domProps:{\"textContent\":_vm._s(itemGroup.title)}}),_vm._v(\" \"),_vm._l((itemGroup.items),function(rootItem){return _c('div',{key:rootItem.id,staticClass:\"campaign-categories__root-item mb-3\"},[_c('div',{staticClass:\"campaign-categories__root-item-header\"},[_c('DBtnInline',{staticClass:\"campaign-categories__btn campaign-categories__btn--expand\",on:{\"click\":function($event){return _vm.toggleExpandRootItem(rootItem.id)}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"campaign-categories__icon mr-1\",class:{\n 'campaign-categories__icon--deg-180': _vm.rootItemIsOpen(rootItem.id),\n },attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-chevron-down\\n \")])]},proxy:true}],null,true)},[_vm._v(\" \"),_c('span',{staticClass:\"body-2\",domProps:{\"textContent\":_vm._s(rootItem.title)}})])],1),_vm._v(\" \"),(_vm.rootItemIsOpen(rootItem.id))?_c('div',_vm._l((rootItem.children),function(childItem){return _c('div',{key:childItem.id,staticClass:\"campaign-categories__child-item\"},[_c('v-checkbox',{staticClass:\"campaign-categories__input campaign-categories__input--checkbox\",attrs:{\"value\":childItem.id,\"color\":\"primary\",\"hide-details\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"campaign-categories__child-item-title body-2 grey--text text--darken-4\"},[_vm._v(\"\\n \"+_vm._s(childItem.title)+\"\\n \")])]},proxy:true}],null,true),model:{value:(_vm.campaignCategoriesIds),callback:function ($$v) {_vm.campaignCategoriesIds=$$v},expression:\"campaignCategoriesIds\"}})],1)}),0):_vm._e()])})],2)}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed } from '@vue/composition-api';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport { TaxonomyBrandCategory } from '@/models/Taxonomy';\n\nimport store from '@/store';\nimport { useCampaignEditorCategoriesStore } from '@/store/campaignEditor/campaignEditorCategories';\nimport referenceStore from '@/store/reference';\n\nconst referenceStoreContext = referenceStore.context(store);\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n setup() {\n const campaignEditorCategoriesStore = useCampaignEditorCategoriesStore();\n\n const expandedRootItemIds = ref([]);\n\n const categories = computed(() => referenceStoreContext.getters.brandCategories);\n\n const campaignCategoriesIds = computed({\n get() {\n return campaignEditorCategoriesStore.getters.currentData.categoriesIds;\n },\n set(val: string[]) {\n campaignEditorCategoriesStore.dispatch('CHANGE_DATA', { categoriesIds: val });\n },\n });\n\n const campaignSelectedCategories = computed(() => {\n const selectedCategories: TaxonomyBrandCategory[] = [];\n\n const getSelectedCategories = (items: TaxonomyBrandCategory[]) => {\n items.forEach((item) => {\n if (campaignCategoriesIds.value.includes(item.id)) selectedCategories.push(item);\n\n if (item.children && item.children.length) getSelectedCategories(item.children);\n });\n };\n\n getSelectedCategories(categories.value);\n\n return selectedCategories;\n });\n\n const categoryGroups = computed(() => {\n const firstChars = [...new Set(categories.value.map((category) => category.title[0]))];\n\n const groups = firstChars.map((char) => {\n const title = char;\n const items = categories.value.filter((category) => category.title[0] === char);\n\n return {\n title,\n items,\n };\n });\n\n return groups;\n });\n\n const rootItemIsOpen = (rootItemId: string) => expandedRootItemIds.value.includes(rootItemId);\n\n const toggleExpandRootItem = (rootItemId: string) => {\n const foundIdx = expandedRootItemIds.value.findIndex((categoryId) => categoryId === rootItemId);\n\n if (foundIdx === -1) {\n expandedRootItemIds.value.push(rootItemId);\n } else {\n expandedRootItemIds.value.splice(foundIdx, 1);\n }\n };\n\n const onChipClickClose = (category: TaxonomyBrandCategory) => {\n campaignCategoriesIds.value = campaignCategoriesIds.value.filter((categoryId) => categoryId !== category.id);\n };\n\n return {\n categories,\n categoryGroups,\n campaignCategoriesIds,\n campaignSelectedCategories,\n rootItemIsOpen,\n toggleExpandRootItem,\n onChipClickClose,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategories.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignCategories.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignCategories.vue?vue&type=template&id=e4066d3e&scoped=true&\"\nimport script from \"./CampaignCategories.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignCategories.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignCategories.vue?vue&type=style&index=0&id=e4066d3e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e4066d3e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VCheckbox,VChip,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-editor-categories-loader\"},[_c('ListLoader',{staticClass:\"campaign-editor-categories-loader__list\",attrs:{\"rows\":1}}),_vm._v(\" \"),_c('ListLoader',{staticClass:\"campaign-editor-categories-loader__list campaign-editor-categories-loader__list--last\",attrs:{\"rows\":1}}),_vm._v(\" \"),_c('div',{staticClass:\"campaign-editor-categories-loader__items\"},[_c('ListLoader',{staticClass:\"campaign-editor-categories-loader__items-list\"}),_vm._v(\" \"),_c('ListLoader',{staticClass:\"campaign-editor-categories-loader__items-list\"}),_vm._v(\" \"),_c('ListLoader',{staticClass:\"campaign-editor-categories-loader__items-list\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorCategoriesLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorCategoriesLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CampaignEditorCategoriesLoader.vue?vue&type=template&id=26d2b969&scoped=true&\"\nimport script from \"./CampaignEditorCategoriesLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./CampaignEditorCategoriesLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CampaignEditorCategoriesLoader.vue?vue&type=style&index=0&id=26d2b969&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26d2b969\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport CampaignCategorySettings from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategorySettings/CampaignCategorySettings.vue';\nimport CampaignCategories from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorCategories/CampaignCategories/CampaignCategories.vue';\n\nimport CampaignEditorCategoriesLoader from '@/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesLoader.vue';\n\nimport store from '@/store';\nimport referenceStore from '@/store/reference';\n\nconst referenceStoreContext = referenceStore.context(store);\n\nexport default defineComponent({\n components: {\n AppView,\n CampaignCategorySettings,\n CampaignCategories,\n CampaignEditorCategoriesLoader,\n },\n setup() {\n const isLoading = ref(false);\n\n const fetch = async () => {\n isLoading.value = true;\n\n try {\n await Promise.all([\n referenceStoreContext.dispatch('FETCH_CAMPAIGN_TYPES'),\n referenceStoreContext.dispatch('FETCH_BRAND_CATEGORIES'),\n ]);\n } finally {\n isLoading.value = false;\n }\n };\n\n fetch();\n\n return { isLoading };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorCategories.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorCategories.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignEditorCategories.vue?vue&type=template&id=c9f66766&scoped=true&\"\nimport script from \"./CampaignEditorCategories.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignEditorCategories.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignEditorCategories.vue?vue&type=style&index=0&id=c9f66766&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c9f66766\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"campaign-editor-settings\"},[_c('div',{staticClass:\"campaign-editor-settings__header d-flex align-baseline px-6 mb-4\"},[_c('div',{staticClass:\"mr-4\"},[_c('div',{staticClass:\"text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Основные настройки\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center ml-auto\"},[_c('DBtnInline',{on:{\"click\":_vm.resetManualSettings},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-close\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n Сбросить ручные настройки\\n \")])])],1)]),_vm._v(\" \"),(_vm.isLoading)?_c('CampaignEditorSettingsLoader'):[_c('CampaignMainSettings',{staticClass:\"px-6\",attrs:{\"campaign\":_vm.campaign}}),_vm._v(\" \"),_c('div',{staticClass:\"campaign-editor-settings__header d-flex align-baseline px-6 mt-10 mb-4\"},[_c('div',{staticClass:\"mr-4\"},[_c('div',{staticClass:\"text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Подсчет CR\\n \")])])]),_vm._v(\" \"),_c('CampaignConversionRate',{staticClass:\"px-6\",attrs:{\"campaign\":_vm.campaign}})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-main-settings\"},[_c('div',{staticClass:\"campaign-main-settings__field mb-6\"},[_c('v-text-field',{staticClass:\"campaign-main-settings__text-field\",attrs:{\"label\":\"Название кампании\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.campaignName),callback:function ($$v) {_vm.campaignName=$$v},expression:\"campaignName\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-main-settings__field mb-6\"},[_c('DSelect',{staticClass:\"campaign-main-settings__select\",attrs:{\"label\":\"Бренд кампании\",\"items\":_vm.clientBrands,\"item-value\":\"id\",\"item-text\":\"name\"},model:{value:(_vm.campaignBrand),callback:function ($$v) {_vm.campaignBrand=$$v},expression:\"campaignBrand\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-main-settings__field mb-2\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"campaign-main-settings__field-content\"},[_c('span',{staticClass:\"body-2\",domProps:{\"textContent\":_vm._s(_vm.campaignProjectCode)}})])]),_vm._v(\" \"),_c('div',{staticClass:\"campaign-main-settings__field\"},[_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-main-settings__field-content\"},[_c('DRadioInline',{attrs:{\"items\":_vm.campaignIsActiveOptions,\"inverse\":\"\"},model:{value:(_vm.campaignIsActive),callback:function ($$v) {_vm.campaignIsActive=$$v},expression:\"campaignIsActive\"}})],1)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-main-settings__field-title\"},[_c('span',{staticClass:\"body-2 font-weight-bold\"},[_vm._v(\"\\n Project code\\n \")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-main-settings__field-title\"},[_c('span',{staticClass:\"body-2 font-weight-bold\"},[_vm._v(\"\\n Состояние кампании\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, computed } from '@vue/composition-api';\n\nimport {\n DRadioInline,\n DSelect,\n} from '@shared/druid-kit';\n\nimport { Campaign } from '@/models/Campaign';\n\nimport { useCampaignStore } from '@/store/campaign';\nimport { useCampaignEditorSettingsStore } from '@/store/campaignEditor/campaignEditorSettings';\n\nexport default defineComponent({\n components: {\n DRadioInline,\n DSelect,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n campaign,\n } = toRefs(props);\n\n const campaignStore = useCampaignStore();\n const campaignEditorSettingsStore = useCampaignEditorSettingsStore();\n\n const clientBrands = computed(() => campaignEditorSettingsStore.getters.clientBrands);\n\n const campaignName = computed({\n get() {\n return campaignEditorSettingsStore.getters.currentSettings?.name || '';\n },\n set(val: string) {\n campaignEditorSettingsStore.dispatch('CHANGE_SETTINGS', { name: val });\n },\n });\n\n const campaignBrand = computed({\n get() {\n return campaignEditorSettingsStore.getters.currentSettings?.brandId || null;\n },\n set(val: string | null) {\n if (!val) return;\n\n campaignEditorSettingsStore.dispatch('CHANGE_SETTINGS', { brandId: val });\n },\n });\n\n const campaignProjectCode = computed(() => campaign.value.projectCode || 'Не привязан');\n\n const campaignIsActive = computed({\n get() {\n return campaignStore.getters.currentCampaign?.isActive || false;\n },\n set(val: boolean) {\n campaignStore.dispatch('CHANGE_CAMPAIGN', { isActive: val });\n },\n });\n\n const campaignIsActiveOptions = computed(() => [\n { value: true, text: campaignIsActive.value ? 'Запущена' : 'Запустить' },\n { value: false, text: campaignIsActive.value ? 'Остановить' : 'Остановлена' },\n ]);\n\n return {\n clientBrands,\n campaignIsActiveOptions,\n campaignName,\n campaignBrand,\n campaignProjectCode,\n campaignIsActive,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignMainSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignMainSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignMainSettings.vue?vue&type=template&id=d3f65280&scoped=true&\"\nimport script from \"./CampaignMainSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignMainSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignMainSettings.vue?vue&type=style&index=0&id=d3f65280&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d3f65280\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-conversion-rate\"},[_c('div',{staticClass:\"campaign-conversion-rate__field mb-6\"},[_c('DSelect',{staticClass:\"campaign-conversion-rate__select\",attrs:{\"label\":\"Провайдер\",\"items\":_vm.dataProviders,\"item-value\":\"dataProviderId\",\"item-text\":\"dataProviderName\",\"clearable\":\"\"},model:{value:(_vm.currentDataProviderId),callback:function ($$v) {_vm.currentDataProviderId=$$v},expression:\"currentDataProviderId\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-conversion-rate__field mb-6\"},[_c('DSelect',{staticClass:\"campaign-conversion-rate__select\",attrs:{\"label\":\"Метрика для подсчета\",\"items\":_vm.dataProviderModes,\"disabled\":!_vm.currentDataProviderId},model:{value:(_vm.currentConversionRateMode),callback:function ($$v) {_vm.currentConversionRateMode=$$v},expression:\"currentConversionRateMode\"}})],1),_vm._v(\" \"),(_vm.currentConversionRateModeIsMainGoal)?[_c('div',{staticClass:\"campaign-conversion-rate__field mb-6\"},[_c('DSelect',{staticClass:\"campaign-conversion-rate__select\",attrs:{\"label\":\"Главная цель\",\"items\":_vm.goals,\"item-value\":\"slug\",\"item-text\":\"label\",\"return-object\":\"\",\"no-data-text\":\"Список пуст\",\"loading\":_vm.goalsIsLoading,\"disabled\":_vm.goalsIsLoading},model:{value:(_vm.currentGoal),callback:function ($$v) {_vm.currentGoal=$$v},expression:\"currentGoal\"}})],1)]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType } from '@vue/composition-api';\n\nimport { DSelect } from '@shared/druid-kit';\n\nimport { Campaign } from '@/models/Campaign';\nimport { Goal } from '@/models/Goal';\n\nimport {\n useCampaignEditorSettingsStore,\n CONVERSION_RATE_MODE_MAIN_GOAL,\n DEFAULT_CONVERSION_RATE_MODE,\n} from '@/store/campaignEditor/campaignEditorSettings';\n\nimport { useCampaignEditorGoalsStore } from '@/store/campaignEditor/campaignEditorGoals';\n\nexport default defineComponent({\n components: {\n DSelect,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n campaign,\n } = toRefs(props);\n\n const campaignEditorSettingsStore = useCampaignEditorSettingsStore();\n const campaignEditorGoalsStore = useCampaignEditorGoalsStore();\n\n const goalsIsLoading = ref(false);\n\n const dataProviders = computed(() => campaignEditorSettingsStore.getters.dataProviderAbilities);\n\n const currentDataProviderId = computed({\n get() {\n return campaignEditorSettingsStore.getters.currentSettings?.dataProviderId || null;\n },\n set(val: string | null) {\n campaignEditorSettingsStore.dispatch('CHANGE_SETTINGS', { dataProviderId: val });\n },\n });\n\n const currentDataProvider = computed(() => dataProviders.value.find(({ dataProviderId }) => dataProviderId === currentDataProviderId.value));\n\n const dataProviderModes = computed(() => currentDataProvider.value?.modes || [DEFAULT_CONVERSION_RATE_MODE]);\n\n const currentConversionRateMode = computed({\n get() {\n return campaignEditorSettingsStore.getters.currentConversionRateMode;\n },\n set(val: string) {\n campaignEditorSettingsStore.dispatch('CHANGE_SETTINGS', { conversionRateCalculationMode: val });\n },\n });\n\n const currentConversionRateModeIsMainGoal = computed(() => campaignEditorSettingsStore.getters.currentConversionRateModeIsMainGoal);\n\n const currentMainGoal = computed(() => {\n const goal = campaignEditorSettingsStore.getters.currentMainGoal;\n\n if (!goal) return undefined;\n\n return {\n ...goal,\n slug: `${goal.providerSettingsId}:${goal.id}`,\n label: `${goal.providerSettingsName}: ${goal.name}`,\n };\n });\n\n const goals = computed(() => {\n const filteredGoals = campaignEditorGoalsStore.getters.goals.filter((goal) => goal.providerId === currentDataProviderId.value);\n\n return filteredGoals.map((goal) => ({\n ...goal,\n slug: `${goal.providerSettingsId}:${goal.id}`,\n label: `${goal.providerSettingsName}: ${goal.name}`,\n }));\n });\n\n const currentGoal = computed({\n get() {\n return currentMainGoal.value;\n },\n set(val: Goal | undefined) {\n if (!val) return;\n\n const newGoal = {\n id: val.id,\n name: val.name,\n providerId: val.providerId,\n providerName: val.providerName,\n providerSettingsId: val.providerSettingsId,\n providerSettingsName: val.providerSettingsName,\n mainGoal: true,\n };\n\n campaignEditorSettingsStore.dispatch('CHANGE_SETTINGS', { mainGoal: newGoal });\n },\n });\n\n const fetchGoalsNew = async () => {\n goalsIsLoading.value = true;\n\n try {\n await campaignEditorGoalsStore.dispatch('FETCH_GOALS', { campaignId: campaign.value.id });\n } finally {\n goalsIsLoading.value = false;\n }\n };\n\n watch(currentDataProviderId, (val) => {\n const conversionRateModeValue = val ? dataProviderModes.value[0] : DEFAULT_CONVERSION_RATE_MODE;\n\n currentConversionRateMode.value = conversionRateModeValue;\n\n if (currentConversionRateMode.value !== CONVERSION_RATE_MODE_MAIN_GOAL && currentMainGoal.value) {\n campaignEditorSettingsStore.dispatch('CHANGE_SETTINGS', { mainGoal: undefined });\n }\n });\n\n watch(currentConversionRateMode, (val) => {\n if (val === CONVERSION_RATE_MODE_MAIN_GOAL) {\n fetchGoalsNew();\n } else if (currentMainGoal.value) {\n campaignEditorSettingsStore.dispatch('CHANGE_SETTINGS', { mainGoal: undefined });\n }\n }, { immediate: true });\n\n return {\n dataProviders,\n currentDataProviderId,\n dataProviderModes,\n currentConversionRateMode,\n currentConversionRateModeIsMainGoal,\n goals,\n goalsIsLoading,\n currentGoal,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignConversionRate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignConversionRate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignConversionRate.vue?vue&type=template&id=6d25d8f2&scoped=true&\"\nimport script from \"./CampaignConversionRate.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignConversionRate.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignConversionRate.vue?vue&type=style&index=0&id=6d25d8f2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d25d8f2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-editor-settings-loader\"},[_c('ListLoader',{staticClass:\"campaign-editor-settings-loader__list\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorSettingsLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorSettingsLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CampaignEditorSettingsLoader.vue?vue&type=template&id=6b881c75&scoped=true&\"\nimport script from \"./CampaignEditorSettingsLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./CampaignEditorSettingsLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CampaignEditorSettingsLoader.vue?vue&type=style&index=0&id=6b881c75&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b881c75\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref } from '@vue/composition-api';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport CampaignMainSettings from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignMainSettings/CampaignMainSettings.vue';\nimport CampaignConversionRate from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorSettings/CampaignConversionRate/CampaignConversionRate.vue';\n\nimport CampaignEditorSettingsLoader from '@/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsLoader.vue';\n\nimport { Campaign } from '@/models/Campaign';\n\nimport { useCampaignEditorSettingsStore } from '@/store/campaignEditor/campaignEditorSettings';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n AppView,\n CampaignMainSettings,\n CampaignConversionRate,\n CampaignEditorSettingsLoader,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n campaign,\n } = toRefs(props);\n\n const campaignEditorSettingsStore = useCampaignEditorSettingsStore();\n\n const isLoading = ref(false);\n\n const fetch = async () => {\n isLoading.value = true;\n\n try {\n await Promise.all([\n campaignEditorSettingsStore.dispatch('FETCH_SETTINGS', { campaignId: campaign.value.id }),\n campaignEditorSettingsStore.dispatch('FETCH_CLIENT_BRANDS', { clientId: campaign.value.clientId }),\n ]);\n } finally {\n isLoading.value = false;\n }\n };\n\n const resetManualSettings = async () => {\n isLoading.value = true;\n\n try {\n await campaignEditorSettingsStore.dispatch('RESET_MANUAL_SETTINGS', { campaignId: campaign.value.id });\n } finally {\n isLoading.value = false;\n }\n };\n\n fetch();\n\n return {\n isLoading,\n resetManualSettings,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignEditorSettings.vue?vue&type=template&id=570c018c&scoped=true&\"\nimport script from \"./CampaignEditorSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignEditorSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignEditorSettings.vue?vue&type=style&index=0&id=570c018c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"570c018c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./CampaignPlacements.vue?vue&type=template&id=4725e4dd&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"campaign-placement-editor\"},[_c('portal',{staticClass:\"campaign-placement-editor__header\",attrs:{\"to\":\"app-header-content\"}},[(!_vm.isLoading)?_c('CampaignPlacementEditorHeader',{attrs:{\"campaign\":_vm.campaign,\"placement\":_vm.placement}}):_vm._e()],1),_vm._v(\" \"),(!_vm.isLoading)?_c('CampaignPlacementEditorContent',_vm._b({staticClass:\"campaign-placement-editor__content\",on:{\"show-placement\":_vm.showPlacement}},'CampaignPlacementEditorContent',{\n campaign: _vm.campaign,\n placement: _vm.placement,\n currentPlacement: _vm.currentPlacement,\n },false)):_vm._e(),_vm._v(\" \"),(!_vm.isLoading)?_c('CampaignPlacementEditorFooter',{attrs:{\"placement-has-been-changed\":_vm.placementHasBeenChanged,\"saving\":_vm.isSaving},on:{\"save\":_vm.save,\"cancel\":_vm.cancel}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-placement-editor-header d-flex align-center\"},[_c('div',{staticClass:\"campaign-placement-editor-header__breadcrumbs d-flex\"},_vm._l((_vm.breadcrumbs),function(breadcrumb,idx){return _c('div',{key:idx,staticClass:\"campaign-placement-editor-header__breadcrumb d-flex mr-2\"},[_c('router-link',{staticClass:\"campaign-placement-editor-header__link text-h5 text-truncate text-decoration-none\",attrs:{\"active-class\":\"campaign-placement-editor-header__link--active\",\"to\":breadcrumb.to,\"exact\":idx < _vm.breadcrumbs.length - 1},domProps:{\"textContent\":_vm._s(breadcrumb.label)}}),_vm._v(\" \"),(idx < _vm.breadcrumbs.length - 1)?_c('v-icon',{staticClass:\"flex-shrink-0 ml-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-chevron-right\\n \")]):_vm._e()],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport { Campaign, CampaignEditorPlacementDetails } from '@/models/Campaign';\n\nexport default defineComponent({\n components: {\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n placement: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n campaign,\n placement,\n } = toRefs(props);\n\n const breadcrumbs = computed(() => [\n {\n label: campaign.value.brandName,\n to: `/clients/${campaign.value.clientId}/?brandId=${campaign.value.brandId}`,\n },\n {\n label: campaign.value.name,\n to: `/campaigns/${campaign.value.id}`,\n },\n {\n label: 'Настройки кампании',\n to: { name: 'campaign-editor' },\n },\n {\n label: `${placement.value.siteName || 'Без имени'}`,\n to: { name: 'campaign-placemet-editor' },\n },\n ]);\n\n return {\n breadcrumbs,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementEditorHeader.vue?vue&type=template&id=09542cc6&scoped=true&\"\nimport script from \"./CampaignPlacementEditorHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementEditorHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignPlacementEditorHeader.vue?vue&type=style&index=0&id=09542cc6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"09542cc6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-placement-editor-content\"},[_c('PlacementEditorInfo',_vm._b({staticClass:\"campaign-placement-editor-content__header mb-6\"},'PlacementEditorInfo',{ campaign: _vm.campaign, placement: _vm.placement, currentPlacement: _vm.currentPlacement },false)),_vm._v(\" \"),_c('div',{staticClass:\"campaign-placement-editor-content__main\"},[(!_vm.placement.hidden)?_c('PlacementEditorFlights',_vm._b({staticClass:\"campaign-placement-editor-content__plan\"},'PlacementEditorFlights',{ placement: _vm.placement, currentPlacement: _vm.currentPlacement },false)):_c('div',{staticClass:\"d-flex flex-column align-center py-12\"},[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Флайты скрыты\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"mb-4 body-1 text-center grey--text text--darken-1\"},[_vm._v(\"\\n Пока размещение скрыто, флайты с планом не видны.\"),_c('br'),_vm._v(\"\\n Когда размещение станет видимым, клиент также как и вы увидит размещение на странице кампании\"),_c('br'),_vm._v(\"\\n и данные плана по этому размещению.\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"outlined\":\"\",\"rounded\":\"\"},on:{\"click\":function($event){return _vm.$emit('show-placement')}}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сделать размещение видимым\")])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"placement-editor-info\"},[_c('div',{staticClass:\"placement-editor-info__header px-6 py-2\"},[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"size\":\"16\"},domProps:{\"textContent\":_vm._s(_vm.placementStatus.icon)}}),_vm._v(\" \"),_c('div',{staticClass:\"placement-editor-info__status\"},[_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.placementStatus.text))]),_vm._v(\" \"),_c('DSelectInline',{attrs:{\"items\":_vm.placementManualStateSelectOptions,\"loading\":_vm.referenceDataIsLoading,\"disabled\":_vm.referenceDataIsLoading},model:{value:(_vm.placementManualState),callback:function ($$v) {_vm.placementManualState=$$v},expression:\"placementManualState\"}})],1),_vm._v(\" \"),_c('DBtnInline',{staticClass:\"ml-auto\",attrs:{\"to\":(\"/markups/placement/\" + (_vm.placement.id))},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n $d1-sell\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('span',{staticClass:\"caption\"},[_vm._v(\"Наценки\")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"placement-editor-info__descr px-6 pt-4 pb-3\"},_vm._l((_vm.placementFieldsColumns),function(fieldsColumn,colIdx){return _c('div',{key:(\"col-\" + colIdx),staticClass:\"placement-editor-info__col mb-2\"},_vm._l((fieldsColumn),function(field,fieldIdx){return _c('div',{key:(\"col-\" + colIdx + \"-field-\" + fieldIdx),staticClass:\"placement-editor-info__field mb-3\"},[_c('div',{staticClass:\"placement-editor-info__field-wrapper\"},[_c('div',{staticClass:\"placement-editor-info__field-title mr-2\"},[_c('span',{staticClass:\"body-2 font-weight-bold\",domProps:{\"textContent\":_vm._s(field.label)}})]),_vm._v(\" \"),_c('div',{staticClass:\"placement-editor-info__field-content\"},[(field.stub)?_c('span',{staticClass:\"body-2 grey--text\",domProps:{\"textContent\":_vm._s(field.stub)}}):(field.component)?_c(field.component,_vm._g(_vm._b({tag:\"component\",attrs:{\"value\":field.value},scopedSlots:_vm._u([(field.slots && field.slots.appendItem)?{key:\"append-item\",fn:function(){return [_c('div',{staticClass:\"d-flex align-start px-4 py-2\"},[(field.slots.appendItem.icon)?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\",\"color\":\"grey\"},domProps:{\"textContent\":_vm._s(field.slots.appendItem.icon)}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"body-2 grey--text\",staticStyle:{\"padding-top\":\"2px\",\"white-space\":\"pre-wrap\"},domProps:{\"textContent\":_vm._s(field.slots.appendItem.content)}})],1)]},proxy:true}:null],null,true)},'component',field.props,false),field.listeners)):_c('span',{staticClass:\"body-2\",domProps:{\"textContent\":_vm._s(field.value || field.placeholder)}})],1)])])}),0)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref, computed } from '@vue/composition-api';\n\nimport {\n DBtnInline,\n DInputInline,\n DRadioInline,\n DSelectInline,\n} from '@shared/druid-kit';\n\nimport { Campaign, CampaignEditorPlacementDetails } from '@/models/Campaign';\n\nimport { useCampaignEditorPlacementDetailsStore } from '@/store/campaignEditor/campaignEditorPlacementDetails';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n DRadioInline,\n DSelectInline,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n placement: { type: Object as PropType, required: true },\n currentPlacement: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n campaign,\n placement,\n currentPlacement,\n } = toRefs(props);\n\n const campaignEditorPlacementDetailsStore = useCampaignEditorPlacementDetailsStore();\n\n const referenceDataIsLoading = ref(false);\n\n const categorySelectOptions = computed(() => campaignEditorPlacementDetailsStore\n .state\n .categories\n .map(({ id, name }) => ({ value: id, text: name })));\n\n const dataProviderSelectOptions = computed(() => {\n const options: { value: string | null; text: string }[] = campaignEditorPlacementDetailsStore\n .state\n .dataProviders\n .filter(({ name }) => placement.value.metricsDataProviders.includes(name))\n .map(({ id, name }) => ({ value: id, text: name }));\n\n options.unshift({ value: null, text: 'Сумма по площадкам' });\n\n return options;\n });\n\n const placementManualStateSelectOptions = computed(() => {\n const options: { value: number | null; text: string }[] = campaignEditorPlacementDetailsStore\n .state\n .placementManualStates\n .map(({ id, name }) => ({ value: id, text: name }));\n\n options.unshift({ value: null, text: 'Статус по-умолчанию' });\n\n return options;\n });\n\n const changePlacement = (payload: Partial) => {\n campaignEditorPlacementDetailsStore.dispatch('CHANGE_PLACEMENT_FORM', payload);\n };\n\n const placementManualState = computed({\n get() {\n return placement.value.manualState ?? null;\n },\n set(val: number | null) {\n changePlacement({ manualState: val ?? undefined });\n },\n });\n\n const placementStatus = computed(() => {\n const textMap = {\n default: 'Размещение сейчас активно',\n 1: 'Размещение на паузе',\n 2: 'Размещение идет',\n 3: 'Размещение завершено',\n };\n\n const iconsMap = {\n default: '$d1-play',\n 1: 'mdi-timer-sand',\n 2: '$d1-play',\n 3: 'mdi-check',\n };\n\n const text = textMap[placementManualState.value || 'default'];\n const icon = iconsMap[placementManualState.value || 'default'];\n\n return {\n text,\n icon,\n };\n });\n\n const placementFieldsColumns = computed(() => [\n [\n\n {\n label: 'Danboid',\n value: currentPlacement.value.danboId,\n },\n {\n label: 'Сайт',\n value: currentPlacement.value.siteName,\n props: {\n label: 'Не выбран',\n },\n listeners: {\n input(val: string) {\n changePlacement({ siteName: val });\n },\n },\n component: DInputInline,\n },\n {\n label: 'Место',\n value: currentPlacement.value.adPlace,\n props: {\n label: 'Не выбрано',\n },\n listeners: {\n input(val: string) {\n changePlacement({ adPlace: val });\n },\n },\n component: DInputInline,\n },\n {\n label: 'Секция',\n value: currentPlacement.value.section,\n props: {\n label: 'Не выбрана',\n },\n listeners: {\n input(val: string) {\n changePlacement({ section: val });\n },\n },\n component: DInputInline,\n },\n {\n label: 'Подсекция',\n value: currentPlacement.value.subsection,\n props: {\n label: 'Не выбрана',\n },\n listeners: {\n input(val: string) {\n changePlacement({ subsection: val });\n },\n },\n component: DInputInline,\n },\n {\n label: 'Категория',\n value: currentPlacement.value.category.categoryId,\n props: {\n items: categorySelectOptions.value,\n loading: referenceDataIsLoading.value,\n disabled: referenceDataIsLoading.value,\n returnObject: true,\n },\n listeners: {\n input(payload: { value: string, text: string }) {\n changePlacement({ category: { categoryId: payload.value, categoryName: payload.text } });\n },\n },\n component: DSelectInline,\n },\n ],\n [\n\n {\n label: 'Таргетинги',\n value: currentPlacement.value.comment,\n placeholder: '—',\n },\n {\n label: 'Данные плана',\n value: currentPlacement.value.getPlanFrom1C ?? false,\n props: {\n items: [\n { value: false, text: 'Заданы вручную' },\n { value: true, text: 'Взять из 1С' },\n ],\n },\n listeners: {\n async change(val: boolean) {\n if (!val) return changePlacement({ getPlanFrom1C: val });\n\n await campaignEditorPlacementDetailsStore.dispatch('FETCH_PLACEMENT_FROM_1C', {\n campaignId: campaign.value.id,\n placementDanboId: currentPlacement.value.danboId,\n });\n },\n },\n component: DRadioInline,\n stub: placement.value.hidden ? 'Скрыто' : '',\n },\n {\n label: 'Показ данных',\n value: currentPlacement.value?.cutOffMetrics ?? false,\n props: {\n items: [\n { value: true, text: 'За плановый период' },\n { value: false, text: 'За весь период' },\n ],\n },\n listeners: {\n input(val: boolean) {\n changePlacement({ cutOffMetrics: val });\n },\n },\n component: DSelectInline,\n stub: placement.value.hidden ? 'Скрыто' : '',\n },\n {\n label: 'Источник данных',\n value: currentPlacement.value.preferredDataProviderId,\n props: {\n items: dataProviderSelectOptions.value,\n loading: referenceDataIsLoading.value,\n disabled: referenceDataIsLoading.value,\n },\n listeners: {\n input(val: string) {\n changePlacement({ preferredDataProviderId: val });\n },\n },\n component: DSelectInline,\n },\n {\n label: 'Данные плана размещения',\n value: currentPlacement.value.hidden,\n props: {\n items: [\n { value: true, text: 'Скрыты от всех' },\n { value: false, text: 'Видны вам и клиенту' },\n ],\n },\n slots: {\n appendItem: {\n icon: 'mdi-information-outline',\n content: 'Эта настройка управляет видимостью размещения на вкладке\\nнастроек размещения План и на странице Кампании с данными\\nплана для вас и клиента.\\nФакт размещения можно скрыть/показать для клиента\\nна странице Кампании.',\n },\n },\n listeners: {\n input(val: boolean) {\n changePlacement({ hidden: val });\n },\n },\n component: DSelectInline,\n },\n ],\n ]);\n\n const fetchReferenceData = async () => {\n referenceDataIsLoading.value = true;\n\n try {\n await Promise.all([\n campaignEditorPlacementDetailsStore.dispatch('FETCH_CATEGORIES'),\n campaignEditorPlacementDetailsStore.dispatch('FETCH_DATA_PROVIDERS'),\n campaignEditorPlacementDetailsStore.dispatch('FETCH_PLACEMENT_MANUAL_STATES'),\n ]);\n } finally {\n referenceDataIsLoading.value = false;\n }\n };\n\n fetchReferenceData();\n\n return {\n referenceDataIsLoading,\n placementManualState,\n placementStatus,\n placementManualStateSelectOptions,\n placementFieldsColumns,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementEditorInfo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementEditorInfo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlacementEditorInfo.vue?vue&type=template&id=0ea032f7&scoped=true&\"\nimport script from \"./PlacementEditorInfo.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlacementEditorInfo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PlacementEditorInfo.vue?vue&type=style&index=0&id=0ea032f7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0ea032f7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"placement-editor-plan\"},[_c('div',{staticClass:\"placement-editor-plan__header d-flex align-baseline px-6 mb-4\"},[_vm._m(0),_vm._v(\" \"),_c('div',[_c('DBtnInline',{on:{\"click\":_vm.openMetricsModal},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-table-cog\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n Дополнительные метрики\\n \")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center ml-auto\"},[_c('v-btn',{staticClass:\"placement-editor-plan__btn\",attrs:{\"color\":\"primary\",\"outlined\":\"\",\"rounded\":\"\",\"small\":\"\"},on:{\"click\":_vm.addPlacementPlanFlight}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"caption\"},[_vm._v(\"Добавить флайт\")])],1)],1)]),_vm._v(\" \"),_c('div',{staticClass:\"placement-editor-plan__main\"},[_c('PlacementFlightsTable',{staticClass:\"placement-editor-plan__table\",attrs:{\"current-placement\":_vm.currentPlacement,\"placement-plan-metrics\":_vm.visiblePlacementPlanMetrics,\"plan-has-been-changed\":_vm.planHasBeenChanged},on:{\"change\":_vm.onPlacementFlightsTableChange}})],1),_vm._v(\" \"),_c('CampaignPlanMetricsModal',_vm._b({model:{value:(_vm.modalsMap.metrics.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.metrics, \"value\", $$v)},expression:\"modalsMap.metrics.value\"}},'CampaignPlanMetricsModal',_vm.modalsMap.metrics.props,false))],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mr-4\"},[_c('div',{staticClass:\"text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Флайты\\n \")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"placement-plan-table\"},[_c('HnTable',{ref:\"hnTableComponent\",staticClass:\"placement-plan-table__table\",attrs:{\"data\":_vm.placementFlights,\"columns\":_vm.hnTableColumns,\"settings\":_vm.hnTableSettings,\"data-has-been-changed\":_vm.placementHasBeenChanged},on:{\"initialized\":_vm.onHnTableInitialized}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('HnTableCellWrapper',_vm._b({scopedSlots:_vm._u([{key:\"renderer\",fn:function(){return [_c('div',{staticClass:\"subtitle-2 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.rowNumber)+\"\\n \")])]},proxy:true}])},'HnTableCellWrapper',_vm.hnTbaleCellWrapperProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor } from 'vue';\n\nimport { HnTableCellMixin } from '@/packages/hn-table/src/mixins';\n\nexport default (Vue as VueConstructor>).extend({\n name: 'PlanTableNumberCell',\n mixins: [\n HnTableCellMixin,\n ],\n computed: {\n rowNumber(): number {\n if (!this.row) return 1;\n\n return this.row + 1;\n },\n },\n});\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightsTableNumberCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightsTableNumberCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FlightsTableNumberCell.vue?vue&type=template&id=22cf9092&\"\nimport script from \"./FlightsTableNumberCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./FlightsTableNumberCell.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('HnTableCellWrapper',_vm._b({staticClass:\"plan-table-delete-cell\",scopedSlots:_vm._u([{key:\"renderer\",fn:function(){return [_c('v-btn',{staticClass:\"plan-table-delete-cell__btn\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":!_vm.isDeletable},on:{\"click\":_vm.onDeleteBtnClick}},[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)]},proxy:true}])},'HnTableCellWrapper',_vm.hnTbaleCellWrapperProps,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { VueConstructor, PropType } from 'vue';\n\nimport { HnTableCellMixin } from '@/packages/hn-table/src/mixins';\n\nimport { PlacementFlightsTableEmitter } from '../placementFlightsTableEmitter';\n\nexport default (Vue as VueConstructor>).extend({\n name: 'PlanTableDeleteCell',\n mixins: [\n HnTableCellMixin,\n ],\n props: {\n emitter: { type: Object as PropType, required: true },\n placementPlanFlightsCount: { type: Number, default: 0 },\n },\n computed: {\n isDeletable(): boolean {\n return this.placementPlanFlightsCount > 1;\n },\n },\n methods: {\n onDeleteBtnClick() {\n this.emitter.emit('deleteFlightPlan', { row: this.row });\n },\n },\n});\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightsTableDeleteCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightsTableDeleteCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FlightsTableDeleteCell.vue?vue&type=template&id=2429f5cd&scoped=true&\"\nimport script from \"./FlightsTableDeleteCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./FlightsTableDeleteCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FlightsTableDeleteCell.vue?vue&type=style&index=0&id=2429f5cd&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2429f5cd\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","import mitt from 'mitt';\n\nconst placementFlightsTableEmitter = mitt<{\n addFlightPlan: undefined;\n deleteFlightPlan: {\n row: number;\n };\n}>();\n\nexport type PlacementFlightsTableEmitter = typeof placementFlightsTableEmitter;\n\nexport default placementFlightsTableEmitter;\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref, computed, nextTick } from '@vue/composition-api';\n\nimport goTo from 'vuetify/es5/services/goto';\n\nimport { cloneDeep } from 'lodash';\nimport moment from 'moment';\nimport Handsontable from 'handsontable';\n\nimport { HnTable } from '@/packages/hn-table/src/components';\nimport { HnTableColumn } from '@/packages/hn-table/src/models';\n\nimport { FlightPlan } from '@/models/Flight';\nimport { MetricTypeLight } from '@/models/MetricType';\nimport { CampaignEditorPlacementDetails } from '@/models/Campaign';\n\nimport store from '@/store';\nimport metricTypesStore from '@/store/reference/metricTypes';\n\nimport FlightsTableNumberCell from './cells/FlightsTableNumberCell.vue';\nimport FlightsTableDeleteCell from './cells/FlightsTableDeleteCell.vue';\n\nimport placementFlightsTableEmitter from './placementFlightsTableEmitter';\n\nconst metricTypesStoreContext = metricTypesStore.context(store);\n\nlet H_TABLE_INSTANCE: Handsontable | null = null;\n\nexport default defineComponent({\n components: {\n HnTable,\n },\n props: {\n currentPlacement: { type: Object as PropType, required: true },\n placementPlanMetrics: { type: Array as PropType, required: true },\n placementHasBeenChanged: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n currentPlacement,\n placementPlanMetrics,\n } = toRefs(props);\n\n const placementFlights = computed(() => currentPlacement.value.flights);\n\n const maxFlightPlanDate = computed(() => {\n const flightPlansEndDates = placementFlights.value.map((flightPlan) => moment(flightPlan.endDate));\n\n return moment.utc(moment.max(flightPlansEndDates)).format('YYYY-MM-DDTHH:mm:ss[Z]');\n });\n\n const getHnTableSourceData = () => {\n const localHnTableInstance = H_TABLE_INSTANCE;\n\n const sourceData = cloneDeep(localHnTableInstance?.getSourceData()) as FlightPlan[];\n\n return sourceData;\n };\n\n const generatePlacementPlanUpdate = (payload: Partial) => {\n if (payload.flights) return { ...currentPlacement.value, ...payload };\n\n const flights = getHnTableSourceData();\n\n return { ...currentPlacement.value, ...payload, flights };\n };\n\n const change = (payload: CampaignEditorPlacementDetails) => {\n context.emit('change', payload);\n };\n\n const addFlightPlan = async () => {\n const flightPlan = {\n startDate: moment.utc(maxFlightPlanDate.value)\n .endOf('month')\n .add(1, 'day')\n .startOf('day')\n .format('YYYY-MM-DDTHH:mm:ss[Z]'),\n endDate: moment.utc(maxFlightPlanDate.value)\n .endOf('month')\n .add(1, 'month')\n .startOf('day')\n .format('YYYY-MM-DDTHH:mm:ss[Z]'),\n vat: currentPlacement.value.vat,\n planMetrics: {},\n };\n\n const sourceData = getHnTableSourceData();\n const flights = [...sourceData, flightPlan];\n const newPlacementPlan = generatePlacementPlanUpdate({ flights, getPlanFrom1C: false });\n\n change(newPlacementPlan);\n\n await nextTick();\n\n goTo(document.documentElement.scrollHeight);\n };\n\n const deleteFlightPlan = (row: number) => {\n if (placementFlights.value.length < 2) return;\n\n const sourceData = getHnTableSourceData();\n const flights = sourceData.filter((flightPlan, idx) => idx !== row);\n const newPlacementPlan = generatePlacementPlanUpdate({ flights, getPlanFrom1C: false });\n\n change(newPlacementPlan);\n };\n\n const afterChange = (changes: Handsontable.CellChange[], source: Handsontable.ChangeSource) => {\n if (source === 'loadData') return;\n\n const flights = getHnTableSourceData();\n const newPlacementPlan = generatePlacementPlanUpdate({ flights, getPlanFrom1C: false });\n\n change(newPlacementPlan);\n };\n\n const hnTableColumns = computed(() => [\n new HnTableColumn({\n title: '№',\n data: '__row_number__',\n settings: {\n width: 54,\n readOnly: true,\n },\n rendererComponent: FlightsTableNumberCell,\n }),\n new HnTableColumn({\n title: 'Старт',\n data: 'startDate',\n header: {\n className: 'htRight',\n },\n settings: {\n type: 'date',\n width: 110,\n validator: { $lte: 'endDate' },\n },\n props: {\n textAlign: 'right',\n },\n }),\n new HnTableColumn({\n title: '',\n data: '__empty__',\n settings: {\n type: 'stub',\n width: 30,\n },\n props: {\n text: '—',\n },\n }),\n new HnTableColumn({\n title: 'Конец',\n data: 'endDate',\n header: {\n className: 'htLeft',\n },\n settings: {\n type: 'date',\n width: 110,\n validator: { $gte: 'startDate' },\n },\n props: {\n textAlign: 'left',\n },\n }),\n new HnTableColumn({\n title: 'НДС',\n data: 'vat',\n header: {\n className: 'htRight',\n },\n settings: {\n type: 'numeric',\n width: 54,\n numericFormat: {\n pattern: '0{%}',\n },\n },\n }),\n ...placementPlanMetrics.value.map((planMetric) => {\n const metricTypeAccuracy = metricTypesStoreContext.getters.getMetricTypeProp(planMetric.name, 'accuracy') || 0;\n\n return new HnTableColumn({\n title: planMetric.displayName,\n data: `planMetrics.${planMetric.name}`,\n header: {\n className: 'htRight',\n },\n settings: {\n type: 'numeric',\n width: 120,\n className: 'htRight',\n placeholder: '—',\n allowInvalid: false,\n allowEmpty: true,\n numericFormat: {\n pattern: {\n mantissa: metricTypeAccuracy,\n },\n },\n },\n });\n }),\n new HnTableColumn({\n title: '',\n data: '',\n settings: {\n width: 64,\n readOnly: true,\n },\n props: {\n emitter: placementFlightsTableEmitter,\n placementPlanFlightsCount: placementFlights.value.length,\n },\n rendererComponent: FlightsTableDeleteCell,\n }),\n ]);\n\n const hnTableSettings = ref({\n afterChange,\n });\n\n const onHnTableInitialized = (hotInstance: Handsontable) => {\n H_TABLE_INSTANCE = hotInstance;\n };\n\n placementFlightsTableEmitter.on('addFlightPlan', () => {\n addFlightPlan();\n });\n\n placementFlightsTableEmitter.on('deleteFlightPlan', ({ row }) => {\n deleteFlightPlan(row);\n });\n\n return {\n placementFlights,\n hnTableColumns,\n hnTableSettings,\n onHnTableInitialized,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementFlightsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementFlightsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlacementFlightsTable.vue?vue&type=template&id=7c37bbcc&\"\nimport script from \"./PlacementFlightsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlacementFlightsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, ref, computed, toRefs } from '@vue/composition-api';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport useModals from '@/composables/useModals';\n\nimport CampaignPlanMetricsModal from '@/components/_newDesign/Campaigns/CampaignEditor/CampaignEditorPlacements/modals/CampaignPlacementsMetricsModal.vue';\n\nimport { useCampaignEditorPlacementsStore } from '@/store/campaignEditor/campaignEditorPlacements';\nimport { useCampaignEditorPlacementDetailsStore } from '@/store/campaignEditor/campaignEditorPlacementDetails';\n\nimport { CampaignEditorPlacementDetails } from '@/models/Campaign';\n\nimport PlacementFlightsTable from './PlacementFlightsTable/PlacementFlightsTable.vue';\n\nimport placementFlightsTableEmitter from './PlacementFlightsTable/placementFlightsTableEmitter';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n PlacementFlightsTable,\n CampaignPlanMetricsModal,\n },\n props: {\n placement: { type: Object as PropType, required: true },\n currentPlacement: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { placement } = toRefs(props);\n\n const campaignEditorPlacementsStore = useCampaignEditorPlacementsStore();\n const campaignEditorPlacementDetailsStore = useCampaignEditorPlacementDetailsStore();\n\n const isLoading = ref(false);\n\n const {\n modalsMap,\n openModal,\n } = useModals(['metrics']);\n\n const planHasBeenChanged = computed(() => campaignEditorPlacementDetailsStore.getters.placementHasBeenChanged);\n const campaignPlanMetrics = computed(() => campaignEditorPlacementsStore.getters.campaignPlanMetrics);\n const filledPlanMetrics = computed(() => campaignPlanMetrics.value.filter(({ name }) => placement.value?.planTotalMetrics?.[name]));\n\n const visiblePlacementPlanMetrics = computed(() => {\n const planMetrics = [...filledPlanMetrics.value];\n\n campaignEditorPlacementsStore.getters.selectedPlanMetrics.forEach((planMetric) => {\n const planMetricAlreadyExists = planMetrics.some(({ name }) => name === planMetric.name);\n\n if (planMetricAlreadyExists) return;\n\n planMetrics.push(planMetric);\n });\n\n const planMetricsWeightsMap = campaignPlanMetrics.value.reduce((map, planMetric, idx) => {\n map[planMetric.name] = idx;\n\n return map;\n }, {});\n\n return planMetrics.sort((planMetricA, planMetricB) => {\n const planMetricAWeight = planMetricsWeightsMap[planMetricA.name];\n const planMetricBWeight = planMetricsWeightsMap[planMetricB.name];\n\n return planMetricAWeight - planMetricBWeight;\n });\n });\n\n const openMetricsModal = () => {\n openModal({\n slug: 'metrics',\n props: {\n visiblePlanMetrics: visiblePlacementPlanMetrics.value,\n filledPlanMetrics: filledPlanMetrics.value,\n },\n });\n };\n\n const addPlacementPlanFlight = () => {\n placementFlightsTableEmitter.emit('addFlightPlan');\n };\n\n const onPlacementFlightsTableChange = (payload: Partial) => {\n campaignEditorPlacementDetailsStore.dispatch('CHANGE_PLACEMENT_FORM', payload);\n };\n\n return {\n isLoading,\n modalsMap,\n planHasBeenChanged,\n visiblePlacementPlanMetrics,\n openMetricsModal,\n addPlacementPlanFlight,\n onPlacementFlightsTableChange,\n filledPlanMetrics,\n campaignPlanMetrics,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementEditorFlights.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementEditorFlights.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlacementEditorFlights.vue?vue&type=template&id=164cf256&scoped=true&\"\nimport script from \"./PlacementEditorFlights.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlacementEditorFlights.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PlacementEditorFlights.vue?vue&type=style&index=0&id=164cf256&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"164cf256\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport { Campaign, CampaignEditorPlacementDetails } from '@/models/Campaign';\n\nimport PlacementEditorInfo from './PlacementEditorInfo.vue';\nimport PlacementEditorFlights from './PlacementEditorFlights/PlacementEditorFlights.vue';\n\nexport default defineComponent({\n components: {\n PlacementEditorInfo,\n PlacementEditorFlights,\n },\n props: {\n campaign: { type: Object as PropType, required: true },\n placement: { type: Object as PropType, required: true },\n currentPlacement: { type: Object as PropType, required: true },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementEditorContent.vue?vue&type=template&id=1c9a441c&scoped=true&\"\nimport script from \"./CampaignPlacementEditorContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementEditorContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignPlacementEditorContent.vue?vue&type=style&index=0&id=1c9a441c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c9a441c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('portal',{attrs:{\"to\":\"app-bottom-navigation-content\"}},[_c('div',[(_vm.placementHasBeenChanged)?_c('div',{staticClass:\"px-6 py-2 warning\"},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"16\",\"color\":\"white\"}},[_vm._v(\"\\n mdi-alert-circle-outline\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"caption white--text\"},[_vm._v(\"Сохраните настройки размещения, чтобы применить изменения\")])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"d-flex px-6 py-3\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"loading\":_vm.saving,\"rounded\":\"\",\"small\":\"\",\"disabled\":_vm.saveBtnDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Сохранить размещение\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"small\":\"\"},on:{\"click\":_vm.cancel}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Отмена\")])])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n placementHasBeenChanged: { type: Boolean, default: false },\n saving: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n placementHasBeenChanged,\n saving,\n } = toRefs(props);\n\n const saveBtnDisabled = computed(() => !saving.value && !placementHasBeenChanged.value);\n\n const save = () => {\n context.emit('save');\n };\n\n const cancel = () => {\n context.emit('cancel');\n };\n\n return {\n saveBtnDisabled,\n cancel,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementEditorFooter.vue?vue&type=template&id=fca14d76&\"\nimport script from \"./CampaignPlacementEditorFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementEditorFooter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed } from '@vue/composition-api';\nimport { Route, NavigationGuardNext } from 'vue-router';\n\nimport useRouter from '@/packages/hooks/useRouter';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport CampaignPlacementEditorHeader from '@/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorHeader.vue';\nimport CampaignPlacementEditorContent from '@/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorContent.vue';\nimport CampaignPlacementEditorFooter from '@/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorFooter.vue';\n\nimport useMeta from '@/composables/meta/useMeta';\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport { useNavigationStore } from '@/store/navigation';\nimport { useCampaignStore } from '@/store/campaign';\nimport { useCampaignEditorPlacementsStore } from '@/store/campaignEditor/campaignEditorPlacements';\nimport { useCampaignEditorPlacementDetailsStore } from '@/store/campaignEditor/campaignEditorPlacementDetails';\n\nimport modally from '@/services/modally';\n\nexport default defineComponent({\n components: {\n AppView,\n CampaignPlacementEditorHeader,\n CampaignPlacementEditorContent,\n CampaignPlacementEditorFooter,\n },\n async beforeRouteEnter(to: Route, from: Route, next: NavigationGuardNext): Promise {\n next(async (vm) => {\n await vm.$store.dispatch('campaignEditor/RESET_EDITORS_CHANGES');\n });\n },\n async beforeRouteLeave(to: Route, from: Route, next: NavigationGuardNext): Promise {\n const customNext = async () => {\n await this.$store.dispatch('campaignEditor/RESET_EDITORS_CHANGES');\n\n next();\n };\n\n if (!this.placementHasBeenChanged) return customNext();\n\n if (this.isSaving) {\n const result = await modally.show({\n type: 'confirm',\n status: 'warning',\n title: 'Идет сохранение. Выйти из редактирования?',\n });\n\n if (!result) return;\n\n customNext();\n } else if (!this.isCanceling) {\n await modally.show({\n status: 'warning',\n title: 'Есть несохраненные данные',\n content: `Изменения в размещении ${this.placement?.siteName} будут сброшены`,\n buttons: [\n {\n props: {\n text: 'Выйти без сохранения',\n color: 'warning',\n outlined: true,\n },\n action: customNext,\n },\n {\n props: {\n text: 'Сохранить и выйти',\n color: 'primary',\n outlined: true,\n },\n action: async () => {\n await this.save();\n\n customNext();\n },\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary-gradient',\n },\n action: () => { /* empty */ },\n },\n ],\n });\n } else {\n customNext();\n }\n },\n\n props: {\n campaignId: { type: String, required: true },\n placementDanboId: { type: String, required: true },\n },\n setup(props, context) {\n const {\n campaignId,\n placementDanboId,\n } = toRefs(props);\n\n const router = useRouter(context);\n\n const navigationStore = useNavigationStore();\n const campaignStore = useCampaignStore();\n const campaignEditorPlacementsStore = useCampaignEditorPlacementsStore();\n const campaignEditorPlacementDetailsStore = useCampaignEditorPlacementDetailsStore();\n\n const {\n isLoading,\n updateIsLoading,\n } = useLayoutLoadingStatus();\n\n const isSaving = ref(false);\n const isCanceling = ref(false);\n\n const campaign = computed(() => campaignStore.getters.campaign);\n const placement = computed(() => campaignEditorPlacementDetailsStore.getters.placement);\n const currentPlacement = computed(() => campaignEditorPlacementDetailsStore.getters.currentPlacement);\n\n const pageMeta = computed(() => ({\n title: placement.value ? `${placement.value.siteName} • Настройки размещения` : 'Настройки размещения',\n }));\n\n useMeta(pageMeta);\n\n const fetch = async () => {\n updateIsLoading(true);\n\n try {\n await Promise.all([\n campaignStore.dispatch('FETCH_CAMPAIGN', { campaignId: campaignId.value }),\n campaignEditorPlacementsStore.dispatch('FETCH_CAMPAIGN_PLAN_METRICS', campaignId.value),\n campaignEditorPlacementDetailsStore.dispatch('FETCH_PLACEMENT', {\n campaignId: campaignId.value,\n placementDanboId: placementDanboId.value,\n }),\n ]);\n } finally {\n updateIsLoading(false);\n }\n };\n\n const placementHasBeenChanged = computed(() => campaignEditorPlacementDetailsStore.getters.placementHasBeenChanged);\n const campaignEditorPath = computed(() => `/campaigns/${campaign.value?.id}/edit`);\n\n const prevRoutePath = computed(() => {\n const defaultPath = campaignEditorPath.value;\n\n const prevRoute = navigationStore.getters.getPrevRoute({\n name: [\n /campaign.+/i,\n /campaign-editor.+/i,\n ],\n });\n\n return prevRoute?.path || defaultPath;\n });\n\n const cancel = async () => {\n const redirectCallback = () => {\n isCanceling.value = false;\n };\n\n const redirect = () => {\n router.push(prevRoutePath.value, redirectCallback, redirectCallback);\n };\n\n isCanceling.value = true;\n\n if (isSaving.value || !placementHasBeenChanged.value) return redirect();\n\n const result = await modally.show({\n status: 'warning',\n title: 'Есть несохраненные данные',\n content: `Изменения в размещении ${placement.value?.siteName} будут сброшены`,\n buttons: [\n {\n props: {\n text: 'Выйти без сохранения',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary-gradient',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) {\n isCanceling.value = false;\n\n return;\n }\n\n redirect();\n };\n\n const save = async () => {\n if (!placementHasBeenChanged.value) return;\n\n isSaving.value = true;\n\n try {\n await campaignEditorPlacementDetailsStore.dispatch('SAVE_PLACEMENT', { campaignId: campaignId.value });\n\n cancel();\n } finally {\n isSaving.value = false;\n }\n };\n\n const showPlacement = async () => {\n updateIsLoading(true);\n\n try {\n await campaignEditorPlacementDetailsStore.dispatch('SHOW_PLACEMENT', {\n campaignId: campaignId.value,\n placementDanboId: placementDanboId.value,\n });\n } finally {\n updateIsLoading(false);\n }\n };\n\n fetch();\n\n return {\n isLoading,\n isSaving,\n isCanceling,\n campaign,\n placement,\n currentPlacement,\n save,\n showPlacement,\n cancel,\n placementHasBeenChanged,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignPlacementEditor.vue?vue&type=template&id=13d7c422&scoped=true&\"\nimport script from \"./CampaignPlacementEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignPlacementEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignPlacementEditor.vue?vue&type=style&index=0&id=13d7c422&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13d7c422\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-page-loader\"},[_c('v-skeleton-loader',{staticClass:\"campaign-page-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('div',{staticClass:\"campaign-page-loader__statistic\"},[_c('div',{staticClass:\"campaign-page-loader__metrics\"},_vm._l((4),function(num){return _c('v-skeleton-loader',{key:num,staticClass:\"campaign-page-loader__metrics-item\",attrs:{\"type\":\"text\"}})}),1),_vm._v(\" \"),_c('v-skeleton-loader',{staticClass:\"campaign-page-loader__chart\",attrs:{\"type\":\"image\"}})],1),_vm._v(\" \"),_c('TableLoader',{staticClass:\"campaign-page-loader__table\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPageLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPageLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CampaignPageLoader.vue?vue&type=template&id=7bf659d4&scoped=true&\"\nimport script from \"./CampaignPageLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./CampaignPageLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CampaignPageLoader.vue?vue&type=style&index=0&id=7bf659d4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7bf659d4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-editor-page-loader\"},[_c('v-skeleton-loader',{staticClass:\"campaign-editor-page-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('CampaignEditorTableLoader')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorPageLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorPageLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CampaignEditorPageLoader.vue?vue&type=template&id=a152522c&scoped=true&\"\nimport script from \"./CampaignEditorPageLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./CampaignEditorPageLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CampaignEditorPageLoader.vue?vue&type=style&index=0&id=a152522c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a152522c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-editor-placement-loader\"},[_c('v-skeleton-loader',{staticClass:\"campaign-editor-placement-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('v-skeleton-loader',{staticClass:\"campaign-editor-placement-loader__subheader\",attrs:{\"type\":\"text\"}}),_vm._v(\" \"),_c('div',{staticClass:\"campaign-editor-placement-loader__settings\"},[_c('div',{staticClass:\"campaign-editor-placement-loader__settings-list-wrapper\"},[_c('ListLoader',{staticClass:\"campaign-editor-placement-loader__settings-list-content\",attrs:{\"without-title\":\"\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-editor-placement-loader__settings-list-wrapper\"},[_c('ListLoader',{staticClass:\"campaign-editor-placement-loader__settings-list-content\",attrs:{\"without-title\":\"\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"campaign-editor-placement-loader__table\"},[_c('v-skeleton-loader',{staticClass:\"campaign-editor-placement-loader__table-title\",attrs:{\"type\":\"text\"}}),_vm._v(\" \"),_c('TableLoader',{attrs:{\"rows\":3}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementEditorLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CampaignPlacementEditorLoader.vue?vue&type=template&id=1180d9c5&scoped=true&\"\nimport script from \"./CampaignPlacementEditorLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./CampaignPlacementEditorLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CampaignPlacementEditorLoader.vue?vue&type=style&index=0&id=1180d9c5&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1180d9c5\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-editor-settings-pageloader\"},[_c('v-skeleton-loader',{staticClass:\"campaign-editor-settings-pageloader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('CampaignEditorSettingsLoader')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorSettingsPageLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorSettingsPageLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CampaignEditorSettingsPageLoader.vue?vue&type=template&id=3ce1d3bc&scoped=true&\"\nimport script from \"./CampaignEditorSettingsPageLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./CampaignEditorSettingsPageLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CampaignEditorSettingsPageLoader.vue?vue&type=style&index=0&id=3ce1d3bc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ce1d3bc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-editor-categories-page-loader\"},[_c('v-skeleton-loader',{staticClass:\"campaign-editor-categories-page-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('CampaignEditorCategoriesLoader')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorCategoriesPageLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorCategoriesPageLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CampaignEditorCategoriesPageLoader.vue?vue&type=template&id=55cfda5e&scoped=true&\"\nimport script from \"./CampaignEditorCategoriesPageLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./CampaignEditorCategoriesPageLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CampaignEditorCategoriesPageLoader.vue?vue&type=style&index=0&id=55cfda5e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"55cfda5e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","import { Route, RawLocation } from 'vue-router';\n\nimport Campaigns from '@/views/Campaigns.vue';\n\nimport CampaignDetails from '@/views/Campaigns/CampaignDetails.vue';\nimport CampaignCategory from '@/views/Campaigns/CampaignCategory.vue';\nimport CampaignPlacement from '@/views/Campaigns/CampaignPlacement.vue';\nimport CampaignConnector from '@/views/Campaigns/CampaignConnector.vue';\nimport CampaignAdObject from '@/views/Campaigns/CampaignAdObject.vue';\n\nimport CampaignEditor from '@/views/Campaigns/CampaignEditor.vue';\nimport CampaignEditorPlacements from '@/views/Campaigns/CampaignEditor/CampaignEditorPlacements.vue';\n\nimport CampaignEditorGoals from '@/views/Campaigns/CampaignEditor/CampaignEditorGoals.vue';\nimport CampaignEditorCategories from '@/views/Campaigns/CampaignEditor/CampaignEditorCategories.vue';\nimport CampaignEditorSettings from '@/views/Campaigns/CampaignEditor/CampaignEditorSettings.vue';\n\nimport CampaignPlacements from '@/views/Campaigns/CampaignPlacements.vue';\nimport CampaignPlacementEditor from '@/views/Campaigns/CampaignPlacements/CampaignPlacementEditor.vue';\n\nimport CampaignPageLoader from '@/components/_newDesign/Campaigns/CampaignPageLoader.vue';\nimport CampaignEditorPageLoader from '@/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorPageLoader.vue';\nimport CampaignPlacementEditorLoader from '@/components/_newDesign/Campaigns/CampaignPlacementEditor/CampaignPlacementEditorLoader.vue';\nimport CampaignEditorSettingsPageLoader from '@/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorSettingsPageLoader.vue';\nimport CampaignEditorCategoriesPageLoader from '@/components/_newDesign/Campaigns/CampaignEditor/loaders/CampaignEditorCategoriesPageLoader.vue';\n\nimport { AppRouteConfig } from '@/models/AppRouter';\n\nconst campaignCatalogRoutes: AppRouteConfig[] = [\n {\n name: 'campaigns',\n path: '',\n redirect: '/',\n },\n];\n\nconst campaignDetailsRoutes: AppRouteConfig[] = [\n {\n name: 'campaign',\n path: ':campaignId',\n component: CampaignDetails,\n meta: {\n loader: CampaignPageLoader,\n },\n props: true,\n },\n];\n\nconst campaignCategoryRoutes: AppRouteConfig[] = [\n {\n name: 'campaign-category',\n path: ':campaignId/category/:categoryId',\n component: CampaignCategory,\n meta: {\n loader: CampaignPageLoader,\n },\n props: true,\n },\n];\n\nconst campaignPlacementRoutes: AppRouteConfig[] = [\n {\n name: 'campaign_danboid',\n path: ':campaignId/danboid/:danboId',\n redirect(to: Route): RawLocation {\n const {\n start,\n end,\n ...otherQuery\n } = to.query;\n\n return {\n name: 'campaign-placement',\n query: {\n from: start,\n to: end,\n ...otherQuery,\n },\n };\n },\n },\n {\n name: 'campaign-placement',\n path: ':campaignId/placements/:danboId',\n component: CampaignPlacement,\n meta: {\n permission: 'view_sub_danboids',\n loader: CampaignPageLoader,\n },\n props: true,\n },\n];\n\nconst campaignConnectorRoutes: AppRouteConfig[] = [\n {\n name: 'campaign-connector',\n path: ':campaignId/placements/:danboId/connectors/:connectorId',\n component: CampaignConnector,\n meta: {\n permission: 'view_sub_danboids',\n loader: CampaignPageLoader,\n },\n props: true,\n },\n];\n\nconst campaignAdObjectRoutes: AppRouteConfig[] = [\n {\n name: 'campaign-ad-object',\n path: ':campaignId/placements/:danboId/connectors/:connectorId/:level/:type/:onSiteId',\n component: CampaignAdObject,\n meta: {\n permission: 'view_sub_danboids',\n loader: CampaignPageLoader,\n },\n props: true,\n },\n];\n\nconst campaignEditorRoutes: AppRouteConfig[] = [\n {\n name: 'campaign-editor',\n path: ':campaignId/edit',\n redirect: {\n name: 'campaign-editor-placements',\n },\n component: CampaignEditor,\n meta: {\n permission: 'plan_edit',\n },\n props: true,\n children: [\n {\n name: 'campaign-editor-placements',\n path: 'placements',\n component: CampaignEditorPlacements,\n props: true,\n meta: {\n permission: 'plan_edit',\n loader: CampaignEditorPageLoader,\n footer: {\n linksOnRight: true,\n },\n },\n },\n {\n name: 'campaign-editor-goals',\n path: 'goals',\n component: CampaignEditorGoals,\n props: true,\n meta: {\n loader: CampaignEditorPageLoader,\n footer: {\n linksOnRight: true,\n },\n },\n },\n {\n name: 'campaign-editor-categories',\n path: 'categories',\n component: CampaignEditorCategories,\n props: true,\n meta: {\n loader: CampaignEditorCategoriesPageLoader,\n footer: {\n linksOnRight: true,\n },\n },\n },\n {\n name: 'campaign-editor-settings',\n path: 'settings',\n component: CampaignEditorSettings,\n props: true,\n meta: {\n loader: CampaignEditorSettingsPageLoader,\n footer: {\n linksOnRight: true,\n },\n },\n },\n ],\n },\n];\n\nconst campaignPlacementsRoutes: AppRouteConfig[] = [\n {\n name: 'campaign-placements',\n path: ':campaignId/placements',\n component: CampaignPlacements,\n children: [\n {\n name: 'campaign-placement-editor',\n path: ':placementDanboId/edit',\n component: CampaignPlacementEditor,\n props: true,\n meta: {\n permission: 'plan_edit',\n loader: CampaignPlacementEditorLoader,\n footer: {\n linksOnRight: true,\n },\n },\n },\n ],\n },\n];\n\nconst routeConfig: AppRouteConfig = {\n path: '/campaigns',\n component: Campaigns,\n meta: {\n permission: 'any',\n },\n children: [\n ...campaignCatalogRoutes,\n ...campaignDetailsRoutes,\n ...campaignCategoryRoutes,\n ...campaignPlacementRoutes,\n ...campaignConnectorRoutes,\n ...campaignAdObjectRoutes,\n ...campaignEditorRoutes,\n ...campaignPlacementsRoutes,\n ],\n};\n\nexport default routeConfig;\n","import Vue from 'vue';\nimport VueRouter from 'vue-router';\n\nimport Auth from '@/views/Auth.vue';\n\nimport AccessDenied from '@/views/AccessDenied.vue';\nimport NotFound from '@/views/NotFound.vue';\n\nimport clients from '@/router/clients';\n\nimport campaigns from '@/router/campaigns';\n\nimport store from '@/store';\nimport authStore from '@/store/auth';\nimport navigationStore from '@/store/navigation';\n\nimport { AppRouteConfig } from '@/models/AppRouter';\n\nconst authStoreContext = authStore.context(store);\nconst navigationStoreContext = navigationStore.context(store);\n\nVue.use(VueRouter);\n\nconst routes: AppRouteConfig[] = [\n {\n path: '/',\n redirect: '/clients',\n },\n {\n path: '/auth',\n component: Auth,\n },\n clients,\n campaigns,\n {\n path: '/wiki', // доступно для Front и BU\n meta: {\n title: 'Руководство пользователя',\n permission: 'view_unapproved_campaigns',\n order: 4,\n },\n beforeEnter: () => window.open('https://guide.danbo.digital/'),\n },\n {\n path: '/help', // доступно для Front и BU\n meta: {\n title: 'Обратная связь',\n permission: 'view_unapproved_campaigns',\n order: 5,\n },\n beforeEnter() {\n const { userEmail } = authStoreContext.getters;\n\n const pathToForm = `https://docs.google.com/forms/d/e/1FAIpQLSeOdrVX7TX5TBPW3Ch5j91BtWj4uqxW3o73R-iYj2YKbWzIzw/viewform?usp=pp_url&entry.1615998704=${userEmail}`;\n\n window.open(pathToForm);\n },\n },\n {\n path: '/apps',\n meta: {\n title: 'Приложения',\n },\n beforeEnter: () => window.open('https://sso.okkam.group'),\n },\n {\n path: '/logout',\n meta: {\n title: 'Выход',\n },\n async beforeEnter() {\n await authStoreContext.dispatch('SIGN_OUT');\n },\n },\n {\n path: '/access-denied',\n component: AccessDenied,\n meta: {\n permission: 'any',\n header: {\n visible: false,\n },\n footer: {\n visible: false,\n },\n },\n },\n {\n path: '/not-found',\n component: NotFound,\n meta: {\n permission: 'any',\n header: {\n visible: false,\n },\n footer: {\n visible: false,\n },\n },\n },\n {\n path: '*',\n component: NotFound,\n meta: {\n permission: 'any',\n header: {\n visible: false,\n },\n footer: {\n visible: false,\n },\n },\n },\n];\n\nstore.dispatch('navigation/ADD_ROUTES', routes);\n\nconst router = new VueRouter({\n mode: 'history',\n routes,\n scrollBehavior(to, from, savedPosition) {\n if (savedPosition) return savedPosition;\n\n if (to.meta.scrollPosition) return to.meta.scrollPosition;\n\n if (from.meta.scrollPosition) return from.meta.scrollPosition;\n\n return { x: 0, y: 0 };\n },\n});\n\nrouter.afterEach((to, from) => {\n navigationStoreContext.commit('SET_PREV_ROUTE', from);\n\n const user = store.getters['auth/user'];\n\n if (user) {\n router.app.$gtm.push({\n event: 'pageview',\n url: to.fullPath,\n d1d_client_id: to.params.clientId,\n d1d_campaign_id: to.params.campaignId,\n d1d_danbo_id: to.params.danboId,\n });\n }\n});\n\nexport default router;\n","import Vue from 'vue';\nimport { createOidc } from '@shared/vue-oidc';\n\nimport PluginInit from '@/models/PluginInit';\n\nconst { origin } = window.location;\n\nexport const OIDC_SIGN_IN_URI = '/signin-oidc';\nexport const OIDC_SIGN_OUT_URI = '/signout-oidc';\n\nexport const OIDC_SILENT_SIGN_IN_URI = '/signin-oidc-silent';\n\nexport const oidc = createOidc({\n authority: 'https://sso.okkam.group',\n client_id: 'd1d.web.front',\n response_type: 'code',\n scope: 'openid offline_access profile dan.profile userService.manage_users proxyService.api d1d.benchmarks.api d1d.mediascope.api d1d.users.api d1d.web.api',\n\n redirect_uri: `${origin}${OIDC_SIGN_IN_URI}`,\n post_logout_redirect_uri: `${origin}${OIDC_SIGN_OUT_URI}`,\n\n silent_redirect_uri: `${origin}${OIDC_SILENT_SIGN_IN_URI}`,\n});\n\nconst pluginInit: PluginInit = ({ router }) => {\n oidc.useDefaultRoutes(router);\n\n Vue.use(oidc);\n};\n\nexport default pluginInit;\n","import Vue from 'vue';\nimport VueCompositionAPI from '@vue/composition-api';\n\nimport PluginInit from '@/models/PluginInit';\n\nconst pluginInit: PluginInit = () => {\n Vue.use(VueCompositionAPI);\n};\n\nexport default pluginInit;\n","import Vue from 'vue';\nimport VueMeta from 'vue-meta';\n\nimport PluginInit from '@/models/PluginInit';\n\nconst pluginInit: PluginInit = () => {\n Vue.use(VueMeta, {\n refreshOnceOnNavigation: true,\n });\n};\n\nexport default pluginInit;\n","import Vue from 'vue';\nimport * as Sentry from '@sentry/browser';\nimport * as Integrations from '@sentry/integrations';\n\nimport PluginInit from '@/models/PluginInit';\n\nimport hasOwnProperty from '@/utils/hasOwnProperty';\n\nconst pluginInit: PluginInit = () => {\n if (process.env.NODE_ENV !== 'production') return;\n\n Sentry.init({\n release: Vue.configuration.commitSha,\n dsn: 'https://236fd09dd16946e0ba86e2f2a2cee5cf@sentry.aemedia.ru/2',\n autoSessionTracking: false,\n integrations: [\n new Integrations.Vue({ Vue, attachProps: true }),\n ],\n maxValueLength: 10000,\n beforeSend(event) {\n if (!event.exception?.values || !Array.isArray(event.exception.values)) return event;\n\n const exceptionValues = event.exception.values\n .reduce((acc, exception) => {\n if (exception.type === 'JSON Error' && typeof exception.value === 'string') {\n let parsedException: Record | null;\n\n try {\n parsedException = JSON.parse(exception.value);\n } catch (error) {\n parsedException = null;\n }\n\n const parsedExceptionError = parsedException?.error;\n\n acc.push({\n ...exception,\n type: 'Error',\n value: parsedExceptionError\n && typeof parsedExceptionError === 'object'\n && hasOwnProperty(parsedExceptionError, 'message')\n && typeof parsedExceptionError.message === 'string'\n ? parsedExceptionError.message : 'Unknown error',\n });\n } else {\n acc.push(exception);\n }\n\n return acc;\n }, []);\n\n return {\n ...event,\n exception: {\n ...event.exception,\n values: exceptionValues,\n },\n };\n },\n });\n};\n\nexport default pluginInit;\n","import { useOidc, oidcToRefs } from '@shared/vue-oidc';\n\nimport { setBaseUrl, setRequestInterceptor } from '@/api/httpClient';\n\nimport PluginInit from '@/models/PluginInit';\n\nconst pluginInit: PluginInit = ({ configuration }) => {\n const oidc = useOidc();\n\n let baseUrl = '/';\n\n if (configuration.backendUrl) {\n baseUrl = configuration.backendUrl;\n }\n\n setBaseUrl(baseUrl);\n\n setRequestInterceptor((request) => {\n const { oidcAccessToken } = oidcToRefs(oidc);\n\n if (request.headers && oidcAccessToken.value) {\n request.headers.Authorization = `Bearer ${oidcAccessToken.value}`;\n }\n\n return request;\n });\n};\n\nexport default pluginInit;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"42\",\"height\":\"42\",\"viewBox\":\"0 0 42 42\",\"fill\":\"none\"}},[_c('rect',{attrs:{\"width\":\"23.8602\",\"height\":\"23.8\",\"transform\":\"matrix(0.871045 0.491203 -2.2555e-08 1 10 3.50049)\",\"fill\":\"#92CF48\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M20.6209 20.9234C20.6209 22.2403 20.2451 23.249 19.4937 23.9494C18.7458 24.6498 17.6642 25 16.2488 25L13.9834 25L13.9834 17L16.495 17C17.801 17 18.8151 17.3447 19.5374 18.0342C20.2597 18.7237 20.6209 19.6867 20.6209 20.9234ZM18.8589 20.9672C18.8589 19.249 18.1001 18.3899 16.5826 18.3899L15.6797 18.3899L15.6797 23.5992L16.4075 23.5992C18.0418 23.5992 18.8589 22.7218 18.8589 20.9672Z\",\"fill\":\"white\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M24.9834 25L24.0612 25V19.2982C24.0612 18.824 24.0764 18.3753 24.1067 17.9521C24.027 18.0287 23.9379 18.109 23.8392 18.1929C23.7405 18.2768 23.2889 18.6325 22.4843 19.2599L21.9834 18.6361L24.1864 17L24.9834 17V25Z\",\"fill\":\"white\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ProjectLogo.icon.vue?vue&type=template&id=b0122766&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"client-icon\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"viewBox\":(\"0 0 \" + _vm.width + \" \" + _vm.height),\"fill\":\"none\"}},[_c('rect',{attrs:{\"width\":_vm.rectWidth,\"height\":_vm.rectHeight,\"x\":_vm.rectX,\"rx\":_vm.rectRX,\"ry\":_vm.rectRY,\"fill\":_vm.isActive ? 'white' : 'url(#gradient_linear)'}}),_vm._v(\" \"),_c('text',{staticClass:\"client-icon__text subtitle-2\",attrs:{\"x\":\"50%\",\"y\":\"50%\",\"dy\":\".36em\",\"text-anchor\":\"middle\",\"fill\":_vm.isActive ? '#5744D6' : 'white'},domProps:{\"textContent\":_vm._s(_vm.text)}}),_vm._v(\" \"),_c('linearGradient',{attrs:{\"id\":\"gradient_linear\"}},[_c('stop',{attrs:{\"offset\":\"15%\",\"stop-color\":\"#2954DF\"}}),_vm._v(\" \"),_c('stop',{attrs:{\"offset\":\"85%\",\"stop-color\":\"#733BD1\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, inject, computed } from '@vue/composition-api';\n\nimport store from '@/store';\nimport navigationCurrentClient from '@/store/navigation/navigationCurrentClient';\n\nconst navigationCurrentClientContext = navigationCurrentClient.context(store);\n\nexport default defineComponent({\n setup() {\n const clientId = computed(() => navigationCurrentClientContext.getters.currentClientId);\n const clientName = computed(() => navigationCurrentClientContext.getters.currentClientName);\n\n const isActive = inject('appSideBarMenuItemIsActive', false);\n\n const limit = 4;\n const width = 54;\n const height = 24;\n\n const widthMax = width;\n const widthMin = 28;\n\n const charWidth = width / 3;\n\n const text = computed(() => (clientName.value.slice(0, limit) || '').trim());\n\n const rectWidth = computed(() => {\n const val = [\n widthMin,\n 36,\n 46,\n widthMax,\n ][text.value.length - 1] || text.value.length * charWidth;\n\n if (val > widthMax) return widthMax;\n\n if (val < widthMin) return widthMin;\n\n return val;\n });\n\n const rectHeight = height;\n const rectX = computed(() => ((width - rectWidth.value) / 2));\n const rectRX = rectHeight / 2;\n const rectRY = rectHeight / 2;\n\n return {\n clientId,\n clientName,\n isActive,\n text,\n width,\n height,\n rectWidth,\n rectHeight,\n rectX,\n rectRX,\n rectRY,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Client.icon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Client.icon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Client.icon.vue?vue&type=template&id=1c7159f8&\"\nimport script from \"./Client.icon.vue?vue&type=script&lang=ts&\"\nexport * from \"./Client.icon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"client-icon\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"viewBox\":(\"0 0 \" + _vm.width + \" \" + _vm.height),\"fill\":\"none\"}},[_c('rect',{attrs:{\"width\":_vm.rectWidth,\"height\":_vm.rectHeight,\"x\":_vm.rectX,\"rx\":_vm.rectRX,\"ry\":_vm.rectRY,\"fill\":\"white\",\"stroke\":_vm.isActive ? 'white' : '#212121',\"stroke-width\":\"2\"}}),_vm._v(\" \"),_c('text',{staticClass:\"client-icon__text subtitle-2\",staticStyle:{\"font-size\":\"10px\"},attrs:{\"x\":\"50%\",\"y\":\"50%\",\"dy\":\".36em\",\"text-anchor\":\"middle\",\"fill\":_vm.isActive ? 'url(#gradient_linear)' : '#212121'},domProps:{\"textContent\":_vm._s(_vm.text)}}),_vm._v(\" \"),_c('linearGradient',{attrs:{\"id\":\"gradient_linear\"}},[_c('stop',{attrs:{\"offset\":\"15%\",\"stop-color\":\"#2954DF\"}}),_vm._v(\" \"),_c('stop',{attrs:{\"offset\":\"85%\",\"stop-color\":\"#733BD1\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, inject, computed } from '@vue/composition-api';\n\nimport store from '@/store';\nimport navigationUnapprovedPlacements from '@/store/navigation/navigationUnapprovedPlacements';\n\nconst navigationUnapprovedPlacementsContext = navigationUnapprovedPlacements.context(store);\n\nexport default defineComponent({\n setup() {\n const unapprovedPlacementsCount = computed(() => navigationUnapprovedPlacementsContext.getters.unapprovedPlacementsCount);\n\n const isActive = inject('appSideBarMenuItemIsActive', false);\n\n const limit = 1000;\n const width = 56;\n const height = 24;\n\n const widthMax = width;\n const widthMin = 26;\n\n const charWidth = width / 3;\n\n const text = computed(() => (unapprovedPlacementsCount.value >= limit ? '999+' : unapprovedPlacementsCount.value.toString()));\n\n const rectWidth = computed(() => {\n const val = [\n widthMin,\n 36,\n 46,\n widthMax,\n ][text.value.length - 1] || text.value.length * charWidth;\n\n if (val > widthMax) return widthMax;\n\n if (val < widthMin) return widthMin;\n\n return val - 2;\n });\n\n const rectHeight = height;\n const rectX = computed(() => ((width - rectWidth.value) / 2));\n const rectRX = rectHeight / 2;\n const rectRY = rectHeight / 2;\n\n return {\n isActive,\n text,\n width,\n height,\n rectWidth,\n rectHeight,\n rectX,\n rectRX,\n rectRY,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsCheck.icon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementsCheck.icon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlacementsCheck.icon.vue?vue&type=template&id=7f89aadc&\"\nimport script from \"./PlacementsCheck.icon.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlacementsCheck.icon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.img)?_c('v-img',{staticClass:\"user-icon rounded-circle\",attrs:{\"src\":_vm.img}}):_c('svg',{staticClass:\"user-icon\",attrs:{\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\"}},[_c('circle',{attrs:{\"cx\":\"50%\",\"cy\":\"50%\",\"r\":\"11\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-width\":\"2\"}}),_vm._v(\" \"),_c('text',{staticClass:\"user-icon__text\",attrs:{\"x\":\"50%\",\"y\":\"50%\",\"dy\":\".36em\",\"text-anchor\":\"middle\",\"font-weight\":\"bold\"},domProps:{\"textContent\":_vm._s(_vm.text)}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./User.icon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./User.icon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./User.icon.vue?vue&type=template&id=48974492&scoped=true&\"\nimport script from \"./User.icon.vue?vue&type=script&lang=js&\"\nexport * from \"./User.icon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./User.icon.vue?vue&type=style&index=0&id=48974492&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"48974492\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VImg } from 'vuetify/lib/components/VImg';\ninstallComponents(component, {VImg})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M12.5531 7.00047L7.60496 2.41685C6.64366 1.52637 5 2.15705 5 3.41638L5 12.5836C5 13.843 6.64366 14.4736 7.60496 13.5831L12.5531 8.99953C13.149 8.4475 13.149 7.5525 12.5531 7.00047Z\",\"fill\":\"currentColor\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Play.icon.vue?vue&type=template&id=6a47380a&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M5 2L11 5.42857L11 12.2857L5 8.8L5 2Z\",\"fill\":\"#212121\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M5 11L11 14.4286L11 21.2857L5 17.8L5 11Z\",\"fill\":\"#212121\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M13 2L19 5.42857L19 12.2857L13 8.8L13 2Z\",\"fill\":\"#212121\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M13 11L19 14.4286L19 21.2857L13 17.8L13 11Z\",\"fill\":\"#212121\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Apps.icon.vue?vue&type=template&id=1737d620&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M21.41 11.41L12.58 2.58C12.21 2.21 11.7 2 11.17 2H4C2.9 2 2 2.9 2 4V11.17C2 11.7 2.21 12.21 2.59 12.58L11.42 21.41C12.2 22.19 13.47 22.19 14.25 21.41L21.42 14.24C22.2 13.46 22.2 12.2 21.41 11.41ZM6.5 8C5.67 8 5 7.33 5 6.5C5 5.67 5.67 5 6.5 5C7.33 5 8 5.67 8 6.5C8 7.33 7.33 8 6.5 8Z\",\"fill\":\"currentColor\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Sell.icon.vue?vue&type=template&id=7319799b&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nimport { preset } from '@shared/vue-cli-plugin-vuetify-preset-druid/preset';\n\nimport ProjectLogoIcon from '@/components/_newDesign/common/icons/ProjectLogo.icon.vue';\nimport ClientIcon from '@/components/_newDesign/common/icons/Client.icon.vue';\nimport PlacementsCheckIcon from '@/components/_newDesign/common/icons/PlacementsCheck.icon.vue';\nimport UserIcon from '@/components/_newDesign/common/icons/User.icon.vue';\nimport PlayIcon from '@/components/_newDesign/common/icons/Play.icon.vue';\nimport AppsIcon from '@/components/_newDesign/common/icons/Apps.icon.vue';\nimport SellIcon from '@/components/_newDesign/common/icons/Sell.icon.vue';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n preset,\n theme: {\n options: {\n customProperties: true,\n },\n },\n icons: {\n values: {\n 'd1-project-logo': {\n component: ProjectLogoIcon,\n },\n 'd1-client': {\n component: ClientIcon,\n },\n 'd1-user': {\n component: UserIcon,\n },\n 'd1-play': {\n component: PlayIcon,\n },\n 'd1-apps': {\n component: AppsIcon,\n },\n 'd1-sell': {\n component: SellIcon,\n },\n 'd1-placements-check': {\n component: PlacementsCheckIcon,\n },\n },\n },\n});\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n\nexport default (instances: Readonly[]>): void => {\n if (process.env.NODE_ENV !== 'production') return;\n\n instances.forEach((instance) => {\n (function (w, d, s, l, i) {\n w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });\n\n const f = d.getElementsByTagName(s)[0];\n const j = d.createElement(s);\n\n // eslint-disable-next-line eqeqeq\n const dl = l != 'dataLayer' ? `&l=${l}` : '';\n\n // @ts-ignore\n j.async = true;\n // @ts-ignore\n j.src = `https://www.googletagmanager.com/gtm.js?id=${i}${dl}`;\n\n // @ts-ignore\n f.parentNode.insertBefore(j, f);\n }(window, document, 'script', instance.name, instance.id));\n });\n};\n","import initScript from './initScript';\n\n/* eslint-disable camelcase */\nexport interface GtmData {\n d1d_user_id: string;\n d1d_user_access: string[];\n //\n d1d_client_id: string;\n d1d_client_name: string;\n //\n d1d_brand_id: string;\n d1d_brand_name: string;\n //\n d1d_campaign_id: string;\n d1d_campaign_name: string;\n //\n d1d_danbo_id: string;\n [key: string]: unknown;\n}\n/* eslint-enable camelcase */\n\nexport const gtmInstances = [\n {\n id: 'GTM-NHR22N8',\n name: 'dataLayer',\n },\n];\n\nexport type GtmInstanceName = typeof gtmInstances[number]['name'];\n\nexport default (): void => {\n initScript(gtmInstances);\n};\n","import Vue from 'vue';\n\nimport gtmService, { GtmInstanceName, GtmData } from '@/services/gtm';\n\nimport PluginInit from '@/models/PluginInit';\nimport Gtm from '@/models/Gtm';\n\nimport store from '@/store';\nimport authStore from '@/store/auth';\n\nconst authStoreContext = authStore.context(store);\n\nconst pluginInit: PluginInit = () => {\n gtmService();\n\n const gtm: Gtm = {\n normalizeData(payload: Partial) {\n const defaultValuesMap: GtmData = {\n d1d_user_id: '-',\n d1d_user_access: [],\n //\n d1d_client_id: '-',\n d1d_client_name: '-',\n //\n d1d_brand_id: '-',\n d1d_brand_name: '-',\n //\n d1d_campaign_id: '-',\n d1d_campaign_name: '-',\n //\n d1d_danbo_id: '-',\n };\n\n const { user } = authStoreContext.getters;\n\n const data = {\n d1d_user_id: user?.id || defaultValuesMap.d1d_user_id,\n d1d_user_access: user?.roles || defaultValuesMap.d1d_user_access,\n ...payload,\n };\n\n const normalizedData = Object.entries(data).reduce((acc, [key, val]) => {\n const trimValue = (value: unknown | string | string[]) => {\n if (!value) return;\n\n if (typeof value === 'string') {\n return value.trim();\n }\n\n if (Array.isArray(value)) {\n return value.map((param) => (typeof param === 'string' ? param.trim() : param));\n }\n };\n\n acc[key] = trimValue(val) || trimValue(defaultValuesMap[key]) || '-';\n\n return acc;\n }, { ...defaultValuesMap });\n\n return normalizedData;\n },\n push(payload) {\n const name: GtmInstanceName = 'dataLayer';\n\n const dataLayer = window[name];\n\n if (!dataLayer) return;\n\n const data = this.normalizeData(payload);\n\n dataLayer.push(data);\n },\n };\n\n Vue.gtm = gtm;\n Vue.prototype.$gtm = gtm;\n};\n\nexport default pluginInit;\n","import Vue from 'vue';\nimport _ from 'lodash';\n\nimport PluginInit from '@/models/PluginInit';\nimport Acl from '@/models/Acl';\n\nconst pluginInit: PluginInit = ({ store }) => {\n const acl: Acl = {\n check(payload) {\n if (!payload) return true;\n\n const userPermissions = store.getters['auth/userPermissions'];\n\n const permissions = (payload.indexOf('|') !== -1) ? payload.split('|') : [payload];\n\n return _(permissions).find((permission) => {\n const needed = (permission.indexOf('&') !== -1) ? permission.split('&') : permission;\n\n if (Array.isArray(needed)) return needed.every((need) => userPermissions.indexOf(need) !== -1);\n\n return (userPermissions.indexOf(needed) !== -1);\n }) !== undefined;\n },\n };\n\n Vue.acl = acl;\n Vue.prototype.$acl = acl;\n};\n\nexport default pluginInit;\n","import Vue from 'vue';\n\nimport { upperFirst, camelCase } from 'lodash';\n\nimport PluginInit from '@/models/PluginInit';\n\nconst pluginInit: PluginInit = () => {\n const requiredFiles = require.context('@/layouts', false, /\\.vue$/);\n\n requiredFiles.keys().forEach((filePath) => {\n const layoutNamePostfix = 'Layout';\n\n const fileName = (filePath.split('/').pop() || '').replace(/\\.\\w+$/, '');\n const componentName = upperFirst(camelCase(fileName));\n const layoutName = componentName.endsWith(layoutNamePostfix) ? componentName : `${componentName}${layoutNamePostfix}`;\n\n const componentConfig = requiredFiles(filePath);\n const layout = componentConfig.default || componentConfig;\n\n Vue.component(layoutName, layout);\n });\n};\n\nexport default pluginInit;\n","import Vue from 'vue';\nimport Bowser from 'bowser';\n\nimport PluginInit from '@/models/PluginInit';\n\nexport interface Device {\n os: {\n slug: string;\n name: string;\n };\n browser: {\n slug: string;\n name: string;\n };\n}\n\nconst pluginInit: PluginInit = () => {\n const bowserParser = Bowser.getParser(window.navigator.userAgent);\n\n const device = {\n os: {\n get slug() {\n return bowserParser.getOSName(true);\n },\n get name() {\n return bowserParser.getOSName();\n },\n },\n browser: {\n get slug() {\n return bowserParser.getBrowserName(true);\n },\n get name() {\n return bowserParser.getBrowserName();\n },\n },\n };\n\n Vue.device = device;\n Vue.prototype.$device = device;\n};\n\nexport default pluginInit;\n","import Vue from 'vue';\nimport PortalVue from 'portal-vue';\n\nimport PluginInit from '@/models/PluginInit';\n\nconst pluginInit: PluginInit = () => {\n Vue.use(PortalVue);\n};\n\nexport default pluginInit;\n","import numatter, { NumatterFormatOptions, NumatterPreset } from '@/packages/numatter';\n\nimport PluginInit from '@/models/PluginInit';\nimport { MetricType } from '@/models/MetricType';\n\nimport metricTypesStore from '@/store/reference/metricTypes';\n\n//\n//\n// // // Numatter preset generators\n//\n\nexport const generatePresetFromMetricType = (metricType: MetricType): NumatterPreset => {\n const defaultFormatOptionsMap = {\n postfixes: {\n Money: 'руб.',\n Percent: '%',\n },\n outputs: {\n TimeSpan: 'time',\n },\n };\n\n const defaultPostfix = defaultFormatOptionsMap.postfixes[metricType.format || -1];\n const defaultOutput = defaultFormatOptionsMap.outputs[metricType.format || -1];\n\n const presetName = metricType.name;\n\n const presetOptions: NumatterFormatOptions = {\n postfix: defaultPostfix,\n output: defaultOutput,\n mantissa: metricType.accuracy,\n spaceSeparated: !!defaultPostfix,\n };\n\n const filledPresetOptions = numatter.clearEmptyFormatOptions(presetOptions);\n\n return { name: presetName, options: filledPresetOptions };\n};\n\n//\n// //\n//\n//\n\nconst pluginInit: PluginInit = ({ store }) => {\n const metricTypesStoreContext = metricTypesStore.context(store);\n\n store.watch(() => metricTypesStoreContext.getters.metricTypes, () => {\n const { metricTypes } = metricTypesStoreContext.getters;\n\n metricTypes.forEach((metricType) => {\n const metricTypePreset = generatePresetFromMetricType(metricType);\n\n numatter.addPreset(metricTypePreset);\n });\n });\n};\n\nexport default pluginInit;\n","import { AxiosError } from 'axios';\n\nimport hasOwnProperty from '@/utils/hasOwnProperty';\n\nimport {\n AppModalData,\n AppErrorOptions,\n AppResponseMessagesCheckItem,\n AppNormalizeResponse,\n} from './types';\n\nconst responseMessagesChecks: AppResponseMessagesCheckItem[] = [\n {\n check: (response) => response?.data && (typeof response.data === 'string' || Array.isArray(response.data)),\n getMessages: (response) => response?.data,\n },\n {\n check: (response) => response?.status === 400 && !!response?.data.detail,\n getMessages: (response) => response?.data.detail,\n },\n {\n check: (response) => response?.status === 400 && !response.data.errors,\n getMessages: (response) => response?.data.title,\n },\n {\n check: (response) => response?.status === 400 && !!response.data.errors,\n getMessages: (response) => Object.values(response?.data.errors)\n .reduce((acc: string[], errorMessages: unknown) => {\n if (Array.isArray(errorMessages)) {\n acc = [...acc, ...errorMessages];\n }\n\n return acc;\n }, []),\n },\n];\n\nconst supportLink = 'help@danbo.digital';\n\nconst normalizeBaseError = (error: Record): AppModalData => {\n const title = error?.name && typeof error.name === 'string' ? error.name : 'Ошибка';\n\n const defaultMessage = `Произошла непредвиденная ошибка.\\nОбратитесь в поддержку ${supportLink}.`;\n\n return {\n title,\n messages: [error?.message && typeof error.message === 'string' ? error.message : defaultMessage],\n status: undefined,\n };\n};\n\nconst normalizeResponsedError = (error: Record): AppModalData => {\n const errorResponse: AxiosError['response'] = hasOwnProperty(error, 'response') ? error.response as AxiosError['response'] : undefined;\n\n const errorStatus: number | undefined = errorResponse?.status;\n\n const title: string = errorResponse?.data.title ?? `Ошибка ${errorStatus ?? ''}`;\n\n const statusesTranslations: Record = {\n 400: 'Неверный запрос.',\n 403: 'Отказанно в доступе.',\n 404: 'Не найдено.',\n 500: 'Произошла ошибка на стороне сервера.',\n default: 'Произошла непредвиденная ошибка.',\n };\n\n const statusTranslation = (errorStatus && statusesTranslations[errorStatus]) ?? statusesTranslations.default;\n\n const responseMessagesCheckItem: AppResponseMessagesCheckItem | undefined = responseMessagesChecks.find(({ check }) => check(errorResponse));\n const responseMessages: string | string[] = responseMessagesCheckItem ? responseMessagesCheckItem.getMessages(errorResponse) : '';\n\n const defaultMessage = `${statusTranslation}\\nОбратитесь в поддержку ${supportLink}.`;\n const messages: string | string[] = responseMessages?.length ? responseMessages : defaultMessage;\n\n return {\n title,\n messages: Array.isArray(messages) ? messages : [messages],\n status: errorStatus,\n };\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst normalizeError = (payload: any, options?: AppErrorOptions): AppNormalizeResponse => {\n const payloadError = payload instanceof Error || !payload.error ? payload : payload.error;\n\n const modalData: AppModalData = payloadError?.response\n ? normalizeResponsedError(payloadError)\n : normalizeBaseError(payloadError);\n\n const defaultOptions = { showingModal: true, sendingSentry: false };\n const mergedOptions = { ...defaultOptions, ...payload.options, ...options };\n\n return {\n error: payloadError,\n data: payload.data,\n options: mergedOptions,\n modalData,\n };\n};\n\nexport { normalizeError, normalizeResponsedError, normalizeBaseError };\n","export default class AppCustomError extends Error {\n constructor(payload: Error) {\n super(payload.message);\n\n this.name = payload.name;\n this.stack = payload.stack;\n }\n}\n","import Vue from 'vue';\n\nimport * as Sentry from '@sentry/browser';\n\nimport router from '@/router';\n\nimport modally from '@/services/modally';\n\nimport hasOwnProperty from '@/utils/hasOwnProperty';\n\nimport { normalizeError } from './utils';\n\nimport { AppModalData, AppErrorOptions } from './types';\n\nimport AppCustomError from './AppCustomError';\n\nconst show = (modalData: AppModalData): void => {\n const { title, messages } = modalData;\n\n modally.show({\n title,\n content: messages.join('\\n'),\n status: 'error',\n });\n};\n\nconst handle = (payload: unknown, options?: AppErrorOptions): void => {\n const normalizedError = normalizeError(payload, options);\n\n switch (normalizedError?.modalData?.status) {\n case 401:\n router.push('/logout');\n\n break;\n // no default\n }\n\n if (normalizedError?.options?.showingModal && normalizedError.modalData) {\n show(normalizedError.modalData);\n }\n\n if (normalizedError?.options?.sendingSentry) {\n if (normalizedError.error && normalizedError.data) {\n Sentry.captureException(new AppCustomError(normalizedError.error), {\n extra: normalizedError.data,\n });\n } else {\n Sentry.captureException(normalizedError.error);\n }\n }\n};\n\nconst init = (): void => {\n const parseError = (payload: unknown) => {\n let error: Record | null = null;\n\n if (payload\n && typeof payload === 'object'\n && hasOwnProperty(payload, 'message')\n && typeof payload.message === 'string'\n ) {\n try {\n error = JSON.parse(payload.message);\n } catch (e) {\n error = payload;\n }\n }\n\n return error ?? payload;\n };\n\n window.addEventListener('unhandledrejection', (event) => {\n event.promise.catch((error) => {\n handle(parseError(error));\n });\n });\n\n Vue.config.errorHandler = (e) => {\n const parsedError = parseError(e);\n\n handle(parsedError, { sendingSentry: true });\n\n // eslint-disable-next-line no-console\n console.error(e);\n };\n};\n\nexport default { init };\n","import PluginInit from '@/models/PluginInit';\n\nimport errorHandler from '@/services/errorHandler/index';\n\nconst pluginInit: PluginInit = () => {\n errorHandler.init();\n};\n\nexport default pluginInit;\n","import $ from 'jquery';\n\n// select2 v4\nimport 'select2/dist/js/select2.full';\n\n$.fn.select2.defaults.set('theme', 'bootstrap');\n$.fn.select2.defaults.set('placeholder', '');\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.layout,{tag:\"component\"},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ref, provide, watch, SetupContext, Ref } from '@vue/composition-api';\n\nimport { MetaInfo } from 'vue-meta';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\ninterface UseConfigMetaReturn {\n meta: Ref;\n}\n\nexport default (context: SetupContext): UseConfigMetaReturn => {\n const route = useRoute(context);\n\n const meta = ref({});\n\n const changeMeta = (payload: MetaInfo) => {\n meta.value = payload;\n };\n\n provide('changeMeta', changeMeta);\n\n watch(route, (val) => {\n if (val.meta?.title) {\n changeMeta({ title: val.meta.title });\n }\n });\n\n return {\n meta,\n };\n};\n","// TODO: описать типы и порефакторить, тут точно можно обойтись без lodash\n\nimport { forEach, isObject } from 'lodash';\n\nconst hexToRgb = (h) => {\n let r = '0';\n let g = '0';\n let b = '0';\n\n if (h.length === 4) {\n r = `0x${h[1]}${h[1]}`;\n g = `0x${h[2]}${h[2]}`;\n b = `0x${h[3]}${h[3]}`;\n } else if (h.length === 7) {\n r = `0x${h[1]}${h[2]}`;\n g = `0x${h[3]}${h[4]}`;\n b = `0x${h[5]}${h[6]}`;\n }\n\n return `${+r}, ${+g}, ${+b}`;\n};\n\nconst generateRgbVar = (name, color) => {\n const colorRgb = hexToRgb(color);\n\n if (!colorRgb.includes('NaN')) {\n document.documentElement.style.setProperty(`--v-${name}-rgb`, colorRgb);\n }\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst createRgbVarsForThemes = (themes: any): void => {\n forEach(themes, (theme) => {\n forEach(theme, (colors, key) => {\n if (isObject(colors)) {\n forEach(colors, (color, colorKey) => {\n generateRgbVar(`${key}-${colorKey}`, color);\n });\n } else {\n generateRgbVar(key, colors);\n }\n });\n });\n};\n\nexport default createRgbVarsForThemes;\n","\n\n\n\n\n\n\nimport { defineComponent, computed, watch, onMounted } from '@vue/composition-api';\n\nimport { MetaInfo } from 'vue-meta';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport { useRootStore } from '@/store/root';\nimport { useAuthStore } from '@/store/auth';\n\nimport useConfigMeta from '@/composables/meta/useConfigMeta';\n\nimport createRgbVarsForThemes from '@/utils/createRgbVarsForThemes';\n\nexport default defineComponent({\n metaInfo() {\n return this.meta as MetaInfo;\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const rootStore = useRootStore();\n const authStore = useAuthStore();\n\n const { meta } = useConfigMeta(context);\n\n const userSignedIn = computed(() => authStore.getters.userSignedIn);\n\n const layout = computed(() => {\n const defaultLayout = 'default';\n\n return `${route.value.meta.layout || defaultLayout}-layout`;\n });\n\n watch(userSignedIn, async (val) => {\n if (!val) return;\n\n await rootStore.dispatch('INIT');\n }, { immediate: true });\n\n onMounted(() => {\n if (context?.parent?.$vuetify) createRgbVarsForThemes(context.parent.$vuetify.theme?.themes);\n });\n\n return {\n meta,\n layout,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=c0f246c2&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"@/assets/styles/app.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { registerModule } from 'vuex-smart-module';\n\nimport ModuleInit from '@/models/ModuleInit';\n\nimport store from './store';\n\nconst moduleInit: ModuleInit = (ctx) => {\n registerModule(ctx.store, ['search'], 'search', store);\n};\n\nexport default moduleInit;\n","/* eslint-disable max-classes-per-file */\nimport Vue from 'vue';\n\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { UnapprovedPlacementsApi } from '@/api';\n\nimport { UnapprovedCampaign, UnapprovedPlacement } from '@/models/UnapprovedPlacements';\n\ninterface UnapprovedPlacementsFilters {\n query: string;\n page: number;\n}\n\nconst initFilters = () => ({\n query: '',\n page: 1,\n});\n\nclass ModuleState {\n campaigns: UnapprovedCampaign[] = [];\n\n campaignPlacementsMap: Record = {};\n\n filters: UnapprovedPlacementsFilters = initFilters();\n\n filtersChanged = false;\n\n isLoading = false;\n}\n\nclass ModuleGetters extends Getters {\n get campaigns() {\n return this.state.campaigns;\n }\n\n get getCampaignPlacements() {\n return (campaignId: string) => this.state.campaignPlacementsMap[campaignId] || [];\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get filtersChanged() {\n return this.state.filtersChanged;\n }\n\n get isLoading() {\n return this.state.isLoading;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_CAMPAIGNS(payload: UnapprovedCampaign[]) {\n this.state.campaigns = payload;\n }\n\n ADD_CAMPAIGNS(payload: UnapprovedCampaign[]) {\n this.state.campaigns = [...this.state.campaigns, ...payload];\n }\n\n SET_CAMPAIGN_PLACEMENTS(payload: { campaignId: string; placements: UnapprovedPlacement[] }) {\n Vue.set(this.state.campaignPlacementsMap, payload.campaignId, payload.placements);\n }\n\n SET_FILTERS(payload: UnapprovedPlacementsFilters) {\n this.state.filters = payload;\n }\n\n SET_FILTERS_CHANGED(payload: boolean) {\n this.state.filtersChanged = payload;\n }\n\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_CAMPAIGNS() {\n const { query, page } = this.getters.filters;\n\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await UnapprovedPlacementsApi.fetchCampaignsV2({ params: { searchQuery: query, page } });\n\n if (page === 1) {\n this.commit('SET_CAMPAIGNS', res.data.list);\n } else {\n this.commit('ADD_CAMPAIGNS', res.data.list);\n }\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async FETCH_PLACEMENTS_BY_CAMPAIGN(campaignId: string) {\n const res = await UnapprovedPlacementsApi.fetchPlacementsByCampaignV2(campaignId);\n\n this.commit('SET_CAMPAIGN_PLACEMENTS', {\n campaignId,\n placements: res.data,\n });\n }\n\n UPDATE_FILTERS(filters: Partial) {\n const page = filters.page || 1;\n\n const newFilters = {\n ...this.getters.filters,\n ...filters,\n page,\n };\n\n this.commit('SET_FILTERS', newFilters);\n this.commit('SET_FILTERS_CHANGED', true);\n }\n\n NEXT_PAGE() {\n this.dispatch('UPDATE_FILTERS', {\n page: this.getters.filters.page + 1,\n });\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n this.commit('SET_FILTERS_CHANGED', false);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useUnapprovedPlacementsStore = createComposable(module);\nexport const unapprovedPlacementsStoreMapper = createMapper(module);\n\nexport default module;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"unapproved-placements\"},[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('UnapprovedPlacementsHeader')],1),_vm._v(\" \"),_c('div',{staticClass:\"unapproved-placements__content\",class:{ 'unapproved-placements__content--stub': !_vm.unapprovedCampaigns.length }},[(_vm.unapprovedCampaigns.length)?_c('UnapprovedPlacementsContent',{attrs:{\"campaigns\":_vm.unapprovedCampaigns}}):[(_vm.isLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):_c('div',[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Ничего не найдено :-(\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n Попробуйте изменить запроc\\n \")])])]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"unapproved-placements-header d-flex align-center\"},[_c('div',{staticClass:\"mr-3\"},[_c('div',{staticClass:\"text-h5\"},[_vm._v(\"\\n Непроверенные размещения — \"+_vm._s(_vm.count)+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"ml-auto\"},[_c('v-text-field',{staticClass:\"unapproved-placements-header__search\",attrs:{\"loading\":_vm.isLoading,\"label\":\"Клиент, бренд, кампания, danboid\",\"prepend-inner-icon\":\"mdi-magnify\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search.apply(null, arguments)}},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, ref, watch } from '@vue/composition-api';\n\nimport useRouter from '@/packages/hooks/useRouter';\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport { useNavigationUnapprovedPlacementsStore } from '@/store/navigation/navigationUnapprovedPlacements';\n\nimport { useUnapprovedPlacementsStore } from '../store';\n\nexport default defineComponent({\n setup(props, context) {\n const router = useRouter(context);\n const route = useRoute(context);\n\n const navigationUnapprovedPlacementsStore = useNavigationUnapprovedPlacementsStore();\n const unapprovedPlacementsStore = useUnapprovedPlacementsStore();\n\n const count = computed(() => navigationUnapprovedPlacementsStore.getters.unapprovedPlacementsCount);\n const isLoading = computed(() => unapprovedPlacementsStore.getters.isLoading);\n\n const searchQuery = computed(() => route.value.query.search);\n\n const query = ref(searchQuery.value || '');\n\n const searchIsDisabled = computed(() => searchQuery.value === query.value);\n\n watch(searchQuery, async (val) => {\n if (typeof val !== 'string') return;\n\n unapprovedPlacementsStore.actions.UPDATE_FILTERS({ query: val });\n }, { immediate: true });\n\n const search = () => {\n if (searchIsDisabled.value) return;\n\n router.push({ query: { search: query.value } });\n };\n\n return {\n count,\n query,\n isLoading,\n search,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnapprovedPlacementsHeader.vue?vue&type=template&id=26689817&scoped=true&\"\nimport script from \"./UnapprovedPlacementsHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnapprovedPlacementsHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UnapprovedPlacementsHeader.vue?vue&type=style&index=0&id=26689817&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26689817\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('UnapprovedPlacementsCampaignList',{attrs:{\"campaigns\":_vm.campaigns}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',{staticClass:\"unapproved-placements-campaign-list pa-0\"},[_vm._l((_vm.campaigns),function(campaign,index){return [(index === _vm.campaigns.length - 5)?_c('UnapprovedPlacementsCampaignListItem',{directives:[{name:\"intersect\",rawName:\"v-intersect.once\",value:(_vm.onIntersect),expression:\"onIntersect\",modifiers:{\"once\":true}}],key:campaign.id,attrs:{\"value\":_vm.campaigns.length === 1,\"campaign\":campaign}}):_c('UnapprovedPlacementsCampaignListItem',{key:campaign.id,attrs:{\"value\":_vm.campaigns.length === 1,\"campaign\":campaign}})]}),_vm._v(\" \"),(_vm.campaignsIsLoading)?_c('v-list-item',{staticClass:\"d-flex justify-center\"},[_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"24\",\"indeterminate\":\"\"}})],1):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"campaign-list-item\"},[_c('router-link',{staticClass:\"campaign-list-item__wrapper d-flex align-center py-2 px-4\",attrs:{\"to\":_vm.campaignEditorPath}},[_c('v-btn',{staticClass:\"mr-1\",attrs:{\"id\":(\"campaign-id-\" + (_vm.campaign.id)),\"color\":\"primary\",\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggle.apply(null, arguments)}}},[(_vm.isLoading)?_c('v-progress-circular',{staticClass:\"campaign-list-item__icon\",attrs:{\"width\":\"2\",\"size\":\"20\",\"indeterminate\":\"\"}}):_c('v-icon',{staticClass:\"campaign-list-item__icon\",class:{ 'campaign-list-item__icon--active': _vm.isOpen },attrs:{\"color\":\"grey darken-4\",\"size\":\"24\"}},[_vm._v(\"\\n mdi-chevron-right\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"campaign-list-item__name\"},[_vm._v(\"\\n \"+_vm._s(_vm.campaign.name)+\"\\n \")])],1),_vm._v(\" \"),(_vm.isShown)?_c('div',{staticClass:\"campaign-list-item__content\"},[(_vm.placements.length)?_c('UnapprovedPlacementsTable',{attrs:{\"placements\":_vm.placements}}):_c('div',{staticClass:\"pt-2 pb-6 pl-10 grey--text text--darken-1\"},[_vm._v(\"\\n У этой кампании нет размещений\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.isLoading)?_c('TableLoader',{staticClass:\"pa-6\",attrs:{\"columns\":3}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({staticClass:\"unnaproved-placements-table\",attrs:{\"items\":_vm.placements,\"items-per-page\":_vm.placements.length},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('UnapprovedPlacementsTableRow',{staticClass:\"unnaproved-placements-table__row\",class:{\n 'unnaproved-placements-table__row--matched': item.danboId === _vm.$route.query.search\n },attrs:{\"id\":(\"placement-danbo-id-\" + (item.danboId)),\"placement\":item}})]}}])},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',[_c('UnapprovedPlacementsTableInfoCell',{attrs:{\"placement\":_vm.placement}}),_vm._v(\" \"),_c('UnapprovedPlacementsTableCheckCell',{attrs:{\"value\":_vm.placement.check.approvedByPlanning,\"approved-by\":\"DP\"}}),_vm._v(\" \"),_c('UnapprovedPlacementsTableCheckCell',{attrs:{\"value\":_vm.placement.check.approvedByBuying,\"approved-by\":\"BU\"}}),_vm._v(\" \"),_c('DTableCellSpacer')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableCell',{staticClass:\"unapproved-placements-info-cell pr-0\"},[_c('div',{staticClass:\"d-flex pt-3 pb-5\"},[_c('DTooltip',{attrs:{\"center\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"flex-shrink-0 align-self-start mt-1 mr-3 cursor-pointer\",attrs:{\"size\":\"16\"},domProps:{\"textContent\":_vm._s(_vm.placementStatus.icon)}},'v-icon',attrs,false),on))]}}])},[_vm._v(\" \"),_c('span',{domProps:{\"textContent\":_vm._s(_vm.placementStatus.text)}})]),_vm._v(\" \"),_c('div',{staticClass:\"flex-grow-1 text-truncate\"},[_c('div',{staticClass:\"unapproved-placements-info-cell__title\"},[_c('span',{staticClass:\"unapproved-placements-info-cell__site-name subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.placement.siteName)}}),_vm._v(\" \"),_c('span',{staticClass:\"unapproved-placements-info-cell__danbo-id caption grey--text text--darken-1\",domProps:{\"textContent\":_vm._s(_vm.placement.danboId)}})]),_vm._v(\" \"),(_vm.placementInfoIsShown)?_c('div',{staticClass:\"caption grey--text text--darken-3 text-truncate\"},[_vm._v(\"\\n \"+_vm._s(_vm.placementInfo)+\"\\n \")]):_vm._e()])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTooltip,\n} from '@shared/druid-kit';\n\nimport { UnapprovedPlacement } from '@/models/UnapprovedPlacements';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTooltip,\n },\n props: {\n placement: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { placement } = toRefs(props);\n\n const placementStatus = computed(() => {\n const textMap = {\n running: 'Идет',\n paused: 'На паузе',\n finished: 'Завершено',\n };\n\n const iconsMap = {\n running: '$d1-play',\n paused: 'mdi-timer-sand',\n finished: 'mdi-check',\n };\n\n const text = textMap[placement.value.state.code];\n const icon = iconsMap[placement.value.state.code];\n\n return {\n text,\n icon,\n };\n });\n\n const placementInfoIsShown = computed(() => !!placement.value.section || !!placement.value.adPlace);\n const placementInfo = computed(() => `${placement.value.section} ${placement.value.adPlace ? '/' : ''} ${placement.value?.adPlace || ''}`);\n\n return {\n placementStatus,\n placementInfoIsShown,\n placementInfo,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTableInfoCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTableInfoCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnapprovedPlacementsTableInfoCell.vue?vue&type=template&id=449ea118&scoped=true&\"\nimport script from \"./UnapprovedPlacementsTableInfoCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnapprovedPlacementsTableInfoCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UnapprovedPlacementsTableInfoCell.vue?vue&type=style&index=0&id=449ea118&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"449ea118\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableCell',{staticClass:\"unapproved-placements-table-check-cell\"},[_c('div',{staticClass:\"unapproved-placements-table-check-cell__wrapper pt-3 pb-2\"},[_c('div',{staticClass:\"grey--text text--darken-3 body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.approvedBy)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"caption\",class:[\n _vm.value ? 'success--text' : 'warning--text' ]},[_vm._v(\"\\n \"+_vm._s(_vm.value ? 'Проверено' : 'Не проверено')+\"\\n \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport { DTableCell } from '@shared/druid-kit';\n\nexport default defineComponent({\n components: {\n DTableCell,\n },\n props: {\n value: {\n type: Boolean,\n default: false,\n },\n approvedBy: {\n type: String,\n default: '',\n },\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTableCheckCell.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTableCheckCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnapprovedPlacementsTableCheckCell.vue?vue&type=template&id=efc2854c&scoped=true&\"\nimport script from \"./UnapprovedPlacementsTableCheckCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnapprovedPlacementsTableCheckCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UnapprovedPlacementsTableCheckCell.vue?vue&type=style&index=0&id=efc2854c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"efc2854c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport { DTableRow, DTableCellSpacer } from '@shared/druid-kit';\n\nimport { UnapprovedPlacement } from '@/models/UnapprovedPlacements';\n\nimport UnapprovedPlacementsTableInfoCell from './cells/UnapprovedPlacementsTableInfoCell.vue';\nimport UnapprovedPlacementsTableCheckCell from './cells/UnapprovedPlacementsTableCheckCell.vue';\n\nexport default defineComponent({\n components: {\n DTableRow,\n DTableCellSpacer,\n UnapprovedPlacementsTableInfoCell,\n UnapprovedPlacementsTableCheckCell,\n },\n props: {\n placement: {\n type: Object as PropType,\n required: true,\n },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnapprovedPlacementsTableRow.vue?vue&type=template&id=7e2176e2&\"\nimport script from \"./UnapprovedPlacementsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnapprovedPlacementsTableRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, nextTick, onMounted } from '@vue/composition-api';\n\nimport goTo from 'vuetify/lib/services/goto';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport { DTable } from '@shared/druid-kit';\n\nimport { UnapprovedPlacement } from '@/models/UnapprovedPlacements';\n\nimport UnapprovedPlacementsTableRow from './UnapprovedPlacementsTableRow.vue';\n\nexport default defineComponent({\n components: {\n DTable,\n UnapprovedPlacementsTableRow,\n },\n props: {\n placements: { type: Array as PropType, default: () => [] },\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const scrollToPlacement = async () => {\n if (!route.value.query.search) return;\n\n const scrollToId = `placement-danbo-id-${route.value.query.search}`;\n const scrollToEl = document.getElementById(scrollToId);\n\n if (!scrollToEl) return;\n\n await nextTick();\n\n goTo(`#${scrollToId}`);\n };\n\n onMounted(() => {\n scrollToPlacement();\n });\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnapprovedPlacementsTable.vue?vue&type=template&id=ad0edcce&scoped=true&\"\nimport script from \"./UnapprovedPlacementsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnapprovedPlacementsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UnapprovedPlacementsTable.vue?vue&type=style&index=0&id=ad0edcce&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ad0edcce\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType } from '@vue/composition-api';\n\nimport { UnapprovedCampaign } from '@/models/UnapprovedPlacements';\n\nimport TableLoader from '@/components/_newDesign/common/loaders/TableLoader.vue';\n\nimport UnapprovedPlacementsTable from '../UnapprovedPlacementsTable/UnapprovedPlacementsTable.vue';\n\nimport { useUnapprovedPlacementsStore } from '../../store';\n\nexport default defineComponent({\n components: {\n TableLoader,\n UnapprovedPlacementsTable,\n },\n props: {\n value: { type: Boolean, default: false },\n campaign: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const { value, campaign } = toRefs(props);\n\n const unapprovedPlacementsStore = useUnapprovedPlacementsStore();\n\n const isOpen = ref(false);\n const isLoading = ref(false);\n\n const placements = computed(() => unapprovedPlacementsStore.getters.getCampaignPlacements(campaign.value.id));\n const campaignEditorPath = computed(() => `/campaigns/${campaign.value.id}/edit`);\n const isShown = computed(() => isOpen.value && !isLoading.value);\n\n const fetch = async () => {\n isLoading.value = true;\n\n try {\n await unapprovedPlacementsStore.dispatch('FETCH_PLACEMENTS_BY_CAMPAIGN', campaign.value.id);\n } finally {\n isLoading.value = false;\n }\n };\n\n watch(value, (val: boolean) => {\n if (isOpen.value === val) return;\n\n fetch();\n\n isOpen.value = val;\n }, { immediate: true });\n\n watch(isOpen, (val: boolean) => {\n if (value.value === val) return;\n\n context.emit('input', val);\n });\n\n const open = async () => {\n if (!isOpen.value) return;\n\n await fetch();\n };\n\n const toggle = () => {\n if (isLoading.value) return;\n\n isOpen.value = !isOpen.value;\n\n open();\n };\n\n return {\n placements,\n campaignEditorPath,\n isShown,\n isOpen,\n isLoading,\n toggle,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsCampaignListItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsCampaignListItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnapprovedPlacementsCampaignListItem.vue?vue&type=template&id=2895b94a&scoped=true&\"\nimport script from \"./UnapprovedPlacementsCampaignListItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnapprovedPlacementsCampaignListItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UnapprovedPlacementsCampaignListItem.vue?vue&type=style&index=0&id=2895b94a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2895b94a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, computed } from '@vue/composition-api';\n\nimport { UnapprovedCampaign } from '@/models/UnapprovedPlacements';\n\nimport { useUnapprovedPlacementsStore } from '../../store';\n\nimport UnapprovedPlacementsCampaignListItem from './UnapprovedPlacementsCampaignListItem.vue';\n\nexport default defineComponent({\n components: {\n UnapprovedPlacementsCampaignListItem,\n },\n props: {\n campaigns: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const unapprovedPlacementsStore = useUnapprovedPlacementsStore();\n\n const campaignsIsLoading = computed(() => unapprovedPlacementsStore.getters.isLoading);\n\n const onIntersect = (entries: unknown, observer: unknown, isIntersecting: boolean) => {\n if (isIntersecting) unapprovedPlacementsStore.dispatch('NEXT_PAGE');\n };\n\n return {\n campaignsIsLoading,\n onIntersect,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsCampaignList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsCampaignList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnapprovedPlacementsCampaignList.vue?vue&type=template&id=94afbc76&scoped=true&\"\nimport script from \"./UnapprovedPlacementsCampaignList.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnapprovedPlacementsCampaignList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UnapprovedPlacementsCampaignList.vue?vue&type=style&index=0&id=94afbc76&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"94afbc76\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VList,VListItem,VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport { UnapprovedCampaign } from '@/models/UnapprovedPlacements';\n\nimport UnapprovedPlacementsCampaignList from './UnapprovedPlacementsCampaignList/UnapprovedPlacementsCampaignList.vue';\n\nexport default defineComponent({\n components: {\n UnapprovedPlacementsCampaignList,\n },\n props: {\n campaigns: { type: Array as PropType, required: true },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnapprovedPlacementsContent.vue?vue&type=template&id=1578ff3c&\"\nimport script from \"./UnapprovedPlacementsContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnapprovedPlacementsContent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport { useUnapprovedPlacementsStore } from '../store';\n\nimport UnapprovedPlacementsHeader from '../components/UnapprovedPlacementsHeader.vue';\nimport UnapprovedPlacementsContent from '../components/UnapprovedPlacementsContent.vue';\n\nexport default defineComponent({\n components: {\n AppView,\n UnapprovedPlacementsHeader,\n UnapprovedPlacementsContent,\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const unapprovedPlacementsStore = useUnapprovedPlacementsStore();\n\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const unapprovedCampaigns = computed(() => unapprovedPlacementsStore.getters.campaigns);\n const unapprovedCampaignsFilters = computed(() => unapprovedPlacementsStore.getters.filters);\n const unapprovedCampaignsFiltersChanged = computed(() => unapprovedPlacementsStore.getters.filtersChanged);\n const isLoading = computed(() => unapprovedPlacementsStore.getters.isLoading);\n\n const searchQueryIsChanged = computed(() => !!route.value.query.search);\n\n const fetch = async () => {\n await unapprovedPlacementsStore.actions.FETCH_CAMPAIGNS();\n };\n\n const init = async () => {\n if (searchQueryIsChanged.value) return;\n\n updateIsLoading(true);\n unapprovedPlacementsStore.actions.RESET_FILTERS();\n\n try {\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n watch(unapprovedCampaignsFilters, () => {\n if (!unapprovedCampaignsFiltersChanged.value) return;\n\n fetch();\n });\n\n init();\n\n return {\n unapprovedCampaigns,\n unapprovedCampaignsFiltersChanged,\n isLoading,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacements.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacements.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnapprovedPlacements.vue?vue&type=template&id=0cdad46a&scoped=true&\"\nimport script from \"./UnapprovedPlacements.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnapprovedPlacements.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UnapprovedPlacements.vue?vue&type=style&index=0&id=0cdad46a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0cdad46a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"unapproved-placements-loader rounded-0\"},[_c('div',{staticClass:\"unapproved-placements-loader__content\"},[_c('ListLoader',{staticClass:\"unapproved-placements-loader__list\"})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UnapprovedPlacementsLoader.vue?vue&type=template&id=4f164c24&scoped=true&\"\nimport script from \"./UnapprovedPlacementsLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./UnapprovedPlacementsLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UnapprovedPlacementsLoader.vue?vue&type=style&index=0&id=4f164c24&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f164c24\",\n null\n \n)\n\nexport default component.exports","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport UnapprovedPlacements from '../views/UnapprovedPlacements.vue';\n\nimport UnapprovedPlacementsLoader from '../components/UnapprovedPlacementsLoader.vue';\n\nconst routes: AppRouteConfig[] = [\n {\n path: '/unapproved-placements',\n component: UnapprovedPlacements,\n meta: {\n group: 'main',\n title: 'Проверка размещений',\n icon: {\n name: '$d1-placements-check',\n size: 54,\n custom: true,\n },\n permission: 'view_unapproved_campaigns',\n loader: UnapprovedPlacementsLoader,\n },\n },\n];\n\nexport default routes;\n","import { registerModule } from 'vuex-smart-module';\n\nimport ModuleInit from '@/models/ModuleInit';\n\nimport store from './store';\nimport routes from './routes/index';\n\nconst moduleInit: ModuleInit = (ctx) => {\n registerModule(ctx.store, ['unapprovedPlacements'], 'unapprovedPlacements', store);\n\n ctx.store.dispatch('navigation/ADD_ROUTES', routes);\n ctx.router.addRoutes(routes);\n};\n\nexport default moduleInit;\n","/* eslint-disable max-classes-per-file */\nimport Vue from 'vue';\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\nimport { isEqual } from 'lodash';\n\nimport { TokensApi } from '@/api';\n\nimport { Token, TokenProvider } from '@/models/Token';\n\nexport interface TokensListFilters {\n page: number;\n query: string;\n}\n\nconst initFilters = () => ({\n page: 1,\n query: '',\n});\n\nclass ModuleState {\n tokens: Token[] = [];\n\n tokenProviders: TokenProvider[] = [];\n\n selectedTokenProvider: TokenProvider | null = null;\n\n filters: TokensListFilters = initFilters();\n}\n\nclass ModuleGetters extends Getters {\n get tokens() {\n return this.state.tokens;\n }\n\n get tokenProviders() {\n return this.state.tokenProviders;\n }\n\n get selectedTokenProvider() {\n return this.state.selectedTokenProvider;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get filtersAreEnabled() {\n const defaultFilters = initFilters();\n\n return Object.entries(this.getters.filters).some(([key, val]) => !isEqual(val, defaultFilters[key]));\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_TOKENS_LIST(payload: Token[]) {\n this.state.tokens = payload;\n }\n\n ADD_TOKENS_LIST(payload: Token[]) {\n this.state.tokens = [...this.state.tokens, ...payload];\n }\n\n REMOVE_TOKEN(tokenId: string) {\n this.state.tokens = this.state.tokens.filter(({ id }) => id !== tokenId);\n }\n\n SET_TOKEN_PROVIDERS(payload: TokenProvider[]) {\n this.state.tokenProviders = payload;\n }\n\n SET_SELECTED_TOKEN_PROVIDER(payload: TokenProvider) {\n this.state.selectedTokenProvider = payload;\n }\n\n SET_FILTERS(payload: TokensListFilters) {\n this.state.filters = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_TOKENS_LIST() {\n const { page, query } = this.getters.filters;\n\n const res = await TokensApi.fetchTokens({\n params: { page, filter: query },\n });\n\n if (page === 1) {\n this.commit('SET_TOKENS_LIST', res.data.list);\n } else {\n this.commit('ADD_TOKENS_LIST', res.data.list);\n }\n }\n\n async FETCH_TOKEN_PROVIDERS() {\n const res = await TokensApi.fetchTokenProviders();\n\n this.commit('SET_TOKEN_PROVIDERS', res.data);\n }\n\n async CREATE_TOKEN(payload: { code: string; tokenProviderId: string }) {\n await TokensApi.createToken(payload);\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Tokens',\n event_action: 'Get new token',\n event_label: payload.tokenProviderId,\n });\n }\n\n async CREATE_CUSTOM_TOKEN(payload: { name: string; tokenJson: string; tokenProviderId: string }) {\n await TokensApi.addToken(payload);\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Tokens',\n event_action: 'Get new token',\n event_label: payload.tokenProviderId,\n });\n }\n\n async DELETE_TOKEN(payload: { tokenId: string; tokenProviderId: string }) {\n await TokensApi.deleteToken(payload.tokenId);\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Tokens',\n event_action: 'Delete token',\n event_label: payload.tokenProviderId,\n });\n\n this.commit('REMOVE_TOKEN', payload.tokenId);\n }\n\n UPDATE_FILTERS(filters: Partial) {\n const page = filters.page || 1;\n\n const newFilters = {\n ...this.getters.filters,\n ...filters,\n page,\n };\n\n this.commit('SET_FILTERS', newFilters);\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n }\n\n NEXT_PAGE() {\n this.dispatch('UPDATE_FILTERS', { page: this.getters.filters.page + 1 });\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const tokensStoreMapper = createMapper(module);\n\nexport const useProviderTokensStore = createComposable(module);\n\nexport default module;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ProviderTokens.vue?vue&type=template&id=3e2f1ad8&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"provider-tokens-list\"},[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('ProviderTokensListHeader')],1),_vm._v(\" \"),_c('div',{staticClass:\"provider-tokens-list__content\",class:{ 'provider-tokens-list__content--stub': !_vm.tokens.length }},[(_vm.tokens.length)?_c('TokensListTable',{attrs:{\"items\":_vm.tokens,\"loading\":_vm.isLoading},on:{\"load-next-page\":_vm.loadNextPage}}):_c('div',[(_vm.isLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.tokensFiltersAreEnabled ? 'Ничего не найдено :-(' : 'Доступы к площадкам')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.tokensFiltersAreEnabled ? 'Попробуйте изменить запрос' : 'Пока не добавлено ни одного доступа')+\"\\n \")]),_vm._v(\" \"),(!_vm.tokensFiltersAreEnabled)?_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"to\":\"/provider-tokens/new\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1):_vm._e()]],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"provider-tokens-list-header\"},[_c('div',{staticClass:\"text-h5 mr-3\"},[_vm._v(\"\\n Доступы к площадкам\\n \")]),_vm._v(\" \"),_c('DBtnInline',{staticClass:\"mt-1 flex-grow-1\",attrs:{\"to\":\"/provider-tokens/new\"},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('span',{staticClass:\"body-2\"},[_vm._v(\"Новый токен\")])]),_vm._v(\" \"),_c('v-text-field',{staticClass:\"provider-tokens-list-header__search\",attrs:{\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Площадка или токен\",\"prepend-inner-icon\":\"mdi-magnify\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport { useProviderTokensStore } from '../../store';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n setup() {\n const providerTokensStore = useProviderTokensStore();\n\n const query = computed({\n get() {\n return providerTokensStore.getters.filters.query;\n },\n set: debounce((val: string) => {\n providerTokensStore.dispatch('UPDATE_FILTERS', { query: val });\n }, 300),\n });\n\n return { query };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderTokensListHeader.vue?vue&type=template&id=8ed71278&scoped=true&\"\nimport script from \"./ProviderTokensListHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderTokensListHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProviderTokensListHeader.vue?vue&type=style&index=0&id=8ed71278&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8ed71278\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',{attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"items-per-page\":_vm.items.length,\"server-items-length\":_vm.items.length,\"loading\":_vm.loading,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === _vm.items.length - 5)?_c('ProviderTokensListTableRow',{directives:[{name:\"intersect\",rawName:\"v-intersect.once\",value:(_vm.onIntersect),expression:\"onIntersect\",modifiers:{\"once\":true}}],attrs:{\"item\":item}}):_c('ProviderTokensListTableRow',{attrs:{\"item\":item}})]}},(_vm.loading)?{key:\"body-append\",fn:function(){return [_c('DTableRow',[_c('DTableCell',{attrs:{\"content-classes\":\"align-center\",\"colspan\":_vm.headers.length}},[_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"20\",\"indeterminate\":\"\"}})],1)],1)]},proxy:true}:null],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"tokens-list-table-row\"},[_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.item.providerName)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.item.name)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.creationDate)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.expirationDate)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"tokens-list-table__actions-cell\"},[_c('v-btn',{staticClass:\"tokens-list-table-row__actions-cell-content\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.deleteToken}},[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, PropType, computed } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport modally from '@/services/modally';\n\nimport { Token } from '@/models/Token';\n\nimport { useProviderTokensStore } from '../../../store/index';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n item: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n item,\n } = toRefs(props);\n\n const providerTokensStore = useProviderTokensStore();\n\n const formatDate = (date: string) => moment(date).format('DD.MM.YYYY');\n\n const creationDate = computed(() => formatDate(item.value.createdOn));\n const expirationDate = computed(() => formatDate(item.value.expirationDate));\n\n const deleteToken = async () => {\n const result = await modally.show({\n type: 'confirm',\n status: 'warning',\n title: item.value.name,\n content: 'Вы действительно хотите удалить доступ?',\n });\n\n if (!result) return;\n\n await providerTokensStore.dispatch('DELETE_TOKEN', {\n tokenId: item.value.id,\n tokenProviderId: item.value.tokenProviderId,\n });\n };\n\n return {\n creationDate,\n expirationDate,\n deleteToken,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderTokensListTableRow.vue?vue&type=template&id=4a11de47&scoped=true&\"\nimport script from \"./ProviderTokensListTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderTokensListTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProviderTokensListTableRow.vue?vue&type=style&index=0&id=4a11de47&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4a11de47\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport {\n DTable,\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport ProviderTokensListTableRow from './ProviderTokensListTableRow.vue';\n\nexport default defineComponent({\n components: {\n DTable,\n DTableCell,\n DTableRow,\n ProviderTokensListTableRow,\n },\n props: {\n items: { type: Array, default: () => [] },\n loading: { type: Boolean, default: false },\n height: { type: Number, default: 0 },\n },\n setup(props, context) {\n const headers = [\n {\n text: 'Площадка',\n value: 'providerName',\n },\n {\n text: 'Название',\n value: 'name',\n },\n {\n text: 'Создание',\n value: 'createdOn',\n },\n {\n text: 'Окончание',\n value: 'expirationDate',\n },\n {\n text: '',\n value: 'actions',\n },\n ].map((header) => ({\n ...header,\n class: 'caption',\n sortable: false,\n }));\n\n const onIntersect = (entries: unknown, observer: unknown, isIntersecting: boolean) => {\n if (isIntersecting) context.emit('load-next-page');\n };\n\n return {\n headers,\n onIntersect,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderTokensListTable.vue?vue&type=template&id=1a8466b6&\"\nimport script from \"./ProviderTokensListTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderTokensListTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, ref, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport { useProviderTokensStore } from '../store';\n\nimport ProviderTokensListHeader from '../components/ProviderTokensList/ProviderTokensListHeader.vue';\n\nimport TokensListTable from '../components/ProviderTokensList/ProviderTokensListTable/ProviderTokensListTable.vue';\n\nexport default defineComponent({\n components: {\n AppView,\n ProviderTokensListHeader,\n TokensListTable,\n },\n setup() {\n const providerTokensStore = useProviderTokensStore();\n\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const isLoading = ref(false);\n\n const tokens = computed(() => providerTokensStore.getters.tokens);\n const tokensFilters = computed(() => providerTokensStore.getters.filters);\n const tokensFiltersAreEnabled = computed(() => providerTokensStore.getters.filtersAreEnabled);\n\n const init = async () => {\n updateIsLoading(true);\n providerTokensStore.dispatch('RESET_FILTERS');\n\n try {\n await providerTokensStore.dispatch('FETCH_TOKENS_LIST');\n } finally {\n updateIsLoading(false);\n }\n };\n\n const loadNextPage = () => {\n providerTokensStore.dispatch('NEXT_PAGE');\n };\n\n const fetch = async () => {\n isLoading.value = true;\n\n try {\n await providerTokensStore.dispatch('FETCH_TOKENS_LIST');\n } finally {\n isLoading.value = false;\n }\n };\n\n watch(tokensFilters, () => {\n if (!tokensFiltersAreEnabled.value) return;\n\n fetch();\n });\n\n init();\n\n return {\n isLoading,\n loadNextPage,\n tokens,\n tokensFiltersAreEnabled,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderTokensList.vue?vue&type=template&id=049fadb3&scoped=true&\"\nimport script from \"./ProviderTokensList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderTokensList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProviderTokensList.vue?vue&type=style&index=0&id=049fadb3&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"049fadb3\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"provider-tokens-new\"},[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}})],1),_vm._v(\" \"),_c('div',{staticClass:\"provider-tokens-new__content py-3 px-6\"},[_c('div',{staticClass:\"mb-6 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Выберите площадку\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"provider-tokens-new__providers-container\"},_vm._l((_vm.tokenProviders),function(provider){return _c('div',{key:provider.id,staticClass:\"provider-tokens-new__provider\"},[_c('v-btn',{attrs:{\"outlined\":\"\",\"rounded\":\"\",\"color\":\"primary\"},domProps:{\"textContent\":_vm._s(provider.name)},on:{\"click\":function($event){return _vm.onProviderClick(provider)}}})],1)}),0)]),_vm._v(\" \"),_c('ProviderTokensCustomModal',{model:{value:(_vm.customTokenModaIsShown),callback:function ($$v) {_vm.customTokenModaIsShown=$$v},expression:\"customTokenModaIsShown\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({attrs:{\"width\":\"604\",\"title\":\"Создание токена\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main-content\",fn:function(){return [_c('v-text-field',{staticClass:\"mb-6\",attrs:{\"label\":\"Название\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_vm._v(\" \"),_c('v-text-field',{attrs:{\"label\":\"Токен\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.token),callback:function ($$v) {_vm.token=$$v},expression:\"token\"}})]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.isLoading,\"disabled\":!_vm.name || !_vm.token},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed } from '@vue/composition-api';\n\nimport notify from '@/services/notify';\n\nimport useRouter from '@/packages/hooks/useRouter';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { useProviderTokensStore } from '../../store';\n\nexport default defineComponent({\n components: {\n AppModal,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const providerTokensStore = useProviderTokensStore();\n\n const router = useRouter(context);\n\n const name = ref('');\n const token = ref('');\n const isLoading = ref(false);\n\n const selectedTokenProvider = computed(() => providerTokensStore.getters.selectedTokenProvider);\n\n const save = async () => {\n if (!selectedTokenProvider.value) return;\n\n isLoading.value = true;\n\n try {\n await providerTokensStore.dispatch('CREATE_CUSTOM_TOKEN', {\n name: name.value,\n tokenJson: token.value,\n tokenProviderId: selectedTokenProvider.value.id,\n });\n\n notify.push({\n text: `Новый токен для ${selectedTokenProvider.value.name} добавлен`,\n position: ['bottom', 'center'],\n status: 'positive',\n });\n\n router.push('/provider-tokens');\n } finally {\n isLoading.value = false;\n }\n };\n\n return {\n name,\n token,\n isLoading,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensCustomModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensCustomModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderTokensCustomModal.vue?vue&type=template&id=3c300982&\"\nimport script from \"./ProviderTokensCustomModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderTokensCustomModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, ref } from '@vue/composition-api';\n\nimport { DBreadcrumbs } from '@shared/druid-kit';\n\nimport useMeta from '@/composables/meta/useMeta';\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { TokenProvider } from '@/models/Token';\n\nimport { useProviderTokensStore } from '../store';\n\nimport ProviderTokensCustomModal from '../components/ProviderTokensNew/ProviderTokensCustomModal.vue';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n AppView,\n ProviderTokensCustomModal,\n },\n setup() {\n const providerTokensStore = useProviderTokensStore();\n\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const customTokenModaIsShown = ref(false);\n\n const tokenProviders = computed(() => providerTokensStore.getters.tokenProviders);\n\n const breadcrumbs = computed(() => [\n {\n label: 'Доступы к площадкам',\n path: '/provider-tokens',\n },\n {\n label: 'Новый токен',\n path: '/provider-tokens/new',\n },\n ]);\n\n useMeta({ title: 'Новый токен' });\n\n const fetch = async () => {\n updateIsLoading(true);\n\n try {\n await providerTokensStore.dispatch('FETCH_TOKEN_PROVIDERS');\n } finally {\n updateIsLoading(false);\n }\n };\n\n const onProviderClick = (provider: TokenProvider) => {\n providerTokensStore.commit('SET_SELECTED_TOKEN_PROVIDER', provider);\n\n if (/\\/tokens\\/custom/i.test(provider.oAuthURL)) {\n customTokenModaIsShown.value = true;\n } else {\n window.open(provider.oAuthURL, '_blank');\n }\n };\n\n fetch();\n\n return {\n customTokenModaIsShown,\n tokenProviders,\n breadcrumbs,\n onProviderClick,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensNew.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensNew.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderTokensNew.vue?vue&type=template&id=0c4609c1&scoped=true&\"\nimport script from \"./ProviderTokensNew.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderTokensNew.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProviderTokensNew.vue?vue&type=style&index=0&id=0c4609c1&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c4609c1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"provider-tokens-callback\"},[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}})],1),_vm._v(\" \"),_c('div',{staticClass:\"provider-tokens-callback__content\"},[(_vm.isLoading)?[_c('div',{staticClass:\"mb-6 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Пожалуйста, подождите\\n \")]),_vm._v(\" \"),_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"24\",\"indeterminate\":\"\"}})]:_c('div',{staticClass:\"provider-tokens-callback__error\"},[_c('v-icon',{staticClass:\"mb-4\",attrs:{\"size\":\"26\"}},[_vm._v(\"\\n mdi-close-circle\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"mb-2 text-h6\"},[_vm._v(\"\\n Не получен токен обновления\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"mb-6\",domProps:{\"innerHTML\":_vm._s(_vm.errorMessage)}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"to\":\"/provider-tokens\"}},[_vm._v(\"\\n Вернуться к списку токенов\\n \")])],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, ref, onMounted } from '@vue/composition-api';\n\nimport { DBreadcrumbs } from '@shared/druid-kit';\n\nimport useRouter from '@/packages/hooks/useRouter';\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport notify from '@/services/notify';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport useMeta from '@/composables/meta/useMeta';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useProviderTokensStore } from '../store';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n AppView,\n },\n setup(props, context) {\n const router = useRouter(context);\n const route = useRoute(context);\n\n const providerTokensStore = useProviderTokensStore();\n\n const errorMessage = ref('');\n const isLoading = ref(false);\n\n const breadcrumbs = computed(() => [\n {\n label: 'Доступы к площадкам',\n path: '/provider-tokens',\n },\n {\n label: 'Обработка токена',\n path: '/provider-tokens/callback?',\n },\n ]);\n\n useMeta({ title: 'Обработка токена' });\n\n const sendToken = async () => {\n const { state, code } = route.value.query;\n\n if (!state || !code) {\n errorMessage.value = 'Неверные параметры запроса. Обратитесь в поддержку.';\n\n return;\n }\n\n isLoading.value = true;\n\n try {\n await providerTokensStore.dispatch('CREATE_TOKEN', {\n code: code as string,\n tokenProviderId: state as string,\n });\n\n notify.push({\n text: 'Новый токен успешно добавлен',\n position: ['bottom', 'center'],\n status: 'positive',\n });\n\n router.push('/provider-tokens');\n } catch (e) {\n if (!isError(e)) return;\n\n if (isAxiosError(e) && e.response?.data && typeof e.response.data === 'string') {\n errorMessage.value = e.response.data;\n } else {\n errorMessage.value = 'Произошла ошибка. Попробуйте еще раз либо обратитесь в поддержку.';\n\n throw new AppJsonError({ error: e, options: { showingModal: false } });\n }\n } finally {\n isLoading.value = false;\n }\n };\n\n onMounted(() => {\n // facebook fix\n if (window.location.hash === '#_=_') {\n window.history.replaceState(null, '', window.location.href.split('#')[0]);\n }\n\n sendToken();\n });\n\n return {\n errorMessage,\n isLoading,\n breadcrumbs,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensCallback.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensCallback.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderTokensCallback.vue?vue&type=template&id=123ca03b&scoped=true&\"\nimport script from \"./ProviderTokensCallback.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderTokensCallback.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProviderTokensCallback.vue?vue&type=style&index=0&id=123ca03b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"123ca03b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"provider-tokens-list-loader\"},[_c('v-skeleton-loader',{staticClass:\"provider-tokens-list-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('TableLoader',{staticClass:\"provider-tokens-list-loader__table\",attrs:{\"columns\":5,\"rows\":4}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProviderTokensListLoader.vue?vue&type=template&id=32577ea0&scoped=true&\"\nimport script from \"./ProviderTokensListLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./ProviderTokensListLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProviderTokensListLoader.vue?vue&type=style&index=0&id=32577ea0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32577ea0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"provider-tokens-new-loader\"},[_c('v-skeleton-loader',{staticClass:\"provider-tokens-new-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('div',{staticClass:\"provider-tokens-new-loader__providers\"},_vm._l((7),function(num){return _c('v-skeleton-loader',{key:num,staticClass:\"provider-tokens-new-loader__provider\",attrs:{\"type\":\"heading\"}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensNewLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensNewLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProviderTokensNewLoader.vue?vue&type=template&id=218f2688&scoped=true&\"\nimport script from \"./ProviderTokensNewLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./ProviderTokensNewLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProviderTokensNewLoader.vue?vue&type=style&index=0&id=218f2688&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"218f2688\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport ProviderTokens from '../views/ProviderTokens.vue';\nimport ProviderTokensList from '../views/ProviderTokensList.vue';\nimport ProviderTokensNew from '../views/ProviderTokensNew.vue';\nimport ProviderTokensCallback from '../views/ProviderTokensCallback.vue';\n\nimport ProviderTokensListLoader from '../components/ProviderTokensList/ProviderTokensListLoader.vue';\nimport ProviderTokensNewLoader from '../components/ProviderTokensNew/ProviderTokensNewLoader.vue';\n\nconst routes: AppRouteConfig[] = [\n {\n path: '/Home/TokenCallback',\n redirect: '/provider-tokens/callback',\n },\n {\n path: '/provider-tokens',\n component: ProviderTokens,\n meta: {\n group: 'main',\n title: 'Доступы к площадкам',\n icon: 'mdi-layers-outline',\n order: 1,\n permission: 'provider-settings_edit',\n },\n props: true,\n children: [\n {\n path: '',\n component: ProviderTokensList,\n meta: {\n title: 'Доступы к площадкам',\n permission: 'provider-settings_edit',\n loader: ProviderTokensListLoader,\n header: {\n sticky: true,\n },\n },\n props: true,\n },\n {\n path: 'new',\n component: ProviderTokensNew,\n meta: {\n permission: 'provider-settings_edit',\n loader: ProviderTokensNewLoader,\n },\n props: true,\n },\n {\n path: 'callback',\n component: ProviderTokensCallback,\n meta: {\n permission: 'provider-settings_edit',\n },\n props: true,\n },\n ],\n },\n];\n\nexport default routes;\n","import { registerModule } from 'vuex-smart-module';\n\nimport ModuleInit from '@/models/ModuleInit';\n\nimport store from './store';\nimport routes from './routes';\n\nconst moduleInit: ModuleInit = (ctx) => {\n registerModule(ctx.store, ['providerTokens'], 'providerTokens', store);\n\n ctx.store.dispatch('navigation/ADD_ROUTES', routes);\n ctx.router.addRoutes(routes);\n};\n\nexport default moduleInit;\n","/* eslint-disable max-classes-per-file */\nimport Vue from 'vue';\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { ProviderSettingsApi, DataProvidersSettingsApi } from '@/api';\n\nimport { SetProviderSettingsPayload, ProviderSettingsResponse } from '@/api/modules/providerSettings.api';\n\nimport { ProviderSettings, Provider, ProviderSettingsToken } from '@/models/ProviderSettings';\nimport { Client } from '@/models/Client';\n\nexport interface ProviderSettingsFilters {\n page: number;\n query: string;\n failedOnly: boolean;\n}\n\nconst initFilters = () => ({\n page: 1,\n query: '',\n failedOnly: false,\n});\n\nclass ModuleState {\n providersSettings: ProviderSettings[] = [];\n\n selectedProviderSettings: ProviderSettingsResponse | null = null;\n\n clients: Client[] = [];\n\n clientsIsLoading = false;\n\n providers: Provider[] = [];\n\n providersIsLoading = false;\n\n tokens: ProviderSettingsToken[] = [];\n\n tokensIsLoading = false;\n\n statisticsCollection: string[] = [];\n\n statisticsCollectionIsLoading = false;\n\n filters: ProviderSettingsFilters = initFilters();\n\n filtersChanged = false;\n\n modalIsShow = false;\n\n saveIsLoading = false;\n}\n\nclass ModuleGetters extends Getters {\n get providersSettings() {\n return this.state.providersSettings;\n }\n\n get selectedProviderSettings() {\n return this.state.selectedProviderSettings;\n }\n\n get clients() {\n return this.state.clients;\n }\n\n get clientsIsLoading() {\n return this.state.clientsIsLoading;\n }\n\n get providers() {\n return this.state.providers;\n }\n\n get providersIsLoading() {\n return this.state.providersIsLoading;\n }\n\n get tokens() {\n return this.state.tokens;\n }\n\n get tokensIsLoading() {\n return this.state.tokensIsLoading;\n }\n\n get statisticsCollection() {\n return this.state.statisticsCollection;\n }\n\n get statisticsCollectionIsLoading() {\n return this.state.statisticsCollectionIsLoading;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get modalIsShow() {\n return this.state.modalIsShow;\n }\n\n get saveIsLoading() {\n return this.state.saveIsLoading;\n }\n\n get filtersChanged() {\n return this.state.filtersChanged;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_PROVIDERS_SETTINGS(payload: ProviderSettings[]) {\n this.state.providersSettings = payload;\n }\n\n ADD_PROVIDERS_SETTINGS(payload: ProviderSettings[]) {\n this.state.providersSettings = [...this.state.providersSettings, ...payload];\n }\n\n REMOVE_PROVIDER_SETTINGS(payload: string) {\n this.state.providersSettings = this.state.providersSettings.filter(({ id }) => id !== payload);\n }\n\n SET_SELECTED_PROVIDER_SETTINGS(payload: ProviderSettingsResponse) {\n this.state.selectedProviderSettings = payload;\n }\n\n RESET_SELECTED_PROVIDER_SETTINGS() {\n this.state.selectedProviderSettings = null;\n }\n\n SET_PROVIDERS(payload: Provider[]) {\n this.state.providers = payload;\n }\n\n SET_PROVIDERS_IS_LOADING(payload: boolean) {\n this.state.providersIsLoading = payload;\n }\n\n SET_CLIENTS(payload: Client[]) {\n this.state.clients = payload;\n }\n\n SET_CLIENTS_IS_LOADING(payload: boolean) {\n this.state.clientsIsLoading = payload;\n }\n\n SET_TOKENS(payload: ProviderSettingsToken[]) {\n this.state.tokens = payload;\n }\n\n SET_TOKENS_IS_LOADING(payload: boolean) {\n this.state.tokensIsLoading = payload;\n }\n\n SET_STATISTICS_COLLECTION(payload: string[]) {\n this.state.statisticsCollection = payload;\n }\n\n SET_STATISTIC_COLLECTION_IS_LOADING(payload: boolean) {\n this.state.statisticsCollectionIsLoading = payload;\n }\n\n SET_FILTERS(payload: ProviderSettingsFilters) {\n this.state.filters = payload;\n }\n\n SET_FILTERS_CHANGED(payload: boolean) {\n this.state.filtersChanged = payload;\n }\n\n SET_MODAL_IS_SHOW(payload: boolean) {\n this.state.modalIsShow = payload;\n }\n\n SET_SAVE_IS_LOADING(payload: boolean) {\n this.state.saveIsLoading = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_PROVIDERS_SETTINGS_LIST() {\n const { page, failedOnly, query } = this.getters.filters;\n\n const res = await ProviderSettingsApi.fetchProviderSettings({\n params: { page, failedOnly, filter: query },\n });\n\n if (page === 1) {\n this.commit('SET_PROVIDERS_SETTINGS', res.data.list);\n } else {\n this.commit('ADD_PROVIDERS_SETTINGS', res.data.list);\n }\n }\n\n async FETCH_PROVIDER_SETTINGS(payload: string) {\n const res = await ProviderSettingsApi.fetchProvider(payload);\n\n this.commit('SET_SELECTED_PROVIDER_SETTINGS', res.data);\n }\n\n CREATE_PROVIDER_SETTINGS() {\n this.commit('SET_MODAL_IS_SHOW', true);\n }\n\n async EDIT_PROVIDER_SETTINGS(payload: string) {\n await this.dispatch('FETCH_PROVIDER_SETTINGS', payload);\n\n this.commit('SET_MODAL_IS_SHOW', true);\n }\n\n RESET_EDIT_PROVIDER_SETTINGS() {\n this.commit('SET_MODAL_IS_SHOW', false);\n this.commit('RESET_SELECTED_PROVIDER_SETTINGS');\n }\n\n async DELETE_PROVIDER_SETTINGS(payload: ProviderSettings) {\n await ProviderSettingsApi.deleteProvider(payload.id);\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Provider Settings',\n event_action: 'Delete Settings',\n event_label: `${payload.name} | ${payload.provider}`,\n d1d_client_id: payload.clientId,\n d1d_client_name: payload.client,\n });\n\n this.commit('REMOVE_PROVIDER_SETTINGS', payload.id);\n }\n\n async FETCH_CLIENTS() {\n this.commit('SET_CLIENTS_IS_LOADING', true);\n\n try {\n const res = await ProviderSettingsApi.fetchClients();\n\n this.commit('SET_CLIENTS', res.data);\n } finally {\n this.commit('SET_CLIENTS_IS_LOADING', false);\n }\n }\n\n async FETCH_PROVIDERS() {\n this.commit('SET_PROVIDERS_IS_LOADING', true);\n\n try {\n const res = await ProviderSettingsApi.fetchProviders();\n\n this.commit('SET_PROVIDERS', res.data);\n } finally {\n this.commit('SET_PROVIDERS_IS_LOADING', false);\n }\n }\n\n async FETCH_TOKENS(providerId: string) {\n this.commit('SET_TOKENS_IS_LOADING', true);\n\n try {\n const res = await ProviderSettingsApi.fetchTokens({ params: { id: providerId } });\n\n this.commit('SET_TOKENS', res.data);\n } finally {\n this.commit('SET_TOKENS_IS_LOADING', false);\n }\n }\n\n async FETCH_STATISTICS_COLLECTION(connectorId: string) {\n this.commit('SET_STATISTIC_COLLECTION_IS_LOADING', true);\n\n try {\n const res = await DataProvidersSettingsApi.fetchStatisticsCollectionDepths({ params: { id: connectorId } });\n\n this.commit('SET_STATISTICS_COLLECTION', res.data);\n } finally {\n this.commit('SET_STATISTIC_COLLECTION_IS_LOADING', false);\n }\n }\n\n async SAVE_PROVIDER_SETTINGS(payload: SetProviderSettingsPayload) {\n this.commit('SET_SAVE_IS_LOADING', true);\n\n try {\n await ProviderSettingsApi.setProvider(payload);\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Provider Settings',\n event_action: 'Create Settings',\n event_label: `${payload.name} | ${payload.dataProviderName}`,\n d1d_client_id: payload.clientId,\n d1d_client_name: payload.clientName,\n });\n\n this.dispatch('RESET_EDIT_PROVIDER_SETTINGS');\n this.dispatch('RESET_FILTERS');\n\n await this.dispatch('FETCH_PROVIDERS_SETTINGS_LIST');\n } finally {\n this.commit('SET_SAVE_IS_LOADING', false);\n }\n }\n\n UPDATE_FILTERS(filters: Partial) {\n const page = filters.page || 1;\n\n const newFilters = {\n ...this.getters.filters,\n ...filters,\n page,\n };\n\n this.commit('SET_FILTERS', newFilters);\n this.commit('SET_FILTERS_CHANGED', true);\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n this.commit('SET_FILTERS_CHANGED', false);\n }\n\n NEXT_PAGE() {\n this.dispatch('UPDATE_FILTERS', { page: this.getters.filters.page + 1 });\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const providerSettingsStoreMapper = createMapper(module);\n\nexport const useProviderSettingsStore = createComposable(module);\n\nexport default module;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"provider-settings\"},[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('ProviderSettingsHeader')],1),_vm._v(\" \"),_c('div',{class:[\n 'provider-settings__content',\n { 'provider-settings__content--stub': !_vm.providersSettings.length } ]},[(_vm.providersSettings.length)?_c('ProviderSettingsTable',{attrs:{\"items\":_vm.providersSettings,\"loading\":_vm.isLoading},on:{\"load-next-page\":_vm.loadNextPage}}):_c('div',[(_vm.isLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.providerSettingsFiltersChanged ? 'Ничего не найдено :-(' : 'Настройки площадок')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.providerSettingsFiltersChanged ? 'Попробуйте изменить запрос' : 'Пока не добавлено ни одной настройки')+\"\\n \")]),_vm._v(\" \"),(!_vm.providerSettingsFiltersChanged)?_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":_vm.createSetting}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1):_vm._e()]],2)],1),_vm._v(\" \"),(_vm.modalIsShow)?_c('ProviderSettingsItemModal',{model:{value:(_vm.modalIsShow),callback:function ($$v) {_vm.modalIsShow=$$v},expression:\"modalIsShow\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"provider-settings-header\"},[_c('div',{staticClass:\"text-h5 mr-3\"},[_vm._v(\"\\n Настройки площадок\\n \")]),_vm._v(\" \"),_c('DBtnInline',{staticClass:\"mt-1 flex-grow-1\",on:{\"click\":_vm.createSetting},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('span',{staticClass:\"body-2\"},[_vm._v(\"Новая настройка\")])]),_vm._v(\" \"),_c('DSelectInline',{staticClass:\"mt-1 mr-2 flex-grow-0\",attrs:{\"items\":_vm.filterItems},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}}),_vm._v(\" \"),_c('v-text-field',{staticClass:\"provider-settings-header__search\",attrs:{\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Поиск\",\"prepend-inner-icon\":\"mdi-magnify\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport {\n DBtnInline,\n DSelectInline,\n} from '@shared/druid-kit';\n\nimport { useProviderSettingsStore } from '../store';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n DSelectInline,\n },\n setup() {\n const providerSettingsStore = useProviderSettingsStore();\n\n const filter = computed({\n get() {\n return providerSettingsStore.getters.filters.failedOnly;\n },\n set(val: boolean) {\n providerSettingsStore.dispatch('UPDATE_FILTERS', { failedOnly: val });\n },\n });\n\n const query = computed({\n get() {\n return providerSettingsStore.getters.filters.query;\n },\n set: debounce((val: string) => {\n providerSettingsStore.dispatch('UPDATE_FILTERS', { query: val });\n }, 300),\n });\n\n const filterItems = computed(() => [\n { text: 'Все настройки', value: false },\n { text: 'Только проблемные', value: true },\n ]);\n\n const createSetting = () => {\n providerSettingsStore.dispatch('CREATE_PROVIDER_SETTINGS');\n };\n\n return {\n filter,\n filterItems,\n createSetting,\n query,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderSettingsHeader.vue?vue&type=template&id=330ba526&scoped=true&\"\nimport script from \"./ProviderSettingsHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderSettingsHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProviderSettingsHeader.vue?vue&type=style&index=0&id=330ba526&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"330ba526\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"items-per-page\":_vm.items.length,\"server-items-length\":_vm.items.length,\"loading\":_vm.loading,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === _vm.items.length - 5)?_c('ProviderSettingsTableRow',{directives:[{name:\"intersect\",rawName:\"v-intersect.once\",value:(_vm.onIntersect),expression:\"onIntersect\",modifiers:{\"once\":true}}],attrs:{\"item\":item}}):_c('ProviderSettingsTableRow',{attrs:{\"item\":item}})]}},(_vm.loading)?{key:\"body-append\",fn:function(){return [_c('DTableRow',[_c('DTableCell',{attrs:{\"content-classes\":\"align-center\",\"colspan\":_vm.headers.length}},[_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"20\",\"indeterminate\":\"\"}})],1)],1)]},proxy:true}:null],null,true)},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"provider-settings-table-row\"},[_c('DTableCell',[_c('DTooltip',{attrs:{\"interactive\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"size\":\"20\",\"color\":_vm.statusIcon.color}},'v-icon',attrs,false),on),[_vm._v(\"\\n \"+_vm._s(_vm.statusIcon.icon)+\"\\n \")])]}}]),model:{value:(_vm.tooltipIsShown),callback:function ($$v) {_vm.tooltipIsShown=$$v},expression:\"tooltipIsShown\"}},[_vm._v(\" \"),_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.statusIcon.tooltipText)+\"\\n \")])])],1),_vm._v(\" \"),_c('DTableCell',{staticClass:\"provider-settings-table-row__name-cell\",on:{\"click\":_vm.editSetting}},[_vm._v(\"\\n \"+_vm._s(_vm.item.name)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.item.client)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.item.provider)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.item.token)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"provider-settings-table-row__actions-cell\"},[_c('v-btn',{staticClass:\"provider-settings-table-row__actions-cell-button\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.deleteSetting}},[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, computed, ref } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n DTooltip,\n} from '@shared/druid-kit';\n\nimport modally from '@/services/modally';\n\nimport { ProviderSettings } from '@/models/ProviderSettings';\n\nimport { useProviderSettingsStore } from '../../store/index';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n DTooltip,\n },\n props: {\n item: { type: Object as PropType, required: true },\n },\n setup(props) {\n const providerSettingsStore = useProviderSettingsStore();\n\n const { item } = toRefs(props);\n\n const tooltipIsShown = ref(false);\n\n const statusIcon = computed(() => {\n const icons = {\n finishedWithError: {\n icon: 'mdi-close-circle',\n color: 'error',\n tooltipText: 'Завершена с ошибкой',\n },\n available: {\n icon: 'mdi-checkbox-marked-circle',\n color: 'success',\n tooltipText: 'Доступная настройка',\n },\n inProgress: {\n icon: 'mdi-timer-sand',\n color: 'grey',\n tooltipText: 'В процессе создания',\n },\n default: {\n icon: 'mdi-help-circle-outline',\n color: 'grey',\n tooltipText: '',\n },\n };\n\n const iconKey = Object.keys(icons).find((key) => !!item.value[key]) ?? 'default';\n\n return icons[iconKey];\n });\n\n const editSetting = () => {\n providerSettingsStore.dispatch('EDIT_PROVIDER_SETTINGS', item.value.id);\n };\n\n const deleteSetting = async () => {\n const result = await modally.show({\n type: 'confirm',\n status: 'warning',\n title: item.value.name,\n content: 'Вы действительно хотите удалить настройки площадки?',\n });\n\n if (!result) return;\n\n providerSettingsStore.dispatch('DELETE_PROVIDER_SETTINGS', item.value);\n };\n\n return {\n tooltipIsShown,\n statusIcon,\n editSetting,\n deleteSetting,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderSettingsTableRow.vue?vue&type=template&id=eedefcde&scoped=true&\"\nimport script from \"./ProviderSettingsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderSettingsTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProviderSettingsTableRow.vue?vue&type=style&index=0&id=eedefcde&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eedefcde\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport {\n DTable,\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport ProviderSettingsTableRow from './ProviderSettingsTableRow.vue';\n\nexport default defineComponent({\n components: {\n DTable,\n DTableCell,\n DTableRow,\n ProviderSettingsTableRow,\n },\n props: {\n items: { type: Array, default: () => [] },\n loading: { type: Boolean, default: false },\n },\n setup(props, context) {\n const headers = [\n {\n text: '',\n value: 'status',\n },\n {\n text: 'Название',\n value: 'name',\n },\n {\n text: 'Клиент',\n value: 'client',\n },\n {\n text: 'Площадка',\n value: 'provider',\n },\n {\n text: 'Доступ',\n value: 'token',\n },\n {\n text: '',\n value: 'actions',\n },\n ].map((header) => ({\n ...header,\n class: 'caption',\n sortable: false,\n }));\n\n const onIntersect = (entries: unknown, observer: unknown, isIntersecting: boolean) => {\n if (isIntersecting) context.emit('load-next-page');\n };\n\n return {\n headers,\n onIntersect,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderSettingsTable.vue?vue&type=template&id=5f5cf461&\"\nimport script from \"./ProviderSettingsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderSettingsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"provider-settings-item-modal\",attrs:{\"width\":\"730\",\"title\":_vm.title,\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main-content\",fn:function(){return [_c('div',{staticClass:\"provider-settings-item-modal__content\"},[_c('div',{staticClass:\"provider-settings-item-modal__content-block\"},[_c('v-text-field',{staticClass:\"provider-settings-item-modal__field\",attrs:{\"label\":\"Название\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_vm._v(\" \"),_c('DAutocomplete',{staticClass:\"provider-settings-item-modal__field\",attrs:{\"label\":\"Клиент\",\"items\":_vm.clients,\"loading\":_vm.clientsIsLoading,\"item-text\":\"name\",\"item-key\":\"id\",\"return-object\":\"\",\"focus\":\"\"},model:{value:(_vm.client),callback:function ($$v) {_vm.client=$$v},expression:\"client\"}}),_vm._v(\" \"),_c('DAutocomplete',{staticClass:\"provider-settings-item-modal__field\",attrs:{\"label\":\"Бренды\",\"items\":_vm.clientBrands,\"disabled\":!_vm.client,\"item-text\":\"name\",\"item-value\":\"id\",\"multiple\":\"\"},model:{value:(_vm.brands),callback:function ($$v) {_vm.brands=$$v},expression:\"brands\"}}),_vm._v(\" \"),_c('DAutocomplete',{staticClass:\"provider-settings-item-modal__field\",attrs:{\"label\":\"Площадка\",\"items\":_vm.providers,\"disabled\":_vm.isEdit,\"loading\":_vm.providersIsLoading,\"item-text\":\"name\",\"return-object\":\"\"},model:{value:(_vm.provider),callback:function ($$v) {_vm.provider=$$v},expression:\"provider\"}}),_vm._v(\" \"),_c('DAutocomplete',{staticClass:\"provider-settings-item-modal__field\",attrs:{\"label\":_vm.tokensLabel,\"items\":_vm.tokens,\"loading\":_vm.tokensIsLoading,\"disabled\":_vm.tokensIsDisabled,\"item-text\":\"name\",\"return-object\":\"\"},model:{value:(_vm.token),callback:function ($$v) {_vm.token=$$v},expression:\"token\"}}),_vm._v(\" \"),_c('DAutocomplete',{staticClass:\"provider-settings-item-modal__field\",attrs:{\"label\":\"Глубина сбора статистики\",\"items\":_vm.statisticsCollection,\"loading\":_vm.statisticsCollectionIsLoading,\"disabled\":!_vm.provider,\"item-text\":\"name\",\"return-object\":\"\"},model:{value:(_vm.statisticsCollectionDepth),callback:function ($$v) {_vm.statisticsCollectionDepth=$$v},expression:\"statisticsCollectionDepth\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"provider-settings-item-modal__content-block provider-settings-item-modal__connector-settings\",class:{ 'provider-settings-item-modal__connector-settings--stub': !_vm.settingSchema }},[_c('JsonEditor',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.settingSchema),expression:\"settingSchema\"}],staticClass:\"provider-settings-item-modal__editor\",attrs:{\"schema\":_vm.settingSchema,\"enabled\":!_vm.connectorSettingsLoading,\"editor-height\":\"360px\",\"autopostback\":\"\",\"redesign\":\"\"},on:{\"validate\":_vm.onSettingSchemaValidate,\"autopostback\":_vm.onAutoPostBack},model:{value:(_vm.connectorSettings),callback:function ($$v) {_vm.connectorSettings=$$v},expression:\"connectorSettings\"}}),_vm._v(\" \"),(_vm.connectorSettingsLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"width\":\"4\",\"size\":\"24\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.connectorSettingsIsEmpty)?_c('div',{staticClass:\"provider-settings-item-modal__settings-info\"},[_vm._v(\"\\n Здесь будут настройки выбранной площадки\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.settingSchemaLoadedWithError && !_vm.settingSchema)?_c('div',[_c('v-icon',{staticClass:\"d-block mb-2\"},[_vm._v(\"\\n mdi-emoticon-sad-outline\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1\",domProps:{\"textContent\":_vm._s(_vm.provider.name)}}),_vm._v(\" \"),_c('div',{staticClass:\"provider-settings-item-modal__settings-info mb-2\"},[_vm._v(\"\\n Не удалось загрузить настройки площадки\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.settingSchemaErrorMessages.length)?_vm._l((_vm.settingSchemaErrorMessages),function(message,index){return _c('div',{key:index,staticClass:\"provider-settings-item-modal__settings-info\"},[_vm._v(\"\\n \"+_vm._s(message)+\"\\n \")])}):_vm._e()],2)])]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saveIsLoading,\"disabled\":_vm.saveIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, ref, watch } from '@vue/composition-api';\n\nimport { DAutocomplete } from '@shared/druid-kit';\n\nimport { JsonEditor } from '@/packages/json-editor/src';\n\nimport notify from '@/services/notify';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport plural from '@/utils/plural';\nimport isError from '@/utils/isError';\n\nimport { Provider, ProviderSettingsToken } from '@/models/ProviderSettings';\nimport { Client } from '@/models/Client';\n\nimport { ProviderSettingsApi } from '@/api';\n\nimport { useProviderSettingsStore } from '../../store';\n\nexport default defineComponent({\n components: {\n DAutocomplete,\n JsonEditor,\n AppModal,\n },\n props: {\n value: {\n type: Boolean,\n default: false,\n },\n },\n setup() {\n const providerSettingsStore = useProviderSettingsStore();\n\n const name = ref('');\n const client = ref(null);\n const brands = ref([]);\n const provider = ref(null);\n const token = ref(null);\n const statisticsCollectionDepth = ref('');\n\n const selectedProviderSettings = computed(() => providerSettingsStore.getters.selectedProviderSettings);\n const saveIsLoading = computed(() => providerSettingsStore.getters.saveIsLoading);\n\n const clients = computed(() => providerSettingsStore.getters.clients);\n const clientsIsLoading = computed(() => providerSettingsStore.getters.clientsIsLoading);\n\n const providers = computed(() => providerSettingsStore.getters.providers);\n const providersIsLoading = computed(() => providerSettingsStore.getters.providersIsLoading);\n\n const tokens = computed(() => providerSettingsStore.getters.tokens);\n const tokensIsLoading = computed(() => providerSettingsStore.getters.tokensIsLoading);\n\n const statisticsCollection = computed(() => providerSettingsStore.getters.statisticsCollection);\n const statisticsCollectionIsLoading = computed(() => providerSettingsStore.getters.statisticsCollectionIsLoading);\n\n const isEdit = computed(() => !!selectedProviderSettings.value?.id);\n\n const settingSchema = ref | null>(null);\n const settingSchemaErrorMessages = ref([]);\n const settingSchemaValidateErrors = ref([]);\n const settingSchemaLoadedWithError = ref(false);\n\n const connectorSettings = ref(null);\n const connectorSettingsLoading = ref(false);\n\n const title = computed(() => providerSettingsStore.getters.selectedProviderSettings?.name ?? 'Новая настройка');\n const brandsOtherText = computed(() => plural(brands.value?.length - 1, ['другой', 'других', 'других'], { withCount: true }));\n const clientBrands = computed(() => client.value?.brands ?? []);\n\n const tokensLabel = computed(() => {\n if (provider.value && !provider.value?.isTokenRequired) return 'Без доступа';\n\n return 'Доступ';\n });\n\n const tokensIsDisabled = computed(() => isEdit.value || !provider.value || !provider.value?.isTokenRequired);\n\n const connectorSettingsIsEmpty = computed(() => !isEdit.value && !connectorSettingsLoading.value && !settingSchema.value && !settingSchemaLoadedWithError.value);\n\n const saveIsDisabled = computed(() => {\n if (connectorSettingsLoading.value || settingSchemaValidateErrors.value.length) return true;\n\n return (!provider.value || provider.value.isTokenRequired) && (!token.value || !client.value);\n });\n\n const onError = (messages: string[]) => {\n settingSchemaLoadedWithError.value = true;\n\n settingSchemaErrorMessages.value = messages;\n };\n\n const loadSettingSchema = async () => {\n if (!provider.value) return;\n\n connectorSettingsLoading.value = true;\n\n settingSchemaLoadedWithError.value = false;\n settingSchemaErrorMessages.value = [];\n\n const jsonReplacer = (key: unknown, value: unknown) => {\n if (value === null) return undefined;\n\n return value;\n };\n\n try {\n const { data: { errors, schema } } = await ProviderSettingsApi.fetchSchema({\n providerId: provider.value.id,\n tokenId: token.value?.id ?? null,\n settings: JSON.stringify(connectorSettings.value, jsonReplacer, ' '),\n });\n\n if (errors.length) {\n onError(errors);\n\n return;\n }\n\n settingSchema.value = JSON.parse(schema);\n\n connectorSettingsLoading.value = false;\n } catch (error) {\n if (!isError(error)) return;\n\n onError(['Произошла ошибка. Обратитесь к администратору.']);\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n connectorSettingsLoading.value = false;\n }\n };\n\n watch(provider, async (val) => {\n if (val && !isEdit.value) {\n token.value = null;\n statisticsCollectionDepth.value = '';\n connectorSettings.value = null;\n settingSchema.value = null;\n\n if (provider.value?.isTokenRequired) {\n await providerSettingsStore.dispatch('FETCH_TOKENS', val.id);\n } else {\n await loadSettingSchema();\n }\n\n await providerSettingsStore.dispatch('FETCH_STATISTICS_COLLECTION', val.connectorId);\n }\n });\n\n watch(token, (val) => {\n if (!isEdit.value) {\n settingSchema.value = null;\n connectorSettings.value = null;\n }\n\n if (val) {\n loadSettingSchema();\n }\n });\n\n const onAutoPostBack = (payload: unknown) => {\n connectorSettings.value = payload;\n\n if (connectorSettingsLoading.value) return;\n\n loadSettingSchema();\n };\n\n const fetch = async () => {\n await Promise.all([\n providerSettingsStore.dispatch('FETCH_CLIENTS'),\n providerSettingsStore.dispatch('FETCH_PROVIDERS'),\n ]);\n\n if (!selectedProviderSettings.value) return;\n\n name.value = selectedProviderSettings.value.name;\n client.value = clients.value.find(({ id }) => id === selectedProviderSettings.value?.clientId) ?? null;\n brands.value = selectedProviderSettings.value.brandIds;\n\n provider.value = providers.value.find(({ id }) => id === selectedProviderSettings.value?.dataProviderId) ?? null;\n\n if (!provider.value) return;\n\n if (provider.value?.isTokenRequired) {\n await providerSettingsStore.dispatch('FETCH_TOKENS', provider.value.id);\n } else {\n await loadSettingSchema();\n }\n\n await providerSettingsStore.dispatch('FETCH_STATISTICS_COLLECTION', provider.value.connectorId);\n\n token.value = tokens.value.find(({ id }) => id === selectedProviderSettings.value?.tokenId) ?? null;\n\n statisticsCollectionDepth.value = statisticsCollection.value\n .find((statistic) => statistic === selectedProviderSettings.value?.statisticsCollectionDepth) ?? '';\n\n connectorSettings.value = selectedProviderSettings.value?.connectorSettings\n ? JSON.parse(selectedProviderSettings.value.connectorSettings)\n : null;\n };\n\n const save = async () => {\n if (!provider.value || !client.value) return;\n\n const payload = {\n ...(selectedProviderSettings.value && { id: selectedProviderSettings.value.id }),\n name: name.value,\n clientId: client.value.id,\n clientName: client.value.name,\n brandIds: brands.value,\n dataProviderId: provider.value.id,\n dataProviderName: provider.value.name,\n tokenId: token.value?.id ?? null,\n statisticsCollectionDepth: statisticsCollectionDepth.value,\n connectorSettings: JSON.stringify(connectorSettings.value) ?? '{}',\n };\n\n const successText = `Настройка ${name.value} успешно ${isEdit.value ? 'обновлена' : 'добавлена'}`;\n\n await providerSettingsStore.dispatch('SAVE_PROVIDER_SETTINGS', payload);\n\n notify.push({ text: successText, position: ['bottom', 'center'], status: 'positive' });\n };\n\n const onSettingSchemaValidate = (payload: string[]) => {\n settingSchemaValidateErrors.value = payload;\n };\n\n fetch();\n\n return {\n name,\n client,\n brands,\n provider,\n token,\n statisticsCollectionDepth,\n //\n clients,\n providers,\n tokens,\n statisticsCollection,\n //\n clientsIsLoading,\n providersIsLoading,\n tokensIsLoading,\n statisticsCollectionIsLoading,\n //\n settingSchema,\n connectorSettings,\n loadSettingSchema,\n connectorSettingsLoading,\n onAutoPostBack,\n onSettingSchemaValidate,\n settingSchemaLoadedWithError,\n settingSchemaErrorMessages,\n //\n title,\n brandsOtherText,\n clientBrands,\n tokensLabel,\n tokensIsDisabled,\n connectorSettingsIsEmpty,\n saveIsDisabled,\n saveIsLoading,\n isEdit,\n //\n save,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsItemModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsItemModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderSettingsItemModal.vue?vue&type=template&id=b1958ecc&scoped=true&\"\nimport script from \"./ProviderSettingsItemModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderSettingsItemModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProviderSettingsItemModal.vue?vue&type=style&index=0&id=b1958ecc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b1958ecc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed, watch } from '@vue/composition-api';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useProviderSettingsStore } from '../store';\n\nimport ProviderSettingsHeader from '../components/ProviderSettingsHeader.vue';\nimport ProviderSettingsTable from '../components/ProviderSettingsTable/ProviderSettingsTable.vue';\nimport ProviderSettingsItemModal from '../components/modals/ProviderSettingsItemModal.vue';\n\nexport default defineComponent({\n components: {\n AppView,\n ProviderSettingsHeader,\n ProviderSettingsTable,\n ProviderSettingsItemModal,\n },\n setup() {\n const providerSettingsStore = useProviderSettingsStore();\n\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const isLoading = ref(false);\n\n const providersSettings = computed(() => providerSettingsStore.getters.providersSettings);\n const providerSettingsFilters = computed(() => providerSettingsStore.getters.filters);\n const providerSettingsFiltersChanged = computed(() => providerSettingsStore.getters.filtersChanged);\n\n const modalIsShow = computed({\n get() {\n return providerSettingsStore.getters.modalIsShow;\n },\n set(val: boolean) {\n if (!val) providerSettingsStore.dispatch('RESET_EDIT_PROVIDER_SETTINGS');\n },\n });\n\n const init = async () => {\n updateIsLoading(true);\n providerSettingsStore.dispatch('RESET_FILTERS');\n\n try {\n await providerSettingsStore.dispatch('FETCH_PROVIDERS_SETTINGS_LIST');\n } finally {\n updateIsLoading(false);\n }\n };\n\n const fetch = async () => {\n isLoading.value = true;\n\n try {\n await providerSettingsStore.dispatch('FETCH_PROVIDERS_SETTINGS_LIST');\n } finally {\n isLoading.value = false;\n }\n };\n\n const loadNextPage = async () => {\n providerSettingsStore.dispatch('NEXT_PAGE');\n };\n\n watch(providerSettingsFilters, () => {\n if (!providerSettingsFiltersChanged.value) return;\n\n fetch();\n });\n\n const createSetting = () => {\n providerSettingsStore.dispatch('CREATE_PROVIDER_SETTINGS');\n };\n\n init();\n\n return {\n isLoading,\n loadNextPage,\n providersSettings,\n modalIsShow,\n createSetting,\n providerSettingsFiltersChanged,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProviderSettings.vue?vue&type=template&id=602c7a50&scoped=true&\"\nimport script from \"./ProviderSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProviderSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProviderSettings.vue?vue&type=style&index=0&id=602c7a50&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"602c7a50\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"provider-settings-loader\"},[_c('v-skeleton-loader',{staticClass:\"provider-settings-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('TableLoader',{staticClass:\"provider-settings-loader__table\",attrs:{\"columns\":5,\"rows\":4}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsPageLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsPageLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProviderSettingsPageLoader.vue?vue&type=template&id=2177d58a&scoped=true&\"\nimport script from \"./ProviderSettingsPageLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./ProviderSettingsPageLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProviderSettingsPageLoader.vue?vue&type=style&index=0&id=2177d58a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2177d58a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport ProviderSettings from '../views/ProviderSettings.vue';\nimport ProviderSettingsPageLoader from '../components/ProviderSettingsPageLoader.vue';\n\nconst routes: AppRouteConfig[] = [\n {\n path: '/provider-settings',\n component: ProviderSettings,\n meta: {\n group: 'main',\n title: 'Настройки площадок',\n icon: 'mdi-layers',\n order: 2,\n permission: 'provider-settings_edit',\n loader: ProviderSettingsPageLoader,\n header: {\n sticky: true,\n },\n },\n props: true,\n },\n];\n\nexport default routes;\n","import { registerModule } from 'vuex-smart-module';\n\nimport ModuleInit from '@/models/ModuleInit';\n\nimport store from './store';\nimport routes from './routes';\n\nconst moduleInit: ModuleInit = (ctx) => {\n registerModule(ctx.store, ['providerSettings'], 'providerSettings', store);\n\n ctx.store.dispatch('navigation/ADD_ROUTES', routes);\n ctx.router.addRoutes(routes);\n};\n\nexport default moduleInit;\n","/* eslint-disable max-classes-per-file */\nimport Vue from 'vue';\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport moment from 'moment';\n\nimport { Markup } from '@/models/Markup';\n\nimport { MarkupsApi } from '@/api';\n\nclass ModuleState {\n markupIsLoading = false;\n\n markup: Markup | null = null;\n}\n\nclass ModuleGetters extends Getters {\n get markupIsLoading() {\n return this.state.markupIsLoading;\n }\n\n get markup() {\n return this.state.markup;\n }\n\n get markupPeriods() {\n return this.getters.markup?.markupsWithCost || [];\n }\n\n get maxMarkupPeriodStartDate() {\n const markupPeriodsStartDates = this.getters.markupPeriods.map((period) => moment(period.startDate));\n\n return moment.utc(moment.max(markupPeriodsStartDates)).format('YYYY-MM-DDTHH:mm:ss[Z]');\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_MARKUP_IS_LOADING(value: boolean) {\n this.state.markupIsLoading = value;\n }\n\n SET_MARKUP(payload: Markup) {\n this.state.markup = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_MARKUP(payload: { markupId: string }) {\n this.commit('SET_MARKUP_IS_LOADING', true);\n\n try {\n const res = await MarkupsApi.fetchMarkup(payload.markupId);\n\n this.commit('SET_MARKUP', res.data);\n } finally {\n this.commit('SET_MARKUP_IS_LOADING', false);\n }\n }\n\n async ADD_MARKUP_PERIOD(payload: { startDate: string; multiplier: number }) {\n const { markup } = this.getters;\n\n if (!markup) return;\n\n const newMarkup = {\n clientId: markup.clientId,\n brandId: markup.brandId,\n campaignId: markup.campaignId,\n placementId: markup.placementId,\n dataProviderId: markup.dataProviderId,\n startDate: payload.startDate,\n value: payload.multiplier,\n };\n\n await MarkupsApi.setMarkup(newMarkup);\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Markup',\n event_action: 'Change Markup',\n event_label: `${markup.dataProviderName} | ${markup.danboId}`,\n d1d_client_id: markup.clientId,\n d1d_client_name: markup.clientName,\n d1d_brand_id: markup.brandId,\n d1d_brand_name: markup.brandName,\n d1d_campaign_id: markup.campaignId,\n d1d_campaign_name: markup.campaignName,\n d1d_danbo_id: markup.danboId,\n });\n\n await this.dispatch('FETCH_MARKUP', { markupId: markup.id });\n }\n\n async DELETE_MARKUP_PERIOD(payload: { index: number | string }) {\n const { markup } = this.getters;\n\n if (!markup) return;\n\n await MarkupsApi.deleteMarkup({\n markupId: markup.id,\n config: {\n data: `${payload.index}`,\n },\n });\n\n await this.dispatch('FETCH_MARKUP', { markupId: markup.id });\n }\n\n async DELETE_MARKUP() {\n const { markup } = this.getters;\n\n if (!markup) return;\n\n await MarkupsApi.deleteMarkup({\n markupId: markup.id,\n config: {\n data: '',\n },\n });\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Markup',\n event_action: 'Delete Markup',\n event_label: `${markup.dataProviderName} | ${markup.danboId}`,\n d1d_client_id: markup.clientId,\n d1d_client_name: markup.clientName,\n d1d_brand_id: markup.brandId,\n d1d_brand_name: markup.brandName,\n d1d_campaign_id: markup.campaignId,\n d1d_campaign_name: markup.campaignName,\n d1d_danbo_id: markup.danboId,\n });\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useMarkupDetailsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { MarkupLight } from '@/models/Markup';\nimport { Placement } from '@/models/Placement';\nimport { Client } from '@/models/Client';\n\nimport {\n MarkupsApi,\n PlacementsApi,\n ClientsApi,\n} from '@/api';\n\nimport { FetchMarkupsResponse } from '@/api/modules/markups.api';\n\nimport markupDetails from './markupDetails';\n\nexport interface MarkupsSortFilters {\n by?: 'placementName' | 'clientName' | 'brandName' | 'campaignName' | 'dataProviderName';\n desc?: boolean;\n}\n\nexport interface MarkupsFilters {\n page: number;\n query: string;\n}\n\nconst initFilters = () => ({\n page: 1,\n query: '',\n});\n\nclass ModuleState {\n isShown = false;\n\n isLoading = false;\n\n clientsIsLoading = false;\n\n markups: MarkupLight[] = [];\n\n markupsTotalCount = 0;\n\n filters: MarkupsFilters = initFilters();\n\n sortFilters: MarkupsSortFilters = {};\n\n markupsHaveBeenFiltered = false;\n\n placement: Placement | null = null;\n\n clients: Client[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get clientsIsLoading() {\n return this.state.clientsIsLoading;\n }\n\n get markups() {\n return this.state.markups;\n }\n\n get markupsTotalCount() {\n return this.state.markupsTotalCount;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get maxPage() {\n return Math.ceil(this.getters.markupsTotalCount / 50);\n }\n\n get pageIsFirst() {\n return this.getters.filters.page <= 1;\n }\n\n get pageIsLast() {\n return this.getters.filters.page >= this.getters.maxPage;\n }\n\n get nextPage() {\n if (this.getters.pageIsLast) return this.getters.filters.page;\n\n return this.getters.filters.page + 1;\n }\n\n get sortFilters() {\n return this.state.sortFilters;\n }\n\n get markupsHaveBeenFiltered() {\n return this.state.markupsHaveBeenFiltered;\n }\n\n get fetchParams() {\n return {\n filter: this.getters.filters.query || undefined,\n page: this.getters.filters.page,\n sortBy: this.getters.sortFilters.by,\n sortDesc: this.getters.sortFilters.desc,\n };\n }\n\n get placement() {\n return this.state.placement;\n }\n\n get clients() {\n return this.state.clients;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_CLIENTS_IS_LOADING(value: boolean) {\n this.state.clientsIsLoading = value;\n }\n\n SET_MARKUPS(payload: FetchMarkupsResponse) {\n this.state.markups = payload.list;\n this.state.markupsTotalCount = payload.totalRows;\n }\n\n SET_PLACEMENT(payload: Placement) {\n this.state.placement = payload;\n }\n\n ADD_MARKUPS(payload: FetchMarkupsResponse) {\n this.state.markups = [...this.state.markups, ...payload.list];\n }\n\n SET_CLIENTS(payload: Client[]) {\n this.state.clients = payload;\n }\n\n SET_FILTERS(payload: MarkupsFilters) {\n this.state.filters = payload;\n }\n\n SET_SORT_FILTERS(payload: MarkupsSortFilters) {\n this.state.sortFilters = payload;\n }\n\n SET_MARKUPS_HAS_BEEN_FILTERED(value: boolean) {\n this.state.markupsHaveBeenFiltered = value;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH(payload?: { placementId?: string }) {\n this.commit('SET_IS_LOADING', true);\n\n const params = {\n placementId: payload?.placementId,\n ...this.getters.fetchParams,\n };\n\n try {\n const res = await MarkupsApi.fetchMarkups({ params });\n\n if (this.getters.pageIsFirst) {\n this.commit('SET_MARKUPS', res.data);\n } else {\n this.commit('ADD_MARKUPS', res.data);\n }\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async FETCH_PLACEMENT(payload: { placementId: string }) {\n const res = await PlacementsApi.fetchPlacement(payload.placementId);\n\n this.commit('SET_PLACEMENT', res.data);\n }\n\n async FETCH_CLIENTS() {\n this.commit('SET_CLIENTS_IS_LOADING', true);\n\n try {\n const res = await ClientsApi.fetchClients();\n\n this.commit('SET_CLIENTS', res.data);\n } finally {\n this.commit('SET_CLIENTS_IS_LOADING', false);\n }\n }\n\n UPDATE_FILTERS(filters: Partial) {\n const page = filters.page || 1;\n\n const newFilters = {\n ...this.getters.filters,\n ...filters,\n page,\n };\n\n this.commit('SET_FILTERS', newFilters);\n this.commit('SET_MARKUPS_HAS_BEEN_FILTERED', true);\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n this.commit('SET_MARKUPS_HAS_BEEN_FILTERED', false);\n }\n\n async TO_NEXT_PAGE() {\n await this.dispatch('UPDATE_FILTERS', { page: this.getters.nextPage });\n }\n\n async UPDATE_SORT_FILTERS(payload: Partial) {\n await this.dispatch('UPDATE_FILTERS', { page: 1 });\n\n const newPayload = {\n ...this.getters.sortFilters,\n ...payload,\n };\n\n this.commit('SET_SORT_FILTERS', newPayload);\n }\n}\n\nconst module = new Module({\n modules: {\n markupDetails,\n },\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const markupsStoreMapper = createMapper(module);\n\nexport const useMarkupsStore = createComposable(module);\n\nexport default module;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view',{key:_vm.$route.path})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Markups.vue?vue&type=template&id=48357858&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"markups-catalog\"},[(_vm.markups.length || _vm.markupsHaveBeenFiltered)?_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('MarkupsCatalogHeader',{attrs:{\"placement-id\":_vm.placementId,\"by-placement\":_vm.byPlacement},on:{\"open-modal\":_vm.openModal}})],1):_vm._e(),_vm._v(\" \"),(_vm.markups.length)?_c('div',{staticClass:\"markups-catalog__content\"},[_c('MarkupsTable',{attrs:{\"markups\":_vm.markups}})],1):_c('div',{staticClass:\"markups-catalog__stub\"},[(_vm.markupsIsLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.markupsHaveBeenFiltered ? 'Ничего не найдено :-(' : 'Наценки')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.markupsHaveBeenFiltered ? 'Попробуйте изменить запрос' : 'Пока не добавлено ни одной наценки')+\"\\n \")]),_vm._v(\" \"),(!_vm.markupsHaveBeenFiltered)?_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":function($event){return _vm.openModal({ slug: 'add', props: { placementId: _vm.placementId } })}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1):_vm._e()]],2),_vm._v(\" \"),_c('MarkupsAddModal',_vm._b({model:{value:(_vm.modalsMap.add.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.add, \"value\", $$v)},expression:\"modalsMap.add.value\"}},'MarkupsAddModal',_vm.modalsMap.add.props,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"markups-catalog-header d-flex align-center\"},[_c('div',{staticClass:\"mr-3\"},[_c('div',{staticClass:\"text-h5\",domProps:{\"textContent\":_vm._s(_vm.title)}})]),_vm._v(\" \"),_c('div',[_c('DBtnInline',{on:{\"click\":_vm.openAddModal},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Новая наценка\\n \")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"ml-auto\"},[_c('v-text-field',{staticClass:\"markups-catalog-header__search\",attrs:{\"label\":\"Поиск\",\"prepend-inner-icon\":\"mdi-magnify\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport { useMarkupsStore } from '../../store';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n props: {\n placementId: { type: String, default: '' },\n byPlacement: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n placementId,\n byPlacement,\n } = toRefs(props);\n\n const markupsStore = useMarkupsStore();\n\n const placement = computed(() => markupsStore.getters.placement);\n\n const title = computed(() => (byPlacement.value ? `Наценки ${placement.value?.siteName} (${placement.value?.danboId})` : 'Наценки'));\n\n const query = computed({\n get() {\n return markupsStore.getters.filters.query;\n },\n set: debounce((val: string) => {\n markupsStore.dispatch('UPDATE_FILTERS', { query: val });\n }, 300),\n });\n\n const openAddModal = () => {\n context.emit('open-modal', {\n slug: 'add',\n props: { placementId: placementId.value },\n });\n };\n\n return {\n title,\n query,\n openAddModal,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsCatalogHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsCatalogHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupsCatalogHeader.vue?vue&type=template&id=4f8843fd&scoped=true&\"\nimport script from \"./MarkupsCatalogHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupsCatalogHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MarkupsCatalogHeader.vue?vue&type=style&index=0&id=4f8843fd&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f8843fd\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({ref:\"rootRef\",staticClass:\"markups-table\",attrs:{\"headers\":_vm.headers,\"options\":_vm.options,\"items\":_vm.markups,\"items-per-page\":_vm.markups.length,\"server-items-length\":_vm.markups.length,\"loading\":_vm.markupsIsLoading,\"sticky-header\":\"\"},on:{\"update:options\":_vm.onUpdateOptions},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === _vm.markups.length - 5)?_c('MarkupsTableRow',{directives:[{name:\"intersect\",rawName:\"v-intersect\",value:(_vm.onIntersect),expression:\"onIntersect\"}],attrs:{\"markup\":item}}):_c('MarkupsTableRow',{attrs:{\"markup\":item}})]}},(_vm.markupsIsLoading)?{key:\"body-append\",fn:function(){return [_c('DTableRow',[_c('DTableCell',{attrs:{\"content-classes\":\"align-center\",\"colspan\":_vm.headers.length}},[_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"20\",\"indeterminate\":\"\"}})],1)],1)]},proxy:true}:null],null,true)},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"markups-table-row\"},[_c('DTableCell',{staticClass:\"body-2\",attrs:{\"to\":_vm.pathToMarkup}},[_c('div',{staticClass:\"markups-table-row__title\",domProps:{\"textContent\":_vm._s(_vm.markup.placementName)}})]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"subtitle-2 grey--text text--darken-4\"},[_vm._v(\"\\n \"+_vm._s(_vm.markup.clientName)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.markup.brandName)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.markup.campaignName)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.markup.dataProviderName)+\"\\n \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { MarkupLight } from '@/models/Markup';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n markup: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { markup } = toRefs(props);\n\n const pathToMarkup = computed(() => `/markups/${markup.value.id}`);\n\n return {\n pathToMarkup,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupsTableRow.vue?vue&type=template&id=2ec3cfe4&scoped=true&\"\nimport script from \"./MarkupsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupsTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MarkupsTableRow.vue?vue&type=style&index=0&id=2ec3cfe4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2ec3cfe4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed, onMounted, nextTick, PropType, ComponentInstance, watch } from '@vue/composition-api';\n\nimport { debounce, isEqual } from 'lodash';\n\nimport {\n DTable,\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { MarkupLight } from '@/models/Markup';\n\nimport MarkupsTableRow from './MarkupsTableRow.vue';\n\nimport { useMarkupsStore, MarkupsSortFilters } from '../../../store';\n\nexport default defineComponent({\n components: {\n DTable,\n DTableCell,\n DTableRow,\n MarkupsTableRow,\n },\n props: {\n markups: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const markupStore = useMarkupsStore();\n\n const headers: {\n class: string;\n text: string;\n value: MarkupsSortFilters['by'];\n }[] = [\n {\n class: 'caption',\n text: 'Размещение',\n value: 'placementName',\n },\n {\n class: 'caption',\n text: 'Клиент',\n value: 'clientName',\n },\n {\n class: 'caption',\n text: 'Бренд',\n value: 'brandName',\n },\n {\n class: 'caption',\n text: 'Кампания',\n value: 'campaignName',\n },\n {\n class: 'caption',\n text: 'Площадка',\n value: 'dataProviderName',\n },\n ];\n\n const rootRef = ref(null);\n const rootEl = ref(null);\n\n const markupsIsLoading = computed(() => markupStore.getters.isLoading);\n const pageIsFirst = computed(() => markupStore.getters.pageIsFirst);\n const pageIsLast = computed(() => markupStore.getters.pageIsLast);\n\n // TODO: это точно надо переписать\n // Проблема в том, что при сбросе страницы скролл враппера не изменяется и он пытается проскролиться вниз вызывая загрузку следующих страниц\n watch(markupsIsLoading, (val) => {\n if (val || !pageIsFirst.value || !rootEl.value) return;\n\n const wrapperEl = rootEl.value.querySelector('.v-data-table__wrapper');\n\n if (!wrapperEl) return;\n\n wrapperEl.scrollTop = 0;\n });\n\n onMounted(async () => {\n await nextTick();\n\n if (!rootRef.value) return;\n\n rootEl.value = rootRef.value.$el as HTMLElement;\n });\n\n const onIntersect = (entries: unknown, observer: unknown, isIntersecting: boolean) => {\n if (pageIsLast.value || markupsIsLoading.value || !isIntersecting) return;\n\n markupStore.dispatch('TO_NEXT_PAGE');\n };\n\n const options = ref<{\n sortBy: MarkupsSortFilters['by'][];\n sortDesc: boolean[];\n }>({\n sortBy: markupStore.getters.sortFilters.by ? [markupStore.getters.sortFilters.by] : [],\n sortDesc: markupStore.getters.sortFilters.desc ? [markupStore.getters.sortFilters.desc] : [],\n });\n\n watch(options, debounce((newVal, oldVal) => {\n if (isEqual(newVal.sortBy, oldVal.sortBy) && isEqual(newVal.sortDesc, oldVal.sortDesc)) return;\n\n markupStore.dispatch('UPDATE_SORT_FILTERS', {\n by: newVal.sortBy[0],\n desc: newVal.sortDesc[0],\n });\n }, 300));\n\n const onUpdateOptions = (payload: { sortBy: MarkupsSortFilters['by'][]; sortDesc: boolean[] }) => {\n options.value = payload;\n };\n\n return {\n headers,\n rootRef,\n markupsIsLoading,\n options,\n onIntersect,\n onUpdateOptions,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupsTable.vue?vue&type=template&id=aab6543e&\"\nimport script from \"./MarkupsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"markups-add-modal\",attrs:{\"width\":\"606\",\"title\":\"Новая наценка\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('div',{staticClass:\"markups-add-modal__block d-flex px-6 mb-6\"},[_c('div',{staticClass:\"markups-add-modal__field flex-grow-1 mr-4\"},[_c('DAutocomplete',{staticClass:\"markups-add-modal__select\",attrs:{\"label\":\"Клиент\",\"items\":_vm.clients,\"item-value\":\"id\",\"item-text\":\"name\",\"return-object\":\"\",\"loading\":_vm.clientsIsLoading},model:{value:(_vm.currentClient),callback:function ($$v) {_vm.currentClient=$$v},expression:\"currentClient\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"markups-add-modal__field flex-grow-1\"},[_c('DAutocomplete',{staticClass:\"markups-add-modal__select\",attrs:{\"label\":\"Бренд\",\"items\":_vm.brands,\"item-value\":\"id\",\"item-text\":\"name\",\"return-object\":\"\",\"disabled\":!_vm.currentClient},model:{value:(_vm.currentBrand),callback:function ($$v) {_vm.currentBrand=$$v},expression:\"currentBrand\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"markups-add-modal__block markups-add-modal__block--grey pa-6 mb-6\"},[_c('div',{staticClass:\"markups-add-modal__field mb-4\"},[_c('DAutocomplete',{staticClass:\"markups-add-modal__select\",attrs:{\"label\":\"Кампания\",\"items\":_vm.campaigns,\"item-value\":\"id\",\"item-text\":\"name\",\"return-object\":\"\",\"loading\":_vm.campaignsIsLoading,\"disabled\":!_vm.currentBrand},model:{value:(_vm.currentCampaign),callback:function ($$v) {_vm.currentCampaign=$$v},expression:\"currentCampaign\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"markups-add-modal__field mb-4\"},[_c('DAutocomplete',{staticClass:\"markups-add-modal__select\",attrs:{\"label\":\"Размещение\",\"items\":_vm.placementSelectItems,\"loading\":_vm.placementsIsLoading,\"disabled\":!_vm.currentCampaign},model:{value:(_vm.currentPlacementId),callback:function ($$v) {_vm.currentPlacementId=$$v},expression:\"currentPlacementId\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"markups-add-modal__field\"},[_c('DAutocomplete',{staticClass:\"markups-add-modal__select\",attrs:{\"label\":\"Площадка\",\"items\":_vm.dataProviders,\"item-value\":\"id\",\"item-text\":\"name\",\"return-object\":\"\",\"loading\":_vm.dataProvidersIsLoading},model:{value:(_vm.currentDataProvider),callback:function ($$v) {_vm.currentDataProvider=$$v},expression:\"currentDataProvider\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"markups-add-modal__block d-flex px-6 mb-6\"},[_c('div',{staticClass:\"markups-add-modal__field markups-add-modal__field--width-xs mr-4\"},[_c('DDatePickerTextField',{attrs:{\"text-field-classes\":\"markups-add-modal__date-picker-text-field\",\"label\":\"Дата начала\"},model:{value:(_vm.currentDate),callback:function ($$v) {_vm.currentDate=$$v},expression:\"currentDate\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"markups-add-modal__field markups-add-modal__field--width-xs\"},[_c('v-text-field',{staticClass:\"markups-add-modal__text-field\",attrs:{\"label\":\"Коэффицент\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.currentMultiplier),callback:function ($$v) {_vm.currentMultiplier=$$v},expression:\"currentMultiplier\"}})],1)]),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"markups-add-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"markups-add-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"markups-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, PropType, toRefs, ref, computed, watch } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport {\n DAutocomplete,\n DDatePickerTextField,\n} from '@shared/druid-kit';\n\nimport useRouter from '@/packages/hooks/useRouter';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport {\n CampaignsApi,\n PlacementsApi,\n DataProvidersApi,\n MarkupsApi,\n} from '@/api';\n\nimport { Client } from '@/models/Client';\nimport { Brand } from '@/models/Brand';\nimport { Campaign } from '@/models/Campaign';\nimport { Placement } from '@/models/Placement';\nimport { DataProvider } from '@/models/DataProvider';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useMarkupsStore } from '../../store';\n\nexport default defineComponent({\n components: {\n DAutocomplete,\n DDatePickerTextField,\n AppModal,\n },\n props: {\n value: { type: Boolean, default: false },\n placementId: { type: String as PropType, default: null },\n },\n setup(props, context) {\n const {\n value,\n placementId,\n } = toRefs(props);\n\n const router = useRouter(context);\n\n const markupsStore = useMarkupsStore();\n\n const currentClient = ref(null);\n const clients = computed(() => markupsStore.getters.clients);\n const clientsIsLoading = computed(() => markupsStore.getters.clientsIsLoading);\n const placement = computed(() => markupsStore.getters.placement);\n\n const currentBrand = ref(null);\n const brands = computed(() => currentClient.value?.brands || []);\n\n watch(currentClient, () => {\n currentBrand.value = currentClient.value?.brands.find((brand) => brand.id === placement.value?.brandId) ?? null;\n });\n\n const currentCampaign = ref(null);\n const campaigns = ref([]);\n const campaignsIsLoading = ref(false);\n\n const fetchCampaigns = async () => {\n if (!currentBrand.value) {\n campaigns.value = [];\n\n return;\n }\n\n campaignsIsLoading.value = true;\n\n try {\n const res = await CampaignsApi.fetchCampaignsByBrand({ brandId: currentBrand.value.id });\n\n campaigns.value = res.data.campaigns;\n } finally {\n campaignsIsLoading.value = false;\n }\n };\n\n watch(currentBrand, async () => {\n await fetchCampaigns();\n\n currentCampaign.value = campaigns.value.find((campaign) => campaign.id === placement.value?.campaignId) ?? null;\n });\n\n const currentPlacementId = ref(null);\n const placements = ref([]);\n const placementsIsLoading = ref(false);\n\n const currentPlacement = computed(() => placements.value.find(({ id }) => id === currentPlacementId.value));\n\n const placementSelectItems = computed(() => placements.value.map(({ siteName, danboId, id }) => ({\n text: `${siteName} ${danboId}`,\n value: id,\n })));\n\n const fetchPlacements = async () => {\n if (!currentCampaign.value) {\n placements.value = [];\n\n return;\n }\n\n placementsIsLoading.value = true;\n\n try {\n const res = await PlacementsApi.fetchPlacementsByCampaign(currentCampaign.value.id);\n\n placements.value = res.data;\n } finally {\n placementsIsLoading.value = false;\n }\n };\n\n watch(currentCampaign, async () => {\n await fetchPlacements();\n\n currentPlacementId.value = placements.value.find(({ id }) => id === placement.value?.id)?.id ?? null;\n });\n\n const currentDataProvider = ref(null);\n const rawDataProviders = ref([]);\n const dataProvidersIsLoading = ref(false);\n\n const dataProviders = computed(() => {\n const filteredDataProviders = rawDataProviders.value.filter((dataProvider) => dataProvider.type.id === 'Placement');\n\n return filteredDataProviders.sort((dataProviderA, dataProviderB) => dataProviderA.name.localeCompare(dataProviderB.name));\n });\n\n const fetchDataProviders = async () => {\n dataProvidersIsLoading.value = true;\n\n try {\n const res = await DataProvidersApi.fetchDataProviders();\n\n rawDataProviders.value = res.data;\n } finally {\n dataProvidersIsLoading.value = false;\n }\n };\n\n const currentDate = ref(moment().format('YYYY-MM-DD'));\n\n const currentMultiplier = ref(1);\n\n const newMarkup = computed(() => {\n if (!currentClient.value || !currentBrand.value || !currentCampaign.value || !currentPlacementId.value || !currentDataProvider.value || !currentDate.value || !currentMultiplier.value) return null;\n\n return {\n clientId: currentClient.value.id,\n brandId: currentBrand.value.id,\n campaignId: currentCampaign.value.id,\n placementId: currentPlacementId.value,\n dataProviderId: currentDataProvider.value.id,\n startDate: moment.utc(currentDate.value).toISOString(),\n value: currentMultiplier.value,\n };\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => saving.value || !newMarkup.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newMarkup.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n const res = await MarkupsApi.setMarkup(newMarkup.value);\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Markup',\n event_action: 'Add Markup',\n event_label: `${currentDataProvider.value?.name} | ${currentPlacement.value?.danboId}`,\n d1d_client_id: currentClient.value?.id,\n d1d_client_name: currentClient.value?.name,\n d1d_brand_id: currentBrand.value?.id,\n d1d_brand_name: currentBrand.value?.name,\n d1d_campaign_id: currentCampaign.value?.id,\n d1d_campaign_name: currentCampaign.value?.name,\n d1d_danbo_id: currentPlacement.value?.danboId,\n });\n\n router.push(`/markups/${res.data.id}`, close, close);\n } catch (error) {\n if (!isError(error)) return;\n\n const messages = {\n 403: 'Недостаточно прав. Обратитесь к администратору',\n };\n\n if (isAxiosError(error)) {\n const message = error.response?.data?.message || messages[error?.response?.status || ''];\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: [message || 'Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n const init = async () => {\n await Promise.all([\n markupsStore.dispatch('FETCH_CLIENTS'),\n fetchDataProviders(),\n ]);\n\n if (placementId.value) {\n currentClient.value = clients.value.find((client) => client.id === placement.value?.clientId) ?? null;\n }\n };\n\n watch(value, (val) => {\n if (!val) return;\n\n currentClient.value = null;\n currentDataProvider.value = null;\n currentDate.value = moment().format('YYYY-MM-DD');\n currentMultiplier.value = 1;\n\n init();\n });\n\n return {\n currentClient,\n clients,\n clientsIsLoading,\n //\n currentBrand,\n brands,\n //\n currentCampaign,\n campaigns,\n campaignsIsLoading,\n //\n currentPlacementId,\n placements,\n placementsIsLoading,\n placementSelectItems,\n //\n currentDataProvider,\n dataProviders,\n dataProvidersIsLoading,\n //\n currentDate,\n //\n currentMultiplier,\n //\n saveBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsAddModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsAddModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupsAddModal.vue?vue&type=template&id=e885ce2a&scoped=true&\"\nimport script from \"./MarkupsAddModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupsAddModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MarkupsAddModal.vue?vue&type=style&index=0&id=e885ce2a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e885ce2a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport useMeta from '@/composables/meta/useMeta';\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport useModals from '@/composables/useModals';\n\nimport MarkupsCatalogHeader from '../components/MarkupsCatalog/MarkupsCatalogHeader.vue';\nimport MarkupsTable from '../components/MarkupsCatalog/MarkupsTable/MarkupsTable.vue';\nimport MarkupsAddModal from '../components/modals/MarkupsAddModal.vue';\n\nimport { useMarkupsStore } from '../store';\n\nexport default defineComponent({\n components: {\n AppView,\n MarkupsCatalogHeader,\n MarkupsTable,\n MarkupsAddModal,\n },\n props: {\n placementId: { type: String, default: '' },\n },\n setup(props) {\n const { placementId } = toRefs(props);\n\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const {\n modalsMap,\n openModal,\n } = useModals(['add']);\n\n const markupStore = useMarkupsStore();\n\n const byPlacement = computed(() => !!placementId.value);\n\n const markups = computed(() => markupStore.getters.markups);\n const markupsIsLoading = computed(() => markupStore.getters.isLoading);\n const markupsParams = computed(() => markupStore.getters.fetchParams);\n const markupsHaveBeenFiltered = computed(() => markupStore.getters.markupsHaveBeenFiltered);\n const markupsPlacement = computed(() => markupStore.getters.placement);\n\n const pageMeta = computed(() => ({\n title: (markupsPlacement.value ? `Наценки размещения • ${markupsPlacement.value.siteName}` : 'Наценки'),\n }));\n\n useMeta(pageMeta);\n\n const fetch = async () => {\n await markupStore.dispatch('FETCH', { placementId: placementId.value });\n };\n\n watch(markupsParams, () => {\n if (!markupsHaveBeenFiltered.value) return;\n\n fetch();\n });\n\n const init = async () => {\n updateIsLoading(true);\n markupStore.dispatch('RESET_FILTERS');\n\n try {\n if (placementId.value) {\n await markupStore.dispatch('FETCH_PLACEMENT', { placementId: placementId.value });\n\n if (!markupsPlacement.value?.hasMarkup) {\n openModal({ slug: 'add', props: { placementId: placementId.value } });\n }\n }\n\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n init();\n\n return {\n modalsMap,\n byPlacement,\n markups,\n markupsIsLoading,\n markupsHaveBeenFiltered,\n openModal,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsCatalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsCatalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupsCatalog.vue?vue&type=template&id=6a3434fa&scoped=true&\"\nimport script from \"./MarkupsCatalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupsCatalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MarkupsCatalog.vue?vue&type=style&index=0&id=6a3434fa&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6a3434fa\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"markups-catalog-loader\"},[_c('v-skeleton-loader',{staticClass:\"markups-catalog-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('TableLoader',{staticClass:\"markups-catalog-loader__table\",attrs:{\"columns\":5,\"rows\":4}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsCatalogLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsCatalogLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MarkupsCatalogLoader.vue?vue&type=template&id=224349d6&scoped=true&\"\nimport script from \"./MarkupsCatalogLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./MarkupsCatalogLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MarkupsCatalogLoader.vue?vue&type=style&index=0&id=224349d6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"224349d6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"markup-details\"},[(!_vm.isLoading)?_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('MarkupDetailsHeader',{attrs:{\"markup\":_vm.markup}})],1):_vm._e(),_vm._v(\" \"),(!_vm.isLoading)?_c('div',{staticClass:\"markup-details__content\"},[_c('MarkupDetailsInfo',{staticClass:\"mb-6\",attrs:{\"markup\":_vm.markup}}),_vm._v(\" \"),_c('MarkupPeriodsTable',{attrs:{\"markup\":_vm.markup}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"markups-catalog-header d-flex align-baseline\"},[_c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport { DBreadcrumbs } from '@shared/druid-kit';\n\nimport { Markup } from '@/models/Markup';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n },\n props: {\n markup: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { markup } = toRefs(props);\n\n const breadcrumbs = computed(() => [\n {\n label: 'Наценки',\n path: '/markups',\n },\n {\n label: markup.value.placementName,\n path: `/markups/${markup.value.id}`,\n },\n ]);\n\n return {\n breadcrumbs,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetailsHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetailsHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupDetailsHeader.vue?vue&type=template&id=3e7a5608&\"\nimport script from \"./MarkupDetailsHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupDetailsHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"markup-details-info\"},[_c('div',{staticClass:\"markup-details-info__descr px-6 pt-4 pb-3\"},_vm._l((_vm.fields),function(field,idx){return _c('div',{key:idx,staticClass:\"markup-details-info__field mb-2\"},[_c('div',{staticClass:\"markup-details-info__field-wrapper\"},[_c('div',{staticClass:\"markup-details-info__field-title mr-2\"},[_c('span',{staticClass:\"body-2 font-weight-bold\",domProps:{\"textContent\":_vm._s(field.label)}})]),_vm._v(\" \"),_c('div',{staticClass:\"markup-details-info__field-content\"},[(field.to)?_c('DBtnInline',{staticClass:\"body-2\",attrs:{\"to\":field.to}},[_vm._v(\"\\n \"+_vm._s(field.text)+\"\\n \")]):_c('span',{staticClass:\"body-2\",domProps:{\"textContent\":_vm._s(field.text || field.placeholder || '—')}})],1)])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport { Markup } from '@/models/Markup';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n props: {\n markup: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { markup } = toRefs(props);\n\n const fields = computed(() => [\n {\n label: 'Клиент',\n to: `/clients/${markup.value.clientId}`,\n text: markup.value.clientName,\n },\n {\n label: 'Бренд',\n to: `/clients/${markup.value.clientId}/?brandId=${markup.value.brandId}`,\n text: markup.value.brandName,\n },\n {\n label: 'Кампания',\n to: `/campaigns/${markup.value.campaignId}`,\n text: markup.value.campaignName,\n },\n {\n label: 'Площадка',\n text: markup.value.dataProviderName,\n },\n {\n label: 'Плановый период',\n text: `${moment(markup.value.placementStartDate).format('DD.MM.YYYY')} — ${moment(markup.value.placementEndDate).format('DD.MM.YYYY')}`,\n },\n {\n label: 'Период сбора данных',\n text: `${moment(markup.value.statisticsMinDate).format('DD.MM.YYYY')} — ${moment(markup.value.statisticsMaxDate).format('DD.MM.YYYY')}`,\n },\n ]);\n\n return {\n fields,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetailsInfo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetailsInfo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupDetailsInfo.vue?vue&type=template&id=28928ab8&scoped=true&\"\nimport script from \"./MarkupDetailsInfo.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupDetailsInfo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MarkupDetailsInfo.vue?vue&type=style&index=0&id=28928ab8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28928ab8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"markup-periods-table d-flex\"},[_c('DTable',{attrs:{\"headers\":_vm.headers,\"items\":_vm.markup.markupsWithCost,\"items-per-page\":_vm.markup.markupsWithCost.length},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('div',{staticClass:\"markup-periods-table__header d-flex align-baseline pl-6 mb-4\"},[_c('div',{staticClass:\"mr-4\"},[_c('div',{staticClass:\"text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Наценки размещения\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center ml-auto\"},[_c('v-btn',{staticClass:\"markup-periods__btn\",attrs:{\"color\":\"primary\",\"outlined\":\"\",\"rounded\":\"\",\"small\":\"\"},on:{\"click\":_vm.openAddModal}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"caption\"},[_vm._v(\"Новый период наценки\")])],1)],1)])]},proxy:true},{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [_c('MarkupPeriodsTableRow',{attrs:{\"period\":item,\"index\":index}})]}},{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"markup-periods-table__footer d-flex align-baseline px-6 py-4\"},[_c('DBtnInline',{staticClass:\"ml-auto mr-2 caption\",on:{\"click\":_vm.deleteMarkup},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-icon',{staticClass:\"ml-1\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])]},proxy:true}])},[_vm._v(\"\\n Удалить все\\n \")])],1),_vm._v(\" \"),_c('MarkupPeriodsTableAddModal',{model:{value:(_vm.modalsMap.add),callback:function ($$v) {_vm.$set(_vm.modalsMap, \"add\", $$v)},expression:\"modalsMap.add\"}})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',[_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.startDate)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"subtitle-2 grey--text text--darken-4\"},[_vm._v(\"\\n \"+_vm._s(_vm.multiplier)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.rawCost)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.cost)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_c('v-btn',{attrs:{\"size\":\"18\",\"small\":\"\",\"icon\":\"\",\"loading\":_vm.deletion},on:{\"click\":_vm.deletePeriod}},[_c('v-icon',[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, PropType } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport numatter from '@/packages/numatter';\nimport useRouter from '@/packages/hooks/useRouter';\n\nimport modally from '@/services/modally';\nimport notify from '@/services/notify';\n\nimport { Markup } from '@/models/Markup';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useMarkupDetailsStore } from '../../../store/markupDetails';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n period: { type: Object as PropType, required: true },\n index: { type: Number, required: true },\n },\n setup(props, context) {\n const {\n period,\n index,\n } = toRefs(props);\n\n const router = useRouter(context);\n\n const markupDetailsStore = useMarkupDetailsStore();\n\n const markupPeriods = computed(() => markupDetailsStore.getters.markupPeriods);\n\n const isOnlyOne = computed(() => markupPeriods.value.length <= 1);\n\n const startDate = computed(() => moment.utc(period.value.startDate).format('DD.MM.YYYY'));\n const multiplier = computed(() => numatter.format(period.value.value, '0,0[.]0000'));\n const rawCost = computed(() => numatter.format(period.value.rawCost, '0,0[.]00'));\n const cost = computed(() => numatter.format(period.value.cost, '0,0[.]00'));\n\n const deletion = ref(false);\n\n const deletePeriod = async () => {\n const result = await modally.show({\n title: isOnlyOne.value\n ? 'Удалить последний период?'\n : `Удалить период от ${startDate.value}?`,\n content: isOnlyOne.value\n ? 'Наценка будет удалена.\\nКоэффицент 1 будет использоваться по умолчанию\\nна весь период размещения.'\n : 'Будет применен предыдущий коэффицент.\\nЧтобы восстановить период, создайте его заново.',\n buttons: [\n {\n props: {\n text: 'Удалить',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) return;\n\n deletion.value = true;\n\n try {\n if (isOnlyOne.value) {\n await markupDetailsStore.dispatch('DELETE_MARKUP', {\n index: index.value,\n });\n\n const onPush = () => notify.push({\n text: 'Наценка удалена',\n position: ['bottom', 'center'],\n status: 'positive',\n });\n\n router.push('/markups', onPush, onPush);\n } else {\n await markupDetailsStore.dispatch('DELETE_MARKUP_PERIOD', {\n index: index.value,\n });\n\n notify.push({\n text: 'Период наценки удален',\n position: ['bottom', 'center'],\n status: 'positive',\n });\n }\n } catch (e) {\n if (!isError(e) || !isAxiosError(e)) return;\n\n const message = e.response?.data?.message;\n\n if (message) {\n modally.show({ status: 'error', title: 'Ошибка при удалении периода', content: message });\n } else {\n throw e;\n }\n } finally {\n deletion.value = false;\n }\n };\n\n return {\n startDate,\n multiplier,\n rawCost,\n cost,\n deletion,\n deletePeriod,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupPeriodsTableRow.vue?vue&type=template&id=1c020d55&\"\nimport script from \"./MarkupPeriodsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupPeriodsTableRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"markup-periods-table-add-modal\",attrs:{\"width\":\"368\",\"title\":\"Наценка\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('div',{staticClass:\"markup-periods-table-add-modal__block d-flex px-6 mb-6\"},[_c('div',{staticClass:\"markup-periods-table-add-modal__field markup-periods-table-add-modal__field--width-xs mr-4\"},[_c('DDatePickerTextField',{attrs:{\"text-field-classes\":\"markup-periods-table-add-modal__date-picker-text-field\",\"label\":\"Дата начала\"},model:{value:(_vm.currentStartDate),callback:function ($$v) {_vm.currentStartDate=$$v},expression:\"currentStartDate\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"markup-periods-table-add-modal__field markup-periods-table-add-modal__field--width-xs\"},[_c('v-text-field',{staticClass:\"markup-periods-table-add-modal__text-field\",attrs:{\"label\":\"Коэффицент\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.currentMultiplier),callback:function ($$v) {_vm.currentMultiplier=$$v},expression:\"currentMultiplier\"}})],1)]),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"markup-periods-table-add-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"markup-periods-table-add-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"markup-periods-table-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport { DDatePickerTextField } from '@shared/druid-kit';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport notify from '@/services/notify';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useMarkupDetailsStore } from '../../../../store/markupDetails';\n\nexport default defineComponent({\n components: {\n AppModal,\n DDatePickerTextField,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const markupDetailsStore = useMarkupDetailsStore();\n\n const maxMarkupPeriodStartDate = computed(() => markupDetailsStore.getters.maxMarkupPeriodStartDate);\n\n const currentStartDate = ref(moment(maxMarkupPeriodStartDate.value).add(1, 'day').format('YYYY-MM-DD'));\n\n const currentMultiplier = ref(1);\n\n const newMarkupPeriod = computed(() => {\n if (!currentStartDate.value || !currentMultiplier.value) return null;\n\n return {\n startDate: moment.utc(currentStartDate.value).toISOString(),\n multiplier: currentMultiplier.value,\n };\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => saving.value || !newMarkupPeriod.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newMarkupPeriod.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await markupDetailsStore.dispatch('ADD_MARKUP_PERIOD', newMarkupPeriod.value);\n\n notify.push({\n text: 'Наценка добавлена',\n position: ['bottom', 'center'],\n status: 'positive',\n });\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const message = error.response?.data?.message;\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: [message],\n };\n } else {\n saveError.value = {\n title: 'Произошла ошибка. Обратитесь к администратору',\n messages: [],\n };\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n }\n } finally {\n saving.value = false;\n }\n };\n\n watch(value, (val) => {\n if (!val) return;\n\n currentStartDate.value = moment(maxMarkupPeriodStartDate.value).add(1, 'day').format('YYYY-MM-DD');\n currentMultiplier.value = 1;\n });\n\n return {\n currentStartDate,\n currentMultiplier,\n saveBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableAddModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableAddModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupPeriodsTableAddModal.vue?vue&type=template&id=83941e3e&scoped=true&\"\nimport script from \"./MarkupPeriodsTableAddModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupPeriodsTableAddModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MarkupPeriodsTableAddModal.vue?vue&type=style&index=0&id=83941e3e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"83941e3e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, PropType } from '@vue/composition-api';\n\nimport {\n DBtnInline,\n DTable,\n} from '@shared/druid-kit';\n\nimport useRouter from '@/packages/hooks/useRouter';\n\nimport modally from '@/services/modally';\nimport notify from '@/services/notify';\n\nimport { Markup } from '@/models/Markup';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport MarkupPeriodsTableRow from './MarkupPeriodsTableRow.vue';\n\nimport MarkupPeriodsTableAddModal from './modals/MarkupPeriodsTableAddModal.vue';\n\nimport { useMarkupDetailsStore } from '../../../store/markupDetails';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n DTable,\n MarkupPeriodsTableRow,\n MarkupPeriodsTableAddModal,\n },\n props: {\n markup: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const router = useRouter(context);\n\n const markupDetailsStore = useMarkupDetailsStore();\n\n const headers = [\n {\n class: 'caption',\n text: 'Дата начала',\n value: 'startDate',\n },\n {\n class: 'caption',\n text: 'Коэффицент',\n value: 'value',\n },\n {\n class: 'caption',\n text: 'Бюджет без наценки',\n value: 'rawCost',\n },\n {\n class: 'caption',\n text: 'Бюджет с наценкой',\n value: 'cost',\n },\n {\n sortable: false,\n },\n ];\n\n const modalsMap = ref({\n add: false,\n });\n\n const openModal = (modalSlug: keyof typeof modalsMap.value) => {\n modalsMap.value[modalSlug] = true;\n };\n\n const openAddModal = () => {\n openModal('add');\n };\n\n const deleting = ref(false);\n\n const deleteMarkup = async () => {\n const result = await modally.show({\n title: 'Удалить все периоды?',\n content: 'Наценка будет удалена.\\nКоэффицент 1 будет использоваться по умолчанию\\nна весь период размещения.',\n buttons: [\n {\n props: {\n text: 'Удалить все',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) return;\n\n deleting.value = true;\n\n try {\n await markupDetailsStore.dispatch('DELETE_MARKUP');\n\n const onPush = () => notify.push({\n text: 'Наценка удалена',\n position: ['bottom', 'center'],\n status: 'positive',\n });\n\n router.push('/markups', onPush, onPush);\n } catch (e) {\n if (!isError(e) || !isAxiosError(e)) return;\n\n const message = e.response?.data?.message;\n\n if (message) {\n modally.show({ status: 'error', title: 'Ошибка при удалении наценки', content: message });\n } else {\n throw e;\n }\n } finally {\n deleting.value = false;\n }\n };\n\n return {\n headers,\n modalsMap,\n openAddModal,\n deleteMarkup,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsPeriodsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupsPeriodsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupsPeriodsTable.vue?vue&type=template&id=0f32799a&scoped=true&\"\nimport script from \"./MarkupsPeriodsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupsPeriodsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MarkupsPeriodsTable.vue?vue&type=style&index=0&id=0f32799a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f32799a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport useMeta from '@/composables/meta/useMeta';\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport MarkupDetailsHeader from '../components/MarkupDetails/MarkupDetailsHeader.vue';\nimport MarkupDetailsInfo from '../components/MarkupDetails/MarkupDetailsInfo.vue';\n\nimport MarkupPeriodsTable from '../components/MarkupDetails/MarkupPeriodsTable/MarkupsPeriodsTable.vue';\n\nimport { useMarkupDetailsStore } from '../store/markupDetails';\n\nexport default defineComponent({\n components: {\n AppView,\n MarkupDetailsHeader,\n MarkupDetailsInfo,\n MarkupPeriodsTable,\n },\n props: {\n markupId: { type: String, required: true },\n },\n setup(props) {\n const { markupId } = toRefs(props);\n\n const {\n isLoading,\n updateIsLoading,\n } = useLayoutLoadingStatus();\n\n const markupDetailsStore = useMarkupDetailsStore();\n\n const markup = computed(() => markupDetailsStore.getters.markup);\n\n const pageMeta = computed(() => ({ title: markup.value ? `Наценки • ${markup.value.placementName}` : 'Наценки' }));\n\n useMeta(pageMeta);\n\n const init = async () => {\n updateIsLoading(true);\n\n try {\n await markupDetailsStore.dispatch('FETCH_MARKUP', { markupId: markupId.value });\n } finally {\n updateIsLoading(false);\n }\n };\n\n init();\n\n return {\n isLoading,\n markup,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MarkupDetails.vue?vue&type=template&id=268c1ba4&scoped=true&\"\nimport script from \"./MarkupDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./MarkupDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MarkupDetails.vue?vue&type=style&index=0&id=268c1ba4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"268c1ba4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"markup-details-loader\"},[_c('v-skeleton-loader',{staticClass:\"markup-details-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('div',{staticClass:\"markup-details-loader__settings\"},[_c('div',{staticClass:\"markup-details-loader__settings-list-wrapper\"},[_c('ListLoader',{staticClass:\"markup-details-loader__settings-list-content\",attrs:{\"without-title\":\"\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"markup-details-loader__settings-list-wrapper\"},[_c('ListLoader',{staticClass:\"markup-details-loader__settings-list-content\",attrs:{\"without-title\":\"\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"markup-details-loader__table\"},[_c('v-skeleton-loader',{staticClass:\"markup-details-loader__table-title\",attrs:{\"type\":\"text\"}}),_vm._v(\" \"),_c('TableLoader',{attrs:{\"rows\":3}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetailsLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetailsLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MarkupDetailsLoader.vue?vue&type=template&id=36e922ac&scoped=true&\"\nimport script from \"./MarkupDetailsLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./MarkupDetailsLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MarkupDetailsLoader.vue?vue&type=style&index=0&id=36e922ac&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36e922ac\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport Markups from '../views/Markups.vue';\n\nimport MarkupsCatalog from '../views/MarkupsCatalog.vue';\nimport MarkupsCatalogLoader from '../components/MarkupsCatalog/MarkupsCatalogLoader.vue';\n\nimport MarkupDetails from '../views/MarkupDetails.vue';\nimport MarkupDetailsLoader from '../components/MarkupDetails/MarkupDetailsLoader.vue';\n\nconst routes: AppRouteConfig[] = [\n {\n path: '/markups',\n component: Markups,\n meta: {\n group: 'main',\n title: 'Наценки',\n icon: 'mdi-currency-rub',\n order: 3,\n permission: 'markups_edit',\n },\n children: [\n {\n name: 'markups',\n path: '',\n meta: {\n loader: MarkupsCatalogLoader,\n header: {\n sticky: true,\n },\n },\n component: MarkupsCatalog,\n },\n {\n name: 'markups-by-placement',\n path: 'placement/:placementId',\n meta: {\n loader: MarkupsCatalogLoader,\n },\n props: true,\n component: MarkupsCatalog,\n },\n {\n name: 'markup',\n path: ':markupId',\n meta: {\n loader: MarkupDetailsLoader,\n },\n props: true,\n component: MarkupDetails,\n },\n ],\n },\n];\n\nexport default routes;\n","import { registerModule } from 'vuex-smart-module';\n\nimport ModuleInit from '@/models/ModuleInit';\n\nimport store from './store';\nimport routes from './routes';\n\nconst moduleInit: ModuleInit = (ctx) => {\n registerModule(ctx.store, ['markups'], 'markups', store);\n\n ctx.store.dispatch('navigation/ADD_ROUTES', routes);\n ctx.router.addRoutes(routes);\n};\n\nexport default moduleInit;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"fact-upload\"},[_c('div',{staticClass:\"fact-upload__descr body-2\"},[_vm._v(\"\\n Это инструмент загрузки данных для площадок, у которых нет API (RBC.ru, vesti.ru и прочие).\\n Он сделан как файл для заполнения в формате Excel и будет отражать реальную ситуацию от подрядчика,\\n если данные адсервинг систем (Adriver, DCM, Weborama, Sizmek) вас/клиента не устраивает.\\n \")]),_vm._v(\" \"),_c('FactUploadWorkSteps'),_vm._v(\" \"),_c('FactUploadAfter')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"fact-upload-work-steps\"},[_c('div',{staticClass:\"px-6 text-h6 grey--text text--darken-3\"},[_vm._v(\"\\n Как это работает\\n \")]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('li',{staticClass:\"pt-4 pb-6 px-0 white\"},[_c('div',{staticClass:\"px-6 mb-4\"},[_vm._v(\"\\n 3. Загрузите заполненный файл.\\n \")]),_vm._v(\" \"),(_vm.uploadIsSuccess)?_c('div',{staticClass:\"fact-upload-work-steps__success-plate\"},[_c('v-icon',{staticClass:\"mb-2\",attrs:{\"color\":\"success\",\"size\":\"20\"}},[_vm._v(\"\\n mdi-check-circle-outline\\n \")]),_vm._v(\" \"),_vm._m(2)],1):_vm._e(),_vm._v(\" \"),(_vm.uploadIsError)?_c('div',[_c('div',{staticClass:\"fact-upload-work-steps__error-plate\"},[_c('v-icon',{staticClass:\"mb-2\",attrs:{\"color\":\"warning\",\"size\":\"20\"}},[_vm._v(\"\\n mdi-emoticon-sad-outline\\n \")]),_vm._v(\" \"),(_vm.errors.length)?_vm._l((_vm.errors),function(error){return _c('div',{key:error,staticClass:\"body-2 fact-upload-work-steps__errors\",domProps:{\"innerHTML\":_vm._s(error)}})}):_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n С этим файлом что-то не так и он не был обработан. Попробуйте его поправить и загрузите снова.\\n \")])],2),_vm._v(\" \"),_c('div',{staticClass:\"fact-upload-work-steps__problems\"},[_c('div',{staticClass:\"mb-2 subtitle-2\"},[_vm._v(\"\\n Возможные проблемы\\n \")]),_vm._v(\" \"),_c('DAccordion',{attrs:{\"items\":_vm.problemItems}})],1)]):_vm._e(),_vm._v(\" \"),_c('DBtnUpload',{staticClass:\"px-12\",attrs:{\"accept\":\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\",\"loading\":_vm.isLoading},on:{\"click\":_vm.onUploadFactBtnClick,\"input\":_vm.uploadFact}},[_vm._v(\"\\n \"+_vm._s((\"Загрузить \" + (_vm.uploadIsSuccess ? 'ещё' : '') + \" файл\"))+\"\\n \")])],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"py-4 px-6\"},[_vm._v(\"\\n 1. Скачайте\\n \"),_c('a',{attrs:{\"href\":\"../docs/клиент_дата обновления_название площадки.xlsx\",\"download\":\"\",\"target\":\"_blank\",\"type\":\"application/octet-stream\"}},[_vm._v(\"\\n шаблон файла\\n \")]),_vm._v(\".\\n \")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"pb-4 px-6\"},[_c('div',{staticClass:\"mb-2\"},[_vm._v(\"\\n 2. Заполните файл своими данными.\\n \")]),_vm._v(\" \"),_c('ul',{staticClass:\"body-2 fact-upload-work-steps__fill-list\"},[_c('li',{staticClass:\"fact-upload-work-steps__fill-list-item\"},[_c('div',{staticClass:\"subtitle-2\"},[_vm._v(\"\\n Кто может заполнять и загружать файл?\\n \")]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n Заполнять шаблон может подрядчик или любой сотрудник Dentsu.\"),_c('br'),_vm._v(\"\\n Загрузить файл в систему может только сотрудник Dentsu (digital planner, account, trader, etc.).\\n \")])]),_vm._v(\" \"),_c('li',{staticClass:\"fact-upload-work-steps__fill-list-item\"},[_c('div',{staticClass:\"subtitle-2\"},[_vm._v(\"\\n С чего начать заполнение?\\n \")]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n Перед заполнением прочитайте правила по заполнению файла факта на листе Info.\"),_c('br'),_vm._v(\"\\n Поля Danoboid: заполняется по формату danb0-iy2i или __danb0-iy2i_. Допустимые символы: [A-Za-z0-9-_].\"),_c('br'),_vm._v(\"\\n Подневных охват: заполняем накопительным итогом.\\n \")])]),_vm._v(\" \"),_c('li',{staticClass:\"fact-upload-work-steps__fill-list-item\"},[_c('div',{staticClass:\"subtitle-2\"},[_vm._v(\"\\n Как избежать проблем при загрузке файла?\\n \")]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n Не меняйте формат шаблона файла (порядок столбцов, названия листов и т.п.), иначе данные не удастся загрузить.\"),_c('br'),_vm._v(\"\\n Перед загрузкой переименуйте файл по формату клиент_дата обновления_название площадки.\"),_c('br'),_vm._v(\"\\n Если вы заливаете данные за кампанию, напишите клиента, название кампании + своё агентство.\\n \")])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Файл загружен.\"),_c('br'),_vm._v(\"\\n Данные в дашбордах обновятся примерно через 10-15 минут.\"),_c('br'),_vm._v(\"\\n Если по истечении 30 минут с момента успешной проверки данные не отобразились в дашборде, напишите в обратную связь.\\n \")])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, ref } from '@vue/composition-api';\n\nimport {\n DAccordion,\n DBtnUpload,\n} from '@shared/druid-kit';\n\nimport { FactUploadApi } from '@/api';\n\nimport isAxiosError from '@/utils/isAxiosError';\nimport isError from '@/utils/isError';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nexport default defineComponent({\n components: {\n DAccordion,\n DBtnUpload,\n },\n setup() {\n const isLoading = ref(false);\n const uploadIsSuccess = ref(false);\n const uploadIsError = ref(false);\n\n const errors = ref([]);\n\n const resetUploadStatuses = () => {\n uploadIsSuccess.value = false;\n uploadIsError.value = false;\n };\n\n const onUploadFactBtnClick = () => {\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Fact',\n event_action: 'Upload',\n event_label: 'Selecting a file',\n });\n };\n\n const uploadFact = async (formData: FormData) => {\n resetUploadStatuses();\n\n isLoading.value = true;\n\n try {\n await FactUploadApi.uploadFile(formData);\n\n uploadIsSuccess.value = true;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Fact',\n event_action: 'Upload',\n event_label: 'Success',\n });\n } catch (error) {\n uploadIsError.value = true;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Fact',\n event_action: 'Upload',\n event_label: 'Fail',\n });\n\n if (!isError(error)) return;\n\n if (isAxiosError(error) && error.response?.data.errors) {\n errors.value = error.response.data.errors;\n } else {\n throw new AppJsonError({ error, options: { showingModal: false } });\n }\n } finally {\n isLoading.value = false;\n }\n };\n\n const problemItems = [\n {\n title: 'Ошибки в заголовках — некорректная таблица',\n content: 'Это значит, что надо использовать шаблон: нельзя менять название колонок',\n },\n {\n title: 'Ошибки формата',\n content: 'Это значит, что если вы используйте формат данных \"Дата\" экселя 15.12.2018, а у вас написано \"15 декабря 18\" => эксель не знает, что это дата => мы тоже.',\n },\n {\n title: 'Ошибки неполных данных. Например, отсутствуют Clicks',\n content: 'Это значит, что надо заполнить эти ячейки — они обязательны для заполнения.',\n },\n {\n title: 'Ошибки данных',\n content: `\n
    \n
  • Повторяющиеся записи по DANBOID и дате — значение для даты и одного DANBOID должно быть одно. Просуммируйте самостоятельно.
  • \n
  • Пересекающиеся периоды во вкладке Month — обнаружены пересекающиеся интервалы дат для DANBOID — можно склеить интервалы дат и просуммировать значения по одному DANBOID => увеличить интервал в строке с DANBOID, вторую (или все остальные) строку — удалить.
  • \n
  • Пересекающиеся данные на листах — если лист месячных данных заполнен И заполнен лист дневных данных по одним и тем же данным, мы считаем, что данные наиболее полные по дням (если они покрывают период за месяц). В остальных случаях отдаём ошибку.
  • \n
\n `,\n },\n {\n title: 'Топ ошибок для самопроверки',\n /* eslint-disable global-require */\n content: `\n
    \n
  • Объединенные ячейки
  • \n
  • Неправильные заголовки
  • \n
  • Дата старта позже даты окончания
  • \n
  • Формулы в ячейках (отправляйте файлы без формул, чтобы наверняка)
  • \n
  • Большое количество знаков после запятой
  • \n
  • \n Проблемы с форматом данных\n
      \n
    • если в ячейке стоит формат даты, должен остаться формат даты (всё привязано к вашим локальным настройкам),
    • \n
    • если стоит формат цифры — оставляем цифру (смотрите за разделителями дробных значений: запятые или точки в зависимости от локальных настроек вашего экселя),
    • \n
    • \n
      \n настройка \"Задать указанную точность\", в параметрах Excel должна быть отжата:\n
      \n \"excel_settings\"\n
    • \n
    \n
  • \n
\n `,\n /* eslint-enable */\n },\n ];\n\n return {\n isLoading,\n onUploadFactBtnClick,\n uploadFact,\n uploadIsSuccess,\n uploadIsError,\n errors,\n problemItems,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FactUploadWorkSteps.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FactUploadWorkSteps.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FactUploadWorkSteps.vue?vue&type=template&id=c3210648&scoped=true&\"\nimport script from \"./FactUploadWorkSteps.vue?vue&type=script&lang=ts&\"\nexport * from \"./FactUploadWorkSteps.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FactUploadWorkSteps.vue?vue&type=style&index=0&id=c3210648&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c3210648\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"fact-upload-after\"},[_c('div',{staticClass:\"mb-3\"},[_vm._v(\"\\n После загрузки\\n \")]),_vm._v(\" \"),_c('DAccordion',{attrs:{\"items\":_vm.items}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport { DAccordion } from '@shared/druid-kit';\n\nexport default defineComponent({\n components: {\n DAccordion,\n },\n setup() {\n const items = [\n /* eslint-disable global-require */\n {\n title: 'Как посмотреть данные только из размещения или только из загруженного факта',\n content: `\n
\n
В Настройках кампании → вкладка Размещения нужно вместо Сумма по площадкам выбрать Fact (это данные загруженного файла) или площадку.
\n \"excel_settings\"\n
Или на странице размещения (размещение можно найти по danboid в поиске) можно изменить этот же параметр.
\n \"excel_settings\"\n
\n `,\n },\n {\n title: 'Если данные не сходятся',\n content: `\n
\n
Вероятно, данные из загруженного файла суммируются с данными площадки.
\n
Выберите Fact как источник данных в Настройках кампании → Размещения в столбце Источник данных.
\n \"excel_settings\"\n
Или на странице размещения (размещение можно найти по danboid в поиске) можно изменить этот же параметр.
\n \"excel_settings\"\n
\n `,\n },\n /* eslint-enable */\n ];\n\n return {\n items,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FactUploadAfter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FactUploadAfter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FactUploadAfter.vue?vue&type=template&id=7bf1e3e0&scoped=true&\"\nimport script from \"./FactUploadAfter.vue?vue&type=script&lang=ts&\"\nexport * from \"./FactUploadAfter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FactUploadAfter.vue?vue&type=style&index=0&id=7bf1e3e0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7bf1e3e0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport FactUploadWorkSteps from '../components/FactUploadWorkSteps.vue';\nimport FactUploadAfter from '../components/FactUploadAfter.vue';\n\nexport default defineComponent({\n components: {\n AppView,\n FactUploadWorkSteps,\n FactUploadAfter,\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FactUpload.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FactUpload.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FactUpload.vue?vue&type=template&id=13d95e57&scoped=true&\"\nimport script from \"./FactUpload.vue?vue&type=script&lang=ts&\"\nexport * from \"./FactUpload.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FactUpload.vue?vue&type=style&index=0&id=13d95e57&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13d95e57\",\n null\n \n)\n\nexport default component.exports","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport FactUpload from '../views/FactUpload.vue';\n\nconst routes: AppRouteConfig[] = [\n {\n path: '/factupload',\n redirect: '/fact-upload',\n },\n {\n path: '/fact-upload',\n component: FactUpload,\n meta: {\n group: 'main',\n title: 'Загрузка факта',\n icon: 'mdi-upload',\n order: 4,\n permission: 'upload_fact',\n },\n props: true,\n },\n];\n\nexport default routes;\n","import ModuleInit from '@/models/ModuleInit';\n\nimport routes from './routes';\n\nconst moduleInit: ModuleInit = (ctx) => {\n ctx.store.dispatch('navigation/ADD_ROUTES', routes);\n ctx.router.addRoutes(routes);\n};\n\nexport default moduleInit;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { MetricsCheckApi } from '@/api';\n\nimport {\n MetricsCheckTotal,\n MetricsCheckDataProvider,\n MetricsCheckDataProviderMarkup,\n} from '@/models/MetricsCheck';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport isError from '@/utils/isError';\n\nclass ModuleState {\n total: MetricsCheckTotal | null = null;\n\n totalByDataProvider: MetricsCheckDataProvider[] = [];\n\n rawTotalByDataProvider: MetricsCheckDataProvider[] = [];\n\n errors: string[] = [];\n\n serachQuery = '';\n\n isLoading = false;\n}\n\nclass ModuleGetters extends Getters {\n get total() {\n return this.state.total;\n }\n\n get totalByDataProvider() {\n return this.state.totalByDataProvider;\n }\n\n get rawTotalByDataProvider() {\n return this.state.rawTotalByDataProvider;\n }\n\n get errors() {\n return this.state.errors;\n }\n\n get searchQuery() {\n return this.state.serachQuery;\n }\n\n get isLoading() {\n return this.state.isLoading;\n }\n\n get markupByDataProvider() {\n return this.getters.totalByDataProvider\n .reduce((acc: Record, dataProvider) => {\n if (dataProvider.markup && 'markups' in dataProvider.markup) {\n acc[dataProvider.dataProviderName] = dataProvider.markup.markups;\n }\n\n return acc;\n }, {});\n }\n\n get metricsNames() {\n const totalMetricsNames = this.getters.total?.metrics ? Object.keys(this.getters.total.metrics) : [];\n\n const allDataProvidersMetricsNames = [...this.getters.totalByDataProvider, ...this.getters.rawTotalByDataProvider]\n .reduce((acc: string[], dataProvider) => {\n acc = [...acc, ...Object.keys(dataProvider.metrics)];\n\n return acc;\n }, []);\n\n return [...new Set([...totalMetricsNames, ...allDataProvidersMetricsNames])];\n }\n\n get dataProvidersNames() {\n const allDataProvidersNames = [...this.getters.totalByDataProvider, ...this.getters.rawTotalByDataProvider]\n .reduce((acc: string[], dataProvider) => {\n acc = [...acc, dataProvider.dataProviderName];\n\n return acc;\n }, []);\n\n return [...new Set(allDataProvidersNames)];\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_TOTAL(payload: MetricsCheckTotal) {\n this.state.total = payload;\n }\n\n SET_TOTAL_BY_DATA_PROVIDER(payload: MetricsCheckDataProvider[]) {\n this.state.totalByDataProvider = payload;\n }\n\n SET_RAW_TOTAL_BY_DATA_PROVIDER(payload: MetricsCheckDataProvider[]) {\n this.state.rawTotalByDataProvider = payload;\n }\n\n SET_ERRORS(payload: string[]) {\n this.state.errors = payload;\n }\n\n RESET() {\n this.state.total = null;\n this.state.totalByDataProvider = [];\n this.state.rawTotalByDataProvider = [];\n this.state.errors = [];\n }\n\n SET_SEARCH_QUERY(payload: string) {\n this.state.serachQuery = payload;\n }\n\n SET_IS_LOADING(payload: boolean) {\n this.state.isLoading = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_TOTAL(danboId: string) {\n this.commit('SET_IS_LOADING', true);\n\n this.commit('RESET');\n\n try {\n const res = await MetricsCheckApi.fetchTotal(danboId);\n\n if (res.data.succeseded) {\n if (res.data?.total) {\n this.commit('SET_TOTAL', res.data.total);\n }\n\n this.commit('SET_TOTAL_BY_DATA_PROVIDER', res.data.totalByDataProvider);\n this.commit('SET_RAW_TOTAL_BY_DATA_PROVIDER', res.data.rawTotalByDataProvider);\n } else {\n this.commit('SET_ERRORS', res.data.errors);\n }\n } catch (error) {\n if (!isError(error)) return;\n\n this.commit('SET_ERRORS', ['Произошла непредвиденная ошибка']);\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n this.commit('SET_IS_LOADING', false);\n this.commit('SET_SEARCH_QUERY', danboId);\n }\n }\n\n UPDATE_SEARCH_QUERY(payload: string) {\n this.commit('SET_SEARCH_QUERY', payload);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const metricsCheckStoreMapper = createMapper(module);\n\nexport const useMetricsCheckStore = createComposable(module);\n\nexport default module;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"metrics-check\"},[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"text-h5 mr-3 flex-grow-1\"},[_vm._v(\"\\n Источники факта\\n \")]),_vm._v(\" \"),_c('v-text-field',{staticClass:\"metrics-check__search\",attrs:{\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"DanboId\",\"prepend-inner-icon\":\"mdi-magnify\"},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search.apply(null, arguments)}},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"metrics-check__content\",class:{ 'metrics-check__content--stub': !_vm.tableIsShown && !_vm.isLoading }},[(_vm.isLoading)?_c('TableLoader',{staticClass:\"metrics-check__loader\",attrs:{\"rows\":4}}):[(_vm.tableIsShown)?_c('MetricsCheckTable',{staticClass:\"metrics-check__table\"}):(_vm.errors.length)?_c('div',[_vm._l((_vm.errors),function(error,index){return _c('div',{key:index,staticClass:\"mb-1 text-h6 grey--text text--darken-1\",domProps:{\"textContent\":_vm._s(error)}})}),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n Попробуйте изменить запрос\\n \")])],2):_c('div',[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.searchParamsChanged ? 'Ничего не найдено :-(' : 'Поиск пуст!')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.searchParamsChanged ? 'Попробуйте изменить запрос' : 'Введите DanboId и нажмите Enter')+\"\\n \")])])]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',{staticClass:\"metrics-check-table\",attrs:{\"headers\":_vm.headers,\"items\":_vm.metricsNames,\"items-per-page\":_vm.metricsNames.length,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"body-prepend\",fn:function(){return [_c('DTableRow',[_c('DTableCell',[_vm._v(\"Период сбора данных\")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.formatPeriod(_vm.total.minDate, _vm.total.maxDate))+\"\\n \")]),_vm._v(\" \"),_vm._l((_vm.dataProvidersNames),function(dataProvider,idx){return [_c('DTableCell',{key:(idx + \"-1\")},[_vm._v(\"\\n \"+_vm._s(_vm.formatPeriod(_vm.totalByDataProvider[idx].minDate, _vm.totalByDataProvider[idx].maxDate))+\"\\n \")]),_vm._v(\" \"),(_vm.$acl.check('view_metrics_check'))?_c('DTableCell',{key:(idx + \"-2\")},[_vm._v(\"\\n \"+_vm._s(_vm.formatPeriod(_vm.rawTotalByDataProvider[idx].minDate, _vm.rawTotalByDataProvider[idx].maxDate))+\"\\n \")]):_vm._e()]})],2),_vm._v(\" \"),_c('DTableRow',[_c('DTableCell',[_vm._v(\"Обновлено\")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.formatDate(_vm.total.metricsUpdatedAt))+\"\\n \")]),_vm._v(\" \"),_vm._l((_vm.dataProvidersNames),function(dataProvider,idx){return [_c('DTableCell',{key:(idx + \"-1\")},[_vm._v(\"\\n \"+_vm._s(_vm.formatDate(_vm.totalByDataProvider[idx].metricsUpdatedAt))+\"\\n \")]),_vm._v(\" \"),(_vm.$acl.check('view_metrics_check'))?_c('DTableCell',{key:(idx + \"-2\")},[_vm._v(\"\\n \"+_vm._s(_vm.formatDate(_vm.rawTotalByDataProvider[idx].metricsUpdatedAt))+\"\\n \")]):_vm._e()]})],2),_vm._v(\" \"),(_vm.$acl.check('view_metrics_check'))?_c('DTableRow',[_c('DTableCell',[_vm._v(\"Наценки\")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"—\")]),_vm._v(\" \"),_vm._l((_vm.dataProvidersNames),function(dataProvider,dataProviderIdx){return [_c('DTableCell',{key:dataProviderIdx},[(!_vm.markupByDataProvider[dataProvider])?_c('div',[_vm._v(\"\\n —\\n \")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.markupByDataProvider[dataProvider]),function(markup,markupIdx){return _c('div',{key:markupIdx},[_vm._v(\"\\n с \"+_vm._s(_vm.formatDate(markup.startDate))+\": \"+_vm._s(markup.value)+\"\\n \")])})],2),_vm._v(\" \"),_c('DTableCell',{key:(dataProviderIdx + \"-empty\")},[_vm._v(\"\\n —\\n \")])]})],2):_vm._e()]},proxy:true},{key:\"row\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('DTableRow',[_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(item)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.formatMetric(_vm.total.metrics[item]))+\"\\n \")]),_vm._v(\" \"),_vm._l((_vm.dataProvidersNames),function(dataProvider,dataProviderIdx){return [_c('DTableCell',{key:(dataProviderIdx + \"-1\")},[_vm._v(\"\\n \"+_vm._s(_vm.formatMetric(_vm.totalByDataProvider[dataProviderIdx].metrics[item]))+\"\\n \")]),_vm._v(\" \"),(_vm.$acl.check('view_metrics_check'))?_c('DTableCell',{key:(dataProviderIdx + \"-2\")},[_vm._v(\"\\n \"+_vm._s(_vm.formatMetric(_vm.rawTotalByDataProvider[dataProviderIdx].metrics[item]))+\"\\n \")]):_vm._e()]})],2)]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport {\n DTable,\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport numatter from '@/packages/numatter';\n\nimport { useMetricsCheckStore } from '../store';\n\nexport default defineComponent({\n components: {\n DTable,\n DTableCell,\n DTableRow,\n },\n setup() {\n const metricsCheckStore = useMetricsCheckStore();\n\n const total = computed(() => metricsCheckStore.getters.total);\n const totalByDataProvider = computed(() => metricsCheckStore.getters.totalByDataProvider);\n const rawTotalByDataProvider = computed(() => metricsCheckStore.getters.rawTotalByDataProvider);\n\n const metricsNames = computed(() => metricsCheckStore.getters.metricsNames);\n const dataProvidersNames = computed(() => metricsCheckStore.getters.dataProvidersNames);\n const markupByDataProvider = computed(() => metricsCheckStore.getters.markupByDataProvider);\n\n const providerHeaders = dataProvidersNames.value\n .reduce((acc: string[], name) => [...acc, `${name} (расчёт)`, name], []);\n\n const headers = ['', 'Размещение', ...providerHeaders]\n .map((text) => ({ text, class: 'caption', sortable: false }));\n\n const formatDate = (date: string) => {\n if (!date) return 'бессрочно';\n\n return moment(date).format('DD.MM.YYYY');\n };\n\n const formatPeriod = (from: string, to: string) => {\n if (!from && !to) return '—';\n\n return `${formatDate(from)} - ${formatDate(to)}`;\n };\n\n const formatMetric = (num: number) => {\n if (!num) return '—';\n\n return numatter.format(num, '0,0[.]00');\n };\n\n return {\n total,\n totalByDataProvider,\n rawTotalByDataProvider,\n markupByDataProvider,\n metricsNames,\n headers,\n dataProvidersNames,\n formatDate,\n formatPeriod,\n formatMetric,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsCheckTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsCheckTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MetricsCheckTable.vue?vue&type=template&id=796ab6e6&scoped=true&\"\nimport script from \"./MetricsCheckTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./MetricsCheckTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MetricsCheckTable.vue?vue&type=style&index=0&id=796ab6e6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"796ab6e6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed, watch } from '@vue/composition-api';\n\nimport useRouter from '@/packages/hooks/useRouter';\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\nimport TableLoader from '@/components/_newDesign/common/loaders/TableLoader.vue';\n\nimport { useMetricsCheckStore } from '../store';\n\nimport MetricsCheckTable from '../components/MetricsCheckTable.vue';\n\nexport default defineComponent({\n components: {\n AppView,\n TableLoader,\n MetricsCheckTable,\n },\n setup(props, context) {\n const router = useRouter(context);\n const route = useRoute(context);\n\n const metricsCheckStore = useMetricsCheckStore();\n\n const searchParamsChanged = ref(false);\n\n const searchQuery = computed({\n get() {\n return metricsCheckStore.getters.searchQuery;\n },\n set(val: string) {\n metricsCheckStore.dispatch('UPDATE_SEARCH_QUERY', val);\n },\n });\n\n const totalByDataProvider = computed(() => metricsCheckStore.getters.totalByDataProvider);\n const rawTotalByDataProvider = computed(() => metricsCheckStore.getters.rawTotalByDataProvider);\n\n const errors = computed(() => metricsCheckStore.getters.errors);\n\n const isLoading = computed(() => metricsCheckStore.getters.isLoading);\n\n const danboId = computed(() => route.value.query.danboId);\n const searchIsDisabled = computed(() => danboId.value === searchQuery.value || !searchQuery.value);\n const tableIsShown = computed(() => totalByDataProvider.value.length && rawTotalByDataProvider.value.length);\n\n const search = () => {\n if (searchIsDisabled.value) return;\n\n router.push({ query: { danboId: searchQuery.value } });\n searchParamsChanged.value = true;\n };\n\n watch(route, async () => {\n if (!danboId.value || typeof danboId.value !== 'string') return;\n\n metricsCheckStore.dispatch('FETCH_TOTAL', danboId.value);\n }, { immediate: true });\n\n return {\n searchQuery,\n isLoading,\n tableIsShown,\n searchIsDisabled,\n search,\n errors,\n searchParamsChanged,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsCheck.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsCheck.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MetricsCheck.vue?vue&type=template&id=51768758&scoped=true&\"\nimport script from \"./MetricsCheck.vue?vue&type=script&lang=ts&\"\nexport * from \"./MetricsCheck.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MetricsCheck.vue?vue&type=style&index=0&id=51768758&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"51768758\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","import { Route, RawLocation } from 'vue-router';\nimport { AppRouteConfig } from '@/models/AppRouter';\n\nimport MetricsCheck from '../views/MetricsCheck.vue';\n\nconst routes: AppRouteConfig[] = [\n {\n path: '/MetricsCheck',\n redirect(to: Route): RawLocation {\n const {\n d,\n ...otherQuery\n } = to.query;\n\n return {\n path: '/metrics-check',\n query: {\n danboId: d,\n ...otherQuery,\n },\n };\n },\n },\n {\n path: '/metrics-check',\n component: MetricsCheck,\n meta: {\n group: 'main',\n title: 'Источники факта',\n icon: 'mdi-source-branch',\n order: 5,\n permission: 'upload_fact',\n header: {\n sticky: true,\n },\n },\n props: true,\n },\n];\n\nexport default routes;\n","import { registerModule } from 'vuex-smart-module';\n\nimport ModuleInit from '@/models/ModuleInit';\n\nimport store from './store';\nimport routes from './routes/index';\n\nconst moduleInit: ModuleInit = (ctx) => {\n registerModule(ctx.store, ['metricsCheck'], 'metricsCheck', store);\n\n ctx.store.dispatch('navigation/ADD_ROUTES', routes);\n ctx.router.addRoutes(routes);\n};\n\nexport default moduleInit;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport {\n UsersApi,\n} from '@/api';\n\nimport { UserLight } from '@/models/User';\n\nimport { SetUserPayload, UpdateUserPayload, SetExistingUsersPayload } from '@/api/modules/users.api';\n\nexport interface UsersCatalogFilters {\n query: string;\n page: number;\n limit: number;\n}\n\nconst initFilters = () => ({\n page: 1,\n query: '',\n limit: 50,\n});\n\nclass ModuleState {\n filters: UsersCatalogFilters = initFilters();\n\n filtersChanged = false;\n\n isLoading = false;\n\n users: UserLight[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get users() {\n return this.state.users;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get filtersChanged() {\n return this.state.filtersChanged;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_USERS(payload: UserLight[]) {\n this.state.users = payload;\n }\n\n ADD_USERS(payload: UserLight[]) {\n this.state.users = [...this.state.users, ...payload];\n }\n\n REMOVE_USER(userId: string) {\n this.state.users = this.state.users.filter((user) => user.id !== userId);\n }\n\n SET_FILTERS(payload: UsersCatalogFilters) {\n this.state.filters = payload;\n }\n\n SET_FILTERS_CHANGED(payload: boolean) {\n this.state.filtersChanged = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_USERS() {\n const { page, query, limit } = this.getters.filters;\n\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await UsersApi.fetchUsers({ page, filter: query, limit });\n\n if (page === 1) {\n this.commit('SET_USERS', res.data.list);\n } else {\n this.commit('ADD_USERS', res.data.list);\n }\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async CREATE_USER(payload: SetUserPayload) {\n await UsersApi.setUser(payload);\n\n await this.dispatch('FETCH_USERS');\n }\n\n async UPDATE_USER(payload: UpdateUserPayload) {\n await UsersApi.updateUser(payload);\n\n await this.dispatch('FETCH_USERS');\n }\n\n async ADD_EXISTING_USERS(payload: SetExistingUsersPayload) {\n await UsersApi.setExistingUsers(payload);\n\n await this.dispatch('FETCH_USERS');\n }\n\n UPDATE_FILTERS(filters: Partial) {\n const page = filters.page || 1;\n\n const newFilters = {\n ...this.getters.filters,\n ...filters,\n page,\n };\n\n this.commit('SET_FILTERS', newFilters);\n this.commit('SET_FILTERS_CHANGED', true);\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n this.commit('SET_FILTERS_CHANGED', false);\n }\n\n async DELETE_USER(userId: string) {\n await UsersApi.deleteUser(userId);\n\n this.commit('REMOVE_USER', userId);\n }\n\n NEXT_PAGE() {\n this.dispatch('UPDATE_FILTERS', {\n page: this.getters.filters.page + 1,\n });\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useUsersCatalogStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport {\n UsersApi,\n GroupsApi,\n} from '@/api';\n\nimport { UserLight } from '@/models/User';\nimport { Group } from '@/models/Group';\n\nclass ModuleState {\n isLoading = false;\n\n user: UserLight | null = null;\n\n groups: Group[] = [];\n\n groupsClientsBrands: UserLight['clients'] = [];\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get user() {\n return this.state.user;\n }\n\n get groups() {\n return this.state.groups;\n }\n\n get groupsClientsBrands() {\n return this.state.groupsClientsBrands;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_USER(payload: UserLight) {\n this.state.user = payload;\n }\n\n SET_GROUPS(payload: Group[]) {\n this.state.groups = payload;\n }\n\n SET_GROUPS_CLIENTS_BRANDS(payload: UserLight['clients']) {\n this.state.groupsClientsBrands = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_USER(userId: string) {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await UsersApi.fetchUser(userId);\n\n if (res.data.groups.length) {\n this.actions.FETCH_GROUPS_CLIENTS_BRANDS(res.data.groups);\n }\n\n this.mutations.SET_USER(res.data);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async FETCH_GROUPS() {\n const res = await GroupsApi.fetchGroups({ limit: -1 });\n\n this.mutations.SET_GROUPS(res.data.list);\n }\n\n async FETCH_GROUPS_CLIENTS_BRANDS(payload: string[]) {\n const res = await GroupsApi.fetchClientsWithBrands(payload);\n\n this.mutations.SET_GROUPS_CLIENTS_BRANDS(res.data);\n }\n\n RESET_GROUPS_CLIENTS_BRANDS() {\n this.mutations.SET_GROUPS_CLIENTS_BRANDS([]);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useUsersDetailsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Module, createComposable } from 'vuex-smart-module';\n\nimport usersCatalog from './users/usersCatalog';\nimport userDetails from './users/userDetails';\n\nconst module = new Module({\n modules: {\n usersCatalog,\n userDetails,\n },\n});\n\nexport const useUsersStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport { isEqual } from 'lodash';\nimport Fuse from 'fuse.js';\n\nimport {\n RolesApi,\n} from '@/api';\n\nimport { SetRolePayload, UpdateRolePayload } from '@/api/modules/roles.api';\n\nimport { RoleLight } from '@/models/Role';\n\nexport interface RolesCatalogFilters {\n query: string;\n}\n\nconst initFilters = () => ({\n query: '',\n});\n\nclass ModuleState {\n filters: RolesCatalogFilters = initFilters();\n\n isLoading = false;\n\n roles: RoleLight[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get filtersAreEnabled() {\n const defaultFilters = initFilters();\n\n return Object.entries(this.getters.filters).some(([key, val]) => !isEqual(val, defaultFilters[key]));\n }\n\n private get fuseByRoles() {\n return new Fuse(this.state.roles, {\n keys: [\n 'name',\n 'description',\n ],\n });\n }\n\n get roles() {\n const {\n filters,\n fuseByRoles,\n } = this.getters;\n\n const { roles } = this.state;\n\n if (!filters.query) return roles;\n\n const fuseResult = fuseByRoles.search(filters.query);\n\n return fuseResult.map(({ item }) => item);\n }\n\n get rolesHaveBeenFiltered() {\n return this.getters.filtersAreEnabled;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_FILTERS(payload: RolesCatalogFilters) {\n this.state.filters = payload;\n }\n\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_ROLES(payload: RoleLight[]) {\n this.state.roles = payload;\n }\n\n REMOVE_ROLE(roleId: string) {\n this.state.roles = this.state.roles.filter((role) => role.id !== roleId);\n }\n}\n\nclass ModuleActions extends Actions {\n UPDATE_FILTERS(payload: Partial) {\n const newPayload = {\n ...this.getters.filters,\n ...payload,\n };\n\n this.commit('SET_FILTERS', newPayload);\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n }\n\n async FETCH_ROLES() {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await RolesApi.fetchRoles();\n\n this.mutations.SET_ROLES(res.data);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async CREATE_ROLE(payload: SetRolePayload) {\n await RolesApi.setRole(payload);\n\n await this.actions.FETCH_ROLES();\n }\n\n async UPDATE_ROLE(payload: UpdateRolePayload) {\n await RolesApi.updateRole(payload);\n\n await this.actions.FETCH_ROLES();\n }\n\n async DELETE_ROLE(roleId: string) {\n await RolesApi.deleteRole(roleId);\n\n this.mutations.REMOVE_ROLE(roleId);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useRolesCatalogStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport {\n RolesApi,\n ServiceTypesApi,\n OrganizationsApi,\n} from '@/api';\n\nimport { Role } from '@/models/Role';\nimport { ServiceType } from '@/models/ServiceType';\nimport { Organization } from '@/models/Organization';\n\nclass ModuleState {\n isLoading = false;\n\n role: Role | null = null;\n\n serviceTypes: ServiceType[] = [];\n\n serviceOrganizations: Organization[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get role() {\n return this.state.role;\n }\n\n get serviceTypes() {\n return this.state.serviceTypes;\n }\n\n get serviceOrganizations() {\n return this.state.serviceOrganizations;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_ROLE(payload: Role) {\n this.state.role = payload;\n }\n\n SET_SERVICE_TYPES(payload: ServiceType[]) {\n this.state.serviceTypes = payload;\n }\n\n SET_SERVICE_ORGANIZATIONS(payload: Organization[]) {\n this.state.serviceOrganizations = payload;\n }\n\n RESET_ROLE() {\n const defaultState = new ModuleState();\n\n this.state.isLoading = defaultState.isLoading;\n this.state.role = defaultState.role;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_ROLE(roleId: string) {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await RolesApi.fetchRole(roleId);\n\n this.mutations.SET_ROLE(res.data);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async FETCH_SERVICE_TYPES() {\n const res = await ServiceTypesApi.fetchServiceTypes();\n\n this.mutations.SET_SERVICE_TYPES(res.data);\n }\n\n async FETCH_SERVICE_ORGANIZATIONS() {\n const res = await OrganizationsApi.fetchServiceOrganizations();\n\n this.mutations.SET_SERVICE_ORGANIZATIONS(res.data);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useRoleDetailsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Module, createComposable } from 'vuex-smart-module';\n\nimport rolesCatalog from './roles/rolesCatalog';\nimport roleDetails from './roles/roleDetails';\n\nconst module = new Module({\n modules: {\n rolesCatalog,\n roleDetails,\n },\n});\n\nexport const useRolesStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport { isEqual } from 'lodash';\nimport Fuse from 'fuse.js';\n\nimport {\n PermissionsApi,\n} from '@/api';\n\nimport { UpdatePermissionPayload } from '@/api/modules/permissions.api';\n\nimport { Permission } from '@/models/Permission';\n\nexport interface PermissionsCatalogFilters {\n query: string;\n}\n\nconst initFilters = () => ({\n query: '',\n});\n\nclass ModuleState {\n filters: PermissionsCatalogFilters = initFilters();\n\n isLoading = false;\n\n permissions: Permission[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get filters() {\n return this.state.filters;\n }\n\n get filtersAreEnabled() {\n const defaultFilters = initFilters();\n\n return Object.entries(this.getters.filters).some(([key, val]) => !isEqual(val, defaultFilters[key]));\n }\n\n get isLoading() {\n return this.state.isLoading;\n }\n\n private get fuseByPermissions() {\n return new Fuse(this.state.permissions, {\n keys: [\n 'name',\n 'description',\n ],\n });\n }\n\n get permissions() {\n const {\n filters,\n fuseByPermissions,\n } = this.getters;\n\n const { permissions } = this.state;\n\n if (!filters.query) return permissions;\n\n const fuseResult = fuseByPermissions.search(filters.query);\n\n return fuseResult.map(({ item }) => item);\n }\n\n get permissionsHaveBeenFiltered() {\n return this.getters.filtersAreEnabled;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_FILTERS(payload: PermissionsCatalogFilters) {\n this.state.filters = payload;\n }\n\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_PERMISSIONS(payload: Permission[]) {\n this.state.permissions = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n UPDATE_FILTERS(payload: Partial) {\n const newPayload = {\n ...this.getters.filters,\n ...payload,\n };\n\n this.commit('SET_FILTERS', newPayload);\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n }\n\n async FETCH_PERMISSIONS() {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await PermissionsApi.fetchPermissions({ limit: -1 });\n\n this.mutations.SET_PERMISSIONS(res.data.list);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async CREATE_PERMISSION(payload: Permission) {\n await PermissionsApi.setPermission(payload);\n\n await this.actions.FETCH_PERMISSIONS();\n }\n\n async UPDATE_PERMISSION(payload: UpdatePermissionPayload) {\n await PermissionsApi.updatePermission(payload);\n\n await this.actions.FETCH_PERMISSIONS();\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const usePermissionsCatalogStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport {\n PermissionsApi,\n} from '@/api';\n\nimport { Permission } from '@/models/Permission';\n\nclass ModuleState {\n isLoading = false;\n\n permission: Permission | null = null;\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get permission() {\n return this.state.permission;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_PERMISSION(payload: Permission) {\n this.state.permission = payload;\n }\n\n RESET() {\n const defaultState = new ModuleState();\n\n Object.keys(defaultState).forEach((key) => {\n this.state[key] = defaultState[key];\n });\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_PERMISSION(permissionId: string) {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await PermissionsApi.fetchPermission(permissionId);\n\n this.mutations.SET_PERMISSION(res.data);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const usePermissionDetailsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Module, createComposable } from 'vuex-smart-module';\n\nimport permissionsCatalog from './permissions/permissionsCatalog';\nimport permissionDetails from './permissions/permissionDetails';\n\nconst module = new Module({\n modules: {\n permissionsCatalog,\n permissionDetails,\n },\n});\n\nexport const usePermissionsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport {\n GroupsApi,\n} from '@/api';\n\nimport { SetGroupPayload, UpdateGroupPayload } from '@/api/modules/groups.api';\n\nimport { Group } from '@/models/Group';\n\nexport interface GroupsCatalogFilters {\n query: string;\n page: number;\n limit: number;\n}\n\nconst initFilters = () => ({\n page: 1,\n query: '',\n limit: 50,\n});\n\nclass ModuleState {\n filters: GroupsCatalogFilters = initFilters();\n\n filtersChanged = false;\n\n isLoading = false;\n\n groups: Group[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get groups() {\n return this.state.groups;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get filtersChanged() {\n return this.state.filtersChanged;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_GROUPS(payload: Group[]) {\n this.state.groups = payload;\n }\n\n ADD_GROUPS(payload: Group[]) {\n this.state.groups = [...this.state.groups, ...payload];\n }\n\n REMOVE_GROUP(groupId: string) {\n this.state.groups = this.state.groups.filter((group) => group.id !== groupId);\n }\n\n SET_FILTERS(payload: GroupsCatalogFilters) {\n this.state.filters = payload;\n }\n\n SET_FILTERS_CHANGED(payload: boolean) {\n this.state.filtersChanged = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_GROUPS() {\n const { page, limit, query } = this.getters.filters;\n\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await GroupsApi.fetchGroups({ page, limit, filter: query });\n\n if (page === 1) {\n this.commit('SET_GROUPS', res.data.list);\n } else {\n this.commit('ADD_GROUPS', res.data.list);\n }\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async CREATE_GROUP(payload: SetGroupPayload) {\n await GroupsApi.setGroup(payload);\n\n await this.dispatch('FETCH_GROUPS');\n }\n\n async UPDATE_GROUP(payload: UpdateGroupPayload) {\n await GroupsApi.updateGroup(payload);\n\n await this.dispatch('FETCH_GROUPS');\n }\n\n UPDATE_FILTERS(filters: Partial) {\n const page = filters.page || 1;\n\n const newFilters = {\n ...this.getters.filters,\n ...filters,\n page,\n };\n\n this.commit('SET_FILTERS', newFilters);\n this.commit('SET_FILTERS_CHANGED', true);\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n this.commit('SET_FILTERS_CHANGED', false);\n }\n\n async DELETE_GROUP(groupId: string) {\n await GroupsApi.deleteGroup(groupId);\n\n this.commit('REMOVE_GROUP', groupId);\n }\n\n NEXT_PAGE() {\n this.dispatch('UPDATE_FILTERS', {\n page: this.getters.filters.page + 1,\n });\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useGroupsCatalogStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport {\n GroupsApi,\n} from '@/api';\n\nimport { Group } from '@/models/Group';\n\nclass ModuleState {\n isLoading = false;\n\n group: Group | null = null;\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get group() {\n return this.state.group;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_GROUP(payload: Group) {\n this.state.group = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_GROUP(groupId: string) {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await GroupsApi.fetchGroup(groupId);\n\n this.mutations.SET_GROUP(res.data);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useGroupsDetailsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Module, createComposable } from 'vuex-smart-module';\n\nimport groupsCatalog from './groups/groupsCatalog';\nimport groupsDetails from './groups/groupsDetails';\n\nconst module = new Module({\n modules: {\n groupsCatalog,\n groupsDetails,\n },\n});\n\nexport const useGroupsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Module, createComposable } from 'vuex-smart-module';\n\nimport users from './users';\nimport roles from './roles';\nimport permissions from './permissions';\nimport groups from './groups';\n\nconst module = new Module({\n modules: {\n users,\n roles,\n permissions,\n groups,\n },\n});\n\nexport const useAccessControlStore = createComposable(module);\n\nexport default module;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./AccessControl.vue?vue&type=template&id=b7460d6c&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Users.vue?vue&type=template&id=30301db9&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"users-catalog\"},[(_vm.users.length || _vm.usersFiltersChanged)?_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('UsersCatalogHeader',{on:{\"open-modal\":_vm.openModal}})],1):_vm._e(),_vm._v(\" \"),(_vm.users.length)?_c('div',{staticClass:\"users-catalog__content\"},[_c('UsersTable',{attrs:{\"users\":_vm.users},on:{\"open-modal\":_vm.openModal}})],1):_c('div',{staticClass:\"users-catalog__stub\"},[(_vm.usersIsLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.usersFiltersChanged ? 'Ничего не найдено :-(' : 'Пользователи')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.usersFiltersChanged ? 'Попробуйте изменить запрос' : 'Пока не добавлено ни одного пользователя')+\"\\n \")]),_vm._v(\" \"),(!_vm.usersFiltersChanged)?_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":function($event){return _vm.openModal('add')}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1):_vm._e()]],2),_vm._v(\" \"),_c('UsersAddModal',{model:{value:(_vm.modalsMap.add.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.add, \"value\", $$v)},expression:\"modalsMap.add.value\"}}),_vm._v(\" \"),_c('UsersAddExistModal',{model:{value:(_vm.modalsMap.addExist.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.addExist, \"value\", $$v)},expression:\"modalsMap.addExist.value\"}}),_vm._v(\" \"),_c('UsersItemModal',_vm._b({model:{value:(_vm.modalsMap.item.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.item, \"value\", $$v)},expression:\"modalsMap.item.value\"}},'UsersItemModal',_vm.modalsMap.item.props,false)),_vm._v(\" \"),_c('UsersAccessRightsModal',{on:{\"open-modal\":_vm.openModal},model:{value:(_vm.modalsMap.accessRights.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.accessRights, \"value\", $$v)},expression:\"modalsMap.accessRights.value\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"users-catalog-header d-flex align-center\"},[_vm._m(0),_vm._v(\" \"),_c('DBtnInline',{staticClass:\"mr-3\",on:{\"click\":_vm.openAccessRightsModal},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Права доступа к D1 Digital Platform\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"ml-auto\"},[_c('v-text-field',{staticClass:\"users-catalog-header__search\",attrs:{\"label\":\"Имя, Фамилия, эл.почта\",\"prepend-inner-icon\":\"mdi-magnify\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mr-3\"},[_c('div',{staticClass:\"text-h5\"},[_vm._v(\"\\n Пользователи\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport { useUsersCatalogStore } from '../../../store/users/usersCatalog';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n setup(props, context) {\n const usersCatalogStore = useUsersCatalogStore();\n\n const query = computed({\n get() {\n return usersCatalogStore.getters.filters.query;\n },\n set: debounce((val: string) => {\n usersCatalogStore.dispatch('UPDATE_FILTERS', { query: val });\n }, 300),\n });\n\n const openAccessRightsModal = () => {\n context.emit('open-modal', 'accessRights');\n };\n\n return {\n query,\n openAccessRightsModal,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersCatalogHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersCatalogHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersCatalogHeader.vue?vue&type=template&id=75461338&scoped=true&\"\nimport script from \"./UsersCatalogHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersCatalogHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UsersCatalogHeader.vue?vue&type=style&index=0&id=75461338&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"75461338\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({attrs:{\"headers\":_vm.headers,\"items\":_vm.users,\"items-per-page\":_vm.users.length,\"server-items-length\":_vm.users.length,\"loading\":_vm.usersIsLoading,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === _vm.users.length - 5)?_c('UersTableRow',{directives:[{name:\"intersect\",rawName:\"v-intersect.once\",value:(_vm.onIntersect),expression:\"onIntersect\",modifiers:{\"once\":true}}],attrs:{\"user\":item},on:{\"open-modal\":function($event){return _vm.$emit('open-modal', $event)}}}):_c('UersTableRow',{attrs:{\"user\":item},on:{\"open-modal\":function($event){return _vm.$emit('open-modal', $event)}}})]}},(_vm.usersIsLoading)?{key:\"body-append\",fn:function(){return [_c('DTableRow',[_c('DTableCell',{attrs:{\"content-classes\":\"align-center\",\"colspan\":_vm.headers.length}},[_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"20\",\"indeterminate\":\"\"}})],1)],1)]},proxy:true}:null],null,true)},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"users-table-row\"},[_c('DTableCell',{staticClass:\"users-table-row__cell users-table-row__cell--name font-weight-medium\",on:{\"click\":_vm.openItemModal}},[_vm._v(\"\\n \"+_vm._s(_vm.user.name || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.user.email || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_c('v-btn',{staticClass:\"users-table-row__btn users-table-row__btn--delete\",attrs:{\"small\":\"\",\"icon\":\"\",\"loading\":_vm.deletion},on:{\"click\":_vm.deleteUser}},[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport modally from '@/services/modally';\n\nimport { User } from '@/models/User';\n\nimport { useUsersCatalogStore } from '../../../../store/users/usersCatalog';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n user: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const {\n user,\n } = toRefs(props);\n\n const usersCatalogStore = useUsersCatalogStore();\n\n const openItemModal = () => {\n context.emit('open-modal', {\n slug: 'item',\n props: {\n userId: user.value.id,\n title: user.value.name,\n },\n });\n };\n\n const deletion = ref(false);\n\n const deleteUser = async () => {\n const result = await modally.show({\n title: 'Удалить пользователя?',\n content: `Пользователь ${user.value.name} будет удален.`,\n buttons: [\n {\n props: {\n text: 'Удалить',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) return;\n\n deletion.value = true;\n\n try {\n await usersCatalogStore.actions.DELETE_USER(user.value.id);\n } finally {\n deletion.value = false;\n }\n };\n\n return {\n openItemModal,\n deletion,\n deleteUser,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UersTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UersTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UersTableRow.vue?vue&type=template&id=6f87c3c0&scoped=true&\"\nimport script from \"./UersTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./UersTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UersTableRow.vue?vue&type=style&index=0&id=6f87c3c0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f87c3c0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, PropType } from '@vue/composition-api';\n\nimport {\n DTable,\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { User } from '@/models/User';\n\nimport UersTableRow from './UersTableRow.vue';\n\nimport { useUsersCatalogStore } from '../../../../store/users/usersCatalog';\n\nexport default defineComponent({\n components: {\n DTable,\n DTableCell,\n DTableRow,\n UersTableRow,\n },\n props: {\n users: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const usersCatalogStore = useUsersCatalogStore();\n\n const headers = ['Имя', 'Эл. почта', '']\n .map((text) => ({\n text,\n class: 'caption',\n sortable: false,\n }));\n\n const usersIsLoading = computed(() => usersCatalogStore.getters.isLoading);\n\n const onIntersect = (entries: unknown, observer: unknown, isIntersecting: boolean) => {\n if (isIntersecting) usersCatalogStore.actions.NEXT_PAGE();\n };\n\n return {\n headers,\n usersIsLoading,\n onIntersect,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersTable.vue?vue&type=template&id=1188b973&\"\nimport script from \"./UsersTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"users-add-modal\",attrs:{\"max-width\":\"850\",\"title\":\"Добавление нового пользователя\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('UsersForm',{ref:\"userFormRef\",attrs:{\"valid\":_vm.userFormIsValid},on:{\"update:valid\":function($event){_vm.userFormIsValid=$event}},model:{value:(_vm.userFormData),callback:function ($$v) {_vm.userFormData=$$v},expression:\"userFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"users-add-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"users-add-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"users-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"rootRef\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"users-form__row\"},[_c('div',{staticClass:\"users-form__col users-form__col--grey\"},[_c('div',{staticClass:\"pa-6\"},[(_vm.existUsers)?_c('div',{staticClass:\"users-form__field mb-8\"},[_c('v-textarea',{attrs:{\"outlined\":\"\",\"loading\":_vm.existEmailsIsLoading,\"disabled\":_vm.existEmailsIsDisabled,\"rules\":_vm.existEmailsRules,\"label\":\"Адреса новых пользователей\",\"placeholder\":'mail@company.com \\nmail@company.com\\n ...',\"hide-details\":\"\"},model:{value:(_vm.currentExistEmails),callback:function ($$v) {_vm.currentExistEmails=$$v},expression:\"currentExistEmails\"}})],1):[_c('div',{staticClass:\"users-form__field\"},[_c('v-text-field',{staticClass:\"users-form__text-field\",attrs:{\"label\":\"Имя\",\"rules\":_vm.firstNameRules,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.firstNameIsLoading,\"disabled\":_vm.firstNameIsDisabled,\"required\":\"\"},model:{value:(_vm.currentFirstName),callback:function ($$v) {_vm.currentFirstName=$$v},expression:\"currentFirstName\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"users-form__field\"},[_c('v-text-field',{staticClass:\"users-form__text-field\",attrs:{\"label\":\"Фамилия\",\"rules\":_vm.lastNameRules,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.lastNameIsLoading,\"disabled\":_vm.lastNameIsDisabled},model:{value:(_vm.currentLastName),callback:function ($$v) {_vm.currentLastName=$$v},expression:\"currentLastName\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"users-form__field mb-12\"},[_c('v-text-field',{staticClass:\"users-form__text-field\",attrs:{\"label\":\"Email\",\"rules\":_vm.emailRules,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.emailIsLoading,\"disabled\":_vm.emailIsDisabled,\"required\":\"\"},model:{value:(_vm.currentEmail),callback:function ($$v) {_vm.currentEmail=$$v},expression:\"currentEmail\"}})],1)],_vm._v(\" \"),_c('div',{staticClass:\"users-form__field\"},[_c('DAutocomplete',{staticClass:\"users-form__autocomplete\",attrs:{\"label\":\"Роли\",\"items\":_vm.roles,\"item-text\":\"name\",\"item-value\":\"id\",\"multiple\":\"\",\"loading\":_vm.rolesIsLoading,\"disabled\":_vm.rolesIsDisabled},model:{value:(_vm.currentRoles),callback:function ($$v) {_vm.currentRoles=$$v},expression:\"currentRoles\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"users-form__field\"},[_c('DAutocomplete',{staticClass:\"users-form__autocomplete\",attrs:{\"label\":\"Группы\",\"items\":_vm.groups,\"item-text\":\"name\",\"item-value\":\"id\",\"multiple\":\"\",\"loading\":_vm.groupsIsLoading,\"disabled\":_vm.groupsIsDisabled},model:{value:(_vm.currentGroups),callback:function ($$v) {_vm.currentGroups=$$v},expression:\"currentGroups\"}})],1)],2)]),_vm._v(\" \"),_c('div',{staticClass:\"users-form__col pt-6\"},[_c('div',{staticClass:\"users-form__field\"},[_c('AppClientsTreeView',{ref:\"clientsTreeViewRef\",staticClass:\"users-form__tree-view\",attrs:{\"preselected-clients\":_vm.groupsClientsBrands},model:{value:(_vm.currentClients),callback:function ($$v) {_vm.currentClients=$$v},expression:\"currentClients\"}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-clients-tree-view\"},[_c('DTreeView',{ref:\"clientsTreeRef\",staticClass:\"app-clients-tree-view__tree-view flex-grow-1\",attrs:{\"items\":_vm.nodes,\"loading\":_vm.isLoading,\"label\":\"Клиент или бренд\",\"open-on-click\":\"\",\"searchable\":\"\",\"selectable\":\"\"},scopedSlots:_vm._u([{key:\"append-search\",fn:function(){return [_c('DSelectInline',{staticClass:\"app-clients-tree-view__sort\",attrs:{\"disabled\":_vm.isLoading,\"items\":_vm.sortOptions},model:{value:(_vm.sortFilter),callback:function ($$v) {_vm.sortFilter=$$v},expression:\"sortFilter\"}})]},proxy:true}]),model:{value:(_vm.selectedNodeIds),callback:function ($$v) {_vm.selectedNodeIds=$$v},expression:\"selectedNodeIds\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport { orderBy, isEqual } from 'lodash';\n\nimport {\n DSelectInline,\n DTreeView,\n} from '@shared/druid-kit';\n\nimport { ClientsApi } from '@/api';\n\nimport { Client } from '@/models/Client';\n\ninterface ClientWithBrands {\n id: string;\n brands: string[];\n}\n\nexport default defineComponent({\n components: {\n DSelectInline,\n DTreeView,\n },\n props: {\n value: { type: Array as PropType, default: () => [] },\n preselectedClients: { type: Array as PropType, default: () => [] },\n loading: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n preselectedClients,\n loading,\n } = toRefs(props);\n\n const clientsTreeRef = ref(null);\n const isLoadingData = ref(false);\n\n const isLoading = computed({\n get() {\n return loading.value || isLoadingData.value;\n },\n set(val: boolean) {\n isLoadingData.value = val;\n },\n });\n\n const clients = ref([]);\n\n const selectedNodeIds = ref([]);\n\n const preselectedClientsComputed = computed(() => preselectedClients.value.map((client) => ({\n ...client,\n brands: client.brands.length ? client.brands : (clients.value.find(({ id }) => id === client.id)?.brands || []).map((brand) => brand.id),\n })));\n\n const selectedClientsMap = computed(() => {\n if (!clients.value.length) return {};\n\n return value.value.reduce>((acc, client) => {\n client.brands.forEach((brandId) => {\n const newBrandId = `${client.id}_${brandId}`;\n\n acc[newBrandId] = newBrandId;\n });\n\n return acc;\n }, {});\n });\n\n const preselectedClientsMap = computed(() => {\n if (!clients.value.length) return {};\n\n return preselectedClientsComputed.value.reduce>((acc, client) => {\n client.brands.forEach((brandId) => {\n const newBrandId = `${client.id}_${brandId}`;\n\n acc[newBrandId] = newBrandId;\n });\n\n return acc;\n }, {});\n });\n\n const selectedNodeIdsMap = computed(() => selectedNodeIds.value.reduce>((acc, selectedNodeId) => {\n acc[selectedNodeId] = selectedNodeId;\n\n return acc;\n }, {}));\n\n const sortOptions: { text: string; value: string }[] = [\n { text: 'По алфавиту', value: 'alphabet' },\n { text: 'По выбранным', value: 'checked' },\n ];\n\n const sortFilter = ref<'alphabet' | 'checked'>('checked');\n\n const sortMethod = computed(() => {\n const methods: Record Client[]> = {\n alphabet(list) {\n return orderBy(list, 'name', 'asc');\n },\n checked(list) {\n const preSortedList = methods.alphabet(list);\n\n return orderBy(preSortedList, (client) => {\n const isSelected = client.brands.some((brand) => {\n const brandId = `${client.id}_${brand.id}`;\n\n return !!selectedNodeIdsMap.value[brandId];\n });\n\n return isSelected ? 1 : 0;\n }, 'desc');\n },\n };\n\n return methods[sortFilter.value];\n });\n\n const sortClients = (list: Client[]) => (sortMethod.value ? sortMethod.value(list) : list);\n\n watch(sortFilter, () => {\n clients.value = sortClients(clients.value);\n });\n\n const nodes = computed(() => {\n const list = clients.value.map((client) => {\n const disabled = preselectedClientsMap.value[client.id];\n\n const brands = client.brands.map((brand) => {\n const brandId = `${client.id}_${brand.id}`;\n\n return {\n id: brandId,\n name: brand.name,\n disabled: !!preselectedClientsMap.value[brandId],\n };\n });\n\n return {\n id: client.id,\n name: client.name,\n children: brands,\n disabled: !!(disabled || brands.every((brand) => brand.disabled)),\n };\n });\n\n return list;\n });\n\n watch([selectedClientsMap, preselectedClientsMap], ([selectedVal, preselectedVal], [_prevSelectedVal, prevPreselectedVal]) => {\n let resultMap = { ...selectedVal };\n\n Object.values(prevPreselectedVal).forEach((val) => {\n delete resultMap[val];\n });\n\n resultMap = {\n ...resultMap,\n ...preselectedVal,\n };\n\n if (isEqual(resultMap, selectedNodeIdsMap.value)) return;\n\n selectedNodeIds.value = Object.values(resultMap);\n\n if (sortFilter.value === 'checked' && (Object.keys(selectedVal).length || Object.keys(preselectedVal).length)) {\n clients.value = sortClients(clients.value);\n }\n });\n\n watch(selectedNodeIdsMap, (val, prevVal) => {\n if (isEqual(prevVal, val) || isEqual(val, selectedClientsMap.value)) return;\n\n const resultMap = Object.values(val).reduce((acc, id) => {\n const [clientId, brandId] = id.split('_');\n\n if (!acc[clientId]) {\n acc[clientId] = {\n id: clientId,\n brands: [],\n };\n }\n\n if (clientId && brandId) {\n acc[clientId].brands.push(brandId);\n }\n\n return acc;\n }, {});\n\n const result = Object.values(resultMap);\n\n context.emit('input', result);\n });\n\n const init = async () => {\n isLoading.value = true;\n\n try {\n const res = await ClientsApi.fetchClients();\n\n clients.value = sortClients(res.data);\n } finally {\n isLoading.value = false;\n }\n };\n\n const collapseTree = () => {\n if (!clientsTreeRef.value) return;\n\n clientsTreeRef.value.collapse();\n };\n\n init();\n\n return {\n isLoading,\n sortOptions,\n sortFilter,\n clients,\n nodes,\n selectedNodeIds,\n clientsTreeRef,\n collapseTree,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppClientsTreeView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppClientsTreeView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppClientsTreeView.vue?vue&type=template&id=0d291d0c&scoped=true&\"\nimport script from \"./AppClientsTreeView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppClientsTreeView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppClientsTreeView.vue?vue&type=style&index=0&id=0d291d0c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d291d0c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport { DAutocomplete } from '@shared/druid-kit';\n\nimport AppClientsTreeView from '@/components/_newDesign/common/inputs/AppClientsTreeView.vue';\n\nimport { UserClientsBrands } from '@/models/User';\n\nimport { useUsersDetailsStore } from '../../../store/users/userDetails';\nimport { useRolesCatalogStore } from '../../../store/roles/rolesCatalog';\n\nimport { UsersFormData } from '../../../models/users';\n\nexport default defineComponent({\n components: {\n DAutocomplete,\n AppClientsTreeView,\n },\n props: {\n value: { type: Object as PropType, default: null },\n valid: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n existUsers: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n loading,\n } = toRefs(props);\n\n const userDetailsStore = useUsersDetailsStore();\n const rolesCatalogStore = useRolesCatalogStore();\n\n const rootRef = ref(null);\n const clientsTreeViewRef = ref(null);\n\n const isValid = ref(false);\n\n const isEdit = computed(() => !!value.value?.id);\n const groupsClientsBrands = computed(() => userDetailsStore.getters.groupsClientsBrands);\n\n watch(isValid, (val) => {\n context.emit('update:valid', val);\n }, { immediate: true });\n\n const resetValidation = () => {\n if (!rootRef.value) return;\n\n rootRef.value.resetValidation();\n };\n\n const updateForm = (payload: Partial) => {\n const newForm = {\n ...value.value,\n ...payload,\n };\n\n context.emit('input', newForm);\n };\n\n const collapseClientsTree = () => {\n if (!clientsTreeViewRef.value) return;\n\n clientsTreeViewRef.value.collapseTree();\n };\n\n // // // // //\n\n const firstNameRules = ref([\n (val: string) => !!val,\n ]);\n\n const firstNameIsLoading = computed(() => loading.value);\n const firstNameIsDisabled = computed(() => firstNameIsLoading.value || isEdit.value);\n\n const currentFirstName = computed({\n get() {\n return value.value?.firstName || '';\n },\n set(val: string) {\n updateForm({ firstName: val });\n },\n });\n\n // // // // //\n\n const lastNameRules = ref([\n (val: string) => !!val,\n ]);\n\n const lastNameIsLoading = computed(() => loading.value);\n const lastNameIsDisabled = computed(() => lastNameIsLoading.value || isEdit.value);\n\n const currentLastName = computed({\n get() {\n return value.value?.lastName || '';\n },\n set(val: string) {\n updateForm({ lastName: val });\n },\n });\n\n // // // // //\n\n const emailRules = ref([\n (val: string) => !!val && /\\S+@\\S+\\.\\S+/.test(val),\n ]);\n\n const emailIsLoading = computed(() => loading.value);\n const emailIsDisabled = computed(() => emailIsLoading.value || isEdit.value);\n\n const currentEmail = computed({\n get() {\n return value.value?.email || '';\n },\n set(val: string) {\n updateForm({ email: val });\n },\n });\n\n // // // // //\n\n const existEmailsRules = ref([\n (val: string) => {\n const splitEmails = val.split('\\n');\n\n return splitEmails.length && splitEmails.every((email) => /\\S+@\\S+\\.\\S+/.test(email));\n },\n ]);\n\n const existEmailsIsLoading = computed(() => loading.value);\n const existEmailsIsDisabled = computed(() => emailIsLoading.value);\n\n const currentExistEmails = computed({\n get() {\n return value.value?.emails ? value.value?.emails.join('\\n') : '';\n },\n set(val: string) {\n updateForm({ emails: val.split('\\n') });\n },\n });\n\n // // // // //\n\n const roles = computed(() => rolesCatalogStore.getters.roles);\n const rolesIsLoadingData = ref(false);\n\n const rolesIsLoading = computed({\n get() {\n return rolesIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n rolesIsLoadingData.value = val;\n },\n });\n\n const rolesIsDisabled = computed(() => !roles.value.length || rolesIsLoading.value);\n\n const currentRoles = computed({\n get() {\n return value.value?.roles || [];\n },\n set(val: string[]) {\n updateForm({ roles: val });\n },\n });\n\n const fetchRoles = async () => {\n rolesIsLoading.value = true;\n\n try {\n await rolesCatalogStore.actions.FETCH_ROLES();\n } finally {\n rolesIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const groups = computed(() => userDetailsStore.getters.groups);\n const groupsIsLoadingData = ref(false);\n\n const groupsIsLoading = computed({\n get() {\n return groupsIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n groupsIsLoadingData.value = val;\n },\n });\n\n const groupsIsDisabled = computed(() => !groups.value.length || groupsIsLoading.value);\n\n const currentGroups = computed({\n get() {\n return value.value?.groups || [];\n },\n set(val: string[]) {\n updateForm({ groups: val });\n userDetailsStore.actions.FETCH_GROUPS_CLIENTS_BRANDS(val);\n },\n });\n\n const fetchGroups = async () => {\n groupsIsLoading.value = true;\n\n try {\n await userDetailsStore.actions.FETCH_GROUPS();\n } finally {\n groupsIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const currentClients = computed({\n get() {\n return value.value?.clients || [];\n },\n set(val: UserClientsBrands[]) {\n updateForm({ clients: val });\n },\n });\n\n // // // // //\n\n const init = async () => {\n await Promise.all([\n fetchRoles(),\n fetchGroups(),\n ]);\n };\n\n init();\n\n return {\n rootRef,\n clientsTreeViewRef,\n isValid,\n resetValidation,\n collapseClientsTree,\n //\n currentExistEmails,\n existEmailsRules,\n existEmailsIsLoading,\n existEmailsIsDisabled,\n //\n currentFirstName,\n firstNameRules,\n firstNameIsLoading,\n firstNameIsDisabled,\n //\n currentLastName,\n lastNameRules,\n lastNameIsLoading,\n lastNameIsDisabled,\n //\n currentEmail,\n emailRules,\n emailIsLoading,\n emailIsDisabled,\n //\n roles,\n currentRoles,\n rolesIsLoading,\n rolesIsDisabled,\n //\n groups,\n currentGroups,\n groupsClientsBrands,\n groupsIsLoading,\n groupsIsDisabled,\n //\n currentClients,\n //\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersForm.vue?vue&type=template&id=f27cbbe8&scoped=true&\"\nimport script from \"./UsersForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UsersForm.vue?vue&type=style&index=0&id=f27cbbe8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f27cbbe8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VForm,VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport { UserLight } from '@/models/User';\n\nimport { PartialWithout } from '@/utils/type';\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useUsersCatalogStore } from '../../../store/users/usersCatalog';\nimport { useUsersDetailsStore } from '../../../store/users/userDetails';\n\nimport UsersForm from '../forms/UsersForm.vue';\n\nexport default defineComponent({\n components: {\n AppModal,\n UsersForm,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const usersCatalogStore = useUsersCatalogStore();\n const usersDetailsStore = useUsersDetailsStore();\n\n const userFormRef = ref(null);\n const userFormData = ref | null>(null);\n const userFormIsValid = ref(false);\n\n const userFormResetValidation = async () => {\n if (!userFormRef.value) return;\n\n userFormRef.value.resetValidation();\n };\n\n const userFormCollapseClientsTree = () => {\n if (!userFormRef.value) return;\n\n userFormRef.value.collapseClientsTree();\n };\n\n const newUser = computed(() => {\n if (!userFormData.value || !userFormIsValid.value) return null;\n\n return userFormData.value;\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newUser.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newUser.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await usersCatalogStore.actions.CREATE_USER(newUser.value);\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data?.errors || {})\n .reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n watch(value, async (val) => {\n if (!val) {\n userFormCollapseClientsTree();\n\n usersDetailsStore.actions.RESET_GROUPS_CLIENTS_BRANDS();\n\n return;\n }\n\n userFormData.value = null;\n\n userFormResetValidation();\n }, { immediate: true });\n\n return {\n userFormRef,\n userFormData,\n userFormIsValid,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersAddModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersAddModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersAddModal.vue?vue&type=template&id=0c2fa592&\"\nimport script from \"./UsersAddModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersAddModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"users-add-modal\",attrs:{\"max-width\":\"850\",\"title\":\"Добавление существующих пользователей\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('div',{staticClass:\"px-6 mb-8\"},[_c('div',{staticClass:\"mb-2 text-h6\"},[_vm._v(\"\\n Внимание!\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1\"},[_vm._v(\"\\n Пользователи, адреса которых будут вводиться в данной форме, должны быть заранее созданы с использованием\\n \"),_c('span',{staticClass:\"grey--text text--darken-1\"},[_vm._v(\"User Service Admin\")])])]),_vm._v(\" \"),_c('UsersForm',{ref:\"usersFormRef\",attrs:{\"valid\":_vm.usersFormIsValid,\"exist-users\":\"\"},on:{\"update:valid\":function($event){_vm.usersFormIsValid=$event}},model:{value:(_vm.usersFormData),callback:function ($$v) {_vm.usersFormData=$$v},expression:\"usersFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"users-add-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"users-add-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"users-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport { PartialWithout } from '@/utils/type';\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { UsersFormData } from '../../../models/users';\n\nimport { useUsersCatalogStore } from '../../../store/users/usersCatalog';\nimport { useUsersDetailsStore } from '../../../store/users/userDetails';\n\nimport UsersForm from '../forms/UsersForm.vue';\n\nexport default defineComponent({\n components: {\n AppModal,\n UsersForm,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const usersCatalogStore = useUsersCatalogStore();\n const usersDetailsStore = useUsersDetailsStore();\n\n const usersFormRef = ref(null);\n const usersFormData = ref | null>(null);\n const usersFormIsValid = ref(false);\n\n const userFormResetValidation = async () => {\n if (!usersFormRef.value) return;\n\n usersFormRef.value.resetValidation();\n };\n\n const userFormCollapseClientsTree = () => {\n if (!usersFormRef.value) return;\n\n usersFormRef.value.collapseClientsTree();\n };\n\n const newUsers = computed(() => {\n if (!usersFormData.value || !usersFormIsValid.value) return null;\n\n return usersFormData.value;\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newUsers.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newUsers.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await usersCatalogStore.actions.ADD_EXISTING_USERS({\n ...newUsers.value,\n emails: newUsers.value.emails || [],\n });\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data?.errors || {})\n .reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n watch(value, async (val) => {\n if (!val) {\n userFormCollapseClientsTree();\n\n usersDetailsStore.actions.RESET_GROUPS_CLIENTS_BRANDS();\n\n return;\n }\n\n usersFormData.value = null;\n\n userFormResetValidation();\n }, { immediate: true });\n\n return {\n usersFormRef,\n usersFormData,\n usersFormIsValid,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersAddExistModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersAddExistModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersAddExistModal.vue?vue&type=template&id=e6a8a6f0&\"\nimport script from \"./UsersAddExistModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersAddExistModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"users-item-modal\",attrs:{\"max-width\":\"850\",\"title\":_vm.modalTitle,\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('UsersForm',{ref:\"userFormRef\",attrs:{\"valid\":_vm.userFormIsValid},on:{\"update:valid\":function($event){_vm.userFormIsValid=$event}},model:{value:(_vm.userFormData),callback:function ($$v) {_vm.userFormData=$$v},expression:\"userFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"users-add-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"users-add-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"users-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport { UserLight } from '@/models/User';\n\nimport { PartialWithout } from '@/utils/type';\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useUsersCatalogStore } from '../../../store/users/usersCatalog';\nimport { useUsersDetailsStore } from '../../../store/users/userDetails';\n\nimport UsersForm from '../forms/UsersForm.vue';\n\nexport default defineComponent({\n components: {\n AppModal,\n UsersForm,\n },\n props: {\n value: { type: Boolean, default: false },\n title: { type: String, default: '' },\n userId: { type: String as PropType, default: null },\n },\n setup(props, context) {\n const {\n value,\n title,\n userId,\n } = toRefs(props);\n\n const usersCatalogStore = useUsersCatalogStore();\n const usersDetailsStore = useUsersDetailsStore();\n\n const user = computed(() => usersDetailsStore.getters.user);\n const userIsLoading = computed(() => usersDetailsStore.getters.isLoading);\n\n const modalTitle = computed(() => title.value || user.value?.name || 'Редактирование пользователя');\n\n const userFormRef = ref(null);\n const userFormData = ref | null>(null);\n const userFormIsValid = ref(false);\n\n const userFormResetValidation = async () => {\n if (!userFormRef.value) return;\n\n userFormRef.value.resetValidation();\n };\n\n const userFormCollapseClientsTree = () => {\n if (!userFormRef.value) return;\n\n userFormRef.value.collapseClientsTree();\n };\n\n const newUser = computed(() => {\n if (!userFormData.value || !userFormIsValid.value) return null;\n\n return userFormData.value;\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newUser.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!userId.value || !newUser.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await usersCatalogStore.actions.UPDATE_USER({\n userId: userId.value,\n data: newUser.value,\n });\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data?.errors || {})\n .reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n const init = async () => {\n if (!userId.value) return;\n\n await usersDetailsStore.actions.FETCH_USER(userId.value);\n\n userFormData.value = user.value;\n };\n\n watch(value, async (val) => {\n if (!val) {\n userFormCollapseClientsTree();\n\n usersDetailsStore.actions.RESET_GROUPS_CLIENTS_BRANDS();\n\n return;\n }\n\n userFormData.value = null;\n\n userFormResetValidation();\n init();\n }, { immediate: true });\n\n return {\n userIsLoading,\n userFormRef,\n userFormData,\n userFormIsValid,\n modalTitle,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersItemModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersItemModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersItemModal.vue?vue&type=template&id=716285fa&\"\nimport script from \"./UsersItemModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersItemModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"users-access-rights-modal\",attrs:{\"max-width\":\"604\",\"title\":\"Права доступа к D1 Digital Platform\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('div',{staticClass:\"users-access-rights-modal__block\"},[_c('div',{staticClass:\"body-2 mb-2\"},[_vm._v(\"\\n Если пользователь не сотрудник dentsu, не имеет доступа к другим сервисам dentsu, нужно будет указать его ФИО для доступа к D1 Digital Platform\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":_vm.openAddModal}},[_vm._v(\"\\n Для нового пользователя в системе dentsu\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"users-access-rights-modal__block\"},[_c('div',{staticClass:\"body-2 mb-2\"},[_vm._v(\"\\n Если пользователь работает в dentsu или имеет доступ к другим системам dentsu и ему нужен доступ именно в D1 Digital Platform\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":_vm.openAddExistModal}},[_vm._v(\"\\n Для пользователя систем dentsu\\n \")])],1)]},proxy:true}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nexport default defineComponent({\n components: {\n AppModal,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const close = () => {\n context.emit('input', false);\n };\n\n const openAddModal = () => {\n context.emit('open-modal', 'add');\n\n close();\n };\n\n const openAddExistModal = () => {\n context.emit('open-modal', 'addExist');\n\n close();\n };\n\n return {\n openAddModal,\n openAddExistModal,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersAccessRightsModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersAccessRightsModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersAccessRightsModal.vue?vue&type=template&id=e524eca6&scoped=true&\"\nimport script from \"./UsersAccessRightsModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersAccessRightsModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UsersAccessRightsModal.vue?vue&type=style&index=0&id=e524eca6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e524eca6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, watch } from '@vue/composition-api';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport useModals from '@/composables/useModals';\n\nimport UsersCatalogHeader from '../../components/Users/UsersCatalog/UsersCatalogHeader.vue';\nimport UsersTable from '../../components/Users/UsersCatalog/UsersTable/UsersTable.vue';\n\nimport UsersAddModal from '../../components/Users/modals/UsersAddModal.vue';\nimport UsersAddExistModal from '../../components/Users/modals/UsersAddExistModal.vue';\nimport UsersItemModal from '../../components/Users/modals/UsersItemModal.vue';\nimport UsersAccessRightsModal from '../../components/Users/modals/UsersAccessRightsModal.vue';\n\nimport { useUsersCatalogStore } from '../../store/users/usersCatalog';\n\nexport default defineComponent({\n components: {\n AppView,\n UsersCatalogHeader,\n UsersTable,\n UsersAddModal,\n UsersAddExistModal,\n UsersItemModal,\n UsersAccessRightsModal,\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const {\n modalsMap,\n openModal,\n } = useModals(['add', 'addExist', 'item', 'accessRights']);\n\n const usersCatalogStore = useUsersCatalogStore();\n\n const users = computed(() => usersCatalogStore.getters.users);\n const usersFilters = computed(() => usersCatalogStore.getters.filters);\n const usersFiltersChanged = computed(() => usersCatalogStore.getters.filtersChanged);\n const usersIsLoading = computed(() => usersCatalogStore.getters.isLoading);\n\n const fetch = async () => {\n await usersCatalogStore.actions.FETCH_USERS();\n };\n\n const init = async () => {\n updateIsLoading(true);\n usersCatalogStore.actions.RESET_FILTERS();\n\n try {\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n watch(route, () => {\n if (route.value.query?.['current-user-id']) {\n openModal({\n slug: 'item',\n props: { userId: route.value.query['current-user-id'] },\n });\n }\n }, { immediate: true });\n\n watch(usersFilters, () => {\n if (!usersFiltersChanged.value) return;\n\n fetch();\n });\n\n init();\n\n return {\n modalsMap,\n users,\n usersFiltersChanged,\n usersIsLoading,\n openModal,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersCatalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersCatalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersCatalog.vue?vue&type=template&id=048cef16&scoped=true&\"\nimport script from \"./UsersCatalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersCatalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UsersCatalog.vue?vue&type=style&index=0&id=048cef16&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"048cef16\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-catalog-loader\"},[_c('v-skeleton-loader',{staticClass:\"page-catalog-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('TableLoader',{staticClass:\"page-catalog-loader__table\",attrs:{\"columns\":5,\"rows\":4}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageCatalogLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageCatalogLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PageCatalogLoader.vue?vue&type=template&id=6bf2536c&scoped=true&\"\nimport script from \"./PageCatalogLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./PageCatalogLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PageCatalogLoader.vue?vue&type=style&index=0&id=6bf2536c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6bf2536c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport Users from '../views/Users.vue';\nimport UsersCatalog from '../views/Users/UsersCatalog.vue';\nimport PageCatalogLoader from '../../../components/_newDesign/common/loaders/PageCatalogLoader.vue';\n\nconst routeConfig: AppRouteConfig = {\n path: 'users',\n component: Users,\n meta: {\n title: 'Пользователи',\n permission: 'admin',\n order: 0,\n },\n children: [\n {\n name: 'users-catalog',\n path: '',\n component: UsersCatalog,\n meta: {\n title: 'Пользователи',\n loader: PageCatalogLoader,\n header: {\n sticky: true,\n },\n },\n },\n ],\n};\n\nexport default routeConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Groups.vue?vue&type=template&id=48424b76&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"groups-catalog\"},[(_vm.groups.length || _vm.groupsFiltersChanged)?_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('GroupsCatalogHeader',{on:{\"open-modal\":_vm.openModal}})],1):_vm._e(),_vm._v(\" \"),(_vm.groups.length)?_c('div',{staticClass:\"groups-catalog__content\"},[_c('GroupsTable',{attrs:{\"groups\":_vm.groups},on:{\"open-modal\":_vm.openModal}})],1):_c('div',{staticClass:\"groups-catalog__stub\"},[(_vm.groupsIsLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.groupsFiltersChanged ? 'Ничего не найдено :-(' : 'Пользователи')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.groupsFiltersChanged ? 'Попробуйте изменить запрос' : 'Пока не добавлено ни одной группы')+\"\\n \")]),_vm._v(\" \"),(!_vm.groupsFiltersChanged)?_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":function($event){return _vm.openModal('add')}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1):_vm._e()]],2),_vm._v(\" \"),_c('GroupsAddModal',{model:{value:(_vm.modalsMap.add.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.add, \"value\", $$v)},expression:\"modalsMap.add.value\"}}),_vm._v(\" \"),_c('GroupsItemModal',_vm._b({model:{value:(_vm.modalsMap.item.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.item, \"value\", $$v)},expression:\"modalsMap.item.value\"}},'GroupsItemModal',_vm.modalsMap.item.props,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"groups-catalog-header d-flex align-center\"},[_vm._m(0),_vm._v(\" \"),_c('div',[_c('DBtnInline',{staticClass:\"mr-3\",on:{\"click\":_vm.openAddModal},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Новая группа\\n \")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"ml-auto\"},[_c('v-text-field',{staticClass:\"groups-catalog-header__search\",attrs:{\"label\":\"Поиск\",\"prepend-inner-icon\":\"mdi-magnify\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mr-3\"},[_c('div',{staticClass:\"text-h5\"},[_vm._v(\"\\n Группы\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport { useGroupsCatalogStore } from '../../../store/groups/groupsCatalog';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n setup(props, context) {\n const groupsCatalogStore = useGroupsCatalogStore();\n\n const query = computed({\n get() {\n return groupsCatalogStore.getters.filters.query;\n },\n set: debounce((val: string) => {\n groupsCatalogStore.dispatch('UPDATE_FILTERS', { query: val });\n }, 300),\n });\n\n const openAddModal = () => {\n context.emit('open-modal', 'add');\n };\n\n return {\n query,\n openAddModal,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsCatalogHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsCatalogHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GroupsCatalogHeader.vue?vue&type=template&id=0bd0cbe0&scoped=true&\"\nimport script from \"./GroupsCatalogHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./GroupsCatalogHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GroupsCatalogHeader.vue?vue&type=style&index=0&id=0bd0cbe0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0bd0cbe0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({attrs:{\"headers\":_vm.headers,\"items\":_vm.groups,\"items-per-page\":_vm.groups.length,\"server-items-length\":_vm.groups.length,\"loading\":_vm.groupsIsLoading,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === _vm.groups.length - 5)?_c('GroupsTableRow',{directives:[{name:\"intersect\",rawName:\"v-intersect.once\",value:(_vm.onIntersect),expression:\"onIntersect\",modifiers:{\"once\":true}}],attrs:{\"group\":item},on:{\"open-modal\":function($event){return _vm.$emit('open-modal', $event)}}}):_c('GroupsTableRow',{attrs:{\"group\":item},on:{\"open-modal\":function($event){return _vm.$emit('open-modal', $event)}}})]}},(_vm.groupsIsLoading)?{key:\"body-append\",fn:function(){return [_c('DTableRow',[_c('DTableCell',{attrs:{\"content-classes\":\"justify-center align-center\",\"colspan\":_vm.headers.length}},[_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"20\",\"indeterminate\":\"\"}})],1)],1)]},proxy:true}:null],null,true)},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"groups-table-row\"},[_c('DTableCell',{staticClass:\"groups-table-row__cell groups-table-row__cell--name font-weight-medium\",on:{\"click\":_vm.openItemModal}},[_vm._v(\"\\n \"+_vm._s(_vm.group.name || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.group.description || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_c('v-btn',{staticClass:\"groups-table-row__btn groups-table-row__btn--delete\",attrs:{\"small\":\"\",\"icon\":\"\",\"loading\":_vm.deletion},on:{\"click\":_vm.deleteGroup}},[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport modally from '@/services/modally';\n\nimport { Group } from '@/models/Group';\n\nimport { useGroupsCatalogStore } from '../../../../store/groups/groupsCatalog';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n group: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const {\n group,\n } = toRefs(props);\n\n const groupsCatalogStore = useGroupsCatalogStore();\n\n const openItemModal = () => {\n context.emit('open-modal', {\n slug: 'item',\n props: {\n title: group.value.name,\n groupId: group.value.id,\n },\n });\n };\n\n const deletion = ref(false);\n\n const deleteGroup = async () => {\n const result = await modally.show({\n title: 'Удалить группу?',\n content: `Группа ${group.value.name} будет удалена.`,\n buttons: [\n {\n props: {\n text: 'Удалить',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) return;\n\n deletion.value = true;\n\n try {\n await groupsCatalogStore.actions.DELETE_GROUP(group.value.id);\n } finally {\n deletion.value = false;\n }\n };\n\n return {\n openItemModal,\n deletion,\n deleteGroup,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GroupsTableRow.vue?vue&type=template&id=8035e05e&scoped=true&\"\nimport script from \"./GroupsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./GroupsTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GroupsTableRow.vue?vue&type=style&index=0&id=8035e05e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8035e05e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, PropType } from '@vue/composition-api';\n\nimport {\n DTable,\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { Group } from '@/models/Group';\n\nimport GroupsTableRow from './GroupsTableRow.vue';\n\nimport { useGroupsCatalogStore } from '../../../../store/groups/groupsCatalog';\n\nexport default defineComponent({\n components: {\n DTable,\n DTableCell,\n DTableRow,\n GroupsTableRow,\n },\n props: {\n groups: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const groupsCatalogStore = useGroupsCatalogStore();\n\n const headers = ['Название', 'Описание', '']\n .map((text) => ({\n text,\n class: 'caption',\n sortable: false,\n }));\n\n const groupsIsLoading = computed(() => groupsCatalogStore.getters.isLoading);\n\n const onIntersect = (entries: unknown, observer: unknown, isIntersecting: boolean) => {\n if (isIntersecting) groupsCatalogStore.actions.NEXT_PAGE();\n };\n\n return {\n headers,\n groupsIsLoading,\n onIntersect,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GroupsTable.vue?vue&type=template&id=2e0f7f3d&\"\nimport script from \"./GroupsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./GroupsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"groups-add-modal\",attrs:{\"max-width\":\"850\",\"title\":\"Новая группа\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('GroupsForm',{ref:\"groupFormRef\",attrs:{\"valid\":_vm.groupFormIsValid},on:{\"update:valid\":function($event){_vm.groupFormIsValid=$event}},model:{value:(_vm.groupFormData),callback:function ($$v) {_vm.groupFormData=$$v},expression:\"groupFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"groups-add-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"groups-add-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"groups-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"rootRef\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"groups-form__row\"},[_c('div',{staticClass:\"groups-form__col groups-form__col--grey\"},[_c('div',{staticClass:\"pa-6\"},[_c('div',{staticClass:\"groups-form__field\"},[_c('v-text-field',{staticClass:\"groups-form__text-field\",attrs:{\"label\":\"Название\",\"rules\":_vm.nameRules,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.nameIsLoading,\"disabled\":_vm.nameIsDisabled,\"required\":\"\"},model:{value:(_vm.currentName),callback:function ($$v) {_vm.currentName=$$v},expression:\"currentName\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"groups-form__field\"},[_c('v-text-field',{staticClass:\"groups-form__text-field\",attrs:{\"label\":\"Описание\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.descriptionIsLoading,\"disabled\":_vm.descriptionIsDisabled},model:{value:(_vm.currentDescription),callback:function ($$v) {_vm.currentDescription=$$v},expression:\"currentDescription\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"groups-form__field\"},[_c('AppUsersAutocomplete',{staticClass:\"groups-form__autocomplete\",model:{value:(_vm.currentUsers),callback:function ($$v) {_vm.currentUsers=$$v},expression:\"currentUsers\"}})],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"groups-form__col\"},[_c('div',{staticClass:\"groups-form__field pt-6\"},[_c('AppClientsTreeView',{staticClass:\"groups-form__tree-view\",model:{value:(_vm.currentClients),callback:function ($$v) {_vm.currentClients=$$v},expression:\"currentClients\"}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DAutocomplete',{attrs:{\"items\":_vm.users,\"item-text\":_vm.itemText,\"loading\":_vm.isLoading,\"disabled\":_vm.isDisabled,\"item-value\":\"id\",\"label\":\"Пользователи\",\"multiple\":\"\"},model:{value:(_vm.selectedUsers),callback:function ($$v) {_vm.selectedUsers=$$v},expression:\"selectedUsers\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, PropType } from '@vue/composition-api';\n\nimport { DAutocomplete } from '@shared/druid-kit';\n\nimport { UsersApi } from '@/api';\n\nimport { UserLight } from '@/models/User';\n\nexport default defineComponent({\n components: {\n DAutocomplete,\n },\n props: {\n value: {\n type: Array as PropType,\n default: () => [],\n },\n itemText: {\n type: String,\n default: 'name',\n },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const users = ref([]);\n const isLoading = ref(false);\n\n const selectedUsers = computed({\n get() {\n return value.value;\n },\n set(val) {\n context.emit('input', val);\n },\n });\n\n const isDisabled = computed(() => !users.value.length || isLoading.value);\n\n const init = async () => {\n isLoading.value = true;\n\n try {\n const res = await UsersApi.fetchUsers({ limit: -1 });\n\n users.value = res.data.list;\n } finally {\n isLoading.value = false;\n }\n };\n\n init();\n\n return {\n selectedUsers,\n users,\n isLoading,\n isDisabled,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppUsersAutocomplete.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppUsersAutocomplete.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppUsersAutocomplete.vue?vue&type=template&id=89d32392&\"\nimport script from \"./AppUsersAutocomplete.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppUsersAutocomplete.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport { Group } from '@/models/Group';\nimport { UserClientsBrands } from '@/models/User';\n\nimport AppClientsTreeView from '@/components/_newDesign/common/inputs/AppClientsTreeView.vue';\nimport AppUsersAutocomplete from '@/components/_newDesign/common/inputs/AppUsersAutocomplete.vue';\n\nexport default defineComponent({\n components: {\n AppClientsTreeView,\n AppUsersAutocomplete,\n },\n props: {\n value: { type: Object as PropType, default: null },\n valid: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n existUsers: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n loading,\n } = toRefs(props);\n\n const rootRef = ref(null);\n\n const isValid = ref(false);\n\n watch(isValid, (val) => {\n context.emit('update:valid', val);\n }, { immediate: true });\n\n const resetValidation = () => {\n if (!rootRef.value) return;\n\n rootRef.value.resetValidation();\n };\n\n const updateForm = (payload: Partial) => {\n const newForm = {\n ...value.value,\n ...payload,\n };\n\n context.emit('input', newForm);\n };\n\n // // // // //\n\n const nameRules = ref([\n (val: string) => !!val,\n ]);\n\n const nameIsLoading = computed(() => loading.value);\n const nameIsDisabled = computed(() => nameIsLoading.value);\n\n const currentName = computed({\n get() {\n return value.value?.name || '';\n },\n set(val: string) {\n updateForm({ name: val });\n },\n });\n\n // // // // //\n\n const descriptionIsLoading = computed(() => loading.value);\n const descriptionIsDisabled = computed(() => descriptionIsLoading.value);\n\n const currentDescription = computed({\n get() {\n return value.value?.description || '';\n },\n set(val: string) {\n updateForm({ description: val });\n },\n });\n\n // // // // //\n\n const currentUsers = computed({\n get() {\n return value.value?.users || [];\n },\n set(val: string[]) {\n updateForm({ users: val });\n },\n });\n\n // // // // //\n\n const currentClients = computed({\n get() {\n return value.value?.clients || [];\n },\n set(val: UserClientsBrands[]) {\n updateForm({ clients: val });\n },\n });\n\n return {\n rootRef,\n isValid,\n resetValidation,\n //\n currentName,\n nameRules,\n nameIsLoading,\n nameIsDisabled,\n //\n currentDescription,\n descriptionIsLoading,\n descriptionIsDisabled,\n //\n currentUsers,\n //\n currentClients,\n //\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GroupsForm.vue?vue&type=template&id=5e87a136&scoped=true&\"\nimport script from \"./GroupsForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./GroupsForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GroupsForm.vue?vue&type=style&index=0&id=5e87a136&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e87a136\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VForm,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport { Group } from '@/models/Group';\n\nimport { PartialWithout } from '@/utils/type';\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useGroupsCatalogStore } from '../../../store/groups/groupsCatalog';\n\nimport GroupsForm from '../forms/GroupsForm.vue';\n\nexport default defineComponent({\n components: {\n AppModal,\n GroupsForm,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const groupsCatalogStore = useGroupsCatalogStore();\n\n const groupFormRef = ref(null);\n const groupFormData = ref | null>(null);\n const groupFormIsValid = ref(false);\n\n const groupFormResetValidation = async () => {\n if (!groupFormRef.value) return;\n\n groupFormRef.value.resetValidation();\n };\n\n const newGroup = computed(() => {\n if (!groupFormData.value || !groupFormIsValid.value) return null;\n\n return groupFormData.value;\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newGroup.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newGroup.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await groupsCatalogStore.actions.CREATE_GROUP(newGroup.value);\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data?.errors || {})\n .reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n watch(value, async (val) => {\n if (!val) return;\n\n groupFormData.value = null;\n\n groupFormResetValidation();\n }, { immediate: true });\n\n return {\n groupFormRef,\n groupFormData,\n groupFormIsValid,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsAddModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsAddModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GroupsAddModal.vue?vue&type=template&id=75855124&\"\nimport script from \"./GroupsAddModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./GroupsAddModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"groups-item-modal\",attrs:{\"max-width\":\"850\",\"title\":_vm.modalTitle,\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('GroupsForm',{ref:\"groupFormRef\",attrs:{\"valid\":_vm.groupFormIsValid},on:{\"update:valid\":function($event){_vm.groupFormIsValid=$event}},model:{value:(_vm.groupFormData),callback:function ($$v) {_vm.groupFormData=$$v},expression:\"groupFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"groups-item-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"groups-item-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"groups-item-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport { Group } from '@/models/Group';\n\nimport { PartialWithout } from '@/utils/type';\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useGroupsCatalogStore } from '../../../store/groups/groupsCatalog';\nimport { useGroupsDetailsStore } from '../../../store/groups/groupsDetails';\n\nimport GroupsForm from '../forms/GroupsForm.vue';\n\nexport default defineComponent({\n components: {\n AppModal,\n GroupsForm,\n },\n props: {\n value: { type: Boolean, default: false },\n title: { type: String, default: '' },\n groupId: { type: String as PropType, default: null },\n },\n setup(props, context) {\n const {\n value,\n title,\n groupId,\n } = toRefs(props);\n\n const groupsCatalogStore = useGroupsCatalogStore();\n const groupsDetailsStore = useGroupsDetailsStore();\n\n const groupFormRef = ref(null);\n const groupFormData = ref | null>(null);\n const groupFormIsValid = ref(false);\n\n const groupFormResetValidation = async () => {\n if (!groupFormRef.value) return;\n\n groupFormRef.value.resetValidation();\n };\n\n const newGroup = computed(() => {\n if (!groupFormData.value || !groupFormIsValid.value) return null;\n\n return groupFormData.value;\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newGroup.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const group = computed(() => groupsDetailsStore.getters.group);\n\n const modalTitle = computed(() => title.value || group.value?.name || 'Редактирование группы');\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!groupId.value || !newGroup.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await groupsCatalogStore.actions.UPDATE_GROUP({\n groupId: groupId.value,\n data: newGroup.value,\n });\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data?.errors || {})\n .reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n const init = async () => {\n if (!groupId.value) return;\n\n await groupsDetailsStore.actions.FETCH_GROUP(groupId.value);\n\n groupFormData.value = group.value;\n };\n\n watch(value, async (val) => {\n if (!val) return;\n\n groupFormData.value = null;\n\n groupFormResetValidation();\n init();\n }, { immediate: true });\n\n return {\n groupFormRef,\n groupFormData,\n groupFormIsValid,\n modalTitle,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsItemModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsItemModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GroupsItemModal.vue?vue&type=template&id=0a5f0350&\"\nimport script from \"./GroupsItemModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./GroupsItemModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport useModals from '@/composables/useModals';\n\nimport GroupsCatalogHeader from '../../components/Groups/GroupsCatalog/GroupsCatalogHeader.vue';\nimport GroupsTable from '../../components/Groups/GroupsCatalog/GroupsTable/GroupsTable.vue';\n\nimport GroupsAddModal from '../../components/Groups/modals/GroupsAddModal.vue';\nimport GroupsItemModal from '../../components/Groups/modals/GroupsItemModal.vue';\n\nimport { useGroupsCatalogStore } from '../../store/groups/groupsCatalog';\n\nexport default defineComponent({\n components: {\n AppView,\n GroupsCatalogHeader,\n GroupsTable,\n GroupsAddModal,\n GroupsItemModal,\n },\n setup() {\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const {\n modalsMap,\n openModal,\n } = useModals(['add', 'item']);\n\n const groupsCatalogStore = useGroupsCatalogStore();\n\n const groups = computed(() => groupsCatalogStore.getters.groups);\n const groupsFilters = computed(() => groupsCatalogStore.getters.filters);\n const groupsFiltersChanged = computed(() => groupsCatalogStore.getters.filtersChanged);\n const groupsIsLoading = computed(() => groupsCatalogStore.getters.isLoading);\n\n const fetch = async () => {\n await groupsCatalogStore.actions.FETCH_GROUPS();\n };\n\n const init = async () => {\n updateIsLoading(true);\n groupsCatalogStore.actions.RESET_FILTERS();\n\n try {\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n watch(groupsFilters, () => {\n if (!groupsFiltersChanged.value) return;\n\n fetch();\n });\n\n init();\n\n return {\n modalsMap,\n groups,\n groupsFiltersChanged,\n groupsIsLoading,\n openModal,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsCatalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsCatalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GroupsCatalog.vue?vue&type=template&id=5b21f531&scoped=true&\"\nimport script from \"./GroupsCatalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./GroupsCatalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GroupsCatalog.vue?vue&type=style&index=0&id=5b21f531&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b21f531\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport Groups from '../views/Groups.vue';\nimport GroupsCatalog from '../views/Groups/GroupsCatalog.vue';\nimport PageCatalogLoader from '../../../components/_newDesign/common/loaders/PageCatalogLoader.vue';\n\nconst routeConfig: AppRouteConfig = {\n path: 'groups',\n component: Groups,\n meta: {\n title: 'Группы',\n permission: 'admin',\n order: 1,\n },\n children: [\n {\n name: 'groups-catalog',\n path: '',\n component: GroupsCatalog,\n meta: {\n title: 'Группы',\n loader: PageCatalogLoader,\n header: {\n sticky: true,\n },\n },\n },\n ],\n};\n\nexport default routeConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Roles.vue?vue&type=template&id=a73daca4&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"roles-catalog\"},[(_vm.roles.length || _vm.rolesHaveBeenFiltered)?_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('RolesCatalogHeader',{on:{\"open-modal\":_vm.openModal}})],1):_vm._e(),_vm._v(\" \"),(_vm.roles.length)?_c('div',{staticClass:\"roles-catalog__content\"},[_c('RolesTable',{attrs:{\"roles\":_vm.roles},on:{\"open-modal\":_vm.openModal}})],1):_c('div',{staticClass:\"roles-catalog__stub\"},[(_vm.rolesIsLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.rolesHaveBeenFiltered ? 'Ничего не найдено :-(' : 'Роли')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.rolesHaveBeenFiltered ? 'Попробуйте изменить запрос' : 'Пока не добавлено ни одной роли')+\"\\n \")]),_vm._v(\" \"),(!_vm.rolesHaveBeenFiltered)?_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":function($event){return _vm.openModal('add')}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1):_vm._e()]],2),_vm._v(\" \"),_c('RolesAddModal',{model:{value:(_vm.modalsMap.add.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.add, \"value\", $$v)},expression:\"modalsMap.add.value\"}}),_vm._v(\" \"),_c('RolesItemModal',_vm._b({model:{value:(_vm.modalsMap.item.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.item, \"value\", $$v)},expression:\"modalsMap.item.value\"}},'RolesItemModal',_vm.modalsMap.item.props,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"roles-catalog-header d-flex align-center\"},[_vm._m(0),_vm._v(\" \"),_c('div',[_c('DBtnInline',{on:{\"click\":_vm.openAddModal},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Новая роль\\n \")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"ml-auto\"},[_c('v-text-field',{staticClass:\"roles-catalog-header__search\",attrs:{\"label\":\"Поиск\",\"prepend-inner-icon\":\"mdi-magnify\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mr-3\"},[_c('div',{staticClass:\"text-h5\"},[_vm._v(\"\\n Роли\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport { useRolesCatalogStore } from '../../../store/roles/rolesCatalog';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n setup(props, context) {\n const rolesCatalogStore = useRolesCatalogStore();\n\n const query = computed({\n get() {\n return rolesCatalogStore.getters.filters.query;\n },\n set: debounce((val: string) => {\n rolesCatalogStore.dispatch('UPDATE_FILTERS', { query: val });\n }, 300),\n });\n\n const openAddModal = () => {\n context.emit('open-modal', 'add');\n };\n\n return {\n query,\n openAddModal,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesCatalogHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesCatalogHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RolesCatalogHeader.vue?vue&type=template&id=0d2ae6cc&scoped=true&\"\nimport script from \"./RolesCatalogHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./RolesCatalogHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RolesCatalogHeader.vue?vue&type=style&index=0&id=0d2ae6cc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d2ae6cc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({attrs:{\"headers\":_vm.headers,\"items\":_vm.roles,\"items-per-page\":_vm.roles.length,\"server-items-length\":_vm.roles.length,\"loading\":_vm.rolesIsLoading,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('RolesTableRow',{attrs:{\"role\":item},on:{\"open-modal\":function($event){return _vm.$emit('open-modal', $event)}}})]}}])},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"roles-table-row\"},[_c('DTableCell',{staticClass:\"roles-table-row__cell roles-table-row__cell--name font-weight-medium\",on:{\"click\":_vm.openRole}},[_vm._v(\"\\n \"+_vm._s(_vm.role.name || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.role.description || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_c('v-btn',{staticClass:\"roles-table-row__btn roles-table-row__btn--delete\",attrs:{\"small\":\"\",\"icon\":\"\",\"loading\":_vm.deletion},on:{\"click\":_vm.deleteRole}},[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport modally from '@/services/modally';\n\nimport { RoleLight } from '@/models/Role';\n\nimport { useRolesCatalogStore } from '../../../../store/roles/rolesCatalog';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n role: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const {\n role,\n } = toRefs(props);\n\n const rolesCatalogStore = useRolesCatalogStore();\n\n const openRole = () => {\n context.emit('open-modal', {\n slug: 'item',\n props: {\n title: role.value.name,\n roleId: role.value.id,\n },\n });\n };\n\n const deletion = ref(false);\n\n const deleteRole = async () => {\n const result = await modally.show({\n title: 'Удалить роль?',\n content: `Роль ${role.value.name} будет удалена.`,\n buttons: [\n {\n props: {\n text: 'Удалить',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) return;\n\n deletion.value = true;\n\n try {\n await rolesCatalogStore.actions.DELETE_ROLE(role.value.id);\n } finally {\n deletion.value = false;\n }\n };\n\n return {\n openRole,\n deletion,\n deleteRole,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RolesTableRow.vue?vue&type=template&id=004d4b56&scoped=true&\"\nimport script from \"./RolesTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./RolesTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RolesTableRow.vue?vue&type=style&index=0&id=004d4b56&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"004d4b56\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, PropType } from '@vue/composition-api';\n\nimport { DTable } from '@shared/druid-kit';\n\nimport { RoleLight } from '@/models/Role';\n\nimport RolesTableRow from './RolesTableRow.vue';\n\nimport { useRolesCatalogStore } from '../../../../store/roles/rolesCatalog';\n\nexport default defineComponent({\n components: {\n DTable,\n RolesTableRow,\n },\n props: {\n roles: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const rolesCatalogStore = useRolesCatalogStore();\n\n const headers: {\n class: string;\n text: string;\n sortable: boolean;\n }[] = [\n {\n class: 'caption',\n text: 'Название',\n sortable: false,\n },\n {\n class: 'caption',\n text: 'Описание',\n sortable: false,\n },\n {\n class: 'caption',\n text: '',\n sortable: false,\n },\n ];\n\n const rolesIsLoading = computed(() => rolesCatalogStore.getters.isLoading);\n\n return {\n headers,\n rolesIsLoading,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RolesTable.vue?vue&type=template&id=57e5a379&\"\nimport script from \"./RolesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./RolesTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"roles-add-modal\",attrs:{\"max-width\":\"1306\",\"title\":\"Новая роль\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('RolesItemForm',{ref:\"roleFormRef\",attrs:{\"valid\":_vm.roleFormIsValid},on:{\"update:valid\":function($event){_vm.roleFormIsValid=$event}},model:{value:(_vm.roleFormData),callback:function ($$v) {_vm.roleFormData=$$v},expression:\"roleFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"roles-add-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"roles-add-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"roles-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"rootRef\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"roles-item-form__row px-6\"},[_c('div',{staticClass:\"roles-item-form__col py-6\"},[_c('div',{staticClass:\"roles-item-form__field pt-1\"},[_c('v-text-field',{staticClass:\"roles-item-form__text-field\",attrs:{\"label\":\"Название\",\"rules\":_vm.nameRules,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.nameIsLoading,\"disabled\":_vm.nameIsDisabled,\"required\":\"\"},model:{value:(_vm.currentName),callback:function ($$v) {_vm.currentName=$$v},expression:\"currentName\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"roles-item-form__field mb-6\"},[_c('v-textarea',{staticClass:\"roles-item-form__text-field\",attrs:{\"label\":\"Описание\",\"rows\":\"3\",\"outlined\":\"\",\"dense\":\"\",\"no-resize\":\"\",\"hide-details\":\"\",\"loading\":_vm.descrIsLoading,\"disabled\":_vm.descrIsDisabled},model:{value:(_vm.currentDescr),callback:function ($$v) {_vm.currentDescr=$$v},expression:\"currentDescr\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"roles-item-form__field\"},[_c('DAutocomplete',{staticClass:\"roles-item-form__autocomplete\",attrs:{\"label\":\"Организации\",\"items\":_vm.serviceOrganizations,\"item-text\":\"name\",\"item-value\":\"id\",\"multiple\":\"\",\"loading\":_vm.serviceOrganizationsIsLoading,\"disabled\":_vm.serviceOrganizationsIsDisabled},model:{value:(_vm.currentServiceOrganizations),callback:function ($$v) {_vm.currentServiceOrganizations=$$v},expression:\"currentServiceOrganizations\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"roles-item-form__field\"},[_c('AppUsersAutocomplete',{staticClass:\"roles-item-form__autocomplete\",model:{value:(_vm.currentUsers),callback:function ($$v) {_vm.currentUsers=$$v},expression:\"currentUsers\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"roles-item-form__col roles-item-form__col--grey pt-6\"},[_c('div',{staticClass:\"roles-item-form__field pl-6 pr-16\"},[_c('DTreeView',{staticClass:\"roles-item-form__tree-view pt-1\",attrs:{\"label\":\"Типы сервиса\",\"items\":_vm.serviceTypes,\"open-on-click\":\"\",\"selectable\":\"\",\"searchable\":\"\",\"loading\":_vm.serviceTypesIsLoading,\"disabled\":_vm.serviceTypesIsDisabled},model:{value:(_vm.currentServiceTypes),callback:function ($$v) {_vm.currentServiceTypes=$$v},expression:\"currentServiceTypes\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"roles-item-form__col py-6\"},[_c('div',{staticClass:\"roles-item-form__field\"},[_c('DSelectList',{staticClass:\"roles-item-form__select-list roles-item-form__select-list--permissions\",attrs:{\"label\":\"Право\",\"items\":_vm.permissions,\"item-key\":\"id\",\"item-text\":\"name\",\"loading\":_vm.permissionsIsLoading,\"disabled\":_vm.permissionsIsDisabled},model:{value:(_vm.currentPermissions),callback:function ($$v) {_vm.currentPermissions=$$v},expression:\"currentPermissions\"}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport {\n DAutocomplete,\n DSelectList,\n DTreeView,\n} from '@shared/druid-kit';\n\nimport { Role } from '@/models/Role';\n\nimport AppUsersAutocomplete from '@/components/_newDesign/common/inputs/AppUsersAutocomplete.vue';\n\nimport { usePermissionsCatalogStore } from '../../../store/permissions/permissionsCatalog';\nimport { useRoleDetailsStore } from '../../../store/roles/roleDetails';\n\nexport default defineComponent({\n components: {\n DAutocomplete,\n DSelectList,\n DTreeView,\n AppUsersAutocomplete,\n },\n props: {\n value: { type: Object as PropType, default: null },\n valid: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n loading,\n } = toRefs(props);\n\n const permissionsCatalogStore = usePermissionsCatalogStore();\n const roleDetailsStore = useRoleDetailsStore();\n\n const rootRef = ref(null);\n\n const isValid = ref(false);\n\n watch(isValid, (val) => {\n context.emit('update:valid', val);\n }, { immediate: true });\n\n const resetValidation = () => {\n if (!rootRef.value) return;\n\n rootRef.value.resetValidation();\n };\n\n const updateRole = (payload: Partial) => {\n const newRole = {\n ...value.value,\n ...payload,\n };\n\n context.emit('input', newRole);\n };\n\n // // // // //\n\n const nameRules = ref([\n (val: string) => !!val,\n ]);\n\n const nameIsLoading = computed(() => loading.value);\n const nameIsDisabled = computed(() => nameIsLoading.value);\n\n const currentName = computed({\n get() {\n return value.value?.name || '';\n },\n set(val: string) {\n updateRole({ name: val });\n },\n });\n\n // // // // //\n\n const descrIsLoading = computed(() => loading.value);\n const descrIsDisabled = computed(() => descrIsLoading.value);\n\n const currentDescr = computed({\n get() {\n return value.value?.description || '';\n },\n set(val: string) {\n updateRole({ description: val });\n },\n });\n\n // // // // //\n\n const permissions = computed(() => permissionsCatalogStore.getters.permissions);\n const permissionsIsLoadingData = ref(false);\n\n const permissionsIsLoading = computed({\n get() {\n return permissionsIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n permissionsIsLoadingData.value = val;\n },\n });\n\n const permissionsIsDisabled = computed(() => !permissions.value.length || permissionsIsLoading.value);\n\n const currentPermissions = computed({\n get() {\n return value.value?.permissions || [];\n },\n set(val: string[]) {\n updateRole({ permissions: val });\n },\n });\n\n const fetchPermissions = async () => {\n permissionsIsLoading.value = true;\n\n try {\n await permissionsCatalogStore.actions.FETCH_PERMISSIONS();\n } finally {\n permissionsIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const serviceTypes = computed(() => roleDetailsStore.getters.serviceTypes);\n const serviceTypesIsLoadingData = ref(false);\n\n const serviceTypesIsLoading = computed({\n get() {\n return serviceTypesIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n serviceTypesIsLoadingData.value = val;\n },\n });\n\n const serviceTypesIsDisabled = computed(() => !serviceTypes.value.length || serviceTypesIsLoading.value);\n\n const currentServiceTypes = computed({\n get() {\n return value.value?.serviceTypes || [];\n },\n set(val: string[]) {\n updateRole({ serviceTypes: val });\n },\n });\n\n const fetchServiceTypes = async () => {\n serviceTypesIsLoading.value = true;\n\n try {\n await roleDetailsStore.actions.FETCH_SERVICE_TYPES();\n } finally {\n serviceTypesIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const serviceOrganizations = computed(() => roleDetailsStore.getters.serviceOrganizations);\n const serviceOrganizationsIsLoadingData = ref(false);\n\n const serviceOrganizationsIsLoading = computed({\n get() {\n return serviceOrganizationsIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n serviceOrganizationsIsLoadingData.value = val;\n },\n });\n\n const serviceOrganizationsIsDisabled = computed(() => !serviceOrganizations.value.length || serviceOrganizationsIsLoading.value);\n\n const currentServiceOrganizations = computed({\n get() {\n return value.value?.serviceOrganizations || [];\n },\n set(val: string[]) {\n updateRole({ serviceOrganizations: val });\n },\n });\n\n const fetchServiceOrganizations = async () => {\n serviceOrganizationsIsLoading.value = true;\n\n try {\n await roleDetailsStore.actions.FETCH_SERVICE_ORGANIZATIONS();\n } finally {\n serviceOrganizationsIsLoading.value = false;\n }\n };\n\n // // // // //\n const currentUsers = computed({\n get() {\n return value.value?.users || [];\n },\n set(val: string[]) {\n updateRole({ users: val });\n },\n });\n\n // // // // //\n\n const init = async () => {\n await Promise.all([\n fetchPermissions(),\n fetchServiceTypes(),\n fetchServiceOrganizations(),\n ]);\n };\n\n init();\n\n return {\n rootRef,\n isValid,\n resetValidation,\n //\n currentName,\n nameRules,\n nameIsLoading,\n nameIsDisabled,\n //\n currentDescr,\n descrIsLoading,\n descrIsDisabled,\n //\n permissions,\n currentPermissions,\n permissionsIsLoading,\n permissionsIsDisabled,\n //\n serviceTypes,\n currentServiceTypes,\n serviceTypesIsLoading,\n serviceTypesIsDisabled,\n //\n serviceOrganizations,\n currentServiceOrganizations,\n serviceOrganizationsIsLoading,\n serviceOrganizationsIsDisabled,\n //\n currentUsers,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesItemForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesItemForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RolesItemForm.vue?vue&type=template&id=3221b10f&scoped=true&\"\nimport script from \"./RolesItemForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./RolesItemForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RolesItemForm.vue?vue&type=style&index=0&id=3221b10f&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3221b10f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VForm,VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { Role } from '@/models/Role';\n\nimport { PartialWithout } from '@/utils/type';\n\nimport RolesItemForm from '../forms/RolesItemForm.vue';\n\nimport { useRolesCatalogStore } from '../../../store/roles/rolesCatalog';\n\nexport default defineComponent({\n components: {\n AppModal,\n RolesItemForm,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const rolesCatalogStore = useRolesCatalogStore();\n\n const roleFormRef = ref(null);\n const roleFormData = ref | null>(null);\n const roleFormIsValid = ref(false);\n\n const roleFormResetValidation = async () => {\n if (!roleFormRef.value) return;\n\n roleFormRef.value.resetValidation();\n };\n\n const newRole = computed(() => {\n if (!roleFormData.value || !roleFormIsValid.value) return null;\n\n return roleFormData.value;\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newRole.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newRole.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await rolesCatalogStore.actions.CREATE_ROLE(newRole.value);\n\n close();\n } finally {\n saving.value = false;\n }\n };\n\n watch(value, async (val) => {\n if (!val) return;\n\n roleFormData.value = null;\n\n roleFormResetValidation();\n }, { immediate: true });\n\n return {\n roleFormRef,\n roleFormData,\n roleFormIsValid,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesAddModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesAddModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RolesAddModal.vue?vue&type=template&id=32c619d8&scoped=true&\"\nimport script from \"./RolesAddModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./RolesAddModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RolesAddModal.vue?vue&type=style&index=0&id=32c619d8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32c619d8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"roles-item-modal\",attrs:{\"max-width\":\"1306\",\"title\":_vm.modalTitle,\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('RolesItemForm',{attrs:{\"valid\":_vm.roleFormIsValid,\"loading\":_vm.roleIsLoading},on:{\"update:valid\":function($event){_vm.roleFormIsValid=$event}},model:{value:(_vm.roleFormData),callback:function ($$v) {_vm.roleFormData=$$v},expression:\"roleFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"roles-item-modal__block px-6 mb-6\"},[_c('v-alert',{staticClass:\"roles-item-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"roles-item-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { Role } from '@/models/Role';\n\nimport { PartialWithout } from '@/utils/type';\n\nimport RolesItemForm from '../forms/RolesItemForm.vue';\n\nimport { useRolesCatalogStore } from '../../../store/roles/rolesCatalog';\nimport { useRoleDetailsStore } from '../../../store/roles/roleDetails';\n\nexport default defineComponent({\n components: {\n AppModal,\n RolesItemForm,\n },\n props: {\n value: { type: Boolean, default: false },\n title: { type: String, default: '' },\n roleId: { type: String as PropType, default: null },\n },\n setup(props, context) {\n const {\n value,\n title,\n roleId,\n } = toRefs(props);\n\n const rolesCatalogStore = useRolesCatalogStore();\n const roleDetailsStore = useRoleDetailsStore();\n\n const role = computed(() => roleDetailsStore.getters.role);\n const roleIsLoading = computed(() => roleDetailsStore.getters.isLoading);\n\n const roleFormRef = ref(null);\n const roleFormData = ref | null>(null);\n const roleFormIsValid = ref(false);\n\n const roleReset = () => {\n roleDetailsStore.mutations.RESET_ROLE();\n };\n\n const roleFormResetValidation = async () => {\n if (!roleFormRef.value) return;\n\n roleFormRef.value.resetValidation();\n };\n\n const newRole = computed(() => {\n if (!roleFormData.value || !roleFormIsValid.value) return null;\n\n return roleFormData.value;\n });\n\n const modalTitle = computed(() => title.value || role.value?.name || 'Роль');\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newRole.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!roleId.value || !newRole.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await rolesCatalogStore.actions.UPDATE_ROLE({\n roleId: roleId.value,\n data: newRole.value,\n });\n\n close();\n } finally {\n saving.value = false;\n }\n };\n\n const init = async () => {\n if (!roleId.value) return;\n\n await roleDetailsStore.actions.FETCH_ROLE(roleId.value);\n\n roleFormData.value = role.value;\n };\n\n const reset = () => {\n roleFormData.value = null;\n\n roleReset();\n roleFormResetValidation();\n };\n\n watch(value, (val) => {\n if (!val) return;\n\n reset();\n init();\n }, { immediate: true });\n\n return {\n roleIsLoading,\n roleFormData,\n roleFormIsValid,\n modalTitle,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesItemModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesItemModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RolesItemModal.vue?vue&type=template&id=42131978&scoped=true&\"\nimport script from \"./RolesItemModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./RolesItemModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RolesItemModal.vue?vue&type=style&index=0&id=42131978&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42131978\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport useModals from '@/composables/useModals';\n\nimport RolesCatalogHeader from '../../components/Roles/RolesCatalog/RolesCatalogHeader.vue';\nimport RolesTable from '../../components/Roles/RolesCatalog/RolesTable/RolesTable.vue';\n\nimport RolesAddModal from '../../components/Roles/modals/RolesAddModal.vue';\nimport RolesItemModal from '../../components/Roles/modals/RolesItemModal.vue';\n\nimport { useRolesCatalogStore } from '../../store/roles/rolesCatalog';\n\nexport default defineComponent({\n components: {\n AppView,\n RolesCatalogHeader,\n RolesTable,\n RolesAddModal,\n RolesItemModal,\n },\n setup() {\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const {\n modalsMap,\n openModal,\n } = useModals(['add', 'item']);\n\n const rolesCatalogStore = useRolesCatalogStore();\n\n const roles = computed(() => rolesCatalogStore.getters.roles);\n const rolesIsLoading = computed(() => rolesCatalogStore.getters.isLoading);\n const rolesHaveBeenFiltered = computed(() => rolesCatalogStore.getters.rolesHaveBeenFiltered);\n\n const fetch = async () => {\n await rolesCatalogStore.actions.FETCH_ROLES();\n };\n\n const init = async () => {\n updateIsLoading(true);\n\n try {\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n init();\n\n return {\n modalsMap,\n roles,\n rolesIsLoading,\n rolesHaveBeenFiltered,\n openModal,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesCatalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesCatalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RolesCatalog.vue?vue&type=template&id=467ddb3b&scoped=true&\"\nimport script from \"./RolesCatalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./RolesCatalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RolesCatalog.vue?vue&type=style&index=0&id=467ddb3b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"467ddb3b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport Roles from '../views/Roles.vue';\nimport RolesCatalog from '../views/Roles/RolesCatalog.vue';\nimport PageCatalogLoader from '../../../components/_newDesign/common/loaders/PageCatalogLoader.vue';\n\nconst routeConfig: AppRouteConfig = {\n path: 'roles',\n component: Roles,\n meta: {\n title: 'Роли',\n permission: 'admin',\n order: 2,\n },\n children: [\n {\n name: 'roles-catalog',\n path: '',\n component: RolesCatalog,\n meta: {\n title: 'Роли',\n loader: PageCatalogLoader,\n header: {\n sticky: true,\n },\n },\n },\n ],\n};\n\nexport default routeConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Permissions.vue?vue&type=template&id=162eb335&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"permissions-catalog\"},[(_vm.permissions.length || _vm.permissionsHaveBeenFiltered)?_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('PermissionsCatalogHeader',{on:{\"open-modal\":_vm.openModal}})],1):_vm._e(),_vm._v(\" \"),(_vm.permissions.length)?_c('div',{staticClass:\"permissions-catalog__content\"},[_c('PermissionsTable',{attrs:{\"permissions\":_vm.permissions},on:{\"open-modal\":_vm.openModal}})],1):_c('div',{staticClass:\"permissions-catalog__stub\"},[(_vm.permissionsIsLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.permissionsHaveBeenFiltered ? 'Ничего не найдено :-(' : 'Разрешения')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.permissionsHaveBeenFiltered ? 'Попробуйте изменить запрос' : 'Пока не добавлено ни одного разрешения')+\"\\n \")]),_vm._v(\" \"),(!_vm.permissionsHaveBeenFiltered)?_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":function($event){return _vm.openModal('add')}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1):_vm._e()]],2),_vm._v(\" \"),_c('PermissionsAddModal',{model:{value:(_vm.modalsMap.add.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.add, \"value\", $$v)},expression:\"modalsMap.add.value\"}}),_vm._v(\" \"),_c('PermissionsItemModal',_vm._b({model:{value:(_vm.modalsMap.item.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.item, \"value\", $$v)},expression:\"modalsMap.item.value\"}},'PermissionsItemModal',_vm.modalsMap.item.props,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"permissions-catalog-header d-flex align-center\"},[_vm._m(0),_vm._v(\" \"),_c('div',[_c('DBtnInline',{on:{\"click\":_vm.openAddModal},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Новое разрешение\\n \")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"ml-auto\"},[_c('v-text-field',{staticClass:\"permissions-catalog-header__search\",attrs:{\"label\":\"Поиск\",\"prepend-inner-icon\":\"mdi-magnify\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mr-3\"},[_c('div',{staticClass:\"text-h5\"},[_vm._v(\"\\n Разрешения\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport { usePermissionsCatalogStore } from '../../../store/permissions/permissionsCatalog';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n setup(props, context) {\n const permissionsCatalogStore = usePermissionsCatalogStore();\n\n const query = computed({\n get() {\n return permissionsCatalogStore.getters.filters.query;\n },\n set: debounce((val: string) => {\n permissionsCatalogStore.dispatch('UPDATE_FILTERS', { query: val });\n }, 300),\n });\n\n const openAddModal = () => {\n context.emit('open-modal', 'add');\n };\n\n return {\n query,\n openAddModal,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsCatalogHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsCatalogHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PermissionsCatalogHeader.vue?vue&type=template&id=f4597da6&scoped=true&\"\nimport script from \"./PermissionsCatalogHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./PermissionsCatalogHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PermissionsCatalogHeader.vue?vue&type=style&index=0&id=f4597da6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f4597da6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({attrs:{\"headers\":_vm.headers,\"items\":_vm.permissions,\"items-per-page\":_vm.permissions.length,\"server-items-length\":_vm.permissions.length,\"loading\":_vm.permissionsIsLoading,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('PermissionsTableRow',{attrs:{\"permission\":item},on:{\"open-modal\":function($event){return _vm.$emit('open-modal', $event)}}})]}}])},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"permissions-table-row\"},[_c('DTableCell',{staticClass:\"permissions-table-row__cell permissions-table-row__cell--name font-weight-medium\",on:{\"click\":_vm.openPermission}},[_vm._v(\"\\n \"+_vm._s(_vm.permission.name || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.permission.id || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.permission.scope || '—')+\"\\n \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { Permission } from '@/models/Permission';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n permission: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const {\n permission,\n } = toRefs(props);\n\n const openPermission = () => {\n context.emit('open-modal', {\n slug: 'item',\n props: {\n title: permission.value.name,\n permissionId: permission.value.id,\n },\n });\n };\n\n return {\n openPermission,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PermissionsTableRow.vue?vue&type=template&id=7e2612ea&scoped=true&\"\nimport script from \"./PermissionsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./PermissionsTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PermissionsTableRow.vue?vue&type=style&index=0&id=7e2612ea&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e2612ea\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, PropType } from '@vue/composition-api';\n\nimport { DTable } from '@shared/druid-kit';\n\nimport { Permission } from '@/models/Permission';\n\nimport PermissionsTableRow from './PermissionsTableRow.vue';\n\nimport { usePermissionsCatalogStore } from '../../../../store/permissions/permissionsCatalog';\n\nexport default defineComponent({\n components: {\n DTable,\n PermissionsTableRow,\n },\n props: {\n permissions: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const permissionsCatalogStore = usePermissionsCatalogStore();\n\n const headers: {\n class: string;\n text: string;\n sortable: boolean;\n }[] = [\n {\n class: 'caption',\n text: 'Название',\n sortable: false,\n },\n {\n class: 'caption',\n text: 'Идентификатор',\n sortable: false,\n },\n {\n class: 'caption',\n text: 'Область видимости (scope)',\n sortable: false,\n },\n ];\n\n const permissionsIsLoading = computed(() => permissionsCatalogStore.getters.isLoading);\n\n return {\n headers,\n permissionsIsLoading,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PermissionsTable.vue?vue&type=template&id=408ec055&\"\nimport script from \"./PermissionsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./PermissionsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"permissions-add-modal\",attrs:{\"width\":\"606\",\"title\":\"Новое разрещение\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('PermissionsItemForm',{ref:\"permissionFormRef\",attrs:{\"valid\":_vm.permissionFormIsValid},on:{\"update:valid\":function($event){_vm.permissionFormIsValid=$event}},model:{value:(_vm.permissionFormData),callback:function ($$v) {_vm.permissionFormData=$$v},expression:\"permissionFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"px-6 mb-6\"},[_c('v-alert',{staticClass:\"permissions-add-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"permissions-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"rootRef\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"permission-item-form__row px-6 mb-4\"},[_c('div',{staticClass:\"permission-item-form__col\"},[_c('div',{staticClass:\"permission-item-form__field\"},[_c('v-text-field',{staticClass:\"permission-item-form__text-field\",attrs:{\"label\":\"Идентификатор\",\"rules\":_vm.idRules,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.idIsLoading,\"disabled\":_vm.idIsDisabled,\"required\":\"\"},model:{value:(_vm.currentId),callback:function ($$v) {_vm.currentId=$$v},expression:\"currentId\"}})],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"permission-item-form__row px-6 mb-4\"},[_c('div',{staticClass:\"permission-item-form__col\"},[_c('div',{staticClass:\"permission-item-form__field\"},[_c('v-text-field',{staticClass:\"permission-item-form__text-field\",attrs:{\"label\":\"Название\",\"rules\":_vm.nameRules,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.nameIsLoading,\"disabled\":_vm.nameIsDisabled,\"required\":\"\"},model:{value:(_vm.currentName),callback:function ($$v) {_vm.currentName=$$v},expression:\"currentName\"}})],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"permission-item-form__row px-6 mb-4\"},[_c('div',{staticClass:\"permission-item-form__col\"},[_c('div',{staticClass:\"permission-item-form__field\"},[_c('v-text-field',{staticClass:\"permission-item-form__text-field\",attrs:{\"label\":\"Область видимости (scope)\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.scopeIsLoading,\"disabled\":_vm.scopeIsDisabled},model:{value:(_vm.currentScope),callback:function ($$v) {_vm.currentScope=$$v},expression:\"currentScope\"}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport { Permission } from '@/models/Permission';\n\nexport default defineComponent({\n props: {\n value: { type: Object as PropType, default: null },\n valid: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n disabledFields: { type: Array as PropType, default: () => [] },\n },\n setup(props, context) {\n const {\n value,\n loading,\n disabledFields,\n } = toRefs(props);\n\n const rootRef = ref(null);\n\n const isValid = ref(false);\n\n watch(isValid, (val) => {\n context.emit('update:valid', val);\n }, { immediate: true });\n\n const resetValidation = () => {\n if (!rootRef.value) return;\n\n rootRef.value.resetValidation();\n };\n\n const updatePermission = (payload: Partial) => {\n const newPermission = {\n ...value.value,\n ...payload,\n };\n\n context.emit('input', newPermission);\n };\n\n // // // // //\n\n const idRules = ref([\n (val: string) => !!val,\n ]);\n\n const idIsLoading = computed(() => loading.value);\n const idIsDisabled = computed(() => idIsLoading.value || disabledFields.value.includes('id'));\n\n const currentId = computed({\n get() {\n return value.value?.id || '';\n },\n set(val: string) {\n updatePermission({ id: val });\n },\n });\n\n // // // // //\n\n const nameRules = ref([\n (val: string) => !!val,\n ]);\n\n const nameIsLoading = computed(() => loading.value);\n const nameIsDisabled = computed(() => nameIsLoading.value || disabledFields.value.includes('name'));\n\n const currentName = computed({\n get() {\n return value.value?.name || '';\n },\n set(val: string) {\n updatePermission({ name: val });\n },\n });\n\n // // // // //\n\n const scopeIsLoading = computed(() => loading.value);\n const scopeIsDisabled = computed(() => scopeIsLoading.value || disabledFields.value.includes('scope'));\n\n const currentScope = computed({\n get() {\n return value.value?.scope || '';\n },\n set(val: string) {\n updatePermission({ scope: val });\n },\n });\n\n // // // // //\n\n const init = async () => {\n await Promise.all([\n ]);\n };\n\n init();\n\n return {\n rootRef,\n isValid,\n resetValidation,\n //\n currentId,\n idRules,\n idIsLoading,\n idIsDisabled,\n //\n currentName,\n nameRules,\n nameIsLoading,\n nameIsDisabled,\n //\n currentScope,\n scopeIsLoading,\n scopeIsDisabled,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsItemForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsItemForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PermissionsItemForm.vue?vue&type=template&id=9f33aa3a&scoped=true&\"\nimport script from \"./PermissionsItemForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./PermissionsItemForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PermissionsItemForm.vue?vue&type=style&index=0&id=9f33aa3a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9f33aa3a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VForm,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { Permission } from '@/models/Permission';\n\nimport PermissionsItemForm from '../forms/PermissionsItemForm.vue';\n\nimport { usePermissionsCatalogStore } from '../../../store/permissions/permissionsCatalog';\n\nexport default defineComponent({\n components: {\n AppModal,\n PermissionsItemForm,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const permissionsCatalogStore = usePermissionsCatalogStore();\n\n const permissionFormRef = ref(null);\n const permissionFormData = ref(null);\n const permissionFormIsValid = ref(false);\n\n const permissionFormResetValidation = async () => {\n if (!permissionFormRef.value) return;\n\n permissionFormRef.value.resetValidation();\n };\n\n const newPermission = computed(() => {\n if (!permissionFormData.value || !permissionFormIsValid.value) return null;\n\n return permissionFormData.value;\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newPermission.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newPermission.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await permissionsCatalogStore.actions.CREATE_PERMISSION(newPermission.value);\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data || {}).reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n watch(value, async (val) => {\n if (!val) return;\n\n permissionFormData.value = null;\n\n permissionFormResetValidation();\n }, { immediate: true });\n\n return {\n permissionFormRef,\n permissionFormData,\n permissionFormIsValid,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsAddModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsAddModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PermissionsAddModal.vue?vue&type=template&id=3e1f833c&scoped=true&\"\nimport script from \"./PermissionsAddModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./PermissionsAddModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PermissionsAddModal.vue?vue&type=style&index=0&id=3e1f833c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e1f833c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"permissions-item-modal\",attrs:{\"width\":\"606\",\"title\":_vm.modalTitle,\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('PermissionsItemForm',{attrs:{\"valid\":_vm.permissionFormIsValid,\"loading\":_vm.permissionIsLoading,\"disabled-fields\":['id']},on:{\"update:valid\":function($event){_vm.permissionFormIsValid=$event}},model:{value:(_vm.permissionFormData),callback:function ($$v) {_vm.permissionFormData=$$v},expression:\"permissionFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"px-6 mb-6\"},[_c('v-alert',{staticClass:\"permissions-item-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"permissions-item-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { Permission } from '@/models/Permission';\n\nimport PermissionsItemForm from '../forms/PermissionsItemForm.vue';\n\nimport { usePermissionsCatalogStore } from '../../../store/permissions/permissionsCatalog';\nimport { usePermissionDetailsStore } from '../../../store/permissions/permissionDetails';\n\nexport default defineComponent({\n components: {\n AppModal,\n PermissionsItemForm,\n },\n props: {\n value: { type: Boolean, default: false },\n title: { type: String, default: '' },\n permissionId: { type: String as PropType, default: null },\n },\n setup(props, context) {\n const {\n value,\n title,\n permissionId,\n } = toRefs(props);\n\n const permissionsCatalogStore = usePermissionsCatalogStore();\n const permissionDetailsStore = usePermissionDetailsStore();\n\n const permission = computed(() => permissionDetailsStore.getters.permission);\n const permissionIsLoading = computed(() => permissionDetailsStore.getters.isLoading);\n\n const permissionFormRef = ref(null);\n const permissionFormData = ref(null);\n const permissionFormIsValid = ref(false);\n\n const permissionReset = () => {\n permissionDetailsStore.mutations.RESET();\n };\n\n const permissionFormResetValidation = async () => {\n if (!permissionFormRef.value) return;\n\n permissionFormRef.value.resetValidation();\n };\n\n const newPermission = computed(() => {\n if (!permissionFormData.value || !permissionFormIsValid.value) return null;\n\n return permissionFormData.value;\n });\n\n const modalTitle = computed(() => title.value || permission.value?.name || 'Разрешение');\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newPermission.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!permissionId.value || !newPermission.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await permissionsCatalogStore.actions.UPDATE_PERMISSION({\n permissionId: permissionId.value,\n data: newPermission.value,\n });\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data || {}).reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n const init = async () => {\n if (!permissionId.value) return;\n\n await permissionDetailsStore.actions.FETCH_PERMISSION(permissionId.value);\n\n permissionFormData.value = permission.value;\n };\n\n const reset = () => {\n permissionFormData.value = null;\n\n permissionReset();\n permissionFormResetValidation();\n };\n\n watch(value, (val) => {\n if (!val) return;\n\n reset();\n init();\n }, { immediate: true });\n\n return {\n permissionIsLoading,\n permissionFormData,\n permissionFormIsValid,\n modalTitle,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsItemModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsItemModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PermissionsItemModal.vue?vue&type=template&id=3eab4b2b&scoped=true&\"\nimport script from \"./PermissionsItemModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./PermissionsItemModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PermissionsItemModal.vue?vue&type=style&index=0&id=3eab4b2b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3eab4b2b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport useModals from '@/composables/useModals';\n\nimport PermissionsCatalogHeader from '../../components/Permissions/PermissionsCatalog/PermissionsCatalogHeader.vue';\nimport PermissionsTable from '../../components/Permissions/PermissionsCatalog/PermissionsTable/PermissionsTable.vue';\n\nimport PermissionsAddModal from '../../components/Permissions/modals/PermissionsAddModal.vue';\nimport PermissionsItemModal from '../../components/Permissions/modals/PermissionsItemModal.vue';\n\nimport { usePermissionsCatalogStore } from '../../store/permissions/permissionsCatalog';\n\nexport default defineComponent({\n components: {\n AppView,\n PermissionsCatalogHeader,\n PermissionsTable,\n PermissionsAddModal,\n PermissionsItemModal,\n },\n setup() {\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const {\n modalsMap,\n openModal,\n } = useModals(['add', 'item']);\n\n const permissionsCatalogStore = usePermissionsCatalogStore();\n\n const permissions = computed(() => permissionsCatalogStore.getters.permissions);\n const permissionsIsLoading = computed(() => permissionsCatalogStore.getters.isLoading);\n const permissionsHaveBeenFiltered = computed(() => permissionsCatalogStore.getters.permissionsHaveBeenFiltered);\n\n const fetch = async () => {\n await permissionsCatalogStore.actions.FETCH_PERMISSIONS();\n };\n\n const init = async () => {\n updateIsLoading(true);\n permissionsCatalogStore.actions.RESET_FILTERS();\n\n try {\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n init();\n\n return {\n modalsMap,\n permissions,\n permissionsIsLoading,\n permissionsHaveBeenFiltered,\n openModal,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsCatalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsCatalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PermissionsCatalog.vue?vue&type=template&id=8beac5d6&scoped=true&\"\nimport script from \"./PermissionsCatalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./PermissionsCatalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PermissionsCatalog.vue?vue&type=style&index=0&id=8beac5d6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8beac5d6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport Permissions from '../views/Permissions.vue';\nimport PermissionsCatalog from '../views/Permissions/PermissionsCatalog.vue';\nimport PageCatalogLoader from '../../../components/_newDesign/common/loaders/PageCatalogLoader.vue';\n\nconst routeConfig: AppRouteConfig = {\n path: 'permissions',\n component: Permissions,\n meta: {\n title: 'Разрешения',\n permission: 'admin',\n order: 3,\n },\n children: [\n {\n name: 'permissions-catalog',\n path: '',\n component: PermissionsCatalog,\n meta: {\n title: 'Разрешения',\n loader: PageCatalogLoader,\n header: {\n sticky: true,\n },\n },\n },\n ],\n};\n\nexport default routeConfig;\n","/* eslint-disable max-classes-per-file */\n\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport { isEqual, orderBy } from 'lodash';\n\nimport {\n BenchmarkBoardApi,\n} from '@/api';\n\nimport { FetchStatisticsPayload } from '@/api/modules/benchmarkBoard.api';\n\nimport { BenchmarkBoardStatisticsGroup } from '@/models/BenchmarkBoard';\n\n// TODO: refactor\n\nexport const enum GroupByOptions {\n // none = 0,\n dataProvider = 1,\n agency = 2,\n client = 3,\n brand = 4,\n siteName = 5,\n adPlace = 6,\n capping = 7,\n timing = 8,\n geo = 9,\n transmittance = 10,\n audience = 11,\n interests = 12\n}\n\nexport interface NamedOption {\n value: string | number;\n name: string;\n}\n\nexport interface GroupOption extends NamedOption {\n prop: string;\n}\n\nexport interface HistogramGroupMetrics extends BenchmarkBoardStatisticsGroup {\n index: number;\n}\n\ntype DashboardFilterData = Record<'adPlace' | 'dataProviderName' | 'clientId' | 'brandName' | 'capping' | 'timing' | 'geo' | 'transmittance' | 'audience' | 'siteName', {\n slug: string;\n label: string;\n items: {\n value: string | number | null;\n text: string | number;\n }[];\n}>;\n\nexport type StatisticsFilters = Record;\n\ntype StatisticsFiltersValuesMap = Record;\n\nexport const GROUP_BY_OPTIONS_LIST: GroupOption[] = [\n {\n value: GroupByOptions.dataProvider,\n name: 'источник данных',\n prop: 'dataProviderName',\n },\n {\n value: GroupByOptions.client,\n name: 'клиент',\n prop: 'clientName',\n },\n {\n value: GroupByOptions.brand,\n name: 'бренд',\n prop: 'brandName',\n },\n {\n value: GroupByOptions.capping,\n name: 'частота',\n prop: 'capping',\n },\n {\n value: GroupByOptions.timing,\n name: 'продолжительность',\n prop: 'timing',\n },\n {\n value: GroupByOptions.geo,\n name: 'гео',\n prop: 'geo',\n },\n {\n value: GroupByOptions.transmittance,\n name: 'пропускаемость',\n prop: 'transmittance',\n },\n {\n value: GroupByOptions.audience,\n name: 'аудитория',\n prop: 'audience',\n },\n {\n value: GroupByOptions.siteName,\n name: 'площадка',\n prop: 'siteName',\n },\n {\n value: GroupByOptions.adPlace,\n name: 'формат',\n prop: 'adPlace',\n },\n];\n\nexport const HISTOGRAM_METRICS: NamedOption[] = [\n {\n value: 'viewability',\n name: 'Viewability %',\n },\n {\n value: 'ctr',\n name: 'CTR %',\n },\n {\n value: 'vtR25',\n name: 'VTR 25%',\n },\n {\n value: 'vtR50',\n name: 'VTR 50%',\n },\n {\n value: 'vtR75',\n name: 'VTR 75%',\n },\n {\n value: 'vtR100',\n name: 'VTR 100%',\n },\n {\n value: 'mobile',\n name: 'Mobile %',\n },\n];\n\nclass ModuleState {\n filtersData: DashboardFilterData | null = null;\n\n filters: StatisticsFilters = {\n dataProviderName: null,\n clientId: null,\n brandName: null,\n capping: null,\n timing: null,\n geo: null,\n transmittance: null,\n audience: null,\n siteName: null,\n adPlace: null,\n groupDataBy: 0,\n };\n\n isLoading = false;\n\n metric: NamedOption | null = null;\n\n statistics: BenchmarkBoardStatisticsGroup[] = [];\n\n colorGroup: GroupOption | null = null;\n\n group: GroupOption | null = null;\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get filtersData() {\n return this.state.filtersData;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get filtersAreEnabled() {\n const defaultFilters = new ModuleState().filters;\n\n return Object.entries(this.getters.filters).some(([key, val]) => {\n const defaultValue = defaultFilters[key];\n\n return !isEqual(val, defaultValue);\n });\n }\n\n get metric() {\n return this.state.metric || HISTOGRAM_METRICS[0];\n }\n\n get colorGroup() {\n return this.state.colorGroup || GROUP_BY_OPTIONS_LIST.find((item) => item.value === GroupByOptions.adPlace) as GroupOption;\n }\n\n get statistics() {\n const currentMetric = this.getters.metric.value;\n\n return this.state.statistics\n .filter((data) => parseFloat(data[currentMetric]))\n .map((data, idx) => {\n const index = idx;\n\n return {\n index,\n ...data,\n };\n });\n }\n\n get groups() {\n const currentColorGroup = this.getters.colorGroup;\n\n if (!currentColorGroup) return [];\n\n return orderBy([...new Set(this.getters.statistics.map((item) => item[currentColorGroup.prop]))]);\n }\n\n get chartData() {\n const currentColorGroup = this.getters.colorGroup;\n\n if (!currentColorGroup) return [];\n\n const formatMetric = (metric: number) => (metric * 100).toFixed(2);\n\n const groupsDataMap = this.getters.groups.reduce>((acc, group) => {\n acc[group] = [];\n\n return acc;\n }, {});\n\n this.getters.statistics.forEach((item) => {\n const itemColorGroup = item[currentColorGroup.prop] as string; // temp\n\n groupsDataMap[itemColorGroup].push(item);\n });\n\n const currentMetric = this.getters.metric.value;\n\n return Object.entries(groupsDataMap).reduce<{ index: number; group: string; metric: string }[]>((acc, [group, data]) => {\n const groupData = orderBy(data.map((item) => {\n const formattedMetric = formatMetric(item[currentMetric]);\n\n return {\n index: item.index,\n group,\n metric: formattedMetric,\n };\n }), (item) => item.metric);\n\n acc.push(...groupData);\n\n return acc;\n }, []);\n }\n\n get statisticsFetchParams() {\n return Object.entries(this.getters.filters).reduce((acc, [key, val]) => {\n acc[key] = val;\n\n return acc;\n }, {} as StatisticsFiltersValuesMap);\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_FILTERS_DATA(payload: DashboardFilterData) {\n this.state.filtersData = payload;\n }\n\n SET_FILTERS(payload: StatisticsFilters) {\n this.state.filters = payload;\n }\n\n SET_METRIC(payload: NamedOption) {\n this.state.metric = payload;\n }\n\n SET_COLOR_GROUP(payload: GroupOption) {\n this.state.colorGroup = payload;\n }\n\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_STATISTICS(payload: BenchmarkBoardStatisticsGroup[]) {\n this.state.statistics = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n INIT_FILTERS_DATA() {\n if (this.getters.filtersAreEnabled) return;\n\n const filtersMeta = [\n {\n label: 'Источник данных',\n itemValue: 'dataProviderName',\n itemText: 'dataProviderName',\n allItem: {\n value: null,\n text: 'Все',\n },\n },\n {\n label: 'Клиент',\n itemValue: 'clientId',\n itemText: 'clientName',\n allItem: {\n value: null,\n text: 'Все',\n },\n },\n {\n label: 'Бренд',\n itemValue: 'brandName',\n itemText: 'brandName',\n allItem: {\n value: null,\n text: 'Все',\n },\n },\n {\n label: 'Частота',\n itemValue: 'capping',\n itemText: 'capping',\n allItem: {\n value: null,\n text: 'Все',\n },\n },\n {\n label: 'Продолжительность',\n itemValue: 'timing',\n itemText: 'timing',\n allItem: {\n value: null,\n text: 'Все',\n },\n },\n {\n label: 'Гео',\n itemValue: 'geo',\n itemText: 'geo',\n allItem: {\n value: null,\n text: 'Все',\n },\n },\n {\n label: 'Пропускаемость',\n itemValue: 'transmittance',\n itemText: 'transmittance',\n allItem: {\n value: null,\n text: 'Все',\n },\n },\n {\n label: 'Аудитория',\n itemValue: 'audience',\n itemText: 'audience',\n allItem: {\n value: null,\n text: 'Все',\n },\n },\n {\n label: 'Площадка',\n itemValue: 'siteName',\n itemText: 'siteName',\n allItem: {\n value: null,\n text: 'Все',\n },\n },\n {\n label: 'Формат',\n itemValue: 'adPlace',\n itemText: 'adPlace',\n allItem: {\n value: null,\n text: 'Все',\n },\n },\n // {\n // itemValue: 'groupDataBy',\n // itemText: 'groupDataBy',\n // },\n ] as const;\n\n const filtersData = filtersMeta.reduce((acc, filterMeta) => {\n acc[filterMeta.itemValue] = {\n slug: filterMeta.itemValue,\n label: filterMeta.label,\n items: [\n filterMeta.allItem,\n ],\n };\n\n return acc;\n }, {} as Record);\n\n const cache = {};\n\n this.getters.statistics.forEach((item) => {\n filtersMeta.forEach((filterMeta) => {\n if (!cache[filterMeta.itemValue]) {\n cache[filterMeta.itemValue] = {};\n }\n\n const value = item[filterMeta.itemValue];\n const text = item[filterMeta.itemText];\n\n const itemIsIncluded = cache[filterMeta.itemValue][value] === text;\n\n if (itemIsIncluded) return;\n\n cache[filterMeta.itemValue][value] = text;\n\n filtersData[filterMeta.itemValue].items.push({\n value,\n text,\n });\n });\n });\n\n this.commit('SET_FILTERS_DATA', filtersData);\n }\n\n INIT_COLOR_GROUP() {\n const defaultFilters = new ModuleState().filters;\n\n if (this.getters.filters.groupDataBy === defaultFilters.groupDataBy) return;\n\n const newColorGroup = GROUP_BY_OPTIONS_LIST.find((item) => item.value === this.getters.filters.groupDataBy) as GroupOption;\n\n this.actions.UPDATE_COLOR_GROUP(newColorGroup);\n }\n\n UPDATE_FILTERS(payload: Partial) {\n const newFilters = Object.entries(payload).reduce((acc, [key, val]) => {\n acc[key] = val;\n\n return acc;\n }, { ...this.getters.filters });\n\n this.commit('SET_FILTERS', newFilters);\n }\n\n UPDATE_METRIC(payload: NamedOption) {\n this.commit('SET_METRIC', payload);\n }\n\n UPDATE_COLOR_GROUP(payload: GroupOption) {\n this.commit('SET_COLOR_GROUP', payload);\n }\n\n async FETCH_STATISTICS() {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await BenchmarkBoardApi.fetchStatistics({ params: this.getters.statisticsFetchParams });\n\n this.commit('SET_STATISTICS', res.data);\n\n await Promise.all([\n this.dispatch('INIT_FILTERS_DATA'),\n this.dispatch('INIT_COLOR_GROUP'),\n ]);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n // RESET_METRIC() {\n // this.dispatch('UPDATE_METRIC', HISTOGRAM_METRICS[0]);\n // }\n\n // RESET_COLOR_GROUP() {\n // this.dispatch('UPDATE_COLOR_GROUP', null);\n // }\n\n // RESET_FILTERS() {\n // const defaultFilters = new ModuleState().filters;\n\n // this.dispatch('UPDATE_FILTERS', defaultFilters);\n\n // this.dispatch('RESET_METRIC');\n // this.dispatch('RESET_COLOR_GROUP');\n // }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useDashboardStore = createComposable(module);\n\nexport default module;\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport AccessControl from '../views/AccessControl.vue';\n\nimport users from './users';\nimport groups from './groups';\nimport roles from './roles';\nimport permissions from './permissions';\n\nconst routes: AppRouteConfig[] = [\n {\n path: '/access-control',\n component: AccessControl,\n meta: {\n group: 'admin',\n title: 'Управление доступом',\n icon: 'mdi-account-multiple',\n order: 0,\n permission: 'admin',\n },\n children: [\n users,\n groups,\n roles,\n permissions,\n ],\n },\n];\n\nexport default routes;\n","import { registerModule } from 'vuex-smart-module';\n\nimport ModuleInit from '@/models/ModuleInit';\n\nimport store from './store';\nimport routes from './routes';\n\nconst moduleInit: ModuleInit = (ctx) => {\n registerModule(ctx.store, ['accessControl'], 'accessControl', store);\n\n ctx.store.dispatch('navigation/ADD_ROUTES', routes);\n ctx.router.addRoutes(routes);\n};\n\nexport default moduleInit;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport { DataProvidersApi } from '@/api';\n\nimport { DataProvider } from '@/models/DataProvider';\n\nimport { PartialWithout } from '@/utils/type';\n\nclass ModuleState {\n dataProviders: DataProvider[] = [];\n\n isLoading = false;\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get dataProviders() {\n return this.state.dataProviders;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_DATA_PROVIDERS(payload: DataProvider[]) {\n this.state.dataProviders = payload;\n }\n\n REMOVE_PROVIDER_SETTINGS(dataProviderId: string) {\n this.state.dataProviders = this.state.dataProviders.filter((group) => group.id !== dataProviderId);\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_DATA_PROVIDERS() {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await DataProvidersApi.fetchDataProviders();\n\n this.commit('SET_DATA_PROVIDERS', res.data);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async CREATE_DATA_PROVIDER(payload: PartialWithout) {\n await DataProvidersApi.setDataProvider(payload);\n\n this.dispatch('FETCH_DATA_PROVIDERS');\n }\n\n async UPDATE_DATA_PROVIDER(payload: DataProvider) {\n await DataProvidersApi.setDataProvider(payload);\n\n this.dispatch('FETCH_DATA_PROVIDERS');\n }\n\n async DELETE_DATA_PROVIDER(dataProviderId: string) {\n await DataProvidersApi.deleteDataProvider(dataProviderId);\n\n this.commit('REMOVE_PROVIDER_SETTINGS', dataProviderId);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useDataProvidersCatalogStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport { DataProvidersApi } from '@/api';\n\nimport { DataProvider, DataProviderSite, DataProviderType } from '@/models/DataProvider';\n\nclass ModuleState {\n isLoading = false;\n\n dataProvider: DataProvider | null = null;\n\n sites: DataProviderSite[] = [];\n\n types: DataProviderType[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get dataProvider() {\n return this.state.dataProvider;\n }\n\n get sites() {\n return this.state.sites;\n }\n\n get types() {\n return this.state.types;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_DATA_PROVIDER(payload: DataProvider) {\n this.state.dataProvider = payload;\n }\n\n SET_SITES(payload: DataProviderSite[]) {\n this.state.sites = payload;\n }\n\n SET_TYPES(payload: DataProviderType[]) {\n this.state.types = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_DATA_PROVIDER(providerId: string) {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await DataProvidersApi.fetchDataProvider(providerId);\n\n this.commit('SET_DATA_PROVIDER', res.data);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async FETCH_SITES() {\n const res = await DataProvidersApi.fetchSites();\n\n this.commit('SET_SITES', res.data);\n }\n\n async FETCH_TYPES() {\n const res = await DataProvidersApi.fetchTypes();\n\n this.commit('SET_TYPES', res.data);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useDataProvidersDetailsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Module, createComposable } from 'vuex-smart-module';\n\nimport dataProvidersCatalog from './dataProviders/dataProvidersCatalog';\nimport dataProvidersDetails from './dataProviders/dataProvidersDetails';\n\nconst module = new Module({\n modules: {\n dataProvidersCatalog,\n dataProvidersDetails,\n },\n});\n\nexport const useDataProvidersStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport { PartialWithout } from '@/utils/type';\n\nimport { DataProvidersSettingsApi } from '@/api';\n\nimport { DataProvidersSettings, DataProvidersSettingsItem } from '@/models/DataProvidersSettings';\n\nimport modally from '@/services/modally';\n\nimport isError from '@/utils/isError';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nexport interface DataProvidersSettingsCatalogFilters {\n query: string;\n page: number;\n failedOnly: boolean;\n}\n\nconst initFilters = () => ({\n query: '',\n page: 1,\n failedOnly: false,\n});\n\nclass ModuleState {\n providersSettings: DataProvidersSettings[] = [];\n\n filters: DataProvidersSettingsCatalogFilters = initFilters();\n\n filtersChanged = false;\n\n isLoading = false;\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get providersSettings() {\n return this.state.providersSettings;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get filtersChanged() {\n return this.state.filtersChanged;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_PROVIDERS_SETTINGS(payload: DataProvidersSettings[]) {\n this.state.providersSettings = payload;\n }\n\n ADD_PROVIDERS_SETTINGS(payload: DataProvidersSettings[]) {\n this.state.providersSettings = [...this.state.providersSettings, ...payload];\n }\n\n REMOVE_PROVIDER_SETTINGS(groupId: string) {\n this.state.providersSettings = this.state.providersSettings.filter((group) => group.id !== groupId);\n }\n\n SET_FILTERS(payload: DataProvidersSettingsCatalogFilters) {\n this.state.filters = payload;\n }\n\n SET_FILTERS_CHANGED(payload: boolean) {\n this.state.filtersChanged = payload;\n }\n\n CHANGE_PROVIDERS_SETTINGS(payload: DataProvidersSettings) {\n const providerSettingsIdx = this.state.providersSettings.findIndex((providerSettings) => providerSettings.id === payload.id);\n\n if (providerSettingsIdx === -1) return;\n\n this.state.providersSettings.splice(providerSettingsIdx, 1, payload);\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_PROVIDERS_SETTINGS() {\n const { page, failedOnly, query } = this.getters.filters;\n\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await DataProvidersSettingsApi.fetchDataProvidersSettings({\n params: { page, failedOnly, filter: query },\n });\n\n if (page === 1) {\n this.commit('SET_PROVIDERS_SETTINGS', res.data.list);\n } else {\n this.commit('ADD_PROVIDERS_SETTINGS', res.data.list);\n }\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async DELETE_PROVIDER_SETTINGS(providerSettingsId: string) {\n await DataProvidersSettingsApi.deleteProviderSettings(providerSettingsId);\n\n this.commit('REMOVE_PROVIDER_SETTINGS', providerSettingsId);\n }\n\n async CREATE_PROVIDER_SETTINGS(payload: PartialWithout) {\n await DataProvidersSettingsApi.setProviderSettings(payload);\n\n await this.dispatch('FETCH_PROVIDERS_SETTINGS');\n }\n\n async UPDATE_PROVIDER_SETTINGS(payload: PartialWithout) {\n await DataProvidersSettingsApi.setProviderSettings(payload);\n\n await this.dispatch('FETCH_PROVIDERS_SETTINGS');\n }\n\n UPDATE_FILTERS(filters: Partial) {\n const page = filters.page || 1;\n\n const newFilters = {\n ...this.getters.filters,\n ...filters,\n page,\n };\n\n this.commit('SET_FILTERS', newFilters);\n this.commit('SET_FILTERS_CHANGED', true);\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n this.commit('SET_FILTERS_CHANGED', false);\n }\n\n NEXT_PAGE() {\n this.dispatch('UPDATE_FILTERS', {\n page: this.getters.filters.page + 1,\n });\n }\n\n async FETCH_GATHER_STATISTICS(providerSettingsId: string) {\n const res = await DataProvidersSettingsApi.fetchProviderStatus(providerSettingsId);\n\n if (!res.data) {\n modally.show({\n title: 'Операция недоступна!',\n content: 'Сбор данных по этим настройкам еще не закончен.',\n status: 'warning',\n });\n\n return;\n }\n\n await DataProvidersSettingsApi.gatherStatistics({ settingsId: providerSettingsId });\n }\n\n async START_GATHER_STATISTICS(providerSettings: DataProvidersSettings) {\n this.commit('CHANGE_PROVIDERS_SETTINGS', {\n ...providerSettings,\n available: false,\n finishedWithError: false,\n inProgress: true,\n });\n\n try {\n this.dispatch('FETCH_GATHER_STATISTICS', providerSettings.id);\n } catch (e) {\n this.commit('CHANGE_PROVIDERS_SETTINGS', {\n ...providerSettings,\n available: false,\n inProgress: false,\n finishedWithError: true,\n });\n\n if (!isError(e)) return;\n\n modally.show({\n title: e.message || '',\n content: 'Что-то пошло не так! Невозможно запустить сбор данных!',\n });\n\n throw new AppJsonError({ error: e, options: { showingModal: false } });\n }\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useDataProvidersSettingsCatalogStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport { DataProvidersSettingsApi } from '@/api';\n\nimport { DataProvidersSettingsItem, DataProvidersSettingsToken } from '@/models/DataProvidersSettings';\nimport { Client } from '@/models/Client';\nimport { Provider } from '@/models/ProviderSettings';\n\nclass ModuleState {\n isLoading = false;\n\n providerSettings: DataProvidersSettingsItem | null = null;\n\n providers: Provider[] = [];\n\n tokens: DataProvidersSettingsToken[] = [];\n\n statisticsCollectionDepths: string[] = [];\n\n clients: Client[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get providerSettings() {\n return this.state.providerSettings;\n }\n\n get providers() {\n return this.state.providers;\n }\n\n get tokens() {\n return this.state.tokens;\n }\n\n get statisticsCollectionDepths() {\n return this.state.statisticsCollectionDepths;\n }\n\n get clients() {\n return this.state.clients;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_PROVIDER_SETTINGS(payload: DataProvidersSettingsItem) {\n this.state.providerSettings = payload;\n }\n\n SET_PROVIDERS(payload: Provider[]) {\n this.state.providers = payload;\n }\n\n SET_TOKENS(payload: DataProvidersSettingsToken[]) {\n this.state.tokens = payload;\n }\n\n SET_STATISTICS_COLLECTION_OF_DEPTH(payload: string[]) {\n this.state.statisticsCollectionDepths = payload;\n }\n\n SET_CLIENTS(payload: Client[]) {\n this.state.clients = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_PROVIDER_SETTINGS(settingsId: string) {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await DataProvidersSettingsApi.fetchProvider(settingsId);\n\n this.mutations.SET_PROVIDER_SETTINGS(res.data);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async FETCH_PROVIDERS() {\n const res = await DataProvidersSettingsApi.fetchProviders();\n\n this.mutations.SET_PROVIDERS(res.data);\n }\n\n async FETCH_TOKENS(providerId: string) {\n const res = await DataProvidersSettingsApi.fetchTokens({ params: { id: providerId } });\n\n this.mutations.SET_TOKENS(res.data);\n }\n\n async FETCH_STATISTICS_COLLECTION_OF_DEPTH(connectorId: string) {\n const res = await DataProvidersSettingsApi.fetchStatisticsCollectionDepths({ params: { id: connectorId } });\n\n this.mutations.SET_STATISTICS_COLLECTION_OF_DEPTH(res.data);\n }\n\n async FETCH_CLIENTS() {\n const res = await DataProvidersSettingsApi.fetchClients();\n\n this.mutations.SET_CLIENTS(res.data);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useDataProvidersSettingsDetailsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Module, createComposable } from 'vuex-smart-module';\n\nimport dataProvidersSettingsCatalog from './dataProvidersSettings/dataProvidersSettingsCatalog';\nimport dataProvidersSettingsDetails from './dataProvidersSettings/dataProvidersSettingsDetails';\n\nconst module = new Module({\n modules: {\n dataProvidersSettingsCatalog,\n dataProvidersSettingsDetails,\n },\n});\n\nexport const useDataProvidersSettingsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport { CategoriesApi } from '@/api';\n\nimport { SetCategoryPayload, UpdateCategoryPayload } from '@/api/modules/categories.api';\n\nimport { Category } from '@/models/Category';\n\nclass ModuleState {\n isLoading = false;\n\n categories: Category[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get categories() {\n return this.state.categories;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_CATEGORIES(payload: Category[]) {\n this.state.categories = payload;\n }\n\n REMOVE_CATEGORY(categoryId: string) {\n this.state.categories = this.state.categories.filter(({ id }) => id !== categoryId);\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_CATEGORIES() {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await CategoriesApi.fetchCategories();\n\n this.commit('SET_CATEGORIES', res.data);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async DELETE_CATEGORY(categoryId: string) {\n await CategoriesApi.deleteCategory(categoryId);\n\n this.commit('REMOVE_CATEGORY', categoryId);\n }\n\n async CREATE_CATEGORY(payload: SetCategoryPayload) {\n await CategoriesApi.setCategory(payload);\n\n await this.dispatch('FETCH_CATEGORIES');\n }\n\n async UPDATE_CATEGORY(payload: UpdateCategoryPayload) {\n await CategoriesApi.updateCategory(payload);\n\n await this.dispatch('FETCH_CATEGORIES');\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useCategoriesCatalogStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport {\n CategoriesApi,\n ServiceTypesApi,\n} from '@/api';\n\nimport { Category } from '@/models/Category';\nimport { ServiceType } from '@/models/ServiceType';\n\ninterface NormalizedServiceType {\n id: string | null;\n name: string;\n requiresModeration?: false;\n}\n\nclass ModuleState {\n isLoading = false;\n\n category: Category | null = null;\n\n serviceTypes: ServiceType[] = [];\n\n metrics: string[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get category() {\n return this.state.category;\n }\n\n get metrics() {\n return this.state.metrics;\n }\n\n get serviceTypes() {\n return this.state.serviceTypes;\n }\n\n get normalizedServiceTypes() {\n const normalizeServiceTypes = (serviceTypes: ServiceType[], prefix?: string) => serviceTypes\n .reduce((acc, serviceType) => {\n const path = prefix ? `${prefix}\\\\${serviceType.name}` : serviceType.name;\n\n acc.push({ name: path, id: serviceType.id });\n\n if (serviceType.children) {\n acc.push(...normalizeServiceTypes(serviceType.children));\n }\n\n return acc;\n }, []);\n\n return [\n { id: null, name: 'Все типы сервисов', requiresModeration: false },\n ...normalizeServiceTypes(this.getters.serviceTypes),\n ];\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_CATEGORY(payload: Category) {\n this.state.category = payload;\n }\n\n SET_METRICS(payload: string[]) {\n this.state.metrics = payload;\n }\n\n SET_SERVICE_TYPES(payload: ServiceType[]) {\n this.state.serviceTypes = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_CATEGORY(categoryId: string) {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await CategoriesApi.fetchCategory(categoryId);\n\n this.mutations.SET_CATEGORY(res.data);\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async FETCH_METRICS() {\n const res = await CategoriesApi.fetchMetrics();\n\n this.mutations.SET_METRICS(res.data);\n }\n\n async FETCH_SERVICE_TYPES() {\n const res = await ServiceTypesApi.fetchServiceTypes();\n\n this.mutations.SET_SERVICE_TYPES(res.data);\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useCategoryDetailsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Module, createComposable } from 'vuex-smart-module';\n\nimport categoriesCatalog from './categories/categoriesCatalog';\nimport categoryDetails from './categories/categoryDetails';\n\nconst module = new Module({\n modules: {\n categoriesCatalog,\n categoryDetails,\n },\n});\n\nexport const useCategoriesCatalogStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Getters, Mutations, Actions, Module, createComposable } from 'vuex-smart-module';\n\nimport moment from 'moment';\nimport { isEqual } from 'lodash';\n\nimport {\n UserActionsApi,\n} from '@/api';\n\nimport { FetchUserActionsPayload, FetchUserActionsResponse } from '@/api/modules/userActions.api';\n\nimport { UserAction } from '@/models/User';\n\nexport type USerActionsCatalogFilters = FetchUserActionsPayload['params'];\n\nconst initFilters = () => ({\n filter: '',\n from: moment().add(-1, 'months').format('YYYY-MM-DD'),\n to: moment().format('YYYY-MM-DD'),\n page: 1,\n});\n\nclass ModuleState {\n filters: USerActionsCatalogFilters = initFilters();\n\n isLoading = false;\n\n userActions: UserAction[] = [];\n\n userActionsTotalCount = 0;\n}\n\nclass ModuleGetters extends Getters {\n get isLoading() {\n return this.state.isLoading;\n }\n\n get filters() {\n return this.state.filters;\n }\n\n get filtersAreEnabled() {\n const defaultFilters = initFilters();\n\n return Object.entries(this.getters.filters).some(([key, val]) => !isEqual(val, defaultFilters[key]));\n }\n\n get userActions() {\n return this.state.userActions;\n }\n\n get userActionsTotalCount() {\n return this.state.userActionsTotalCount;\n }\n\n get userActionsHaveBeenFiltered() {\n return this.getters.filtersAreEnabled;\n }\n\n get page() {\n return this.state.filters.page;\n }\n\n get maxPage() {\n return Math.ceil(this.getters.userActionsTotalCount / 50);\n }\n\n get pageIsFirst() {\n return this.getters.page <= 1;\n }\n\n get pageIsLast() {\n return this.getters.page >= this.getters.maxPage;\n }\n\n get nextPage() {\n if (this.getters.pageIsLast) return this.getters.page;\n\n return this.getters.page + 1;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_FILTERS(payload: USerActionsCatalogFilters) {\n this.state.filters = payload;\n }\n\n SET_IS_LOADING(value: boolean) {\n this.state.isLoading = value;\n }\n\n SET_USER_ACTIONS(payload: FetchUserActionsResponse) {\n this.state.userActions = payload.list;\n this.state.userActionsTotalCount = payload.totalRows;\n }\n\n ADD_USER_ACTIONS(payload: FetchUserActionsResponse) {\n this.state.userActions = [...this.state.userActions, ...payload.list];\n }\n}\n\nclass ModuleActions extends Actions {\n UPDATE_FILTERS(payload: Partial) {\n const page = payload.page || 1;\n\n const newPayload = {\n ...this.getters.filters,\n ...payload,\n page,\n };\n\n this.commit('SET_FILTERS', newPayload);\n }\n\n RESET_FILTERS() {\n this.commit('SET_FILTERS', initFilters());\n }\n\n async FETCH_USER_ACTIONS() {\n this.commit('SET_IS_LOADING', true);\n\n try {\n const res = await UserActionsApi.fetchUserActions({ params: this.getters.filters });\n\n if (this.getters.pageIsFirst) {\n this.commit('SET_USER_ACTIONS', res.data);\n } else {\n this.commit('ADD_USER_ACTIONS', res.data);\n }\n } finally {\n this.commit('SET_IS_LOADING', false);\n }\n }\n\n async TO_NEXT_PAGE() {\n await this.dispatch('UPDATE_FILTERS', { page: this.getters.nextPage });\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const useUserActionsCatalogStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Module, createComposable } from 'vuex-smart-module';\n\nimport userActionsCatalog from './userActions/userActionsCatalog';\n\nconst module = new Module({\n modules: {\n userActionsCatalog,\n },\n});\n\nexport const useUserActionsStore = createComposable(module);\n\nexport default module;\n","/* eslint-disable max-classes-per-file */\nimport { Module, createComposable } from 'vuex-smart-module';\n\nimport dashboard from './dashboard';\nimport dataProviders from './dataProviders';\nimport dataProvidersSettings from './dataProvidersSettings';\nimport categories from './categories';\nimport userActions from './userActions';\n\nconst module = new Module({\n modules: {\n dashboard,\n dataProviders,\n dataProvidersSettings,\n categories,\n userActions,\n },\n});\n\nexport const useAdministrationStore = createComposable(module);\n\nexport default module;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Administration.vue?vue&type=template&id=1d3948b8&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./UserActions.vue?vue&type=template&id=19e93fcc&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"user-actions-catalog\"},[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('UserActionsCatalogHeader')],1),_vm._v(\" \"),(_vm.userActions.length)?_c('div',{staticClass:\"user-actions-catalog__content\"},[_c('UserActionsTable',{attrs:{\"user-actions\":_vm.userActions}})],1):_c('div',{staticClass:\"user-actions-catalog__stub\"},[(_vm.userActionsIsLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.userActionsHaveBeenFiltered ? 'Ничего не найдено :-(' : 'История действий')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.userActionsHaveBeenFiltered ? 'Попробуйте изменить период или запрос' : 'За данный период действий не было')+\"\\n \")])]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-actions-catalog-header d-flex\"},[_vm._m(0),_vm._v(\" \"),_c('DDatePeriodPickerInline',{attrs:{\"presets\":_vm.dateFiltersPresets},model:{value:(_vm.dates),callback:function ($$v) {_vm.dates=$$v},expression:\"dates\"}}),_vm._v(\" \"),_c('div',{staticClass:\"ml-auto\"},[_c('v-text-field',{staticClass:\"user-actions-catalog-header__search\",attrs:{\"label\":\"Пользователь, название объекта, danboid\",\"prepend-inner-icon\":\"mdi-magnify\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mr-4\"},[_c('div',{staticClass:\"text-h5\"},[_vm._v(\"\\n История действий\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport { DDatePeriodPickerInline } from '@shared/druid-kit';\n\nimport { useUserActionsCatalogStore } from '../../../store/userActions/userActionsCatalog';\n\nexport default defineComponent({\n components: {\n DDatePeriodPickerInline,\n },\n setup() {\n const userActionsCatalogStore = useUserActionsCatalogStore();\n\n const dates = computed({\n get() {\n return {\n from: userActionsCatalogStore.getters.filters.from,\n to: userActionsCatalogStore.getters.filters.to,\n };\n },\n set(val: { from: string, to: string }) {\n userActionsCatalogStore.dispatch('UPDATE_FILTERS', val);\n },\n });\n\n const query = computed({\n get() {\n return userActionsCatalogStore.getters.filters.filter;\n },\n set: debounce((val: string) => {\n userActionsCatalogStore.dispatch('UPDATE_FILTERS', { filter: val });\n }, 300),\n });\n\n const dateFiltersPresets = ['yesterday', 'last-7-days', 'last-month', 'last-30-days'];\n\n return {\n query,\n dates,\n dateFiltersPresets,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsCatalogHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsCatalogHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserActionsCatalogHeader.vue?vue&type=template&id=79554790&scoped=true&\"\nimport script from \"./UserActionsCatalogHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserActionsCatalogHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserActionsCatalogHeader.vue?vue&type=style&index=0&id=79554790&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79554790\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({ref:\"rootRef\",staticClass:\"user-actions-table\",attrs:{\"headers\":_vm.headers,\"items\":_vm.userActions,\"items-per-page\":_vm.userActions.length,\"server-items-length\":_vm.userActions.length,\"loading\":_vm.userActionsIsLoading,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === _vm.userActions.length - 5)?_c('UserActionsTableRow',{directives:[{name:\"intersect\",rawName:\"v-intersect\",value:(_vm.onIntersect),expression:\"onIntersect\"}],attrs:{\"user-action\":item}}):_c('UserActionsTableRow',{attrs:{\"user-action\":item}})]}},(_vm.userActionsIsLoading)?{key:\"body-append\",fn:function(){return [_c('DTableRow',[_c('DTableCell',{attrs:{\"content-classes\":\"justify-center align-center\",\"colspan\":_vm.headers.length}},[_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"20\",\"indeterminate\":\"\"}})],1)],1)]},proxy:true}:null],null,true)},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"user-actions-table-row\"},[_c('DTableCell',{staticClass:\"user-actions-table-row__cell user-actions-table-row__cell--object body-2\"},[_c('div',{staticClass:\"grey--text text--darken-1\",domProps:{\"textContent\":_vm._s(_vm.obejectName)}}),_vm._v(\" \"),(_vm.pathToObject)?_c('router-link',{staticClass:\"user-actions-table-row__link body-2 font-weight-medium text-no-wrap\",attrs:{\"to\":_vm.pathToObject,\"target\":\"_blank\"},domProps:{\"textContent\":_vm._s(_vm.userAction.objectId)}}):_c('div',{staticClass:\"text-no-wrap\",domProps:{\"textContent\":_vm._s(_vm.userAction.objectId)}})],1),_vm._v(\" \"),_c('DTableCell',{staticClass:\"user-actions-table-row__cell body-2\"},_vm._l((_vm.normalizedChanges),function(change,idx){return _c('div',{key:idx,staticClass:\"user-actions-table-row__change\"},[_c('div',[_c('v-icon',{staticClass:\"pb-1\",attrs:{\"size\":\"12\"}},[_vm._v(\"\\n \"+_vm._s(_vm.actionIcon)+\"\\n \")]),_vm._v(\" \"),_c('span',[_vm._v(\"\\n \"+_vm._s(((change.text) + \": \" + (change.oldValue || '')))+\"\\n \")])],1),_vm._v(\" \"),(change.newValue)?_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\"\\n \"+_vm._s((\"→ \" + (change.newValue)))+\"\\n \")]):_vm._e()])}),0),_vm._v(\" \"),_c('DTableCell',{staticClass:\"user-actions-table-row__cell user-actions-table-row__cell--date-time-user body-2\"},[_c('div',[_c('span',{domProps:{\"textContent\":_vm._s(_vm.date)}}),_vm._v(\" \"),_c('span',{staticClass:\"grey--text text--darken-1\",domProps:{\"textContent\":_vm._s(_vm.time)}})]),_vm._v(\" \"),_c('router-link',{staticClass:\"user-actions-table-row__link font-weight-medium\",attrs:{\"to\":_vm.pathToUser,\"target\":\"_blank\"},domProps:{\"textContent\":_vm._s(_vm.userAction.user.email)}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport moment from 'moment';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { UserAction, UserActionChange } from '@/models/User';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n userAction: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n userAction,\n } = toRefs(props);\n\n const date = computed(() => moment(userAction.value.timestamp).format('DD.MM.YYYY'));\n const time = computed(() => moment(userAction.value.timestamp).format('HH:mm:ss'));\n\n const pathToUser = computed(() => `/access-control/users/?current-user-id=${userAction.value.user.id}`);\n\n const pathToObject = computed(() => {\n const pathGeneratorsMap: Record string | undefined> = {\n Campaign(action) {\n return `/campaigns/${action.objectId}`;\n },\n Placement(action) {\n if (!action.campaignId) return;\n\n return `/campaigns/${action.campaignId}/placements/${action.objectId}`;\n },\n Markup(action) {\n return `/markups/${action.objectId}`;\n },\n };\n\n const pathGenerator = pathGeneratorsMap[userAction.value.objectName];\n\n return pathGenerator ? pathGenerator(userAction.value) : undefined;\n });\n\n const obejectName = computed(() => {\n const obejectNameTranslations = {\n Campaign: 'Кампания',\n Placement: 'Размещение',\n Markup: 'Наценка',\n Token: 'Доступ',\n DataProviderSettings: 'Настройки провайдера',\n };\n\n return obejectNameTranslations?.[userAction.value.objectName] || userAction.value.objectName;\n });\n\n const actionIcon = computed(() => {\n switch (userAction.value.actionName) {\n case 'Добавление':\n return 'mdi-plus';\n\n case 'Изменение':\n return 'mdi-pencil';\n\n case 'Удаление':\n return 'mdi-delete-outline';\n\n default:\n return '';\n }\n });\n\n const generateChange = (payload: { name: string; change: UserActionChange }) => {\n const { name, change } = payload;\n\n const isEmpty = (str?: string) => !str || str.length === 0;\n\n if (name === 'Добавление') {\n return {\n text: change.name,\n newValue: change.newValue,\n };\n }\n\n if (name === 'Удаление') {\n return {\n text: change.name,\n oldValue: change.oldValue,\n };\n }\n\n if (isEmpty(change.oldValue)) {\n return {\n text: `Добавлено ${change.name}`,\n newValue: change.newValue,\n };\n }\n\n if (isEmpty(change.newValue)) {\n return {\n text: `Удалено ${change.name}`,\n oldValue: change.oldValue,\n };\n }\n\n return {\n text: change.name,\n newValue: change?.newValue || null,\n oldValue: change?.oldValue || null,\n };\n };\n\n const normalizedChanges = computed(() => userAction.value.changes\n .map((change) => generateChange({ name: userAction.value.actionName, change })));\n\n return {\n date,\n time,\n obejectName,\n pathToUser,\n pathToObject,\n generateChange,\n actionIcon,\n normalizedChanges,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserActionsTableRow.vue?vue&type=template&id=516e25e0&scoped=true&\"\nimport script from \"./UserActionsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserActionsTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserActionsTableRow.vue?vue&type=style&index=0&id=516e25e0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"516e25e0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed, watch, onMounted, nextTick, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport {\n DTable,\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { UserAction } from '@/models/User';\n\nimport UserActionsTableRow from './UserActionsTableRow.vue';\n\nimport { useUserActionsCatalogStore } from '../../../../store/userActions/userActionsCatalog';\n\nexport default defineComponent({\n components: {\n DTable,\n DTableCell,\n DTableRow,\n UserActionsTableRow,\n },\n props: {\n userActions: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const userActionsCatalogStore = useUserActionsCatalogStore();\n\n const headers = [\n {\n class: 'caption',\n text: 'Объект',\n sortable: false,\n },\n {\n class: 'caption',\n text: 'Действие',\n sortable: false,\n },\n {\n class: 'caption',\n text: 'Когда и кем сделано',\n sortable: false,\n },\n ];\n\n const rootRef = ref(null);\n const rootEl = ref(null);\n\n const userActionsIsLoading = computed(() => userActionsCatalogStore.getters.isLoading);\n const pageIsFirst = computed(() => userActionsCatalogStore.getters.pageIsFirst);\n const pageIsLast = computed(() => userActionsCatalogStore.getters.pageIsLast);\n\n // TODO: это точно надо переписать\n // Проблема в том, что при сбросе страницы скролл враппера не изменяется и он пытается проскролиться вниз вызывая загрузку следующих страниц\n watch(userActionsIsLoading, (val) => {\n if (val || !pageIsFirst.value || !rootEl.value) return;\n\n const wrapperEl = rootEl.value.querySelector('.v-data-table__wrapper');\n\n if (!wrapperEl) return;\n\n wrapperEl.scrollTop = 0;\n });\n\n onMounted(async () => {\n await nextTick();\n\n if (!rootRef.value) return;\n\n rootEl.value = rootRef.value.$el as HTMLElement;\n });\n\n const onIntersect = (entries: unknown, observer: unknown, isIntersecting: boolean) => {\n if (pageIsLast.value || userActionsIsLoading.value || !isIntersecting) return;\n\n userActionsCatalogStore.dispatch('TO_NEXT_PAGE');\n };\n\n return {\n headers,\n rootRef,\n userActionsIsLoading,\n onIntersect,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserActionsTable.vue?vue&type=template&id=8507a20c&scoped=true&\"\nimport script from \"./UserActionsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserActionsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserActionsTable.vue?vue&type=style&index=0&id=8507a20c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8507a20c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport UserActionsCatalogHeader from '../../components/UserActions/UserActionsCatalog/UserActionsCatalogHeader.vue';\nimport UserActionsTable from '../../components/UserActions/UserActionsCatalog/UserActionsTable/UserActionsTable.vue';\n\nimport { useUserActionsCatalogStore } from '../../store/userActions/userActionsCatalog';\n\nexport default defineComponent({\n components: {\n AppView,\n UserActionsCatalogHeader,\n UserActionsTable,\n },\n setup() {\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const userActionsCatalogStore = useUserActionsCatalogStore();\n\n const userActions = computed(() => userActionsCatalogStore.getters.userActions);\n const userActionsIsLoading = computed(() => userActionsCatalogStore.getters.isLoading);\n const userActionsFilters = computed(() => userActionsCatalogStore.getters.filters);\n const userActionsHaveBeenFiltered = computed(() => userActionsCatalogStore.getters.userActionsHaveBeenFiltered);\n\n const fetch = async () => {\n await userActionsCatalogStore.actions.FETCH_USER_ACTIONS();\n };\n\n watch(userActionsFilters, () => {\n if (!userActionsHaveBeenFiltered.value) return;\n\n fetch();\n });\n\n const init = async () => {\n updateIsLoading(true);\n userActionsCatalogStore.actions.RESET_FILTERS();\n\n try {\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n init();\n\n return {\n userActions,\n userActionsIsLoading,\n userActionsHaveBeenFiltered,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsCatalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsCatalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserActionsCatalog.vue?vue&type=template&id=5e6f0080&scoped=true&\"\nimport script from \"./UserActionsCatalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserActionsCatalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserActionsCatalog.vue?vue&type=style&index=0&id=5e6f0080&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e6f0080\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport UserActions from '../views/UserActions.vue';\nimport UserActionsCatalog from '../views/UserActions/UserActionsCatalog.vue';\nimport PageCatalogLoader from '../../../components/_newDesign/common/loaders/PageCatalogLoader.vue';\n\nconst routeConfig: AppRouteConfig = {\n path: 'user-actions',\n component: UserActions,\n meta: {\n title: 'История действий',\n permission: 'admin',\n order: 5,\n },\n children: [\n {\n name: 'user-actions-catalog',\n path: '',\n component: UserActionsCatalog,\n meta: {\n title: 'История действий',\n loader: PageCatalogLoader,\n header: {\n sticky: true,\n },\n },\n },\n ],\n};\n\nexport default routeConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"dashboard\"},[_c('DashboardHeader'),_vm._v(\" \"),_c('div',{staticClass:\"dashboard__main pa-6\"},[_c('div'),_vm._v(\" \"),_c('div',[_c('DashboardChart')],1),_vm._v(\" \"),_c('DashboardLabels',{staticClass:\"py-2 px-8\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dashboard-header\"},[_c('div',{staticClass:\"dashboard-header__filters pa-6\"},_vm._l((_vm.statisticsFiltersData),function(filter){return _c('div',{key:filter.slug,staticClass:\"dashboard-header__field\"},[_c('DSelect',{attrs:{\"value\":_vm.statisticsFilters[filter.slug],\"label\":filter.label,\"items\":filter.items,\"disabled\":_vm.statisticsIsLoading},on:{\"input\":function($event){return _vm.updateFilter({ slug: filter.slug, value: $event })}}})],1)}),0),_vm._v(\" \"),_c('div',{staticClass:\"d-flex justify-space-between px-6\"},[_c('v-tabs',{staticClass:\"dashboard-header__tabs text-body-2\",attrs:{\"background-color\":\"transparent\",\"slider-color\":\"primary-gradient\"},model:{value:(_vm.currentMetricIdx),callback:function ($$v) {_vm.currentMetricIdx=$$v},expression:\"currentMetricIdx\"}},_vm._l((_vm.metrics),function(metric,idx){return _c('v-tab',{key:idx,staticClass:\"dashboard-header__tab body-2\",class:{\n 'mr-6': idx < _vm.metrics.length - 1,\n },attrs:{\"active-class\":\"dashboard-header__tab--active\",\"slider-size\":\"4\",\"exact\":\"\"}},[_vm._v(\"\\n \"+_vm._s(metric.name)+\"\\n \")])}),1),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"mr-6 body-2 grey--text\"},[_vm._v(\"\\n Вид графика\\n \")]),_vm._v(\" \"),_c('DSelectInline',{staticClass:\"flex-grow-0 mr-6\",attrs:{\"items\":_vm.colorGroups,\"disabled\":_vm.colorGroupsIsDisabled,\"item-text\":\"name\",\"return-object\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{staticClass:\"body-2\",class:_vm.colorGroupsIsDisabled ? 'grey--text' : 'primary--text'},[_vm._v(\"\\n Раскраска — \"+_vm._s(item.name)+\"\\n \")])]}}]),model:{value:(_vm.currentColorGroup),callback:function ($$v) {_vm.currentColorGroup=$$v},expression:\"currentColorGroup\"}}),_vm._v(\" \"),_c('DSelectInline',{staticClass:\"flex-grow-0\",attrs:{\"items\":_vm.groups,\"disabled\":_vm.statisticsIsLoading,\"item-text\":\"name\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{staticClass:\"body-2\",class:_vm.statisticsIsLoading ? 'grey--text' : 'primary--text'},[_vm._v(\"\\n Группировка — \"+_vm._s(item.name)+\"\\n \")])]}}]),model:{value:(_vm.currentGroup),callback:function ($$v) {_vm.currentGroup=$$v},expression:\"currentGroup\"}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed } from '@vue/composition-api';\n\nimport { DSelect, DSelectInline } from '@shared/druid-kit';\n\nimport { useDashboardStore, GROUP_BY_OPTIONS_LIST, HISTOGRAM_METRICS, NamedOption, GroupOption } from '../../store/dashboard';\n\nexport default defineComponent({\n components: {\n DSelect,\n DSelectInline,\n },\n setup() {\n const dashboardStore = useDashboardStore();\n\n const statisticsIsLoading = computed(() => dashboardStore.getters.isLoading);\n const statisticsFiltersData = computed(() => dashboardStore.getters.filtersData);\n const statisticsFilters = computed(() => dashboardStore.getters.filters);\n\n const emptyGroup = ref({ value: 0, name: 'нет', prop: '' });\n\n // // //\n\n const metric = computed(() => dashboardStore.getters.metric);\n const metrics = ref([...HISTOGRAM_METRICS]);\n\n const currentMetricIdx = computed({\n get() {\n const metricIdx = metrics.value.findIndex(({ name }) => name === metric.value.name) || 0;\n\n return metricIdx;\n },\n set(val: number) {\n const currentMetric = metrics.value[val];\n\n dashboardStore.actions.UPDATE_METRIC(currentMetric);\n },\n });\n\n // // //\n\n const groups = ref([emptyGroup.value, ...GROUP_BY_OPTIONS_LIST]);\n\n const currentGroup = computed({\n get() {\n return statisticsFilters.value.groupDataBy;\n },\n set(val: string | number | null) {\n dashboardStore.actions.UPDATE_FILTERS({ groupDataBy: val });\n },\n });\n\n // // //\n\n const colorGroups = ref([...GROUP_BY_OPTIONS_LIST]);\n\n const currentColorGroup = computed({\n get() {\n return dashboardStore.getters.colorGroup;\n },\n set(val: GroupOption) {\n dashboardStore.actions.UPDATE_COLOR_GROUP(val);\n },\n });\n\n const colorGroupsIsDisabled = computed(() => !!currentGroup.value || statisticsIsLoading.value);\n\n const updateFilter = (payload: { slug: string; value: string }) => {\n dashboardStore.actions.UPDATE_FILTERS({ [payload.slug]: payload.value });\n };\n\n // const resetFilters = () => {\n // dashboardStore.actions.RESET_FILTERS();\n // };\n\n return {\n statisticsIsLoading,\n statisticsFilters,\n statisticsFiltersData,\n //\n metrics,\n currentMetricIdx,\n //\n groups,\n currentGroup,\n //\n colorGroups,\n currentColorGroup,\n colorGroupsIsDisabled,\n //\n updateFilter,\n // resetFilters,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashboardHeader.vue?vue&type=template&id=72805c46&scoped=true&\"\nimport script from \"./DashboardHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashboardHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DashboardHeader.vue?vue&type=style&index=0&id=72805c46&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"72805c46\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VTab,VTabs})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dashboard-chart\"},[_c('div',{staticClass:\"dashboard-chart__wrapper\"},[_c('canvas',{ref:\"chartCanvasEl\",staticClass:\"dashboard-chart__canvas\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dashboard-chart-info-tooltip\"},[_c('table',{staticClass:\"dashboard-chart-info-tooltip__table\"},[_c('tbody',[_c('tr',[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n Источник данных:\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTableCellValue(_vm.metrics.dataProviderName))+\"\\n \")])]),_vm._v(\" \"),_c('tr',[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n Клиент:\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTableCellValue(_vm.metrics.clientName))+\"\\n \")])]),_vm._v(\" \"),_c('tr',[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n Бренд:\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTableCellValue(_vm.metrics.brandName))+\"\\n \")])]),_vm._v(\" \"),_c('tr',[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n Частота:\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTableCellValue(_vm.metrics.capping))+\"\\n \")])]),_vm._v(\" \"),_c('tr',[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n Продолжительность:\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTableCellValue(_vm.metrics.timing))+\"\\n \")])]),_vm._v(\" \"),_c('tr',[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n Гео:\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTableCellValue(_vm.metrics.geo))+\"\\n \")])]),_vm._v(\" \"),_c('tr',[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n Пропускаемость:\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTableCellValue(_vm.metrics.transmittance))+\"\\n \")])]),_vm._v(\" \"),_c('tr',[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n Аудитория:\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTableCellValue(_vm.metrics.audience))+\"\\n \")])]),_vm._v(\" \"),_c('tr',[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n Площадка:\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTableCellValue(_vm.metrics.siteName))+\"\\n \")])]),_vm._v(\" \"),_c('tr',[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n Формат:\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTableCellValue(_vm.metrics.adPlace))+\"\\n \")])]),_vm._v(\" \"),_vm._l((_vm.valueMetrics),function(item,index){return _c('tr',{key:index},[_c('td',{staticClass:\"dashboard-chart-info-tooltip__name\"},[_vm._v(\"\\n \"+_vm._s(item.name)+\":\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"dashboard-chart-info-tooltip__value\"},[_vm._v(\"\\n \"+_vm._s(_vm.getFormattedMetric(_vm.metrics[item.value]))+\"\\n \")])])})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { HISTOGRAM_METRICS } from '../../../../store/dashboard';\n\n// TODO: refactor\nexport default defineComponent({\n props: {\n metrics: { type: Object, required: true },\n },\n setup() {\n const valueMetrics = computed(() => [...HISTOGRAM_METRICS]);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getTableCellValue = (value: any) => value || '-';\n\n const getFormattedMetric = (metric: number) => (metric * 100).toFixed(2);\n\n return {\n valueMetrics,\n getTableCellValue,\n getFormattedMetric,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardChartInfoTooltip.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardChartInfoTooltip.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashboardChartInfoTooltip.vue?vue&type=template&id=a7777f3e&scoped=true&\"\nimport script from \"./DashboardChartInfoTooltip.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashboardChartInfoTooltip.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DashboardChartInfoTooltip.vue?vue&type=style&index=0&id=a7777f3e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a7777f3e\",\n null\n \n)\n\nexport default component.exports","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { interpolateViridis } from 'd3-scale-chromatic';\n\n// TODO: refactor\n\nexport default class DashboardColors {\n public static getColorGroups(groups: any[]): any[] {\n // TODO D3.interpolateViridis вынести в параметр colorScale\n return this.interpolateColors(groups.length, interpolateViridis, {\n colorStart: 0,\n colorEnd: 1,\n useEndAsStart: false,\n });\n }\n\n private static interpolateColors(dataLength: number, colorScale: (t) => void, colorRangeInfo: any): any[] {\n const { colorStart, colorEnd } = colorRangeInfo;\n const intervalSize = (colorEnd - colorStart) / dataLength;\n const colorArray: any[] = [];\n\n for (let i = 0; i < dataLength; i += 1) {\n const colorPoint = this.calculatePoint(i, intervalSize, colorRangeInfo);\n\n colorArray.push(colorScale(colorPoint));\n }\n\n return colorArray;\n }\n\n private static calculatePoint(i: number, intervalSize: any, colorRangeInfo: any): any {\n const { colorStart, colorEnd, useEndAsStart } = colorRangeInfo;\n\n return (useEndAsStart\n ? (colorEnd - (i * intervalSize))\n : (colorStart + (i * intervalSize)));\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, ref, shallowRef, computed, watch } from '@vue/composition-api';\n\nimport {\n Chart,\n BarController,\n CategoryScale,\n LinearScale,\n BarElement,\n PointElement,\n TimeScale,\n Tooltip,\n} from 'chart.js';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\n\nimport DashboardChartInfoTooltip from './tooltips/DashboardChartInfoTooltip.vue';\n\nimport DashboardColors from '../../../services/dashboardColors';\n\nimport { useDashboardStore } from '../../../store/dashboard';\n\nChart.register({\n BarController,\n CategoryScale,\n LinearScale,\n BarElement,\n PointElement,\n TimeScale,\n Tooltip,\n ChartDataLabels,\n});\n\n// TODO: refactor\nexport default defineComponent({\n setup() {\n const dashboardStore = useDashboardStore();\n\n const chartCanvasEl = ref(null);\n const chartInstance = shallowRef(null);\n\n const statistics = computed(() => dashboardStore.getters.statistics);\n const groups = computed(() => dashboardStore.getters.groups);\n const chartData = computed(() => dashboardStore.getters.chartData);\n const currentMetric = computed(() => dashboardStore.getters.metric);\n\n const getChartDataColors = () => {\n const colors = DashboardColors.getColorGroups(groups.value) as string[];\n\n const idxByGroupMap = groups.value.reduce>((acc, group, idx) => {\n acc[group] = idx;\n\n return acc;\n }, {});\n\n return chartData.value.map((item) => colors[idxByGroupMap[item.group]]);\n };\n\n const createChart = () => {\n const chartCanvasElContext = chartCanvasEl.value?.getContext('2d');\n\n if (!chartCanvasElContext) return;\n\n const labels = chartData.value.map((item) => item.index);\n\n const datasets = [\n {\n data: chartData.value.map((item) => parseFloat(item.metric)),\n backgroundColor: getChartDataColors(),\n },\n ];\n\n chartInstance.value = new Chart(chartCanvasElContext, {\n type: 'bar',\n data: {\n labels,\n datasets,\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n layout: {\n padding: {\n left: 0,\n right: 0,\n top: 20,\n bottom: 0,\n },\n },\n scales: {\n x: {\n ticks: {\n display: false,\n },\n grid: {\n display: false,\n drawBorder: false,\n },\n },\n y: {\n suggestedMin: 0,\n grid: {\n display: false,\n drawBorder: false,\n },\n },\n },\n plugins: {\n legend: {\n display: false,\n },\n datalabels: {\n display: false,\n anchor: 'end',\n align: 'start',\n offset: -20,\n },\n tooltip: {\n enabled: false,\n external({ tooltip }) {\n if (!chartInstance.value) return;\n\n let tooltipEl = document.getElementById('dashboard-chart__tooltip');\n\n if (!tooltipEl) {\n tooltipEl = document.createElement('div');\n\n tooltipEl.id = 'dashboard-chart__tooltip';\n\n chartInstance.value.canvas.parentNode?.appendChild(tooltipEl);\n }\n\n if (tooltip.opacity === 0) {\n tooltipEl.style.opacity = '0';\n\n return;\n }\n\n tooltipEl.className = '';\n\n if (tooltip.yAlign) {\n tooltipEl.classList.add(tooltip.yAlign);\n }\n\n if (tooltip.xAlign) {\n tooltipEl.classList.add(tooltip.xAlign);\n }\n\n if (tooltip.body) {\n const statisticsDataIndex = (tooltip.title || [])[0];\n const statisticsData = statistics.value.find((item) => item.index === parseInt(statisticsDataIndex, 10));\n\n tooltipEl.innerHTML = '';\n\n const TooltipComponent = Vue.extend(DashboardChartInfoTooltip);\n\n const TooltipComponentInstance = new TooltipComponent({\n propsData: {\n metrics: statisticsData,\n },\n });\n\n TooltipComponentInstance.$mount();\n\n tooltipEl.appendChild(TooltipComponentInstance.$el);\n }\n\n const positionY = chartInstance.value.canvas.offsetTop;\n const positionX = chartInstance.value.canvas.offsetLeft;\n\n let left = positionX + tooltip.caretX;\n\n switch (tooltip.xAlign.toLowerCase()) {\n case 'left':\n left = positionX + tooltip.caretX;\n\n break;\n case 'right':\n left = positionX + tooltip.caretX - tooltipEl.offsetWidth;\n\n break;\n case 'center':\n left = positionX + tooltip.caretX - tooltipEl.offsetWidth / 2;\n\n break;\n // no default\n }\n\n let top = positionY + tooltip.caretY;\n\n switch (tooltip.yAlign.toLowerCase()) {\n case 'top':\n top = positionY + tooltip.caretY;\n\n break;\n case 'bottom':\n top = positionY + tooltip.caretY - tooltipEl.offsetHeight;\n\n break;\n case 'center':\n top = positionY + tooltip.caretY - tooltipEl.offsetHeight / 2;\n\n break;\n // no default\n }\n\n tooltipEl.style.opacity = '1';\n tooltipEl.style.left = `${left}px`;\n tooltipEl.style.top = `${top}px`;\n },\n },\n },\n },\n });\n };\n\n watch(chartData, () => {\n if (!chartInstance.value) return createChart();\n\n chartInstance.value.data.datasets[0].data.length = 0;\n\n chartInstance.value.data.datasets[0] = {\n data: chartData.value.map((item) => parseFloat(item.metric)),\n backgroundColor: getChartDataColors(),\n };\n\n chartInstance.value.data.labels = chartData.value.map((item) => item.index);\n\n chartInstance.value.update();\n });\n\n return {\n currentMetric,\n chartCanvasEl,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashboardChart.vue?vue&type=template&id=79386f34&scoped=true&\"\nimport script from \"./DashboardChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashboardChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DashboardChart.vue?vue&type=style&index=0&id=79386f34&lang=scss&scoped=true&\"\nimport style1 from \"./DashboardChart.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79386f34\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dashboard-labels\"},_vm._l((_vm.items),function(item,idx){return _c('div',{key:idx,staticClass:\"dashboard-labels__item\"},[_c('div',{staticClass:\"dashboard-labels__icon\",style:({\n backgroundColor: item.color,\n })}),_vm._v(\" \"),_c('span',{staticClass:\"dashboard-labels__text caption text-truncate\",domProps:{\"textContent\":_vm._s(item.text)}})])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport DashboardColors from '../../services/dashboardColors';\n\nimport { useDashboardStore } from '../../store/dashboard';\n\nexport default defineComponent({\n setup() {\n const dashboardStore = useDashboardStore();\n\n const groups = computed(() => dashboardStore.getters.groups);\n\n const items = computed(() => {\n const colors = DashboardColors.getColorGroups(groups.value);\n\n return groups.value.map((group, idx) => {\n const groupColor = colors[idx];\n\n return {\n text: group,\n color: groupColor,\n };\n });\n });\n\n return {\n items,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardLabels.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardLabels.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashboardLabels.vue?vue&type=template&id=4923ac0a&scoped=true&\"\nimport script from \"./DashboardLabels.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashboardLabels.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DashboardLabels.vue?vue&type=style&index=0&id=4923ac0a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4923ac0a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport DashboardHeader from '../components/Dashboard/DashboardHeader.vue';\nimport DashboardChart from '../components/Dashboard/DashboardChart/DashboardChart.vue';\nimport DashboardLabels from '../components/Dashboard/DashboardLabels.vue';\n\nimport { useDashboardStore } from '../store/dashboard';\n\nexport default defineComponent({\n components: {\n AppView,\n DashboardHeader,\n DashboardChart,\n DashboardLabels,\n },\n setup() {\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const dashboardStore = useDashboardStore();\n\n const statisticsFilters = computed(() => dashboardStore.getters.filters);\n\n const fetch = async () => {\n await dashboardStore.actions.FETCH_STATISTICS();\n };\n\n watch(statisticsFilters, () => {\n fetch();\n });\n\n const init = async () => {\n updateIsLoading(true);\n\n try {\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n init();\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=ddace0ce&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport Dashboard from '../views/Dashboard.vue';\n\nconst routeConfig: AppRouteConfig = {\n name: 'dashboard',\n path: 'dashboard',\n component: Dashboard,\n meta: {\n title: 'Аналитический дашборд',\n permission: 'admin',\n order: 0,\n },\n};\n\nexport default routeConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./DataProviders.vue?vue&type=template&id=13313d80&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"data-providers-catalog\"},[(_vm.dataProviders.length)?_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('DataProvidersCatalogHeader',{on:{\"open-modal\":_vm.openModal}})],1):_vm._e(),_vm._v(\" \"),(_vm.dataProviders.length)?_c('div',{staticClass:\"data-providers-catalog__content\"},[_c('DataProvidersTable',{attrs:{\"data-providers\":_vm.dataProviders},on:{\"open-modal\":_vm.openModal}})],1):_c('div',{staticClass:\"data-providers-catalog__stub\"},[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Провайдеры данных\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n Пока не добавлено ни одного провайдера\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":function($event){return _vm.openModal('add')}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1)],1),_vm._v(\" \"),_c('DataProvidersAddModal',{model:{value:(_vm.modalsMap.add.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.add, \"value\", $$v)},expression:\"modalsMap.add.value\"}}),_vm._v(\" \"),_c('DataProvidersItemModal',_vm._b({model:{value:(_vm.modalsMap.item.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.item, \"value\", $$v)},expression:\"modalsMap.item.value\"}},'DataProvidersItemModal',_vm.modalsMap.item.props,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"data-providers-catalog-header d-flex align-center\"},[_vm._m(0),_vm._v(\" \"),_c('div',[_c('DBtnInline',{staticClass:\"mr-3\",on:{\"click\":_vm.openAddModal},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Новый провайдер\\n \")])])],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mr-3\"},[_c('div',{staticClass:\"text-h5\"},[_vm._v(\"\\n Провайдеры данных\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n setup(props, context) {\n const openAddModal = () => {\n context.emit('open-modal', 'add');\n };\n\n return {\n openAddModal,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersCatalogHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersCatalogHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersCatalogHeader.vue?vue&type=template&id=10c507a5&scoped=true&\"\nimport script from \"./DataProvidersCatalogHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersCatalogHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataProvidersCatalogHeader.vue?vue&type=style&index=0&id=10c507a5&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"10c507a5\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({attrs:{\"headers\":_vm.headers,\"items\":_vm.dataProviders,\"items-per-page\":_vm.dataProviders.length,\"server-items-length\":_vm.dataProviders.length,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('DataProvidersTableRow',{attrs:{\"data-provider\":item},on:{\"open-modal\":function($event){return _vm.$emit('open-modal', $event)}}})]}}])},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"data-providers-table-row\"},[_c('DTableCell',{staticClass:\"data-providers-table-row__cell data-providers-table-row__cell--name font-weight-medium\",on:{\"click\":_vm.openItemModal}},[_vm._v(\"\\n \"+_vm._s(_vm.dataProvider.name || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.dataProvider.connectorId || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_c('v-btn',{staticClass:\"data-providers-table-row__btn data-providers-table-row__btn--delete\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.deleteDataProvider}},[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, PropType } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport modally from '@/services/modally';\n\nimport { DataProvider } from '@/models/DataProvider';\n\nimport { useDataProvidersCatalogStore } from '../../../../store/dataProviders/dataProvidersCatalog';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n dataProvider: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const {\n dataProvider,\n } = toRefs(props);\n\n const dataProvidersCatalogStore = useDataProvidersCatalogStore();\n\n const openItemModal = () => {\n context.emit('open-modal', {\n slug: 'item',\n props: {\n dataProviderId: dataProvider.value.id,\n title: dataProvider.value.name,\n },\n });\n };\n\n const deletion = ref(false);\n\n const deleteDataProvider = async () => {\n const result = await modally.show({\n title: 'Удалить провайдера?',\n content: `Провайдер ${dataProvider.value.name} будет удалён.`,\n buttons: [\n {\n props: {\n text: 'Удалить',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) return;\n\n deletion.value = true;\n\n try {\n await dataProvidersCatalogStore.actions.DELETE_DATA_PROVIDER(dataProvider.value.id);\n } finally {\n deletion.value = false;\n }\n };\n\n return {\n openItemModal,\n deletion,\n deleteDataProvider,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersTableRow.vue?vue&type=template&id=5496b7f3&scoped=true&\"\nimport script from \"./DataProvidersTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataProvidersTableRow.vue?vue&type=style&index=0&id=5496b7f3&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5496b7f3\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport { DTable } from '@shared/druid-kit';\n\nimport { DataProvider } from '@/models/DataProvider';\n\nimport DataProvidersTableRow from './DataProvidersTableRow.vue';\n\nexport default defineComponent({\n components: {\n DTable,\n DataProvidersTableRow,\n },\n props: {\n dataProviders: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const headers = ['Name', 'ConnectorId', '']\n .map((text) => ({\n text,\n class: 'caption',\n sortable: false,\n }));\n\n return {\n headers,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersTable.vue?vue&type=template&id=e82d33ba&\"\nimport script from \"./DataProvidersTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"data-providers-add-modal\",attrs:{\"max-width\":\"800\",\"title\":\"Новый провайдер\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('DataProvidersItemForm',{ref:\"dataProviderFormRef\",attrs:{\"valid\":_vm.dataProviderFormIsValid},on:{\"update:valid\":function($event){_vm.dataProviderFormIsValid=$event}},model:{value:(_vm.dataProviderFormData),callback:function ($$v) {_vm.dataProviderFormData=$$v},expression:\"dataProviderFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"px-6 mb-6\"},[_c('v-alert',{staticClass:\"data-providers-add-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"data-providers-add-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"rootRef\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"data-providers-item-form__row px-6\"},[_c('div',{staticClass:\"data-providers-item-form__col\"},[_c('div',{staticClass:\"data-providers-item-form__field\"},[_c('v-text-field',{attrs:{\"rules\":_vm.nameRules,\"loading\":_vm.nameIsLoading,\"disabled\":_vm.nameIsDisabled,\"label\":\"Название\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"required\":\"\"},model:{value:(_vm.currentName),callback:function ($$v) {_vm.currentName=$$v},expression:\"currentName\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-item-form__field\"},[_c('v-text-field',{attrs:{\"loading\":_vm.connectorIdIsLoading,\"disabled\":_vm.connectorIdIsDisabled,\"rules\":_vm.connectorIdRules,\"label\":\"Id коннектора\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"required\":\"\"},model:{value:(_vm.currentConnectorId),callback:function ($$v) {_vm.currentConnectorId=$$v},expression:\"currentConnectorId\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-item-form__field\"},[_c('v-text-field',{attrs:{\"loading\":_vm.priorityIsLoading,\"disabled\":_vm.priorityIsDisabled,\"label\":\"Приоритет\",\"type\":\"number\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"required\":\"\"},model:{value:(_vm.currentPriority),callback:function ($$v) {_vm.currentPriority=$$v},expression:\"currentPriority\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-item-form__field\"},[_c('DAutocomplete',{attrs:{\"items\":_vm.types,\"loading\":_vm.typesIsLoading,\"disabled\":_vm.typesIsDisabled,\"rules\":_vm.typeRules,\"label\":\"Тип\",\"item-text\":\"id\",\"return-object\":\"\",\"clearable\":\"\"},model:{value:(_vm.currentType),callback:function ($$v) {_vm.currentType=$$v},expression:\"currentType\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-item-form__field\"},[_c('DAutocomplete',{attrs:{\"items\":_vm.sites,\"loading\":_vm.sitesIsLoading,\"disabled\":_vm.sitesIsDisabled,\"label\":\"Сайты\",\"item-text\":\"name\",\"item-value\":\"id\",\"multiple\":\"\"},model:{value:(_vm.currentSitesIds),callback:function ($$v) {_vm.currentSitesIds=$$v},expression:\"currentSitesIds\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-item-form__col\"},[_c('div',{staticClass:\"data-providers-item-form__field\"},[_c('v-switch',{staticClass:\"data-providers-item-form__switch\",attrs:{\"loading\":_vm.isTokenRequiredIsLoading,\"disabled\":_vm.isTokenRequiredIsDisabled,\"label\":\"Требуется токен\",\"hide-details\":\"\"},model:{value:(_vm.currentIsTokenRequired),callback:function ($$v) {_vm.currentIsTokenRequired=$$v},expression:\"currentIsTokenRequired\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-item-form__field\"},[_c('v-switch',{staticClass:\"data-providers-item-form__switch\",attrs:{\"loading\":_vm.supportsGoalsIsLoading,\"disabled\":_vm.supportsGoalsIsDisabled,\"label\":\"Поддерживает цели\",\"hide-details\":\"\"},model:{value:(_vm.currentSupportsGoals),callback:function ($$v) {_vm.currentSupportsGoals=$$v},expression:\"currentSupportsGoals\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-item-form__field\"},[_c('v-switch',{staticClass:\"data-providers-item-form__switch\",attrs:{\"loading\":_vm.supportsTriggersIsLoading,\"disabled\":_vm.supportsTriggersIsDisabled,\"label\":\"Поддерживает триггеры\",\"hide-details\":\"\"},model:{value:(_vm.currentSupportsTriggers),callback:function ($$v) {_vm.currentSupportsTriggers=$$v},expression:\"currentSupportsTriggers\"}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport { DAutocomplete } from '@shared/druid-kit';\n\nimport { DataProvider } from '@/models/DataProvider';\n\nimport { useDataProvidersDetailsStore } from '../../../store/dataProviders/dataProvidersDetails';\n\nexport default defineComponent({\n components: {\n DAutocomplete,\n },\n props: {\n value: { type: Object as PropType, default: null },\n valid: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n loading,\n } = toRefs(props);\n\n const dataProvidersDetailsStore = useDataProvidersDetailsStore();\n\n const rootRef = ref(null);\n\n const isValid = ref(false);\n\n watch(isValid, (val) => {\n context.emit('update:valid', val);\n }, { immediate: true });\n\n const resetValidation = () => {\n if (!rootRef.value) return;\n\n rootRef.value.resetValidation();\n };\n\n const updateDataProvider = (payload: Partial) => {\n const newDataProvider = {\n ...value.value,\n ...payload,\n };\n\n context.emit('input', newDataProvider);\n };\n\n // // // // //\n\n const nameRules = ref([\n (val: string) => !!val,\n ]);\n\n const nameIsLoading = computed(() => loading.value);\n const nameIsDisabled = computed(() => nameIsLoading.value);\n\n const currentName = computed({\n get() {\n return value.value?.name || '';\n },\n set(val: string) {\n updateDataProvider({ name: val });\n },\n });\n\n // // // // //\n\n const connectorIdRules = ref([\n (val: string) => !val || /^([0-9a-f]{8})-(([0-9a-f]{4}-){3})([0-9a-f]{12})$/i.test(val),\n ]);\n\n const connectorIdIsLoading = computed(() => loading.value);\n const connectorIdIsDisabled = computed(() => connectorIdIsLoading.value);\n\n const currentConnectorId = computed({\n get() {\n return value.value?.connectorId || '';\n },\n set(val: string) {\n updateDataProvider({ connectorId: val });\n },\n });\n\n // // // // //\n\n const priorityIsLoading = computed(() => loading.value);\n const priorityIsDisabled = computed(() => priorityIsLoading.value);\n\n const currentPriority = computed({\n get() {\n return value.value?.priority || 0;\n },\n set(val: number) {\n updateDataProvider({ priority: val });\n },\n });\n\n // // // // //\n\n const typeRules = ref([\n (val: DataProvider['type']) => !!val,\n ]);\n\n const types = computed(() => dataProvidersDetailsStore.getters.types);\n const typesIsLoadingData = ref(false);\n\n const typesIsLoading = computed({\n get() {\n return typesIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n typesIsLoadingData.value = val;\n },\n });\n\n const typesIsDisabled = computed(() => !types.value.length || typesIsLoading.value);\n\n const currentType = computed({\n get() {\n return value.value?.type || null;\n },\n set(val: DataProvider['type'] | null) {\n if (!val) return;\n\n updateDataProvider({ type: val });\n },\n });\n\n const fetchTypes = async () => {\n typesIsLoading.value = true;\n\n try {\n await dataProvidersDetailsStore.actions.FETCH_TYPES();\n } finally {\n typesIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const sites = computed(() => dataProvidersDetailsStore.getters.sites);\n const sitesIsLoadingData = ref(false);\n\n const sitesIsLoading = computed({\n get() {\n return sitesIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n sitesIsLoadingData.value = val;\n },\n });\n\n const sitesIsDisabled = computed(() => !sites.value.length || sitesIsLoading.value);\n\n const currentSitesIds = computed({\n get() {\n return value.value?.sites || [];\n },\n set(val: string[]) {\n updateDataProvider({ sites: val });\n },\n });\n\n const fetchSites = async () => {\n sitesIsLoading.value = true;\n\n try {\n await dataProvidersDetailsStore.actions.FETCH_SITES();\n } finally {\n sitesIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const isTokenRequiredIsLoading = computed(() => loading.value);\n const isTokenRequiredIsDisabled = computed(() => isTokenRequiredIsLoading.value);\n\n const currentIsTokenRequired = computed({\n get() {\n return value.value?.isTokenRequired || false;\n },\n set(val: boolean) {\n updateDataProvider({ isTokenRequired: val });\n },\n });\n\n // // // // //\n\n const supportsGoalsIsLoading = computed(() => loading.value);\n const supportsGoalsIsDisabled = computed(() => supportsGoalsIsLoading.value);\n\n const currentSupportsGoals = computed({\n get() {\n return value.value?.supportsGoals || false;\n },\n set(val: boolean) {\n updateDataProvider({ supportsGoals: val });\n },\n });\n\n // // // // //\n\n const supportsTriggersIsLoading = computed(() => loading.value);\n const supportsTriggersIsDisabled = computed(() => supportsTriggersIsLoading.value);\n\n const currentSupportsTriggers = computed({\n get() {\n return value.value?.supportsTriggers || false;\n },\n set(val: boolean) {\n updateDataProvider({ supportsTriggers: val });\n },\n });\n\n // // // // //\n\n const init = async () => {\n await Promise.all([\n fetchTypes(),\n fetchSites(),\n ]);\n };\n\n init();\n\n return {\n rootRef,\n isValid,\n resetValidation,\n //\n nameRules,\n currentName,\n nameIsLoading,\n nameIsDisabled,\n //\n connectorIdRules,\n currentConnectorId,\n connectorIdIsLoading,\n connectorIdIsDisabled,\n //\n currentPriority,\n priorityIsLoading,\n priorityIsDisabled,\n //\n sites,\n currentSitesIds,\n sitesIsLoading,\n sitesIsDisabled,\n //\n typeRules,\n currentType,\n types,\n typesIsLoading,\n typesIsDisabled,\n //\n currentIsTokenRequired,\n isTokenRequiredIsLoading,\n isTokenRequiredIsDisabled,\n //\n currentSupportsGoals,\n supportsGoalsIsLoading,\n supportsGoalsIsDisabled,\n //\n currentSupportsTriggers,\n supportsTriggersIsLoading,\n supportsTriggersIsDisabled,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersItemForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersItemForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersItemForm.vue?vue&type=template&id=3f01896d&scoped=true&\"\nimport script from \"./DataProvidersItemForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersItemForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataProvidersItemForm.vue?vue&type=style&index=0&id=3f01896d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f01896d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VForm,VSwitch,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { DataProvider } from '@/models/DataProvider';\n\nimport { PartialWithout } from '@/utils/type';\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport DataProvidersItemForm from '../forms/DataProvidersItemForm.vue';\n\nimport { useDataProvidersCatalogStore } from '../../../store/dataProviders/dataProvidersCatalog';\n\nexport default defineComponent({\n components: {\n AppModal,\n DataProvidersItemForm,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const dataProvidersCatalogStore = useDataProvidersCatalogStore();\n\n const dataProviderFormRef = ref(null);\n const dataProviderFormData = ref | null>(null);\n const dataProviderFormIsValid = ref(false);\n\n const dataProviderFormResetValidation = async () => {\n if (!dataProviderFormRef.value) return;\n\n dataProviderFormRef.value.resetValidation();\n };\n\n const newDataProvider = computed(() => {\n if (!dataProviderFormData.value || !dataProviderFormIsValid.value) return null;\n\n return dataProviderFormData.value;\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newDataProvider.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newDataProvider.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await dataProvidersCatalogStore.actions.CREATE_DATA_PROVIDER(newDataProvider.value);\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data || {}).reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n watch(value, async (val) => {\n if (!val) return;\n\n dataProviderFormData.value = null;\n\n dataProviderFormResetValidation();\n }, { immediate: true });\n\n return {\n dataProviderFormRef,\n dataProviderFormData,\n dataProviderFormIsValid,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersAddModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersAddModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersAddModal.vue?vue&type=template&id=dfccb33a&scoped=true&\"\nimport script from \"./DataProvidersAddModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersAddModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataProvidersAddModal.vue?vue&type=style&index=0&id=dfccb33a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dfccb33a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"data-providers-item-modal\",attrs:{\"max-width\":\"800\",\"title\":_vm.modalTitle,\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('DataProvidersItemForm',{ref:\"dataProviderFormRef\",attrs:{\"valid\":_vm.dataProviderFormIsValid,\"loading\":_vm.dataProviderIsLoading},on:{\"update:valid\":function($event){_vm.dataProviderFormIsValid=$event}},model:{value:(_vm.dataProviderFormData),callback:function ($$v) {_vm.dataProviderFormData=$$v},expression:\"dataProviderFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"px-6 mb-6\"},[_c('v-alert',{staticClass:\"data-providers-item-modal__error mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"data-providers-item-modal__error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, ComponentInstance, PropType } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { DataProvider } from '@/models/DataProvider';\n\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport DataProvidersItemForm from '../forms/DataProvidersItemForm.vue';\n\nimport { useDataProvidersCatalogStore } from '../../../store/dataProviders/dataProvidersCatalog';\nimport { useDataProvidersDetailsStore } from '../../../store/dataProviders/dataProvidersDetails';\n\nexport default defineComponent({\n components: {\n AppModal,\n DataProvidersItemForm,\n },\n props: {\n value: { type: Boolean, default: false },\n title: { type: String, default: '' },\n dataProviderId: { type: String as PropType, default: null },\n },\n setup(props, context) {\n const {\n value,\n title,\n dataProviderId,\n } = toRefs(props);\n\n const dataProvidersCatalogStore = useDataProvidersCatalogStore();\n const dataProvidersDetailsStore = useDataProvidersDetailsStore();\n\n const dataProvider = computed(() => dataProvidersDetailsStore.getters.dataProvider);\n const dataProviderIsLoading = computed(() => dataProvidersDetailsStore.getters.isLoading);\n\n const dataProviderFormRef = ref(null);\n const dataProviderFormData = ref(null);\n const dataProviderFormIsValid = ref(false);\n\n const dataProviderFormResetValidation = async () => {\n if (!dataProviderFormRef.value) return;\n\n dataProviderFormRef.value.resetValidation();\n };\n\n const newDataProvider = computed(() => {\n if (!dataProviderFormData.value || !dataProviderFormIsValid.value) return null;\n\n return dataProviderFormData.value;\n });\n\n const modalTitle = computed(() => title.value || dataProvider.value?.name || 'Редактирование провайдера');\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newDataProvider.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newDataProvider.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await dataProvidersCatalogStore.actions.UPDATE_DATA_PROVIDER(newDataProvider.value);\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data || {}).reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n const init = async () => {\n if (!dataProviderId.value) return;\n\n await dataProvidersDetailsStore.actions.FETCH_DATA_PROVIDER(dataProviderId.value);\n\n dataProviderFormData.value = dataProvider.value;\n };\n\n watch(value, async (val) => {\n if (!val) return;\n\n dataProviderFormData.value = null;\n\n dataProviderFormResetValidation();\n init();\n }, { immediate: true });\n\n return {\n dataProviderFormRef,\n dataProviderFormData,\n dataProviderFormIsValid,\n dataProviderIsLoading,\n modalTitle,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersItemModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersItemModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersItemModal.vue?vue&type=template&id=b2ecda4a&scoped=true&\"\nimport script from \"./DataProvidersItemModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersItemModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataProvidersItemModal.vue?vue&type=style&index=0&id=b2ecda4a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b2ecda4a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport useModals from '@/composables/useModals';\n\nimport DataProvidersCatalogHeader from '../../components/DataProviders/DataProvidersCatalog/DataProvidersCatalogHeader.vue';\nimport DataProvidersTable from '../../components/DataProviders/DataProvidersCatalog/DataProvidersTable/DataProvidersTable.vue';\n\nimport DataProvidersAddModal from '../../components/DataProviders/modals/DataProvidersAddModal.vue';\nimport DataProvidersItemModal from '../../components/DataProviders/modals/DataProvidersItemModal.vue';\n\nimport { useDataProvidersCatalogStore } from '../../store/dataProviders/dataProvidersCatalog';\n\nexport default defineComponent({\n components: {\n AppView,\n DataProvidersCatalogHeader,\n DataProvidersTable,\n DataProvidersAddModal,\n DataProvidersItemModal,\n },\n setup() {\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const {\n modalsMap,\n openModal,\n } = useModals(['add', 'item']);\n\n const dataProvidersCatalogStore = useDataProvidersCatalogStore();\n\n const dataProviders = computed(() => dataProvidersCatalogStore.getters.dataProviders);\n const dataProvidersIsLoading = computed(() => dataProvidersCatalogStore.getters.isLoading);\n\n const fetch = async () => {\n await dataProvidersCatalogStore.actions.FETCH_DATA_PROVIDERS();\n };\n\n const init = async () => {\n updateIsLoading(true);\n\n try {\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n init();\n\n return {\n modalsMap,\n dataProviders,\n dataProvidersIsLoading,\n openModal,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersCatalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersCatalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersCatalog.vue?vue&type=template&id=4c033130&scoped=true&\"\nimport script from \"./DataProvidersCatalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersCatalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataProvidersCatalog.vue?vue&type=style&index=0&id=4c033130&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c033130\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport DataProviders from '../views/DataProviders.vue';\nimport DataProvidersCatalog from '../views/DataProviders/DataProvidersCatalog.vue';\nimport PageCatalogLoader from '../../../components/_newDesign/common/loaders/PageCatalogLoader.vue';\n\nconst routeConfig: AppRouteConfig = {\n path: 'data-providers',\n component: DataProviders,\n meta: {\n title: 'Провайдеры данных',\n permission: 'admin',\n order: 0,\n },\n children: [\n {\n name: 'data-providers-catalog',\n path: '',\n component: DataProvidersCatalog,\n meta: {\n title: 'Провайдеры данных',\n loader: PageCatalogLoader,\n header: {\n sticky: true,\n },\n },\n },\n ],\n};\n\nexport default routeConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./DataProvidersSettings.vue?vue&type=template&id=55db357a&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"data-providers-settings-catalog\"},[(_vm.providersSettings.length || _vm.providersSettingsFiltersChanged)?_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('DataProvidersSettingsCatalogHeader',{on:{\"open-modal\":_vm.openModal}})],1):_vm._e(),_vm._v(\" \"),(_vm.providersSettings.length)?_c('div',{staticClass:\"data-providers-settings-catalog__content\"},[_c('DataProvidersSettingsTable',{attrs:{\"data-providers-settings\":_vm.providersSettings},on:{\"open-modal\":_vm.openModal}})],1):_c('div',{staticClass:\"data-providers-settings-catalog__stub\"},[(_vm.providersSettingsIsLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.providersSettingsFiltersChanged ? 'Ничего не найдено :-(' : 'Настройки провайдеров')+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.providersSettingsFiltersChanged ? 'Попробуйте изменить запрос' : 'Пока не добавлено ни одной настройки')+\"\\n \")]),_vm._v(\" \"),(!_vm.providersSettingsFiltersChanged)?_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":function($event){return _vm.openModal('add')}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1):_vm._e()]],2),_vm._v(\" \"),_c('DataProvidersSettingsAddModal',{model:{value:(_vm.modalsMap.add.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.add, \"value\", $$v)},expression:\"modalsMap.add.value\"}}),_vm._v(\" \"),_c('DataProvidersSettingsItemModal',_vm._b({model:{value:(_vm.modalsMap.item.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.item, \"value\", $$v)},expression:\"modalsMap.item.value\"}},'DataProvidersSettingsItemModal',_vm.modalsMap.item.props,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"data-providers-catalog-header d-flex align-center\"},[_vm._m(0),_vm._v(\" \"),_c('div',[_c('DBtnInline',{staticClass:\"mr-3\",on:{\"click\":_vm.openAddModal},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Новая настройка\\n \")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center ml-auto\"},[_c('DSelectInline',{staticClass:\"mt-1 mr-2 flex-grow-0\",attrs:{\"items\":_vm.filterItems},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}}),_vm._v(\" \"),_c('v-text-field',{staticClass:\"data-providers-catalog-header__search\",attrs:{\"label\":\"Поиск\",\"prepend-inner-icon\":\"mdi-magnify\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mr-3\"},[_c('div',{staticClass:\"text-h5\"},[_vm._v(\"\\n Настройки провайдеров\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport {\n DBtnInline,\n DSelectInline,\n} from '@shared/druid-kit';\n\nimport { useDataProvidersSettingsCatalogStore } from '../../../store/dataProvidersSettings/dataProvidersSettingsCatalog';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n DSelectInline,\n },\n setup(props, context) {\n const dataProvidersSettingsStore = useDataProvidersSettingsCatalogStore();\n\n const filterItems = computed(() => [\n { text: 'Все настройки', value: false },\n { text: 'Только проблемные', value: true },\n ]);\n\n const filter = computed({\n get() {\n return dataProvidersSettingsStore.getters.filters.failedOnly;\n },\n set(val: boolean) {\n dataProvidersSettingsStore.dispatch('UPDATE_FILTERS', { failedOnly: val });\n },\n });\n\n const query = computed({\n get() {\n return dataProvidersSettingsStore.getters.filters.query;\n },\n set: debounce((val: string) => {\n dataProvidersSettingsStore.dispatch('UPDATE_FILTERS', { query: val });\n }, 300),\n });\n\n const openAddModal = () => {\n context.emit('open-modal', 'add');\n };\n\n return {\n filter,\n query,\n openAddModal,\n filterItems,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsCatalogHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsCatalogHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersSettingsCatalogHeader.vue?vue&type=template&id=2a273313&scoped=true&\"\nimport script from \"./DataProvidersSettingsCatalogHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersSettingsCatalogHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataProvidersSettingsCatalogHeader.vue?vue&type=style&index=0&id=2a273313&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a273313\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({attrs:{\"headers\":_vm.headers,\"items\":_vm.dataProvidersSettings,\"items-per-page\":_vm.dataProvidersSettings.length,\"server-items-length\":_vm.dataProvidersSettings.length,\"loading\":_vm.dataProvidersSettingsIsLoading,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === _vm.dataProvidersSettings.length - 5)?_c('DataProvidersSettingsTableRow',{directives:[{name:\"intersect\",rawName:\"v-intersect.once\",value:(_vm.onIntersect),expression:\"onIntersect\",modifiers:{\"once\":true}}],attrs:{\"data-provider-settings\":item},on:{\"open-modal\":function($event){return _vm.$emit('open-modal', $event)}}}):_c('DataProvidersSettingsTableRow',{attrs:{\"data-provider-settings\":item},on:{\"open-modal\":function($event){return _vm.$emit('open-modal', $event)}}})]}},(_vm.dataProvidersSettingsIsLoading)?{key:\"body-append\",fn:function(){return [_c('DTableRow',[_c('DTableCell',{attrs:{\"content-classes\":\"justify-center align-center\",\"colspan\":_vm.headers.length}},[_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"20\",\"indeterminate\":\"\"}})],1)],1)]},proxy:true}:null],null,true)},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"data-providers-settings-table-row\"},[_c('DTableCell',[_c('DTooltip',{attrs:{\"center\":\"\",\"bottom\":\"\",\"interactive\":\"\",\"disabled\":!_vm.dataProviderSettings.finishedWithError},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"size\":\"20\",\"color\":_vm.statusIcon.color}},'v-icon',attrs,false),on),[_vm._v(\"\\n \"+_vm._s(_vm.statusIcon.icon)+\"\\n \")])]}}])},[_vm._v(\" \"),(_vm.dataProviderSettings.statusText)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.dataProviderSettings.statusText)+\"\\n \")]):_vm._e()])],1),_vm._v(\" \"),_c('DTableCell',{staticClass:\"data-providers-settings-table-row__cell data-providers-settings-table-row__cell--name font-weight-medium\",on:{\"click\":_vm.openItemModal}},[_vm._v(\"\\n \"+_vm._s(_vm.dataProviderSettings.name || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.dataProviderSettings.client || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.dataProviderSettings.provider || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',[_vm._v(\"\\n \"+_vm._s(_vm.dataProviderSettings.token || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"provider-settings-table-row__actions-cell\",attrs:{\"align\":\"right\"}},[(_vm.dataProviderSettings.inProgress)?_c('div',{staticClass:\"grey--text\"},[_vm._v(\"\\n Данные обновляются...\\n \")]):_c('DTooltip',{attrs:{\"center\":\"\",\"bottom\":\"\",\"interactive\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar btnHover = ref.hover;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-auto\",attrs:{\"disabled\":!_vm.dataProviderSettings.available,\"color\":btnHover ? 'primary' : '',\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.startGatherStatistics}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-play\\n \")])],1)]}}],null,true)})]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Отправить запрос на сбор статистики\")])])],1),_vm._v(\" \"),_c('DTableCell',{staticClass:\"provider-settings-table-row__actions-cell\"},[_c('v-btn',{staticClass:\"data-providers-settings-table-row__btn data-providers-settings-table-row__btn--delete\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.deleteDataProviderSettings}},[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, PropType, computed } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n DTooltip,\n} from '@shared/druid-kit';\n\nimport modally from '@/services/modally';\n\nimport { DataProvidersSettings } from '@/models/DataProvidersSettings';\n\nimport { useDataProvidersSettingsCatalogStore } from '../../../../store/dataProvidersSettings/dataProvidersSettingsCatalog';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n DTooltip,\n },\n props: {\n dataProviderSettings: { type: Object as PropType, required: true },\n },\n setup(props, context) {\n const {\n dataProviderSettings,\n } = toRefs(props);\n\n const dataProvidersSettingsCatalogStore = useDataProvidersSettingsCatalogStore();\n\n const openItemModal = () => {\n context.emit('open-modal', { slug: 'item', props: { dataProviderSettingsId: dataProviderSettings.value.id } });\n };\n\n const deletion = ref(false);\n\n const statusIcon = computed(() => {\n const icons = {\n finishedWithError: {\n icon: 'mdi-close-circle',\n color: 'error',\n },\n available: {\n icon: 'mdi-checkbox-marked-circle',\n color: 'success',\n },\n inProgress: {\n icon: 'mdi-timer-sand',\n color: 'grey',\n },\n default: {\n icon: 'mdi-help-circle-outline',\n color: 'grey',\n\n },\n };\n\n const iconKey = Object.keys(icons).find((key) => !!dataProviderSettings.value[key]) ?? 'default';\n\n return icons[iconKey];\n });\n\n const startGatherStatistics = () => {\n dataProvidersSettingsCatalogStore.actions.START_GATHER_STATISTICS(dataProviderSettings.value);\n };\n\n const deleteDataProviderSettings = async () => {\n const result = await modally.show({\n title: 'Удалить настройку?',\n content: `Настройка ${dataProviderSettings.value.name} будет удалена.`,\n buttons: [\n {\n props: {\n text: 'Удалить',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) return;\n\n deletion.value = true;\n\n try {\n await dataProvidersSettingsCatalogStore.actions.DELETE_PROVIDER_SETTINGS(dataProviderSettings.value.id);\n } finally {\n deletion.value = false;\n }\n };\n\n return {\n openItemModal,\n deletion,\n deleteDataProviderSettings,\n startGatherStatistics,\n statusIcon,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersSettingsTableRow.vue?vue&type=template&id=11457497&scoped=true&\"\nimport script from \"./DataProvidersSettingsTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersSettingsTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataProvidersSettingsTableRow.vue?vue&type=style&index=0&id=11457497&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11457497\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VHover } from 'vuetify/lib/components/VHover';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VHover,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, PropType } from '@vue/composition-api';\n\nimport {\n DTable,\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { DataProvidersSettings } from '@/models/DataProvidersSettings';\n\nimport DataProvidersSettingsTableRow from './DataProvidersSettingsTableRow.vue';\n\nimport { useDataProvidersSettingsCatalogStore } from '../../../../store/dataProvidersSettings/dataProvidersSettingsCatalog';\n\nexport default defineComponent({\n components: {\n DTable,\n DTableCell,\n DTableRow,\n DataProvidersSettingsTableRow,\n },\n props: {\n dataProvidersSettings: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const dataProvidersSettingsCatalogStore = useDataProvidersSettingsCatalogStore();\n\n const headers = ['', 'Название', 'Клиент', 'Площадка', 'Доступ', '', '']\n .map((text) => ({\n text,\n class: 'caption',\n sortable: false,\n }));\n\n const dataProvidersSettingsIsLoading = computed(() => dataProvidersSettingsCatalogStore.getters.isLoading);\n\n const onIntersect = (entries: unknown, observer: unknown, isIntersecting: boolean) => {\n if (isIntersecting) dataProvidersSettingsCatalogStore.actions.NEXT_PAGE();\n };\n\n return {\n headers,\n dataProvidersSettingsIsLoading,\n onIntersect,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersSettingsTable.vue?vue&type=template&id=0d09ea18&\"\nimport script from \"./DataProvidersSettingsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersSettingsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({attrs:{\"max-width\":\"540\",\"title\":\"Новая настройка провайдера\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('DataProvidersSettingsForm',{ref:\"dataProviderSettingsFormRef\",attrs:{\"valid\":_vm.dataProviderSettingsFormIsValid},on:{\"update:valid\":function($event){_vm.dataProviderSettingsFormIsValid=$event}},model:{value:(_vm.dataProviderSettingsFormData),callback:function ($$v) {_vm.dataProviderSettingsFormData=$$v},expression:\"dataProviderSettingsFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"px-6 mb-6\"},[_c('v-alert',{staticClass:\"mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"rootRef\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"px-6\"},[_c('div',{staticClass:\"data-providers-settings-form__field\"},[_c('v-text-field',{attrs:{\"label\":\"Название\",\"rules\":_vm.nameRules,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.nameIsLoading,\"disabled\":_vm.nameIsDisabled,\"required\":\"\"},model:{value:(_vm.currentName),callback:function ($$v) {_vm.currentName=$$v},expression:\"currentName\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-settings-form__field\"},[_c('v-text-field',{attrs:{\"label\":\"Настройки коннектора\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.connectorSettingsIsLoading,\"disabled\":_vm.connectorSettingsIsDisabled,\"required\":\"\"},model:{value:(_vm.currentConnectorSettings),callback:function ($$v) {_vm.currentConnectorSettings=$$v},expression:\"currentConnectorSettings\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-settings-form__field\"},[_c('DAutocomplete',{attrs:{\"label\":\"Площадка\",\"items\":_vm.providers,\"disabled\":_vm.providersIsDisabled,\"loading\":_vm.providersIsLoading,\"item-text\":\"name\",\"item-value\":\"id\",\"clearable\":\"\"},model:{value:(_vm.currentProviderId),callback:function ($$v) {_vm.currentProviderId=$$v},expression:\"currentProviderId\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-settings-form__field\"},[_c('DAutocomplete',{attrs:{\"label\":\"Доступ\",\"items\":_vm.tokens,\"disabled\":_vm.tokensIsDisabled,\"loading\":_vm.tokensIsLoading,\"item-text\":\"name\",\"item-value\":\"id\",\"clearable\":\"\"},model:{value:(_vm.currentTokenId),callback:function ($$v) {_vm.currentTokenId=$$v},expression:\"currentTokenId\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-settings-form__field\"},[_c('DAutocomplete',{attrs:{\"label\":\"Глубина сбора статистики\",\"items\":_vm.statisticsCollectionDepths,\"disabled\":_vm.statisticsCollectionDepthsIsDisabled,\"loading\":_vm.statisticsCollectionDepthsIsLoading,\"clearable\":\"\"},model:{value:(_vm.currentStatisticsCollectionDepth),callback:function ($$v) {_vm.currentStatisticsCollectionDepth=$$v},expression:\"currentStatisticsCollectionDepth\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-settings-form__field\"},[_c('DAutocomplete',{attrs:{\"label\":\"Клиент\",\"items\":_vm.clients,\"disabled\":_vm.clientsIsDisabled,\"loading\":_vm.clientsIsLoading,\"item-text\":\"name\",\"item-value\":\"id\",\"clearable\":\"\"},model:{value:(_vm.currentClientId),callback:function ($$v) {_vm.currentClientId=$$v},expression:\"currentClientId\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"data-providers-settings-form__field\"},[_c('DAutocomplete',{attrs:{\"label\":\"Бренды\",\"items\":_vm.clientBrands,\"disabled\":_vm.clientsIsDisabled,\"loading\":_vm.clientsIsLoading,\"item-text\":\"name\",\"item-value\":\"id\",\"multiple\":\"\"},model:{value:(_vm.currentClientBrandIds),callback:function ($$v) {_vm.currentClientBrandIds=$$v},expression:\"currentClientBrandIds\"}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport { DAutocomplete } from '@shared/druid-kit';\n\nimport { DataProvidersSettingsItem } from '@/models/DataProvidersSettings';\n\nimport { useDataProvidersSettingsDetailsStore } from '../../../store/dataProvidersSettings/dataProvidersSettingsDetails';\n\nexport default defineComponent({\n components: {\n DAutocomplete,\n },\n props: {\n value: { type: Object as PropType, default: null },\n valid: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n existUsers: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n loading,\n } = toRefs(props);\n\n const dataProvidersSettingsDetailsStore = useDataProvidersSettingsDetailsStore();\n\n const rootRef = ref(null);\n\n const isValid = ref(false);\n\n watch(isValid, (val) => {\n context.emit('update:valid', val);\n }, { immediate: true });\n\n const resetValidation = () => {\n if (!rootRef.value) return;\n\n rootRef.value.resetValidation();\n };\n\n const updateForm = (payload: Partial) => {\n const newForm = {\n ...value.value,\n ...payload,\n };\n\n context.emit('input', newForm);\n };\n\n // // // // //\n\n const nameRules = ref([\n (val: string) => !!val,\n ]);\n\n const nameIsLoading = computed(() => loading.value);\n const nameIsDisabled = computed(() => nameIsLoading.value);\n\n const currentName = computed({\n get() {\n return value.value?.name || '';\n },\n set(val: string) {\n updateForm({ name: val });\n },\n });\n\n // // // // //\n\n const connectorSettingsIsLoading = computed(() => loading.value);\n const connectorSettingsIsDisabled = computed(() => connectorSettingsIsLoading.value);\n\n const currentConnectorSettings = computed({\n get() {\n return value.value?.connectorSettings || '';\n },\n set(val: string) {\n updateForm({ connectorSettings: val });\n },\n });\n\n // // // // //\n\n const providers = computed(() => dataProvidersSettingsDetailsStore.getters.providers);\n const providersIsLoadingData = ref(false);\n\n const providersIsLoading = computed({\n get() {\n return providersIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n providersIsLoadingData.value = val;\n },\n });\n\n const providersIsDisabled = computed(() => !providers.value.length || providersIsLoading.value);\n\n const currentProviderId = computed({\n get() {\n return value.value?.dataProviderId || '';\n },\n set(val: string) {\n updateForm({ dataProviderId: val });\n },\n });\n\n const currentProvider = computed(() => providers.value.find(({ id }) => id === currentProviderId.value) ?? null);\n\n const fetchProviders = async () => {\n providersIsLoading.value = true;\n\n try {\n await dataProvidersSettingsDetailsStore.actions.FETCH_PROVIDERS();\n } finally {\n providersIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const tokens = computed(() => dataProvidersSettingsDetailsStore.getters.tokens);\n const tokensIsLoadingData = ref(false);\n\n const tokensIsLoading = computed({\n get() {\n return tokensIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n tokensIsLoadingData.value = val;\n },\n });\n\n const tokensIsDisabled = computed(() => !tokens.value.length || tokensIsLoading.value || !currentProvider.value);\n\n const currentTokenId = computed({\n get() {\n return value.value?.tokenId || '';\n },\n set(val: string) {\n updateForm({ tokenId: val });\n },\n });\n\n const fetchTokens = async (providerId: string) => {\n tokensIsLoading.value = true;\n\n try {\n await dataProvidersSettingsDetailsStore.actions.FETCH_TOKENS(providerId);\n } finally {\n tokensIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const statisticsCollectionDepths = computed(() => dataProvidersSettingsDetailsStore.getters.statisticsCollectionDepths);\n const statisticsCollectionDepthsIsLoadingData = ref(false);\n\n const statisticsCollectionDepthsIsLoading = computed({\n get() {\n return statisticsCollectionDepthsIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n statisticsCollectionDepthsIsLoadingData.value = val;\n },\n });\n\n const statisticsCollectionDepthsIsDisabled = computed(() => !statisticsCollectionDepths.value.length || statisticsCollectionDepthsIsLoading.value);\n\n const currentStatisticsCollectionDepth = computed({\n get() {\n return value.value?.statisticsCollectionDepth || '';\n },\n set(val: string) {\n updateForm({ statisticsCollectionDepth: val });\n },\n });\n\n const fetchStatisticsCollectionDepths = async (connectorId: string) => {\n statisticsCollectionDepthsIsLoadingData.value = true;\n\n try {\n await dataProvidersSettingsDetailsStore.actions.FETCH_STATISTICS_COLLECTION_OF_DEPTH(connectorId);\n } finally {\n statisticsCollectionDepthsIsLoadingData.value = false;\n }\n };\n\n // // // // // //\n\n const clients = computed(() => dataProvidersSettingsDetailsStore.getters.clients);\n const clientsIsLoadingData = ref(false);\n\n const clientsIsLoading = computed({\n get() {\n return clientsIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n clientsIsLoadingData.value = val;\n },\n });\n\n const clientsIsDisabled = computed(() => !clients.value.length || clientsIsLoading.value);\n\n const currentClientId = computed({\n get() {\n return value.value?.clientId || '';\n },\n set(val: string) {\n updateForm({ clientId: val });\n },\n });\n\n const currentClient = computed(() => clients.value.find(({ id }) => id === currentClientId.value) ?? null);\n\n const fetchClients = async () => {\n clientsIsLoadingData.value = true;\n\n try {\n await dataProvidersSettingsDetailsStore.actions.FETCH_CLIENTS();\n } finally {\n clientsIsLoadingData.value = false;\n }\n };\n\n // // // // // //\n\n const clientBrands = computed(() => currentClient.value?.brands ?? []);\n\n const currentClientBrandIds = computed({\n get() {\n return value.value?.brandIds || [];\n },\n set(val: string[]) {\n updateForm({ brandIds: val });\n },\n });\n\n // // // // // //\n\n watch(currentProviderId, async () => {\n if (!currentProvider.value) return;\n\n await Promise.all([\n fetchTokens(currentProvider.value.id),\n fetchStatisticsCollectionDepths(currentProvider.value.connectorId),\n ]);\n }, { immediate: true });\n\n const init = async () => {\n await Promise.all([\n fetchProviders(),\n fetchClients(),\n ]);\n };\n\n init();\n\n return {\n rootRef,\n isValid,\n resetValidation,\n //\n currentName,\n nameRules,\n nameIsLoading,\n nameIsDisabled,\n //\n currentConnectorSettings,\n connectorSettingsIsLoading,\n connectorSettingsIsDisabled,\n //\n currentProviderId,\n providersIsLoading,\n providersIsDisabled,\n providers,\n currentProvider,\n //\n currentTokenId,\n tokensIsLoading,\n tokensIsDisabled,\n tokens,\n //\n currentStatisticsCollectionDepth,\n statisticsCollectionDepthsIsLoading,\n statisticsCollectionDepthsIsDisabled,\n statisticsCollectionDepths,\n //\n currentClientId,\n clientsIsLoading,\n clientsIsDisabled,\n clients,\n //\n currentClientBrandIds,\n clientBrands,\n //\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersSettingsForm.vue?vue&type=template&id=7461dd1a&scoped=true&\"\nimport script from \"./DataProvidersSettingsForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersSettingsForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataProvidersSettingsForm.vue?vue&type=style&index=0&id=7461dd1a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7461dd1a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VForm,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport notify from '@/services/notify';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport { DataProvidersSettingsItem } from '@/models/DataProvidersSettings';\n\nimport { PartialWithout } from '@/utils/type';\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useDataProvidersSettingsCatalogStore } from '../../../store/dataProvidersSettings/dataProvidersSettingsCatalog';\n\nimport DataProvidersSettingsForm from '../forms/DataProvidersSettingsForm.vue';\n\nexport default defineComponent({\n components: {\n AppModal,\n DataProvidersSettingsForm,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const dataProvidersSettingsCatalogStore = useDataProvidersSettingsCatalogStore();\n\n const dataProviderSettingsFormRef = ref(null);\n const dataProviderSettingsFormData = ref | null>(null);\n const dataProviderSettingsFormIsValid = ref(false);\n\n const dataProviderSettingsFormResetValidation = async () => {\n if (!dataProviderSettingsFormRef.value) return;\n\n dataProviderSettingsFormRef.value.resetValidation();\n };\n\n const newDataProviderSettings = computed(() => {\n if (!dataProviderSettingsFormData.value || !dataProviderSettingsFormIsValid.value) return null;\n\n return dataProviderSettingsFormData.value;\n });\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newDataProviderSettings.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newDataProviderSettings.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await dataProvidersSettingsCatalogStore.actions.CREATE_PROVIDER_SETTINGS(newDataProviderSettings.value);\n\n notify.push({\n text: 'Новая настройка добавлена',\n status: 'positive',\n position: ['bottom', 'center'],\n });\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data?.errors || {})\n .reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n watch(value, async (val) => {\n if (!val) return;\n\n dataProviderSettingsFormData.value = null;\n\n dataProviderSettingsFormResetValidation();\n }, { immediate: true });\n\n return {\n dataProviderSettingsFormRef,\n dataProviderSettingsFormData,\n dataProviderSettingsFormIsValid,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsAddModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsAddModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersSettingsAddModal.vue?vue&type=template&id=a1d9c09e&\"\nimport script from \"./DataProvidersSettingsAddModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersSettingsAddModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({attrs:{\"max-width\":\"540\",\"title\":_vm.title,\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('DataProvidersSettingsForm',{ref:\"dataProviderSettingsFormRef\",attrs:{\"valid\":_vm.dataProviderSettingsFormIsValid},on:{\"update:valid\":function($event){_vm.dataProviderSettingsFormIsValid=$event}},model:{value:(_vm.dataProviderSettingsFormData),callback:function ($$v) {_vm.dataProviderSettingsFormData=$$v},expression:\"dataProviderSettingsFormData\"}}),_vm._v(\" \"),(_vm.saveError)?_c('div',{staticClass:\"px-6 mb-6\"},[_c('v-alert',{staticClass:\"mb-0\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(_vm.saveError.title)}}),_vm._v(\" \"),_c('div',_vm._l((_vm.saveError.messages),function(text,idx){return _c('div',{key:idx,staticClass:\"caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)])],1):_vm._e()]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":_vm.closeBtnIsDisabled},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\",\"loading\":_vm.saving,\"disabled\":_vm.saveBtnIsDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, ref, computed, watch, ComponentInstance } from '@vue/composition-api';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport AppJsonError from '@/services/errorHandler/AppJsonError';\n\nimport { DataProvidersSettingsItem } from '@/models/DataProvidersSettings';\n\nimport { PartialWithout } from '@/utils/type';\nimport isError from '@/utils/isError';\nimport isAxiosError from '@/utils/isAxiosError';\n\nimport { useDataProvidersSettingsCatalogStore } from '../../../store/dataProvidersSettings/dataProvidersSettingsCatalog';\nimport { useDataProvidersSettingsDetailsStore } from '../../../store/dataProvidersSettings/dataProvidersSettingsDetails';\n\nimport DataProvidersSettingsForm from '../forms/DataProvidersSettingsForm.vue';\n\nexport default defineComponent({\n components: {\n AppModal,\n DataProvidersSettingsForm,\n },\n props: {\n value: { type: Boolean, default: false },\n dataProviderSettingsId: { type: String as PropType, default: null },\n },\n setup(props, context) {\n const {\n value,\n dataProviderSettingsId,\n } = toRefs(props);\n\n const dataProvidersSettingsCatalogStore = useDataProvidersSettingsCatalogStore();\n const dataProvidersDetailsCatalogStore = useDataProvidersSettingsDetailsStore();\n\n const dataProviderSettingsFormRef = ref(null);\n const dataProviderSettingsFormData = ref | null>(null);\n const dataProviderSettingsFormIsValid = ref(false);\n\n const dataProviderSettingsFormResetValidation = async () => {\n if (!dataProviderSettingsFormRef.value) return;\n\n dataProviderSettingsFormRef.value.resetValidation();\n };\n\n const newDataProviderSettings = computed(() => {\n if (!dataProviderSettingsFormData.value || !dataProviderSettingsFormIsValid.value) return null;\n\n return dataProviderSettingsFormData.value;\n });\n\n const dataProviderSettings = computed(() => dataProvidersDetailsCatalogStore.getters.providerSettings);\n\n const title = computed(() => dataProviderSettings.value?.name ?? 'Редактирование доступа');\n\n const saving = ref(false);\n const saveBtnIsDisabled = computed(() => !newDataProviderSettings.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = async () => {\n if (!newDataProviderSettings.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await dataProvidersSettingsCatalogStore.actions.UPDATE_PROVIDER_SETTINGS(newDataProviderSettings.value);\n\n close();\n } catch (error) {\n if (!isError(error)) return;\n\n if (isAxiosError(error)) {\n const messages = Object.values(error.response?.data?.errors || {})\n .reduce((acc, val) => {\n if (Array.isArray(val)) {\n acc.push(...val);\n } else if (typeof val === 'string') {\n acc.push(val);\n }\n\n return acc;\n }, []);\n\n saveError.value = {\n title: 'Произошла ошибка',\n messages: messages.length ? messages : ['Обратитесь к администратору'],\n };\n }\n\n throw new AppJsonError({ error, options: { showingModal: false } });\n } finally {\n saving.value = false;\n }\n };\n\n const init = async () => {\n if (!dataProviderSettingsId.value) return;\n\n await dataProvidersDetailsCatalogStore.actions.FETCH_PROVIDER_SETTINGS(dataProviderSettingsId.value);\n\n dataProviderSettingsFormData.value = dataProviderSettings.value;\n };\n\n watch(value, async (val) => {\n if (!val) return;\n\n dataProviderSettingsFormData.value = null;\n\n dataProviderSettingsFormResetValidation();\n init();\n }, { immediate: true });\n\n return {\n dataProviderSettingsFormRef,\n dataProviderSettingsFormData,\n dataProviderSettingsFormIsValid,\n saving,\n saveBtnIsDisabled,\n closeBtnIsDisabled,\n title,\n saveError,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsItemModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsItemModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersSettingsItemModal.vue?vue&type=template&id=605a4c12&\"\nimport script from \"./DataProvidersSettingsItemModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersSettingsItemModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAlert,VBtn})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, watch } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\nimport useModals from '@/composables/useModals';\n\nimport DataProvidersSettingsCatalogHeader from '../../components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsCatalogHeader.vue';\nimport DataProvidersSettingsTable from '../../components/DataProvidersSettings/DataProvidersSettingsCatalog/DataProvidersSettingsTable/DataProvidersSettingsTable.vue';\n\nimport DataProvidersSettingsAddModal from '../../components/DataProvidersSettings/modals/DataProvidersSettingsAddModal.vue';\nimport DataProvidersSettingsItemModal from '../../components/DataProvidersSettings/modals/DataProvidersSettingsItemModal.vue';\n\nimport { useDataProvidersSettingsCatalogStore } from '../../store/dataProvidersSettings/dataProvidersSettingsCatalog';\n\nexport default defineComponent({\n components: {\n AppView,\n DataProvidersSettingsCatalogHeader,\n DataProvidersSettingsTable,\n DataProvidersSettingsAddModal,\n DataProvidersSettingsItemModal,\n },\n setup() {\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const {\n modalsMap,\n openModal,\n } = useModals(['add', 'item']);\n\n const dataProvidersSettingsCatalogStore = useDataProvidersSettingsCatalogStore();\n\n const providersSettings = computed(() => dataProvidersSettingsCatalogStore.getters.providersSettings);\n const providersSettingsFilters = computed(() => dataProvidersSettingsCatalogStore.getters.filters);\n const providersSettingsFiltersChanged = computed(() => dataProvidersSettingsCatalogStore.getters.filtersChanged);\n const providersSettingsIsLoading = computed(() => dataProvidersSettingsCatalogStore.getters.isLoading);\n\n const fetch = async () => {\n await dataProvidersSettingsCatalogStore.actions.FETCH_PROVIDERS_SETTINGS();\n };\n\n const init = async () => {\n updateIsLoading(true);\n dataProvidersSettingsCatalogStore.actions.RESET_FILTERS();\n\n try {\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n watch(providersSettingsFilters, () => {\n if (!providersSettingsFiltersChanged.value) return;\n\n fetch();\n });\n\n init();\n\n return {\n modalsMap,\n providersSettings,\n providersSettingsFiltersChanged,\n providersSettingsIsLoading,\n openModal,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsCatalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersSettingsCatalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataProvidersSettingsCatalog.vue?vue&type=template&id=1d972874&scoped=true&\"\nimport script from \"./DataProvidersSettingsCatalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataProvidersSettingsCatalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataProvidersSettingsCatalog.vue?vue&type=style&index=0&id=1d972874&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d972874\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport DataProvidersSettings from '../views/DataProvidersSettings.vue';\nimport DataProvidersSettingsCatalog from '../views/DataProvidersSettings/DataProvidersSettingsCatalog.vue';\nimport PageCatalogLoader from '../../../components/_newDesign/common/loaders/PageCatalogLoader.vue';\n\nconst routeConfig: AppRouteConfig = {\n path: 'data-providers-settings',\n component: DataProvidersSettings,\n meta: {\n title: 'Настройки провайдеров',\n permission: 'admin',\n order: 1,\n },\n children: [\n {\n name: 'data-providers-settings-catalog',\n path: '',\n component: DataProvidersSettingsCatalog,\n meta: {\n title: 'Настройки провайдеров',\n loader: PageCatalogLoader,\n header: {\n sticky: true,\n },\n },\n },\n ],\n};\n\nexport default routeConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"maintenance\"},[_c('div',{staticClass:\"maintenance__content px-6\"},[_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"flex-shrink-0 mb-3 subtitle-1 font-weight-medium\"},[_vm._v(\"\\n Клиенты:\\n \")]),_vm._v(\" \"),_c('div',{ref:\"clientsTreeViewFieldEl\",staticClass:\"flex-grow-1\"},[_c('AppClientsTreeView',{style:({\n height: _vm.clientsTreeViewFieldElHeight ? (_vm.clientsTreeViewFieldElHeight + \"px\") : '400px',\n }),model:{value:(_vm.selectedClients),callback:function ($$v) {_vm.selectedClients=$$v},expression:\"selectedClients\"}})],1)]),_vm._v(\" \"),_c('div',_vm._l((_vm.tasks),function(task,idx){return _c('div',{key:idx,staticClass:\"maintenance__task pa-4 rounded\"},[_c('div',{staticClass:\"maintenance__task-header d-flex align-center\"},[_c('div',{staticClass:\"text-h6\",domProps:{\"textContent\":_vm._s(task.title)}}),_vm._v(\" \"),_c('v-btn',{staticClass:\"ml-auto\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"disabled\":task.isLoading},on:{\"click\":function($event){return _vm.startTask(task)}}},[(task.isLoading)?[(task.isLoading)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"width\":\"2\",\"size\":\"16\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"В процессе\")])]:[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n $d1-play\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Запустить\")])]],2)],1),_vm._v(\" \"),_c('div',[_vm._l((task.descr),function(text,descrIdx){return _c('div',{key:descrIdx,staticClass:\"maintenance__task-descr-text body-2\",domProps:{\"textContent\":_vm._s(text)}})}),_vm._v(\" \"),(task.error)?_c('v-alert',{staticClass:\"mt-3 mb-0\",attrs:{\"type\":\"error\",\"dense\":\"\",\"outlined\":\"\",\"dismissible\":\"\"},on:{\"input\":function($event){return _vm.closeTaskError(task)}}},[_c('div',{staticClass:\"subtitle-2\",domProps:{\"textContent\":_vm._s(task.error.title)}}),_vm._v(\" \"),_c('div',_vm._l((task.error.messages),function(text,messageIdx){return _c('div',{key:messageIdx,staticClass:\"maintenance__task-error-text caption\",domProps:{\"textContent\":_vm._s(text)}})}),0)]):_vm._e()],2)])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ref, watch, nextTick, Ref } from '@vue/composition-api';\n\ninterface useElHeightReturn {\n el: Ref;\n elHeight: Ref;\n}\n\nexport default (): useElHeightReturn => {\n const el = ref(null);\n const elHeight = ref(0);\n\n watch(el, async (val) => {\n await nextTick();\n\n elHeight.value = val?.clientHeight || 'auto';\n });\n\n return {\n el,\n elHeight,\n };\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed } from '@vue/composition-api';\nimport { Route, NavigationGuardNext } from 'vue-router';\n\nimport modally from '@/services/modally';\n\nimport useElHeight from '@/composables/useElHeight';\n\nimport { MaintenanceApi } from '@/api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport AppClientsTreeView from '@/components/_newDesign/common/inputs/AppClientsTreeView.vue';\n\ninterface MaintenanceTask {\n title: string;\n descr: string[];\n isLoading: boolean;\n action: (task: MaintenanceTask) => Promise | void;\n error: {\n title: string;\n messages: string[];\n } | null;\n}\n\nexport default defineComponent({\n components: {\n AppView,\n AppClientsTreeView,\n },\n async beforeRouteLeave(to: Route, from: Route, next: NavigationGuardNext): Promise {\n if (!this.tasksInProgress) return next();\n\n const result = await modally.show({\n type: 'confirm',\n status: 'warning',\n title: 'Задачи в процессе выполнения',\n content: 'Вы уверены, что хотите уйти со страницы?',\n });\n\n if (!result) return;\n\n next();\n },\n setup() {\n const {\n el: clientsTreeViewFieldEl,\n elHeight: clientsTreeViewFieldElHeight,\n } = useElHeight();\n\n const selectedClients = ref([]);\n\n const tasks = ref([\n {\n title: 'Обновление метрик кампаний',\n descr: [\n 'Обновить метрики всех кампаний',\n ],\n isLoading: false,\n async action() {\n await MaintenanceApi.updateCampaignMetrics(selectedClients.value);\n },\n error: null,\n },\n {\n title: 'Обновление провайдеров данных в размещениях',\n descr: [\n 'Обновить название и приоритет провайдеров данных в размещениях.',\n 'Обновляются метрики в размещениях и кампаниях',\n ],\n isLoading: false,\n async action() {\n await MaintenanceApi.updatePlacementMetricDataproviders(selectedClients.value);\n },\n error: null,\n },\n {\n title: 'Пересчитать метрики',\n descr: [\n 'Пересчитываются метрики по всем источникам данных.',\n 'Обновляются метрики в размещениях и кампаниях ',\n ],\n isLoading: false,\n async action() {\n await MaintenanceApi.recalculatePlacementMetrics(selectedClients.value);\n },\n error: null,\n },\n {\n title: 'Обновить наценки',\n descr: [\n 'Обновить связи наценок и размещений без пересчета сумм',\n ],\n isLoading: false,\n async action() {\n await MaintenanceApi.updatePlacementMarkups(selectedClients.value);\n },\n error: null,\n },\n {\n title: 'Обновить флайты',\n descr: [\n 'Временный функционал. Запустить нормализацию флайтов',\n ],\n isLoading: false,\n async action() {\n await MaintenanceApi.recalculatePlacementFlights(selectedClients.value);\n },\n error: null,\n },\n ]);\n\n const tasksInProgress = computed(() => tasks.value.some((task) => task.isLoading));\n\n const startTask = async (task: MaintenanceTask) => {\n task.isLoading = true;\n task.error = null;\n\n try {\n await task.action(task);\n } catch (e) {\n task.error = {\n title: 'Произошла ошибка',\n messages: [],\n };\n } finally {\n task.isLoading = false;\n }\n };\n\n const closeTaskError = (task: MaintenanceTask) => {\n task.error = null;\n };\n\n return {\n clientsTreeViewFieldEl,\n clientsTreeViewFieldElHeight,\n selectedClients,\n tasks,\n tasksInProgress,\n startTask,\n closeTaskError,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Maintenance.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Maintenance.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Maintenance.vue?vue&type=template&id=555c6453&scoped=true&\"\nimport script from \"./Maintenance.vue?vue&type=script&lang=ts&\"\nexport * from \"./Maintenance.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Maintenance.vue?vue&type=style&index=0&id=555c6453&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"555c6453\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VAlert,VBtn,VIcon,VProgressCircular})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport Maintenance from '../views/Maintenance.vue';\n\nconst routeConfig: AppRouteConfig = {\n path: 'maintenance',\n component: Maintenance,\n meta: {\n title: 'Техническое обслуживание',\n permission: 'admin',\n order: 2,\n },\n};\n\nexport default routeConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Categories.vue?vue&type=template&id=18e03e76&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"categories-catalog\"},[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('CategoriesCatalogHeader')],1),_vm._v(\" \"),(_vm.categories.length)?_c('div',{staticClass:\"categories-catalog__content\"},[_c('CategoriesCatalogTable',{attrs:{\"categories\":_vm.categories}})],1):_c('div',{staticClass:\"categories-catalog__stub\"},[(_vm.categoriesIsLoading)?_c('v-progress-circular',{attrs:{\"color\":\"grey\",\"size\":\"52\",\"indeterminate\":\"\"}}):[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Редактор категорий\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n Пока не добавлено ни одной категории\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Добавить\")])],1)]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"categories-catalog-header d-flex align-center\"},[_vm._m(0),_vm._v(\" \"),_c('div',[_c('DBtnInline',{attrs:{\"to\":\"/administration/categories/new\"},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-plus\\n \")])]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"body-2\"},[_vm._v(\"\\n Новая категория\\n \")])])],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mr-3\"},[_c('div',{staticClass:\"text-h5\"},[_vm._v(\"\\n Редактор категорий\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalogHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalogHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoriesCatalogHeader.vue?vue&type=template&id=f82f99a0&scoped=true&\"\nimport script from \"./CategoriesCatalogHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoriesCatalogHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoriesCatalogHeader.vue?vue&type=style&index=0&id=f82f99a0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f82f99a0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTable',_vm._b({attrs:{\"headers\":_vm.headers,\"items\":_vm.categories,\"items-per-page\":_vm.categories.length,\"server-items-length\":_vm.categories.length,\"sticky-header\":\"\"},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('CategoriesCatalogTableRow',{attrs:{\"category\":item}})]}}])},'DTable',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',{staticClass:\"categories-catalog-table-row\"},[_c('DTableCell',{staticClass:\"categories-catalog-table-row__cell categories-catalog-table-row__cell--name font-weight-medium\",attrs:{\"to\":(\"/administration/categories/\" + (_vm.category.id))}},[_vm._v(\"\\n \"+_vm._s(_vm.category.name || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"categories-catalog-table-row__cell\"},[_vm._v(\"\\n \"+_vm._s(_vm.category.order || 0)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"categories-catalog-table-row__cell\"},[_vm._v(\"\\n \"+_vm._s(_vm.displayableMetricsText || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"categories-catalog-table-row__cell\"},[_c('v-btn',{staticClass:\"categories-catalog-table-row__btn categories-catalog-table-row__btn--delete\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.deleteCategory}},[_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, PropType, computed } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport modally from '@/services/modally';\n\nimport { Category } from '@/models/Category';\n\nimport { useCategoriesCatalogStore } from '../../../../store/categories/categoriesCatalog';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n category: { type: Object as PropType, required: true },\n },\n setup(props) {\n const {\n category,\n } = toRefs(props);\n\n const categoriesCatalogStore = useCategoriesCatalogStore();\n\n const deletion = ref(false);\n\n const displayableMetricsText = computed(() => category.value.displayableMetrics.join(', '));\n\n const deleteCategory = async () => {\n const result = await modally.show({\n title: 'Удалить категорию?',\n content: `Категория ${category.value.name} будет удалена.`,\n status: 'warning',\n buttons: [\n {\n props: {\n text: 'Удалить',\n color: 'warning',\n outlined: true,\n },\n action: () => true,\n },\n {\n props: {\n text: 'Отмена',\n color: 'primary',\n },\n action: () => false,\n },\n ],\n });\n\n if (!result) return;\n\n deletion.value = true;\n\n try {\n await categoriesCatalogStore.actions.DELETE_CATEGORY(category.value.id);\n } finally {\n deletion.value = false;\n }\n };\n\n return {\n deletion,\n deleteCategory,\n displayableMetricsText,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalogTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalogTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoriesCatalogTableRow.vue?vue&type=template&id=f2144df4&scoped=true&\"\nimport script from \"./CategoriesCatalogTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoriesCatalogTableRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoriesCatalogTableRow.vue?vue&type=style&index=0&id=f2144df4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f2144df4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport { DTable } from '@shared/druid-kit';\n\nimport { Category } from '@/models/Category';\n\nimport CategoriesCatalogTableRow from './CategoriesCatalogTableRow.vue';\n\nexport default defineComponent({\n components: {\n DTable,\n CategoriesCatalogTableRow,\n },\n props: {\n categories: { type: Array as PropType, default: () => [] },\n },\n setup() {\n const headers = ['Название', 'Порядок', 'Отображаемые метрики', '']\n .map((text) => ({\n text,\n class: 'caption',\n sortable: false,\n }));\n\n return {\n headers,\n };\n },\n});\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalogTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalogTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoriesCatalogTable.vue?vue&type=template&id=2e79147d&\"\nimport script from \"./CategoriesCatalogTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoriesCatalogTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport CategoriesCatalogHeader from '../../components/Categories/CategoriesCatalog/CategoriesCatalogHeader.vue';\nimport CategoriesCatalogTable from '../../components/Categories/CategoriesCatalog/CategoriesCatalogTable/CategoriesCatalogTable.vue';\n\nimport { useCategoriesCatalogStore } from '../../store/categories/categoriesCatalog';\n\nexport default defineComponent({\n components: {\n AppView,\n CategoriesCatalogHeader,\n CategoriesCatalogTable,\n },\n setup() {\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const categoriesCatalogStore = useCategoriesCatalogStore();\n\n const categories = computed(() => categoriesCatalogStore.getters.categories);\n const categoriesIsLoading = computed(() => categoriesCatalogStore.getters.isLoading);\n\n const fetch = async () => {\n await categoriesCatalogStore.actions.FETCH_CATEGORIES();\n };\n\n const init = async () => {\n updateIsLoading(true);\n\n try {\n await fetch();\n } finally {\n updateIsLoading(false);\n }\n };\n\n init();\n\n return {\n categories,\n categoriesIsLoading,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesCatalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoriesCatalog.vue?vue&type=template&id=5e153ca0&scoped=true&\"\nimport script from \"./CategoriesCatalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoriesCatalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoriesCatalog.vue?vue&type=style&index=0&id=5e153ca0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e153ca0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"category-new\"},[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('CategoryNewHeader')],1),_vm._v(\" \"),_c('div',{staticClass:\"category-new__content\"},[_c('CategoriesItemForm',{ref:\"categoryFormRef\",attrs:{\"valid\":_vm.categoryFormIsValid},on:{\"update:valid\":function($event){_vm.categoryFormIsValid=$event}},model:{value:(_vm.categoryFormData),callback:function ($$v) {_vm.categoryFormData=$$v},expression:\"categoryFormData\"}})],1),_vm._v(\" \"),_c('CategoryNewFooter',{attrs:{\"category-has-been-changed\":_vm.categoryHasBeenChanged,\"saving\":_vm.saving},on:{\"save\":_vm.save,\"cancel\":_vm.cancel}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex align-baseline\"},[_c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nimport { DBreadcrumbs } from '@shared/druid-kit';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n },\n setup() {\n const breadcrumbs = [\n {\n label: 'Редактор категорий',\n path: '/administration/categories',\n },\n {\n label: 'Новая категория',\n path: '/administration/categories/new',\n },\n ];\n\n return {\n breadcrumbs,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryNewHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryNewHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryNewHeader.vue?vue&type=template&id=7f326a1f&\"\nimport script from \"./CategoryNewHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryNewHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"rootRef\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"categories-item-form__row\"},[_c('div',{staticClass:\"categories-item-form__col categories-item-form__col--white\"},[_c('div',{staticClass:\"px-12\"},[_c('div',{staticClass:\"categories-item-form__field\"},[_c('v-text-field',{staticClass:\"categories-item-form__text-field\",attrs:{\"label\":\"Название\",\"rules\":_vm.nameRules,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.nameIsLoading,\"disabled\":_vm.nameIsDisabled,\"required\":\"\"},model:{value:(_vm.currentName),callback:function ($$v) {_vm.currentName=$$v},expression:\"currentName\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"categories-item-form__field\"},[_c('v-text-field',{staticClass:\"categories-item-form__text-field\",attrs:{\"label\":\"Порядок\",\"type\":\"number\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"loading\":_vm.orderIsLoading,\"disabled\":_vm.orederIsDisabled},model:{value:(_vm.currentOrder),callback:function ($$v) {_vm.currentOrder=$$v},expression:\"currentOrder\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"categories-item-form__field\"},[_c('v-switch',{attrs:{\"label\":\"Обязательное заполнение таргетинга\"},model:{value:(_vm.currentRequiresTargetings),callback:function ($$v) {_vm.currentRequiresTargetings=$$v},expression:\"currentRequiresTargetings\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"categories-item-form__field\"},[_c('div',{staticClass:\"mb-3 body-2 font-weight-bold\"},[_vm._v(\"\\n Отображаемые метрики\\n \")]),_vm._v(\" \"),_c('DSelectList',{staticClass:\"categories-item-form__select-list\",attrs:{\"label\":\"Метрика\",\"items\":_vm.metricsItems,\"item-key\":\"id\",\"item-text\":\"name\",\"draggable\":\"\",\"loading\":_vm.metricsIsLoading,\"disabled\":_vm.metricsIsDisabled},model:{value:(_vm.currentMetrics),callback:function ($$v) {_vm.currentMetrics=$$v},expression:\"currentMetrics\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"categories-item-form__col\"},[_c('CategoryRulesTable',{attrs:{\"loading\":_vm.serviceTypesIsLoading,\"title\":\"Правила\"},model:{value:(_vm.currentRules),callback:function ($$v) {_vm.currentRules=$$v},expression:\"currentRules\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"categories-item-form__col\"},[_c('CategoryRulesTable',{attrs:{\"loading\":_vm.serviceTypesIsLoading,\"title\":\"Правила НЕ\"},model:{value:(_vm.currentNotRules),callback:function ($$v) {_vm.currentNotRules=$$v},expression:\"currentNotRules\"}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('DTable',{attrs:{\"headers\":_vm.headers,\"items\":_vm.rules,\"items-per-page\":_vm.rules.length,\"loading\":_vm.loading,\"no-data-text\":\"Пока не добавлено ни одного правила\"},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('div',{staticClass:\"d-flex align-baseline pl-6 mb-4\"},[_c('div',{staticClass:\"mr-4\"},[_c('div',{staticClass:\"text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center ml-auto\"},[_c('v-btn',{staticClass:\"markup-periods__btn\",attrs:{\"color\":\"primary\",\"outlined\":\"\",\"rounded\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.openModal('add')}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n mdi-plus\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"caption\"},[_vm._v(\"Новое правило\")])],1)],1)])]},proxy:true},{key:\"row\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [_c('CategoryRulesTableRow',{attrs:{\"rule\":item,\"index\":index},on:{\"delete-rule\":_vm.deleteRule}})]}}])}),_vm._v(\" \"),_c('CategoriesAddRuleModal',{on:{\"add-rule\":_vm.addRule},model:{value:(_vm.modalsMap.add.value),callback:function ($$v) {_vm.$set(_vm.modalsMap.add, \"value\", $$v)},expression:\"modalsMap.add.value\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DTableRow',[_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.rule.level1 || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.rule.level2 || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.rule.device || '—')+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.serviceTypeName)+\"\\n \")]),_vm._v(\" \"),_c('DTableCell',{staticClass:\"body-2\"},[_c('v-btn',{attrs:{\"size\":\"18\",\"small\":\"\",\"icon\":\"\"},on:{\"click\":_vm.deleteRule}},[_c('v-icon',[_vm._v(\"\\n mdi-delete-outline\\n \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, PropType, computed } from '@vue/composition-api';\n\nimport {\n DTableCell,\n DTableRow,\n} from '@shared/druid-kit';\n\nimport { Category } from '@/models/Category';\n\nimport { useCategoryDetailsStore } from '../../../store/categories/categoryDetails';\n\nexport default defineComponent({\n components: {\n DTableCell,\n DTableRow,\n },\n props: {\n rule: { type: Object as PropType, required: true },\n index: { type: Number, default: 0 },\n },\n setup(props, context) {\n const {\n rule,\n index,\n } = toRefs(props);\n\n const categoryDetailsStore = useCategoryDetailsStore();\n\n const normalizedServiceTypes = computed(() => categoryDetailsStore.getters.normalizedServiceTypes);\n\n const serviceTypeName = computed(() => {\n const serviceType = normalizedServiceTypes.value.find(({ id }) => id === rule.value.serviceTypeId);\n\n return serviceType?.name || 'Все сервисы';\n });\n\n const deleteRule = () => {\n context.emit('delete-rule', index.value);\n };\n\n return {\n serviceTypeName,\n deleteRule,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryRulesTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryRulesTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryRulesTableRow.vue?vue&type=template&id=a838575a&\"\nimport script from \"./CategoryRulesTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryRulesTableRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppModal',_vm._g(_vm._b({staticClass:\"categories-add-rule-modal\",attrs:{\"width\":\"540\",\"title\":\"Новое правило\",\"value\":_vm.value},scopedSlots:_vm._u([{key:\"main\",fn:function(){return [_c('div',{staticClass:\"categories-add-rule-modal__form px-6\"},[_c('v-text-field',{staticClass:\"categories-add-rule-modal__form-field\",attrs:{\"label\":\"Level 1\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"required\":\"\"},model:{value:(_vm.ruleForm.level1),callback:function ($$v) {_vm.$set(_vm.ruleForm, \"level1\", $$v)},expression:\"ruleForm.level1\"}}),_vm._v(\" \"),_c('v-text-field',{staticClass:\"categories-add-rule-modal__form-field\",attrs:{\"label\":\"Level 2\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"required\":\"\"},model:{value:(_vm.ruleForm.level2),callback:function ($$v) {_vm.$set(_vm.ruleForm, \"level2\", $$v)},expression:\"ruleForm.level2\"}}),_vm._v(\" \"),_c('v-text-field',{staticClass:\"categories-add-rule-modal__form-field\",attrs:{\"label\":\"Device\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"required\":\"\"},model:{value:(_vm.ruleForm.device),callback:function ($$v) {_vm.$set(_vm.ruleForm, \"device\", $$v)},expression:\"ruleForm.device\"}}),_vm._v(\" \"),_c('DSelect',{staticClass:\"categories-add-rule-modal__form-field\",attrs:{\"label\":\"Service Type\",\"items\":_vm.normalizedServiceTypes,\"item-value\":\"id\",\"item-text\":\"name\"},model:{value:(_vm.ruleForm.serviceTypeId),callback:function ($$v) {_vm.$set(_vm.ruleForm, \"serviceTypeId\", $$v)},expression:\"ruleForm.serviceTypeId\"}})],1)]},proxy:true},{key:\"footer-content\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\"},on:{\"click\":close}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"rounded\":\"\"},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\"Сохранить\")])])],1)]}}])},'AppModal',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed } from '@vue/composition-api';\n\nimport { DSelect } from '@shared/druid-kit';\n\nimport AppModal from '@/components/_newDesign/common/AppModal.vue';\n\nimport { Category } from '@/models/Category';\n\nimport { useCategoryDetailsStore } from '../../../store/categories/categoryDetails';\n\nexport default defineComponent({\n components: {\n DSelect,\n AppModal,\n },\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, context) {\n const categoryDetailsStore = useCategoryDetailsStore();\n\n const ruleForm = ref(null);\n\n const normalizedServiceTypes = computed(() => categoryDetailsStore.getters.normalizedServiceTypes);\n\n const initForm = () => ({\n level1: '',\n level2: '',\n device: '',\n serviceTypeId: '',\n });\n\n ruleForm.value = initForm();\n\n const close = () => {\n context.emit('input', false);\n };\n\n const save = () => {\n context.emit('add-rule', ruleForm.value);\n\n ruleForm.value = initForm();\n\n close();\n };\n\n return {\n save,\n ruleForm,\n normalizedServiceTypes,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesAddRuleModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesAddRuleModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoriesAddRuleModal.vue?vue&type=template&id=0ea1ecff&scoped=true&\"\nimport script from \"./CategoriesAddRuleModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoriesAddRuleModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoriesAddRuleModal.vue?vue&type=style&index=0&id=0ea1ecff&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0ea1ecff\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, computed } from '@vue/composition-api';\n\nimport { DTable } from '@shared/druid-kit';\n\nimport { Category } from '@/models/Category';\n\nimport useModals from '@/composables/useModals';\n\nimport CategoryRulesTableRow from './CategoryRulesTableRow.vue';\nimport CategoriesAddRuleModal from '../modals/CategoriesAddRuleModal.vue';\n\nexport default defineComponent({\n components: {\n DTable,\n CategoryRulesTableRow,\n CategoriesAddRuleModal,\n },\n props: {\n value: { type: Array as PropType, required: true },\n loading: { type: Boolean, default: false },\n title: { type: String, default: '' },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const {\n modalsMap,\n openModal,\n } = useModals(['add']);\n\n const headers = ['Level 1', 'Level 2', 'Device', 'Service Type', '']\n .map((headerText) => ({\n text: headerText,\n class: 'caption',\n sortable: false,\n }));\n\n const rules = computed({\n get() {\n return value.value;\n },\n set(val: Category['rules']) {\n context.emit('input', val);\n },\n });\n\n const deleteRule = (idx: number) => {\n rules.value = value.value.filter((rule, ruleIdx) => ruleIdx !== idx);\n };\n\n const addRule = (newRule: Category['rules'][number]) => {\n rules.value = [...value.value, newRule];\n };\n\n return {\n headers,\n rules,\n modalsMap,\n openModal,\n deleteRule,\n addRule,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryRulesTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryRulesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryRulesTable.vue?vue&type=template&id=e604cf20&\"\nimport script from \"./CategoryRulesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryRulesTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport { DSelectList } from '@shared/druid-kit';\n\nimport { Category } from '@/models/Category';\n\nimport CategoryRulesTable from '../CategoryRulesTable/CategoryRulesTable.vue';\n\nimport { useCategoryDetailsStore } from '../../../store/categories/categoryDetails';\n\nexport default defineComponent({\n components: {\n DSelectList,\n CategoryRulesTable,\n },\n props: {\n value: { type: Object as PropType, default: null },\n valid: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n disabledFields: { type: Array as PropType, default: () => [] },\n },\n setup(props, context) {\n const {\n value,\n loading,\n disabledFields,\n } = toRefs(props);\n\n const categoryDetailsStore = useCategoryDetailsStore();\n\n const rootRef = ref(null);\n\n const isValid = ref(false);\n\n watch(isValid, (val) => {\n context.emit('update:valid', val);\n }, { immediate: true });\n\n const resetValidation = () => {\n if (!rootRef.value) return;\n\n rootRef.value.resetValidation();\n };\n\n const updateCategory = (payload: Partial) => {\n const newCategory = {\n ...value.value,\n ...payload,\n };\n\n context.emit('input', newCategory);\n };\n\n // // // // //\n\n const nameRules = ref([\n (val: string) => !!val,\n ]);\n\n const nameIsLoading = computed(() => loading.value);\n const nameIsDisabled = computed(() => nameIsLoading.value || disabledFields.value.includes('name'));\n\n const currentName = computed({\n get() {\n return value.value?.name || '';\n },\n set(val: string) {\n updateCategory({ name: val });\n },\n });\n\n // // // // //\n\n const orderIsLoading = computed(() => loading.value);\n const orederIsDisabled = computed(() => orderIsLoading.value || disabledFields.value.includes('order'));\n\n const currentOrder = computed({\n get() {\n return value.value?.order || 0;\n },\n set(val: number) {\n updateCategory({ order: val });\n },\n });\n\n // // // // //\n\n const currentRequiresTargetings = computed({\n get() {\n return value.value?.requiresTargetings || false;\n },\n set(val: boolean) {\n updateCategory({ requiresTargetings: val });\n },\n });\n\n // // // // //\n\n const metricsItems = computed(() => categoryDetailsStore\n .getters.metrics.map((metricName) => ({ id: metricName, name: metricName })));\n\n const metricsIsLoadingData = ref(false);\n\n const metricsIsLoading = computed({\n get() {\n return metricsIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n metricsIsLoadingData.value = val;\n },\n });\n\n const metricsIsDisabled = computed(() => !metricsItems.value.length || metricsIsLoading.value);\n\n const currentMetrics = computed({\n get() {\n return value.value?.displayableMetrics || [];\n },\n set(val: string[]) {\n updateCategory({ displayableMetrics: val });\n },\n });\n\n const fetchMetrics = async () => {\n metricsIsLoading.value = true;\n\n try {\n await categoryDetailsStore.actions.FETCH_METRICS();\n } finally {\n metricsIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const currentRules = computed({\n get() {\n return value.value?.rules || [];\n },\n set(val: Category['rules']) {\n updateCategory({ rules: val });\n },\n });\n\n // // // // //\n\n const currentNotRules = computed({\n get() {\n return value.value?.notRules || [];\n },\n set(val: Category['notRules']) {\n updateCategory({ notRules: val });\n },\n });\n\n // // // // //\n\n const serviceTypesIsLoadingData = ref(false);\n\n const serviceTypesIsLoading = computed({\n get() {\n return serviceTypesIsLoadingData.value || loading.value;\n },\n set(val: boolean) {\n serviceTypesIsLoadingData.value = val;\n },\n });\n\n const fetchServiceTypes = async () => {\n serviceTypesIsLoading.value = true;\n\n try {\n await categoryDetailsStore.actions.FETCH_SERVICE_TYPES();\n } finally {\n serviceTypesIsLoading.value = false;\n }\n };\n\n const init = async () => {\n await Promise.all([\n fetchMetrics(),\n fetchServiceTypes(),\n ]);\n };\n\n init();\n\n return {\n rootRef,\n isValid,\n resetValidation,\n //\n currentName,\n nameRules,\n nameIsLoading,\n nameIsDisabled,\n //\n currentOrder,\n orderIsLoading,\n orederIsDisabled,\n //\n currentRequiresTargetings,\n //\n currentMetrics,\n metricsItems,\n metricsIsLoading,\n metricsIsDisabled,\n //\n currentRules,\n //\n currentNotRules,\n //\n serviceTypesIsLoading,\n //\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesItemForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesItemForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoriesItemForm.vue?vue&type=template&id=275b1136&scoped=true&\"\nimport script from \"./CategoriesItemForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoriesItemForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoriesItemForm.vue?vue&type=style&index=0&id=275b1136&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"275b1136\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VForm,VSwitch,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('portal',{attrs:{\"to\":\"app-bottom-navigation-content\"}},[_c('div',{staticClass:\"d-flex px-6 py-3\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"loading\":_vm.saving,\"rounded\":\"\",\"small\":\"\",\"disabled\":_vm.saveBtnDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Сохранить категорию\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"small\":\"\",\"disabled\":_vm.closeBtnDisabled},on:{\"click\":_vm.cancel}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Отмена\")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n categoryHasBeenChanged: { type: Boolean, default: false },\n saving: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n categoryHasBeenChanged,\n saving,\n } = toRefs(props);\n\n const saveBtnDisabled = computed(() => !saving.value && categoryHasBeenChanged.value);\n const closeBtnDisabled = computed(() => saving.value);\n\n const save = () => {\n context.emit('save');\n };\n\n const cancel = () => {\n context.emit('cancel');\n };\n\n return {\n saveBtnDisabled,\n closeBtnDisabled,\n cancel,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryNewFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryNewFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryNewFooter.vue?vue&type=template&id=918fa9fe&\"\nimport script from \"./CategoryNewFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryNewFooter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed, ComponentInstance } from '@vue/composition-api';\n\nimport { Category } from '@/models/Category';\n\nimport { PartialWithout } from '@/utils/type';\n\nimport useRouter from '@/packages/hooks/useRouter';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useCategoriesCatalogStore } from '../../store/categories/categoriesCatalog';\n\nimport CategoryNewHeader from '../../components/Categories/CategoryNew/CategoryNewHeader.vue';\nimport CategoriesItemForm from '../../components/Categories/forms/CategoriesItemForm.vue';\nimport CategoryNewFooter from '../../components/Categories/CategoryNew/CategoryNewFooter.vue';\n\nexport default defineComponent({\n components: {\n AppView,\n CategoryNewHeader,\n CategoriesItemForm,\n CategoryNewFooter,\n },\n setup(props, context) {\n const categoriesCatalogStore = useCategoriesCatalogStore();\n\n const router = useRouter(context);\n\n const categoryFormRef = ref(null);\n const categoryFormData = ref | null>(null);\n const categoryFormIsValid = ref(false);\n\n const newCategory = computed(() => {\n if (!categoryFormData.value || !categoryFormIsValid.value) return null;\n\n return categoryFormData.value;\n });\n\n const saving = ref(false);\n const categoryHasBeenChanged = computed(() => !newCategory.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const cancel = () => {\n router.push('./');\n };\n\n const save = async () => {\n if (!newCategory.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await categoriesCatalogStore.actions.CREATE_CATEGORY(newCategory.value);\n\n cancel();\n } finally {\n saving.value = false;\n }\n };\n\n return {\n categoryFormRef,\n categoryFormData,\n categoryFormIsValid,\n saving,\n categoryHasBeenChanged,\n closeBtnIsDisabled,\n saveError,\n save,\n cancel,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryNew.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryNew.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryNew.vue?vue&type=template&id=4175dea4&scoped=true&\"\nimport script from \"./CategoryNew.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryNew.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoryNew.vue?vue&type=style&index=0&id=4175dea4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4175dea4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"category-details\"},[_c('portal',{attrs:{\"to\":\"app-header-content\"}},[_c('CategoryDetailsHeader',{attrs:{\"category\":_vm.category}})],1),_vm._v(\" \"),_c('div',{staticClass:\"category-details__content\"},[_c('CategoriesItemForm',{ref:\"categoryFormRef\",attrs:{\"valid\":_vm.categoryFormIsValid},on:{\"update:valid\":function($event){_vm.categoryFormIsValid=$event}},model:{value:(_vm.categoryFormData),callback:function ($$v) {_vm.categoryFormData=$$v},expression:\"categoryFormData\"}})],1),_vm._v(\" \"),_c('CategoryDetailsFooter',{attrs:{\"category-has-been-changed\":_vm.categoryHasBeenChanged,\"saving\":_vm.saving},on:{\"save\":_vm.save,\"cancel\":_vm.cancel}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex align-baseline\"},[_c('DBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, toRefs } from '@vue/composition-api';\n\nimport { DBreadcrumbs } from '@shared/druid-kit';\n\nimport { Category } from '@/models/Category';\n\nexport default defineComponent({\n components: {\n DBreadcrumbs,\n },\n props: {\n category: { type: Object as PropType, default: () => ({}) },\n },\n setup(props) {\n const { category } = toRefs(props);\n\n const breadcrumbs = computed(() => [\n {\n label: 'Редактор категорий',\n path: '/administration/categories',\n },\n {\n label: category.value?.name || '',\n path: `/administration/categories/${category.value?.id || ''}`,\n },\n ]);\n\n return {\n breadcrumbs,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryDetailsHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryDetailsHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryDetailsHeader.vue?vue&type=template&id=aecda604&\"\nimport script from \"./CategoryDetailsHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryDetailsHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('portal',{attrs:{\"to\":\"app-bottom-navigation-content\"}},[_c('div',{staticClass:\"d-flex px-6 py-3\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"loading\":_vm.saving,\"rounded\":\"\",\"small\":\"\",\"disabled\":_vm.saveBtnDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Сохранить категорию\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"small\":\"\",\"disabled\":_vm.closeBtnDisabled},on:{\"click\":_vm.cancel}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Отмена\")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n categoryHasBeenChanged: { type: Boolean, default: false },\n saving: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n categoryHasBeenChanged,\n saving,\n } = toRefs(props);\n\n const saveBtnDisabled = computed(() => !saving.value && categoryHasBeenChanged.value);\n const closeBtnDisabled = computed(() => saving.value);\n\n const save = () => {\n context.emit('save');\n };\n\n const cancel = () => {\n context.emit('cancel');\n };\n\n return {\n saveBtnDisabled,\n closeBtnDisabled,\n cancel,\n save,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryDetailsFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryDetailsFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryDetailsFooter.vue?vue&type=template&id=aad8a886&\"\nimport script from \"./CategoryDetailsFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryDetailsFooter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, ComponentInstance } from '@vue/composition-api';\n\nimport { Category } from '@/models/Category';\n\nimport useRouter from '@/packages/hooks/useRouter';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport { useCategoriesCatalogStore } from '../../store/categories/categoriesCatalog';\nimport { useCategoryDetailsStore } from '../../store/categories/categoryDetails';\n\nimport CategoryDetailsHeader from '../../components/Categories/CategoryDetails/CategoryDetailsHeader.vue';\nimport CategoriesItemForm from '../../components/Categories/forms/CategoriesItemForm.vue';\nimport CategoryDetailsFooter from '../../components/Categories/CategoryDetails/CategoryDetailsFooter.vue';\n\nexport default defineComponent({\n components: {\n AppView,\n CategoryDetailsHeader,\n CategoriesItemForm,\n CategoryDetailsFooter,\n },\n props: {\n categoryId: { type: String, required: true },\n },\n setup(props, context) {\n const { categoryId } = toRefs(props);\n\n const categoriesCatalogStore = useCategoriesCatalogStore();\n const categoryDetailsStore = useCategoryDetailsStore();\n\n const router = useRouter(context);\n\n const { updateIsLoading } = useLayoutLoadingStatus();\n\n const categoryFormRef = ref(null);\n const categoryFormData = ref(null);\n const categoryFormIsValid = ref(false);\n\n const category = computed(() => categoryDetailsStore.getters.category);\n const categoryIsLoading = computed(() => categoryDetailsStore.getters.isLoading);\n\n const newCategory = computed(() => {\n if (!categoryFormData.value || !categoryFormIsValid.value) return null;\n\n return categoryFormData.value;\n });\n\n const saving = ref(false);\n const categoryHasBeenChanged = computed(() => !newCategory.value);\n const saveError = ref<{ title: string; messages: string[] } | null>(null);\n\n const closeBtnIsDisabled = computed(() => saving.value);\n\n const cancel = () => {\n router.push('./');\n };\n\n const save = async () => {\n if (!newCategory.value) return;\n\n saving.value = true;\n saveError.value = null;\n\n try {\n await categoriesCatalogStore.actions.UPDATE_CATEGORY({ category: newCategory.value });\n\n cancel();\n } finally {\n saving.value = false;\n }\n };\n\n const init = async () => {\n if (!categoryId.value) return;\n\n updateIsLoading(true);\n\n try {\n await categoryDetailsStore.actions.FETCH_CATEGORY(categoryId.value);\n\n categoryFormData.value = category.value;\n } finally {\n updateIsLoading(false);\n }\n };\n\n init();\n\n return {\n categoryFormRef,\n categoryFormData,\n categoryFormIsValid,\n category,\n categoryHasBeenChanged,\n saving,\n closeBtnIsDisabled,\n categoryIsLoading,\n saveError,\n save,\n cancel,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryDetails.vue?vue&type=template&id=7f067728&scoped=true&\"\nimport script from \"./CategoryDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoryDetails.vue?vue&type=style&index=0&id=7f067728&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7f067728\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"category-details-loader\"},[_c('v-skeleton-loader',{staticClass:\"category-details-loader__header\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),_c('div',{staticClass:\"category-details-loader__row\"},[_c('div',{staticClass:\"category-details-loader__col category-details-loader__col--white\"},[_c('ListLoader',{staticClass:\"mb-6\",attrs:{\"without-title\":\"\",\"rows\":3}}),_vm._v(\" \"),_c('ListLoader',{attrs:{\"without-title\":\"\",\"rows\":5}})],1),_vm._v(\" \"),_c('div',{staticClass:\"category-details-loader__col\"},[_c('v-skeleton-loader',{staticClass:\"category-details-loader__table-title\",attrs:{\"type\":\"text\"}}),_vm._v(\" \"),_c('TableLoader',{attrs:{\"columns\":4}})],1),_vm._v(\" \"),_c('div',{staticClass:\"category-details-loader__col\"},[_c('v-skeleton-loader',{staticClass:\"category-details-loader__table-title\",attrs:{\"type\":\"text\"}}),_vm._v(\" \"),_c('TableLoader',{attrs:{\"columns\":4}})],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryDetailsLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryDetailsLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CategoryDetailsLoader.vue?vue&type=template&id=4011797e&scoped=true&\"\nimport script from \"./CategoryDetailsLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./CategoryDetailsLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CategoryDetailsLoader.vue?vue&type=style&index=0&id=4011797e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4011797e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport Categories from '../views/Categories.vue';\nimport CategoriesCatalog from '../views/Categories/CategoriesCatalog.vue';\nimport CategoryNew from '../views/Categories/CategoryNew.vue';\nimport CategoryDetails from '../views/Categories/CategoryDetails.vue';\n\nimport CategoryDetailsLoader from '../components/Categories/CategoryDetails/CategoryDetailsLoader.vue';\n\nimport PageCatalogLoader from '../../../components/_newDesign/common/loaders/PageCatalogLoader.vue';\n\nconst routeConfig: AppRouteConfig = {\n path: 'categories',\n component: Categories,\n meta: {\n title: 'Редактор категорий',\n permission: 'admin',\n order: 3,\n },\n children: [\n {\n name: 'categories-catalog',\n path: '',\n component: CategoriesCatalog,\n meta: {\n title: 'Редактор категорий',\n loader: PageCatalogLoader,\n header: {\n sticky: true,\n },\n },\n },\n {\n name: 'category-new',\n path: 'new',\n component: CategoryNew,\n meta: {\n title: 'Новая категория',\n footer: {\n linksOnRight: true,\n },\n },\n },\n {\n name: 'category-details',\n path: ':categoryId',\n component: CategoryDetails,\n props: true,\n meta: {\n title: 'Редактирование категории',\n loader: CategoryDetailsLoader,\n footer: {\n linksOnRight: true,\n },\n },\n },\n ],\n};\n\nexport default routeConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppView',{staticClass:\"client-brand-settings\"},[_c('div',{staticClass:\"client-brand-settings__content\"},[_c('ClientBrandSettingsForm',{ref:\"settingsFormRef\",attrs:{\"valid\":_vm.settingsFormIsValid},on:{\"update:valid\":function($event){_vm.settingsFormIsValid=$event}},model:{value:(_vm.settingsFormData),callback:function ($$v) {_vm.settingsFormData=$$v},expression:\"settingsFormData\"}})],1),_vm._v(\" \"),_c('ClientBrandSettingsFooter',{attrs:{\"settings-has-been-changed\":_vm.settingsHasBeenChanged,\"reset-is-disabled\":_vm.resetIsDisabled,\"saving\":_vm.saving},on:{\"save\":_vm.save,\"cancel\":_vm.cancel,\"reset\":_vm.resetManualSettings}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"rootRef\",staticClass:\"client-brand-settings-form\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"client-brand-settings-form__block\"},[_c('div',{staticClass:\"mb-5 body-2\"},[_vm._v(\"\\n Здесь вы можете изменить название клиента и его брендов, а также их категории.\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"client-brand-settings-form__row\"},[_c('div',{staticClass:\"client-brand-settings-form__field mr-3\"},[_c('DAutocomplete',{attrs:{\"label\":\"Клиент\",\"items\":_vm.clients,\"disabled\":_vm.clientsIsDisabled,\"loading\":_vm.clientsIsLoading,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.currentClientId),callback:function ($$v) {_vm.currentClientId=$$v},expression:\"currentClientId\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"client-brand-settings-form__row\"},[_c('div',{staticClass:\"client-brand-settings-form__field\"},[_c('v-text-field',{attrs:{\"disabled\":_vm.clientNameManualIsDisabled,\"label\":\"Изменить название клиента\",\"prepend-inner-icon\":\"mdi-pencil\",\"background-color\":\"white\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"required\":\"\"},model:{value:(_vm.currentClientNameManual),callback:function ($$v) {_vm.currentClientNameManual=$$v},expression:\"currentClientNameManual\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"client-brand-settings-form__field client-brand-settings-form__field--categories\"},[_c('DAutocomplete',{attrs:{\"label\":\"Категории клиента\",\"items\":_vm.taxonomyClientCategories,\"disabled\":_vm.taxonomyClientCategoriesIsDisabled,\"loading\":_vm.taxonomyClientCategoriesIsLoading,\"item-text\":\"title\",\"item-value\":\"id\",\"multiple\":\"\"},model:{value:(_vm.currentTaxonomyClientCategoriesIds),callback:function ($$v) {_vm.currentTaxonomyClientCategoriesIds=$$v},expression:\"currentTaxonomyClientCategoriesIds\"}})],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"client-brand-settings-form__block client-brand-settings-form__block--white\"},[_c('div',{staticClass:\"mb-3 text-h6 font-weight-bold\"},[_vm._v(\"\\n Бренд клиента \"+_vm._s(_vm.currentClientName)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"client-brand-settings-form__row\"},[_c('div',{staticClass:\"client-brand-settings-form__field mr-3\"},[_c('DAutocomplete',{attrs:{\"label\":\"Бренд\",\"items\":_vm.currentClientBrands,\"disabled\":_vm.clientBrandsIsDisabled,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.currentBrandId),callback:function ($$v) {_vm.currentBrandId=$$v},expression:\"currentBrandId\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"client-brand-settings-form__row\"},[_c('div',{staticClass:\"client-brand-settings-form__field\"},[_c('v-text-field',{attrs:{\"disabled\":_vm.brandNameManualIsDisabled,\"label\":\"Изменить название бренда\",\"prepend-inner-icon\":\"mdi-pencil\",\"background-color\":\"white\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"required\":\"\"},model:{value:(_vm.currentBrandNameManual),callback:function ($$v) {_vm.currentBrandNameManual=$$v},expression:\"currentBrandNameManual\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"client-brand-settings-form__field client-brand-settings-form__field--categories\"},[_c('DAutocomplete',{attrs:{\"label\":\"Категории бренда\",\"items\":_vm.taxonomyBrandCategories,\"disabled\":_vm.taxonomyBrandCategoriesIsDisabled,\"loading\":_vm.taxonomyBrandCategoriesIsLoading,\"item-text\":\"title\",\"item-value\":\"id\",\"multiple\":\"\"},model:{value:(_vm.currentTaxonomyBrandCategoriesIds),callback:function ($$v) {_vm.currentTaxonomyBrandCategoriesIds=$$v},expression:\"currentTaxonomyBrandCategoriesIds\"}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, watch, PropType, ComponentInstance } from '@vue/composition-api';\n\nimport { DAutocomplete } from '@shared/druid-kit';\n\nimport { ClientsApi, TaxonomyApi } from '@/api';\nimport { ClientRenamePayload } from '@/api/modules/clients.api';\n\nimport { TaxonomyClientCategory, TaxonomyBrandCategory } from '@/models/Taxonomy';\nimport { Client } from '@/models/Client';\n\nexport default defineComponent({\n components: {\n DAutocomplete,\n },\n props: {\n value: { type: Object as PropType, default: null },\n valid: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n value,\n } = toRefs(props);\n\n const rootRef = ref(null);\n\n const isValid = ref(false);\n\n watch(isValid, (val) => {\n context.emit('update:valid', val);\n }, { immediate: true });\n\n const resetValidation = () => {\n if (!rootRef.value) return;\n\n rootRef.value.resetValidation();\n };\n\n const updateSettings = (payload: Partial) => {\n const newSettings = {\n ...value.value,\n ...payload,\n };\n\n context.emit('input', newSettings);\n };\n\n // // // // //\n\n const clients = ref([]);\n const clientsIsLoading = ref(false);\n\n const clientsIsDisabled = computed(() => !clients.value.length || clientsIsLoading.value);\n\n const currentClientId = computed({\n get() {\n return value.value?.clientId || '';\n },\n set(val: string) {\n updateSettings({ clientId: val });\n },\n });\n\n const currentClient = computed(() => clients.value.find(({ id }) => id === currentClientId.value) ?? null);\n const currentClientName = computed(() => currentClient.value?.name || '');\n\n const fetchClients = async () => {\n clientsIsLoading.value = true;\n\n try {\n const res = await ClientsApi.fetchClients();\n\n clients.value = res.data;\n } finally {\n clientsIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const clientNameManualIsDisabled = computed(() => clientsIsLoading.value);\n\n const currentClientNameManual = computed({\n get() {\n return value.value?.clientNameManual || '';\n },\n set(val: string) {\n updateSettings({ clientNameManual: val });\n },\n });\n\n // // // // //\n\n const taxonomyClientCategories = ref([]);\n const taxonomyClientCategoriesIsLoading = ref(false);\n\n const taxonomyClientCategoriesIsDisabled = computed(() => !taxonomyClientCategories.value.length || taxonomyClientCategoriesIsLoading.value);\n\n const currentTaxonomyClientCategoriesIds = computed({\n get() {\n return value.value?.clientCategoriesIds || [];\n },\n set(val: string[]) {\n updateSettings({ clientCategoriesIds: val });\n },\n });\n\n const fetchTaxonomyClientCategories = async () => {\n taxonomyClientCategoriesIsLoading.value = true;\n\n try {\n const res = await TaxonomyApi.fetchClientCategories();\n\n taxonomyClientCategories.value = res.data;\n } finally {\n taxonomyClientCategoriesIsLoading.value = false;\n }\n };\n\n // // // // //\n\n const currentBrandId = computed({\n get() {\n return value.value?.brandId || '';\n },\n set(val: string) {\n updateSettings({ brandId: val });\n },\n });\n\n const currentClientBrands = computed(() => currentClient.value?.brands ?? []);\n const currentClientBrand = computed(() => currentClientBrands.value.find((brand) => brand.id === currentBrandId.value) ?? null);\n const clientBrandsIsDisabled = computed(() => clientsIsLoading.value || !currentClient.value);\n\n // // // // //\n\n const brandNameManualIsDisabled = computed(() => clientsIsLoading.value || !currentClient.value);\n\n const currentBrandNameManual = computed({\n get() {\n return value.value?.brandNameManual || '';\n },\n set(val: string) {\n updateSettings({ brandNameManual: val });\n },\n });\n\n // // // // //\n\n const taxonomyBrandCategories = ref([]);\n const taxonomyBrandCategoriesIsLoading = ref(false);\n\n const taxonomyBrandCategoriesIsDisabled = computed(() => !taxonomyBrandCategories.value.length || taxonomyBrandCategoriesIsLoading.value || !currentClient.value);\n\n const currentTaxonomyBrandCategoriesIds = computed({\n get() {\n return value.value?.brandCategoriesIds || [];\n },\n set(val: string[]) {\n updateSettings({ brandCategoriesIds: val });\n },\n });\n\n const fetchTaxonomyBrandCategories = async () => {\n taxonomyBrandCategoriesIsLoading.value = true;\n\n try {\n const res = await TaxonomyApi.fetchBrandCategories();\n\n taxonomyBrandCategories.value = res.data;\n } finally {\n taxonomyBrandCategoriesIsLoading.value = false;\n }\n };\n\n // // // // //\n\n watch(currentClientId, () => {\n if (!currentClient.value) return;\n\n updateSettings({\n clientNameManual: currentClient.value.name,\n clientCategoriesIds: currentClient.value.categoriesIds,\n brandId: '',\n brandNameManual: '',\n brandCategoriesIds: [],\n });\n });\n\n watch(currentBrandId, () => {\n if (!currentClientBrand.value) return;\n\n updateSettings({\n brandNameManual: currentClientBrand.value.name,\n brandCategoriesIds: currentClientBrand.value.categoriesIds,\n });\n });\n\n const init = async () => {\n await Promise.all([\n fetchClients(),\n fetchTaxonomyClientCategories(),\n fetchTaxonomyBrandCategories(),\n ]);\n };\n\n init();\n\n return {\n rootRef,\n isValid,\n resetValidation,\n //\n currentClientNameManual,\n clientNameManualIsDisabled,\n //\n clients,\n currentClient,\n currentClientId,\n currentClientName,\n clientsIsLoading,\n clientsIsDisabled,\n //\n taxonomyClientCategories,\n currentTaxonomyClientCategoriesIds,\n taxonomyClientCategoriesIsLoading,\n taxonomyClientCategoriesIsDisabled,\n //\n currentBrandId,\n currentClientBrands,\n clientBrandsIsDisabled,\n //\n brandNameManualIsDisabled,\n currentBrandNameManual,\n //\n taxonomyBrandCategories,\n taxonomyBrandCategoriesIsLoading,\n taxonomyBrandCategoriesIsDisabled,\n currentTaxonomyBrandCategoriesIds,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientBrandSettingsForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientBrandSettingsForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientBrandSettingsForm.vue?vue&type=template&id=c323dadc&scoped=true&\"\nimport script from \"./ClientBrandSettingsForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientBrandSettingsForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ClientBrandSettingsForm.vue?vue&type=style&index=0&id=c323dadc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c323dadc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VForm,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('portal',{attrs:{\"to\":\"app-bottom-navigation-content\"}},[_c('div',{staticClass:\"d-flex px-6 py-3\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary-gradient\",\"loading\":_vm.saving,\"rounded\":\"\",\"small\":\"\",\"disabled\":_vm.saveBtnDisabled},on:{\"click\":_vm.save}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Сохранить\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"outlined\":\"\",\"small\":\"\",\"disabled\":_vm.closeBtnDisabled},on:{\"click\":_vm.cancel}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Отмена\")])]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"loading\":_vm.saving,\"rounded\":\"\",\"outlined\":\"\",\"small\":\"\",\"disabled\":_vm.resetBtnIsDisabled},on:{\"click\":_vm.reset}},[_c('span',{staticClass:\"caption-2\"},[_vm._v(\"Сбросить ручные настройки\")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n settingsHasBeenChanged: { type: Boolean, default: false },\n saving: { type: Boolean, default: false },\n resetIsDisabled: { type: Boolean, default: false },\n },\n setup(props, context) {\n const {\n settingsHasBeenChanged,\n resetIsDisabled,\n saving,\n } = toRefs(props);\n\n const saveBtnDisabled = computed(() => !saving.value && settingsHasBeenChanged.value);\n const closeBtnDisabled = computed(() => saving.value);\n const resetBtnIsDisabled = computed(() => !saving.value && resetIsDisabled.value);\n\n const reset = () => {\n context.emit('reset');\n };\n\n const save = () => {\n context.emit('save');\n };\n\n const cancel = () => {\n context.emit('cancel');\n };\n\n return {\n saveBtnDisabled,\n closeBtnDisabled,\n resetBtnIsDisabled,\n save,\n reset,\n cancel,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientBrandSettingsFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientBrandSettingsFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientBrandSettingsFooter.vue?vue&type=template&id=34a655df&\"\nimport script from \"./ClientBrandSettingsFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientBrandSettingsFooter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed, ComponentInstance } from '@vue/composition-api';\n\nimport { ClientsApi } from '@/api';\n\nimport { ClientRenamePayload } from '@/api/modules/clients.api';\n\nimport useRouter from '@/packages/hooks/useRouter';\n\nimport AppView from '@/components/_newDesign/common/AppView.vue';\n\nimport ClientBrandSettingsForm from '../components/ClientBrandSettings/forms/ClientBrandSettingsForm.vue';\nimport ClientBrandSettingsFooter from '../components/ClientBrandSettings/ClientBrandSettingsFooter.vue';\n\nexport default defineComponent({\n components: {\n AppView,\n //\n ClientBrandSettingsForm,\n ClientBrandSettingsFooter,\n },\n setup(props, context) {\n const router = useRouter(context);\n\n const settingsFormRef = ref(null);\n const settingsFormData = ref(null);\n const settingsFormIsValid = ref(false);\n\n const newSettings = computed(() => {\n if (!settingsFormData.value || !settingsFormIsValid.value) return null;\n\n return settingsFormData.value;\n });\n\n const saving = ref(false);\n const settingsHasBeenChanged = computed(() => !newSettings.value);\n const closeBtnIsDisabled = computed(() => saving.value);\n const resetIsDisabled = computed(() => !newSettings.value?.clientId || !newSettings.value?.brandId);\n\n // // // // //\n\n const cancel = () => {\n router.push('/clients');\n };\n\n const save = async () => {\n if (!newSettings.value) return;\n\n saving.value = true;\n\n try {\n await ClientsApi.clientRename(newSettings.value);\n\n cancel();\n } finally {\n saving.value = false;\n }\n };\n\n const resetManualSettings = async () => {\n if (!newSettings.value) return;\n\n saving.value = true;\n\n try {\n await ClientsApi.removeClientManualSettings({\n clientId: newSettings.value.clientId,\n brandId: newSettings.value.brandId,\n });\n\n cancel();\n } finally {\n saving.value = false;\n }\n };\n\n return {\n settingsFormRef,\n settingsFormData,\n settingsFormIsValid,\n settingsHasBeenChanged,\n saving,\n closeBtnIsDisabled,\n save,\n cancel,\n resetManualSettings,\n resetIsDisabled,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientBrandSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientBrandSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientBrandSettings.vue?vue&type=template&id=599b18f0&scoped=true&\"\nimport script from \"./ClientBrandSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientBrandSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ClientBrandSettings.vue?vue&type=style&index=0&id=599b18f0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"599b18f0\",\n null\n \n)\n\nexport default component.exports","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport ClientBrandSettings from '../views/ClientBrandSettings.vue';\n\nconst routeConfig: AppRouteConfig = {\n path: 'client-brand-settings',\n component: ClientBrandSettings,\n meta: {\n title: 'Настройки клиентов и брендов',\n permission: 'admin',\n order: 4,\n footer: {\n linksOnRight: true,\n },\n },\n};\n\nexport default routeConfig;\n","import { AppRouteConfig } from '@/models/AppRouter';\n\nimport Administration from '../views/Administration.vue';\n\nimport userActions from './userActions';\n\nimport dashboard from './dashboard';\nimport dataProviders from './dataProviders';\nimport dataProvidersSettings from './dataProvidersSettings';\nimport maintenance from './maintenance';\nimport categories from './categories';\nimport clientBrandSettings from './clientBrandSettings';\n\nconst routes: AppRouteConfig[] = [\n {\n path: '/administration',\n name: 'administration',\n component: Administration,\n meta: {\n group: 'admin',\n title: 'Ещё',\n icon: 'mdi-cogs',\n order: 2,\n permission: 'admin',\n },\n children: [\n {\n path: 'benchmarks',\n redirect: '/administration/dashboard',\n },\n dashboard,\n dataProviders,\n dataProvidersSettings,\n maintenance,\n categories,\n clientBrandSettings,\n userActions,\n ],\n },\n];\n\nexport default routes;\n","import { registerModule } from 'vuex-smart-module';\n\nimport ModuleInit from '@/models/ModuleInit';\n\nimport store from './store';\nimport routes from './routes';\n\nconst moduleInit: ModuleInit = (ctx) => {\n registerModule(ctx.store, ['administration'], 'administration', store);\n\n ctx.store.dispatch('navigation/ADD_ROUTES', routes);\n ctx.router.addRoutes(routes);\n};\n\nexport default moduleInit;\n","import { registerModule } from 'vuex-smart-module';\nimport ServiceInit from '@/models/ServiceInit';\n\nimport notify from './store/notify.store';\n\nconst serviceInit: ServiceInit = (ctx) => {\n registerModule(ctx.store, ['notify'], 'notify', notify);\n};\n\nexport default serviceInit;\n","import Vue from 'vue';\n\nimport 'bootstrap';\n\nimport { findLast } from 'lodash';\n\n// Порядок импорта configuration, store и router не менять!\nimport configuration from '@/configuration/';\nimport store from '@/store/';\nimport router from '@/router';\n\n// plugins\nimport vueOidc from '@/plugins/vueOidc';\nimport compositionApi from '@/plugins/compositionApi';\nimport vueMeta from '@/plugins/vueMeta';\nimport sentry from '@/plugins/sentry';\nimport httpClient from '@/plugins/httpClient';\nimport vuetify from '@/plugins/vuetify';\nimport gtm from '@/plugins/gtm';\nimport acl from '@/plugins/acl';\nimport layouts from '@/plugins/layouts';\nimport device from '@/plugins/device';\nimport portalVue from '@/plugins/portalVue';\nimport numatter from '@/plugins/numatter';\nimport errorObserver from '@/plugins/errorObserver';\n\nimport '@/plugins/select2'; // Загрузка select2\n\nimport Context from '@/models/Context';\n\nimport App from './components/App.vue';\n\n// modules\nimport searchModule from './modules/search';\nimport unapprovedPlacements from './modules/unapprovedPlacements';\nimport providerTokensModule from './modules/providerTokens';\nimport providerSetingsModule from './modules/providerSettings';\nimport markupsModule from './modules/markups';\nimport factUploadModule from './modules/factUpload';\nimport metricsCheckModule from './modules/metricsCheck';\nimport accessControlModule from './modules/accessControl';\nimport administrationModule from './modules/administration';\n\nimport notifyService from './services/notify/notify.service';\n\nconst context: Context = { configuration, store, router };\n\n// init modules\nunapprovedPlacements(context);\nsearchModule(context);\nproviderTokensModule(context);\nproviderSetingsModule(context);\nmarkupsModule(context);\nfactUploadModule(context);\nmetricsCheckModule(context);\naccessControlModule(context);\nadministrationModule(context);\n\n// init services\nnotifyService(context);\n\n// init plugins\nvueOidc(context);\nvueMeta(context);\ncompositionApi(context);\nsentry(context);\nhttpClient(context);\nacl(context);\ngtm(context);\nlayouts(context);\ndevice(context);\nportalVue(context);\nnumatter(context);\nerrorObserver(context);\n\nVue.config.productionTip = false;\n\nrouter.beforeEach((to, from, next) => {\n const userIsSignedIn = store.getters['auth/userSignedIn'];\n const user = store.getters['auth/user'];\n\n // Необходимо, чтобы дождаться загрузки пользователя с его правами\n // Иначе произойдет редирект на /access-denied\n if (userIsSignedIn && !user && !to.path.includes('auth')) {\n return next({ path: '/auth', query: { source_url: to.fullPath }, replace: true });\n }\n\n const lastTo = findLast(to.matched, (m) => !!m.meta.permission);\n\n if (typeof lastTo !== 'undefined') {\n const redirectTo = to.meta.redirectTo || lastTo.meta.redirectTo || { path: '/access-denied' };\n\n if (!router.app.$acl.check(lastTo.meta.permission)) {\n return next(redirectTo);\n }\n }\n\n next();\n});\n\nnew Vue({\n router,\n store,\n vuetify,\n render: (h) => h(App),\n}).$mount('#app');\n","import Vue, { ComponentOptions, AsyncComponent, VueConstructor } from 'vue';\nimport { RouteConfig, Route } from 'vue-router';\n\nexport const appRouteConfigMetaGroupSlugs = [\n 'main',\n 'admin',\n] as const;\n\nexport const appRouteConfigMetaGroupTitles = [\n '',\n 'Администратор',\n] as const;\n\nexport const appRouteConfigMetaGroupShortTitles = [\n '',\n 'Админ',\n] as const;\n\ntype AppRouteConfigMetaGroupSlugs = typeof appRouteConfigMetaGroupSlugs;\n\ntype AppRouteConfigMetaGroupTitles = typeof appRouteConfigMetaGroupTitles;\n\ntype AppRouteConfigMetaGroupShortTitles = typeof appRouteConfigMetaGroupShortTitles;\n\nexport type AppRouteConfigMetaGroupSlug = AppRouteConfigMetaGroupSlugs[number];\n\nexport type AppRouteConfigMetaGroupTitle = AppRouteConfigMetaGroupTitles[number];\n\nexport type AppRouteConfigMetaGroupShortTitle = AppRouteConfigMetaGroupShortTitles[number];\n\nexport type AppRouteConfigMetaIcon = string | {\n name: string;\n size?: string | number;\n custom?: boolean;\n};\n\ntype AppRouteConfigMetaHeader = {\n visible?: boolean;\n sticky?: boolean;\n};\n\ntype AppRouteConfigMetaFooter = {\n visible?: boolean;\n linksOnRight?: boolean;\n};\n\nexport interface AppRouteConfigMeta {\n isPublic?: boolean;\n layout?: string;\n group?: AppRouteConfigMetaGroupSlug;\n title?: string;\n icon?: AppRouteConfigMetaIcon;\n order?: number;\n permission?: string;\n loader?: VueConstructor;\n header?: AppRouteConfigMetaHeader;\n footer?: AppRouteConfigMetaFooter;\n}\n\nexport interface AppRoute extends Omit {\n meta?: AppRouteConfigMeta;\n}\n\ntype AppRouteConfigComponent = ComponentOptions | typeof Vue | AsyncComponent;\n\ntype AppRouteConfigProps = boolean | Record | ((route: AppRoute) => Record);\n\nexport interface AppRouteConfigSingleView extends Omit {\n meta?: AppRouteConfigMeta;\n component?: AppRouteConfigComponent;\n children?: T[];\n props?: AppRouteConfigProps;\n}\n\nexport interface AppRouteConfigMultipleViews extends Omit {\n meta?: AppRouteConfigMeta;\n components?: { [key: string]: AppRouteConfigComponent };\n children?: T[];\n props?: { [key: string]: AppRouteConfigProps };\n}\n\nexport type AppRouteConfig = AppRouteConfigSingleView | AppRouteConfigMultipleViews;\n","/* eslint-disable max-classes-per-file */\n\nimport Vue from 'vue';\nimport { Route } from 'vue-router';\nimport { Getters, Mutations, Actions, Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { cloneDeep } from 'lodash';\n\nimport navigationUi from '@/store/navigation/navigationUi';\nimport navigationCurrentClient from '@/store/navigation/navigationCurrentClient';\nimport navigationUnapprovedPlacements from '@/store/navigation/navigationUnapprovedPlacements';\n\nimport { appRouteConfigMetaGroupSlugs, appRouteConfigMetaGroupTitles, appRouteConfigMetaGroupShortTitles, AppRouteConfig } from '@/models/AppRouter';\nimport { AppMenu, AppMenuGroup, AppMenuRouteConfig } from '@/models/AppMenu';\n\nimport { PartialAtLeastOne } from '@/utils/type';\n\nclass ModuleState {\n menuGroupSlugs = appRouteConfigMetaGroupSlugs;\n\n menuGroupTitles = appRouteConfigMetaGroupTitles;\n\n menuGroupShortTitles = appRouteConfigMetaGroupShortTitles;\n\n routes: AppRouteConfig[] = [];\n\n prevRoute: Route | null = null;\n}\n\nclass ModuleGetters extends Getters {\n get routes() {\n return this.state.routes;\n }\n\n get prevRoute() {\n return this.state.prevRoute;\n }\n\n get getPrevRoute() {\n type FilterName = 'name' | 'path';\n\n type Filters = PartialAtLeastOne>;\n\n type RegExpFilters = PartialAtLeastOne>;\n\n return (filters?: Filters) => {\n const route = this.getters.prevRoute;\n\n if (!route) return null;\n\n if (!filters) return route;\n\n const regExpFilters = Object.entries(filters).reduce((acc, [key, val]) => {\n acc[key] = Array.isArray(val) ? val.map((item) => new RegExp(item)) : new RegExp(val);\n\n return acc;\n }, {} as RegExpFilters);\n\n const routeIsApproved = Object.entries(regExpFilters).some(([key, val]) => val.some((regExp) => regExp.test(route[key] || '')));\n\n if (!routeIsApproved) return null;\n\n return route;\n };\n }\n\n get menuGroups() {\n return this.state.menuGroupSlugs.map((slug, idx) => {\n const group: AppMenuGroup = {\n meta: {\n slug,\n order: idx,\n },\n children: [],\n };\n\n const title = this.state.menuGroupTitles[idx];\n const shortTitle = this.state.menuGroupShortTitles[idx];\n\n if (title) {\n group.meta.title = title;\n }\n\n if (shortTitle) {\n group.meta.shortTitle = shortTitle;\n }\n\n return group;\n });\n }\n\n get menuRoutes() {\n const generateMenuRoutes = (routes: AppRouteConfig[], path?: string) => {\n const menuRoutes = routes.reduce((list, route) => {\n const routeApproved = Vue.acl.check(route.meta?.permission);\n\n if (route.path === '' || !routeApproved || (!route.meta?.title && !route.meta?.icon)) return list;\n\n const menuRoutePath = path ? `${path}/${route.path}/` : route.path;\n\n const menuRouteChildren = route.children ? generateMenuRoutes(route.children, menuRoutePath) : [];\n\n const menuRoute = {\n ...route,\n path: menuRoutePath,\n meta: route.meta,\n children: menuRouteChildren,\n };\n\n list.push(menuRoute);\n\n return list;\n }, []);\n\n return menuRoutes.sort((routeA, routeB) => (routeA.meta.order || 0) - (routeB.meta.order || 0));\n };\n\n return generateMenuRoutes(this.getters.routes);\n }\n\n get menu() {\n const groups = this.getters.menuRoutes.reduce((menu: AppMenu, route: AppMenuRouteConfig) => {\n const foundGroup = menu.find((group) => group.meta.slug === route.meta.group);\n\n if (!foundGroup) return menu;\n\n foundGroup.children.push(route);\n\n return menu;\n }, [...this.getters.menuGroups]);\n\n return groups\n .filter((group) => group.children.length)\n .sort((groupA, groupB) => groupA.meta.order - groupB.meta.order);\n }\n}\n\nclass ModuleMutations extends Mutations {\n UPDATE_ROUTES(payload: AppRouteConfig[]) {\n this.state.routes = [...this.state.routes, ...cloneDeep([...payload])];\n }\n\n SET_PREV_ROUTE(payload: Route) {\n this.state.prevRoute = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n ADD_ROUTES(payload: AppRouteConfig[]) {\n this.commit('UPDATE_ROUTES', payload);\n }\n}\n\nconst module = new Module({\n modules: {\n ui: navigationUi,\n currentClient: navigationCurrentClient,\n unapprovedPlacements: navigationUnapprovedPlacements,\n },\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const navigationStoreMapper = createMapper(module);\n\nexport const useNavigationStore = createComposable(module);\n\nexport default module;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupDetails.vue?vue&type=style&index=0&id=268c1ba4&lang=scss&scoped=true&\"","import { computed, SetupContext, ComputedRef } from '@vue/composition-api';\nimport { Route } from 'vue-router';\n\nexport default (context: SetupContext): ComputedRef => {\n const route = computed(() => context.root.$route);\n\n return route;\n};\n","/* eslint-disable max-classes-per-file */\nimport Vue from 'vue';\n\nimport { Store } from 'vuex';\nimport { Getters, Mutations, Actions, Module, Context, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { ClientsApi, CampaignsApi } from '@/api';\n\nimport clientsStore from '@/store/clients';\n\nimport { Client } from '@/models/Client';\nimport { Campaign } from '@/models/Campaign';\n\nclass ModuleState {\n client: Client | null = null;\n\n brandActiveCampaignsMap: Record = {};\n\n brandFinishedCampaignsMap: Record = {};\n\n brandFinishedCampaignsCountMap: Record = {};\n}\n\nclass ModuleGetters extends Getters {\n clientsStoreContext!: Context;\n\n $init(store: Store) {\n this.clientsStoreContext = clientsStore.context(store);\n }\n\n get client() {\n return this.state.client;\n }\n\n get getBrandActiveCampaigns() {\n return (brandId: string) => this.state.brandActiveCampaignsMap[brandId] || [];\n }\n\n get getBrandFinishedCampaigns() {\n return (brandId: string) => this.state.brandFinishedCampaignsMap[brandId] || [];\n }\n\n get getBrandFinishedCampaignsCount() {\n return (brandId: string) => this.state.brandFinishedCampaignsCountMap[brandId] || 0;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_CLIENT(payload: Client) {\n this.state.client = payload;\n }\n\n SET_BRAND_CAMPAIGNS(payload: { brandId: string; campaigns: Campaign[] }) {\n Vue.set(this.state.brandActiveCampaignsMap, payload.brandId, payload.campaigns);\n }\n\n SET_FINISHED_BRAND_CAMPAIGNS(payload: { brandId: string; campaigns: Campaign[] }) {\n const campaigns = payload.campaigns.map((campaign) => ({ ...campaign, isActive: false }));\n\n Vue.set(this.state.brandFinishedCampaignsMap, payload.brandId, campaigns);\n }\n\n SET_BRAND_FINISHED_CAMPAIGNS_COUNT(payload: { brandId: string; count: number }) {\n Vue.set(this.state.brandFinishedCampaignsCountMap, payload.brandId, payload.count);\n }\n\n CAMPAIGN_SET_APPROVED_STATUS(payload: { campaignId: string; value: boolean }) {\n [\n this.state.brandActiveCampaignsMap,\n this.state.brandFinishedCampaignsMap,\n ].forEach((campaignsMap) => {\n Object.values(campaignsMap).forEach((campaigns) => {\n const foundCampaign = campaigns.find((campaign) => campaign.id === payload.campaignId);\n\n if (!foundCampaign) return;\n\n foundCampaign.approved = payload.value;\n });\n });\n }\n}\n\nclass ModuleActions extends Actions {\n clientsStoreContext!: Context;\n\n $init(store: Store) {\n this.clientsStoreContext = clientsStore.context(store);\n }\n\n async FETCH_CLIENT(clientId: string) {\n const res = await ClientsApi.fetchClient(clientId);\n\n this.commit('SET_CLIENT', res.data);\n }\n\n async FETCH_ACTIVE_CAMPAIGNS_BY_BRAND(brandId: string) {\n const res = await CampaignsApi.fetchCampaignsByBrand({ brandId, params: { getFinished: false } });\n\n this.commit('SET_BRAND_CAMPAIGNS', {\n brandId,\n campaigns: res.data.campaigns,\n });\n\n this.commit('SET_BRAND_FINISHED_CAMPAIGNS_COUNT', {\n brandId,\n count: res.data.finishedCampaignsCount,\n });\n }\n\n async FETCH_FINISHED_CAMPAIGNS_BY_BRAND(brandId: string) {\n const res = await CampaignsApi.fetchCampaignsByBrand({ brandId, params: { getFinished: true } });\n\n this.commit('SET_FINISHED_BRAND_CAMPAIGNS', {\n brandId,\n campaigns: res.data.campaigns,\n });\n\n this.commit('SET_BRAND_FINISHED_CAMPAIGNS_COUNT', {\n brandId,\n count: res.data.finishedCampaignsCount,\n });\n }\n\n async CAMPAIGN_TOGGLE_APPROVED_STATUS(payload: { campaign: Campaign; value: boolean }) {\n const { campaign, value } = payload;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign',\n event_action: value ? 'Show to Client' : 'Hide from Client',\n event_label: campaign.id,\n d1d_client_id: campaign.clientId,\n d1d_client_name: campaign.clientName,\n d1d_brand_id: campaign.brandId,\n d1d_brand_name: campaign.brandName,\n d1d_campaign_id: campaign.id,\n d1d_campaign_name: campaign.name,\n });\n\n await CampaignsApi.updateCampaignApproved({ campaignId: campaign.id, data: value });\n\n this.commit('CAMPAIGN_SET_APPROVED_STATUS', { campaignId: campaign.id, value });\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const clientStoreMapper = createMapper(module);\n\nexport const useClientStore = createComposable(module);\n\nexport default module;\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderTokensListLoader.vue?vue&type=style&index=0&id=32577ea0&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryDetailsLoader.vue?vue&type=style&index=0&id=4011797e&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TargetingCell.vue?vue&type=style&index=0&id=d508a794&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignDetailsContent.vue?vue&type=style&index=0&id=916256ce&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProviderSettingsHeader.vue?vue&type=style&index=0&id=330ba526&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkupPeriodsTableAddModal.vue?vue&type=style&index=0&id=83941e3e&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModallyModalWrapper.vue?vue&type=style&index=0&id=162ce61b&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoriesAddRuleModal.vue?vue&type=style&index=0&id=0ea1ecff&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarNavMenu.vue?vue&type=style&index=0&id=8486b9be&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionsCatalogHeader.vue?vue&type=style&index=0&id=f4597da6&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsCampaignListItem.vue?vue&type=style&index=0&id=2895b94a&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesTableRow.vue?vue&type=style&index=0&id=004d4b56&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPageLoader.vue?vue&type=style&index=0&id=7bf659d4&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport Vue from 'vue';\nimport { Store } from 'vuex';\nimport { Getters, Mutations, Actions, Module, Context, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { Goal, GoalDataProvider } from '@/models/Goal';\nimport { ProviderSettingsLight } from '@/models/ProviderSettings';\n\nimport {\n GoalsSettingsApi,\n ProviderSettingsApi,\n} from '@/api';\n\nimport campaignStore from '../campaign';\n\nexport const CONVERSION_RATE_MODE_GOAL_SUM = 'GoalsSum';\nexport const CONVERSION_RATE_MODE_MAIN_GOAL = 'MainGoal';\n\nexport const DEFAULT_CONVERSION_RATE_MODE = CONVERSION_RATE_MODE_GOAL_SUM;\n\nclass ModuleState {\n goals: Goal[] = [];\n\n initGoalsCount = 0;\n\n goalsUpdate: Goal[] = [];\n\n changedGoals: Goal[] = [];\n\n dataProviders: GoalDataProvider[] = [];\n\n dataProviderSettings: ProviderSettingsLight[] = [];\n}\n\nclass ModuleGetters extends Getters {\n get goals() {\n return this.state.goals;\n }\n\n get changedGoals() {\n return this.state.changedGoals;\n }\n\n get dataProviders() {\n return this.state.dataProviders;\n }\n\n get dataProviderSettings() {\n return this.state.dataProviderSettings;\n }\n\n get hasBeenChanged() {\n if (this.state.initGoalsCount !== this.getters.goals.length) return true;\n\n return !!this.getters.changedGoals.length;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_GOALS(payload: Goal[]) {\n this.state.goals = payload;\n this.state.initGoalsCount = payload.length;\n }\n\n SET_CHANGED_GOALS(payload: Goal[]) {\n this.state.changedGoals = payload;\n }\n\n SET_DATA_PROVIDERS(payload: GoalDataProvider[]) {\n this.state.dataProviders = payload;\n }\n\n SET_DATA_PROVIDER_SETTINGS(payload: ProviderSettingsLight[]) {\n this.state.dataProviderSettings = payload;\n }\n\n DELETE_GOAL(payload: Goal) {\n this.state.goals = this.state.goals.filter(({ id, providerId, providerSettingsId }) => (\n id !== payload.id\n || providerId !== payload.providerId\n || providerSettingsId !== payload.providerSettingsId\n ));\n }\n\n RESET_CHANGES() {\n this.state.changedGoals = [];\n }\n}\n\nclass ModuleActions extends Actions {\n store!: Store;\n\n campaign!: Context;\n\n $init(store: Store) {\n this.store = store;\n\n this.campaign = campaignStore.context(store);\n }\n\n async FETCH_GOALS(payload: { campaignId: string }) {\n const { campaignId } = payload;\n\n const res = await GoalsSettingsApi.fetchGoalsSettings({ params: { campaignId } });\n\n this.commit('SET_GOALS', res.data);\n }\n\n async FETCH_DATA_PROVIDERS() {\n const res = await ProviderSettingsApi.fetchGoalProviders();\n\n this.commit('SET_DATA_PROVIDERS', res.data);\n }\n\n async FETCH_DATA_PROVIDER_SETTINGS(payload: { campaignId: string }) {\n const { campaignId } = payload;\n\n const res = await ProviderSettingsApi.fetchProviderSettingsByCampaign(campaignId);\n\n this.commit('SET_DATA_PROVIDER_SETTINGS', res.data);\n }\n\n CHANGE_GOALS(payload: Goal[]) {\n const findGoalIdx = (goals: Goal[], goal: Goal) => goals.findIndex(({ id, providerId, providerSettingsId }) => (\n id === goal.id\n && providerId === goal.providerId\n && providerSettingsId === goal.providerSettingsId\n ));\n\n const newGoals = [...this.state.goals];\n const newChangedGoals = [...this.state.changedGoals];\n\n payload.forEach((newGoal) => {\n const foundIdxInGoals = findGoalIdx(newGoals, newGoal);\n const foundIdxInChangedGoals = findGoalIdx(newChangedGoals, newGoal);\n\n // update goals\n if (foundIdxInGoals === -1) {\n newGoals.unshift(newGoal);\n } else {\n const oldGoal = newGoals[foundIdxInGoals];\n\n newGoals.splice(foundIdxInGoals, 1, {\n ...newGoals[foundIdxInGoals],\n ...newGoal,\n mainGoal: oldGoal.mainGoal,\n });\n }\n\n // update changed goals\n if (foundIdxInChangedGoals === -1) {\n newChangedGoals.unshift(newGoal);\n } else {\n newChangedGoals.splice(foundIdxInChangedGoals, 1, {\n ...newChangedGoals[foundIdxInChangedGoals],\n ...newGoal,\n });\n }\n });\n\n this.commit('SET_GOALS', newGoals);\n this.commit('SET_CHANGED_GOALS', newChangedGoals);\n\n const { campaign } = this.campaign.getters;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign Editor',\n event_action: 'Edit Goals',\n event_label: 'Add new',\n d1d_client_id: campaign?.clientId,\n d1d_client_name: campaign?.clientName,\n d1d_brand_id: campaign?.brandId,\n d1d_brand_name: campaign?.brandName,\n d1d_campaign_id: campaign?.id,\n d1d_campaign_name: campaign?.name,\n });\n }\n\n DELETE_GOAL(payload: Goal) {\n this.commit('DELETE_GOAL', payload);\n }\n\n async SAVE(payload: { campaignId: string }) {\n if (!this.getters.hasBeenChanged) return;\n\n await GoalsSettingsApi.setGoalsSettings({\n CampaignId: payload.campaignId,\n Goals: this.getters.goals,\n });\n\n const { campaign } = this.campaign.getters;\n\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign Editor',\n event_action: 'Edit Goals',\n event_label: 'Save',\n d1d_client_id: campaign?.clientId,\n d1d_client_name: campaign?.clientName,\n d1d_brand_id: campaign?.brandId,\n d1d_brand_name: campaign?.brandName,\n d1d_campaign_id: campaign?.id,\n d1d_campaign_name: campaign?.name,\n });\n\n await this.dispatch('FETCH_GOALS', payload);\n\n this.commit('RESET_CHANGES');\n }\n}\n\nconst module = new Module({\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const campaignEditorGoalsStoreMapper = createMapper(module);\n\nexport const useCampaignEditorGoalsStore = createComposable(module);\n\nexport default module;\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupsForm.vue?vue&type=style&index=0&id=5e87a136&lang=scss&scoped=true&\"","/* eslint-disable max-classes-per-file */\n\nimport { Store } from 'vuex';\nimport { Getters, Mutations, Actions, Module, Context, createMapper } from 'vuex-smart-module';\n\nimport { TaxonomyApi } from '@/api';\n\nimport { CampaignType } from '@/models/Campaign';\nimport { TaxonomyBrandCategory } from '@/models/Taxonomy';\n\nimport metricTypes from '@/store/reference/metricTypes';\n\nclass ModuleState {\n campaignTypes: CampaignType[] = [];\n\n brandCategories: TaxonomyBrandCategory[] = [];\n}\n\nclass ModuleGetters extends Getters {\n modules!: {\n metricTypes: Context;\n };\n\n $init(store: Store) {\n this.modules = {\n metricTypes: metricTypes.context(store),\n };\n }\n\n get metricTypes() {\n return this.modules.metricTypes.state.metricTypes;\n }\n\n get campaignTypes() {\n return this.state.campaignTypes;\n }\n\n get brandCategories() {\n return this.state.brandCategories;\n }\n}\n\nclass ModuleMutations extends Mutations {\n SET_CAMPAIGN_TYPES(payload: CampaignType[]) {\n this.state.campaignTypes = payload;\n }\n\n SET_BRAND_CATEGORIES(payload: TaxonomyBrandCategory[]) {\n this.state.brandCategories = payload;\n }\n}\n\nclass ModuleActions extends Actions {\n async FETCH_CAMPAIGN_TYPES() {\n const res = await TaxonomyApi.fetchCampaignTypes();\n\n this.commit('SET_CAMPAIGN_TYPES', res.data);\n }\n\n async FETCH_BRAND_CATEGORIES() {\n const res = await TaxonomyApi.fetchBrandCategories();\n\n this.commit('SET_BRAND_CATEGORIES', res.data);\n }\n}\n\nconst module = new Module({\n modules: {\n metricTypes,\n },\n state: ModuleState,\n getters: ModuleGetters,\n mutations: ModuleMutations,\n actions: ModuleActions,\n});\n\nexport const referenceStoreMapper = createMapper(module);\n\nexport default module;\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItemTableShowArchiveRow.vue?vue&type=style&index=0&id=ae24041c&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignMainSettings.vue?vue&type=style&index=0&id=d3f65280&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotifyRoot.vue?vue&type=style&index=0&id=340424b6&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesCatalog.vue?vue&type=style&index=0&id=467ddb3b&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrandListItem.vue?vue&type=style&index=0&id=9f06447e&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableCellWrapper.vue?vue&type=style&index=0&id=e99fe9e2&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditor.vue?vue&type=style&index=0&id=7385218c&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"default-layout\"},[_c('div',{attrs:{\"data-vuetify\":\"\",\"data-vuetify-preset-druid\":\"\"}},[_c('v-app',[_c('AppSideBar'),_vm._v(\" \"),_c('v-main',[_c('SearchSideBar'),_vm._v(\" \"),_c('div',{staticClass:\"default-layout__wrapper default-layout__wrapper--content\"},[(_vm.isLoading)?_c(_vm.loaderComponent,{tag:\"component\",staticClass:\"default-layout__loader\"}):_vm._e(),_vm._v(\" \"),_c('AppRedesignNoticeCard'),_vm._v(\" \"),(_vm.headerVisible)?_c('AppHeader',{directives:[{name:\"mutate\",rawName:\"v-mutate\",value:(_vm.onMutateHeader),expression:\"onMutateHeader\"}],ref:\"headerRef\"}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"default-layout__content\"},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.footerVisible)?_c('AppFooter',{staticClass:\"flex-shrink-0 mt-auto\"}):_vm._e(),_vm._v(\" \"),_c('AppBottomNavigation',{staticClass:\"flex-shrink-0\"})],1)],1),_vm._v(\" \"),_c('NotifyRoot'),_vm._v(\" \"),_c('ModallyRoot')],1)],1),_vm._v(\" \"),_c('portal-target',{attrs:{\"name\":\"app-json-editor-form\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"app-redesign-notice-card rounded-0\",attrs:{\"color\":\"transparent\",\"elevation\":\"0\"}},[_c('div',{staticClass:\"app-redesign-notice-card__content\"},[_c('div',{staticClass:\"app-redesign-notice-card__title text-h5\"},[(_vm.$route.name === 'client-catalog')?[_vm._v(\"\\n ГОТОВИМСЯ К ЗАКРЫТИЮ D1.DIGITAL\\n \")]:_c('router-link',{attrs:{\"to\":\"/\"}},[_vm._v(\"\\n ГОТОВИМСЯ К ЗАКРЫТИЮ D1.DIGITAL\\n \")])],2),_vm._v(\" \"),(_vm.$route.name === 'client-catalog')?_c('div',{staticClass:\"app-redesign-notice-card__block\"},[_c('div',{staticClass:\"app-redesign-notice-card__descr body-2\"},[_vm._v(\"\\n Пришло время сообщить, что мы приняли решение закрыть D1.Digital в 2024 году.\"),_c('br'),_vm._v(\"\\n Запросы, с которыми вы приходите относительно дашбордов и диджитальной отчетности, давно вышли за рамки возможностей системы, а её доработка технически и экономически нецелесообразна. Уже сейчас мы не правим возникающие баги и не добавляем новые коннекторы к источникам данных - развитие системы полностью остановлено.\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"app-redesign-notice-card__descr body-2\"},[_vm._v(\"\\n Мы готовим сразу несколько связанных между собой решений, которые заменят и упростят текущий функционал D1.Digital, а также дадут вам новые возможности. В течение года мы обо всём расскажем подробнее.\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"app-redesign-notice-card__descr body-2\"},[_vm._v(\"\\n Если вы продолжаете использовать D1.Digital более или менее регулярно, свяжитесь с \"),_c('a',{attrs:{\"href\":\"mailto:Anna.Rudakova@okkam.ru\"}},[_vm._v(\"Anna.Rudakova@okkam.ru\")]),_vm._v(\" для уточнения деталей, сроков и сценариев безболезненного приземления на новые инструменты Оккам.\\n \")])]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n //\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppRedesignNoticeCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppRedesignNoticeCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppRedesignNoticeCard.vue?vue&type=template&id=18591720&scoped=true&\"\nimport script from \"./AppRedesignNoticeCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppRedesignNoticeCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppRedesignNoticeCard.vue?vue&type=style&index=0&id=18591720&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18591720\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app-bar',{staticClass:\"app-header flex-grow-0 flex-shrink-0\",class:{ 'app-header--sticky': _vm.headerIsSticky },attrs:{\"height\":_vm.headerMinHeight,\"min-height\":_vm.headerMinHeight,\"flat\":\"\"}},[_c('portal-target',{staticClass:\"app-header__content flex-grow-1\",attrs:{\"name\":\"app-header-content\"}},[_c('div',{staticClass:\"d-flex flex-grow-1 align-baseline\"},[_c('div',{staticClass:\"app-header__title mr-6\"},[_c('portal-target',{staticClass:\"app-header__title-text text-h5\",attrs:{\"name\":\"app-header-title-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")])],1),_vm._v(\" \"),_c('portal-target',{attrs:{\"name\":\"app-header-content--right\"}})],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport store from '@/store';\nimport navigationUiStore from '@/store/navigation/navigationUi';\n\nconst navigationUiStoreContext = navigationUiStore.context(store);\n\nexport default defineComponent({\n setup(props, context) {\n const route = useRoute(context);\n\n const headerMinHeight = computed(() => navigationUiStoreContext.getters.headerMinHeight);\n\n const title = computed(() => route.value.meta.title);\n\n const headerIsSticky = computed(() => route.value.meta?.header?.sticky);\n\n return {\n headerMinHeight,\n title,\n headerIsSticky,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppHeader.vue?vue&type=template&id=d7930dfe&scoped=true&\"\nimport script from \"./AppHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppHeader.vue?vue&type=style&index=0&id=d7930dfe&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d7930dfe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\ninstallComponents(component, {VAppBar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-hover',{attrs:{\"close-delay\":\"300\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar hover = ref.hover;\nreturn [_c('v-navigation-drawer',{class:_vm.rootClasses,attrs:{\"app\":\"\",\"permanent\":\"\",\"width\":_vm.sideBarWidth,\"mini-variant-width\":_vm.sideBarMinWidth,\"mini-variant\":_vm.sideBarMinimaized},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('AppSideBarLogo',{attrs:{\"side-bar-is-shown\":!_vm.sideBarMinimaized}})]},proxy:true},{key:\"default\",fn:function(){return [_c('AppSideBarMinimizer',{directives:[{name:\"show\",rawName:\"v-show\",value:(hover),expression:\"hover\"}],model:{value:(_vm.sideBarMinimaized),callback:function ($$v) {_vm.sideBarMinimaized=$$v},expression:\"sideBarMinimaized\"}}),_vm._v(\" \"),_c('AppSideBarNavMenu',{attrs:{\"side-bar-is-shown\":!_vm.sideBarMinimaized}})]},proxy:true},{key:\"append\",fn:function(){return [_c('AppSideBarUserMenu')]},proxy:true}],null,true)})]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',{staticClass:\"app-side-bar-logo py-0\",attrs:{\"min-height\":_vm.headerMinHeight}},[(_vm.user)?_c('AppSideBarMenuItem',{staticClass:\"app-side-bar-logo__item\",attrs:{\"text-class\":\"body-1\",\"title\":\"Digital platform\",\"to\":\"/\",\"icon\":_vm.iconOptions}}):_c('div',{staticClass:\"app-side-bar-logo__item\"},[_c('v-skeleton-loader',{staticClass:\"app-side-bar-logo__loader-icon\",attrs:{\"type\":\"image\",\"width\":\"40\",\"height\":\"40\"}}),_vm._v(\" \"),(_vm.sideBarIsShown)?_c('v-skeleton-loader',{staticClass:\"app-side-bar-logo__loader-text\",attrs:{\"type\":\"text\"}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-item',_vm._g(_vm._b({directives:[{name:\"mutate\",rawName:\"v-mutate.attr\",value:(_vm.onMutateRootEl),expression:\"onMutateRootEl\",modifiers:{\"attr\":true}}],ref:\"rootRef\",class:_vm.rootClasses.list,attrs:{\"id\":_vm.rootClasses.map.root,\"active-class\":_vm.rootClasses.map.active}},'v-list-item',_vm.$attrs,false),_vm.listeners),[_c('v-list-item-avatar',{staticClass:\"app-side-bar-menu-item__avatar\",class:{ 'app-side-bar-menu-item__avatar--custom': _vm.icon.custom },attrs:{\"size\":_vm.avatarSizeComputed,\"tile\":\"\"}},[_c('v-icon',{attrs:{\"size\":_vm.iconSizeComputed},domProps:{\"textContent\":_vm._s(_vm.iconNameComputed)}})],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{class:_vm.textClass,domProps:{\"textContent\":_vm._s(_vm.title)}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, PropType, toRefs, provide, ref, computed, onMounted, nextTick, ComponentInstance } from '@vue/composition-api';\nimport { AppRouteConfigMetaIcon } from '@/models/AppRouter';\n\nexport default defineComponent({\n props: {\n title: { type: String, default: '' },\n icon: { type: [Object, String] as PropType, default: '' },\n textClass: { type: String, default: 'caption' },\n active: { type: Boolean, default: false },\n gtmIsActive: { type: Boolean, default: true },\n },\n setup(props, context) {\n const {\n title,\n active,\n gtmIsActive,\n icon,\n } = toRefs(props);\n\n const rootRef = ref(null);\n const rootEl = ref(null);\n\n const rootClasses = computed(() => {\n const root = 'app-side-bar-menu-item';\n\n const map = {\n root,\n active: `${root}--active`,\n };\n\n return {\n map,\n list: [\n map.root,\n active.value ? map.active : '',\n ],\n };\n });\n\n const listeners = computed(() => {\n const onClick = (e: unknown) => {\n Vue.gtm.push({\n event: 'user_action',\n event_category: 'Campaign List',\n event_action: 'Menu',\n event_label: title.value,\n });\n\n context.emit('click', e);\n };\n\n return {\n ...context.listeners,\n ...(gtmIsActive.value ? { click: onClick } : {}),\n };\n });\n\n const isActive = ref(false);\n\n provide('appSideBarMenuItemIsActive', isActive);\n\n const iconName = computed(() => (typeof icon.value === 'object' ? icon.value.name : icon.value));\n\n const iconNameComputed = computed(() => (iconName.value || 'mdi-circle'));\n\n const iconSizeComputed = computed(() => {\n if (!iconName.value) return 8;\n\n return typeof icon.value === 'object' ? icon.value.size : undefined || 24;\n });\n\n const avatarSizeComputed = computed(() => (iconName.value ? 32 : 8));\n\n const updateActiveStatusViaRootElClassList = (el: HTMLElement) => {\n isActive.value = el.classList.contains(rootClasses.value.map.active);\n };\n\n onMounted(async () => {\n await nextTick();\n\n if (!rootRef.value) return;\n\n rootEl.value = rootRef.value.$el as HTMLElement;\n\n if (!rootEl.value) return;\n\n updateActiveStatusViaRootElClassList(rootEl.value);\n });\n\n const onMutateRootEl = async () => {\n if (!rootEl.value) return;\n\n updateActiveStatusViaRootElClassList(rootEl.value);\n };\n\n return {\n rootClasses,\n rootRef,\n listeners,\n avatarSizeComputed,\n iconNameComputed,\n iconSizeComputed,\n onMutateRootEl,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarMenuItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarMenuItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppSideBarMenuItem.vue?vue&type=template&id=b62b05d8&scoped=true&\"\nimport script from \"./AppSideBarMenuItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppSideBarMenuItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppSideBarMenuItem.vue?vue&type=style&index=0&id=b62b05d8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b62b05d8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VIcon,VListItem,VListItemAvatar,VListItemContent,VListItemTitle})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Mutate from 'vuetify/lib/directives/mutate'\ninstallDirectives(component, {Mutate})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport AppSideBarMenuItem from '@/components/_newDesign/App/AppSideBar/AppSideBarMenuItem.vue';\n\nimport store from '@/store';\nimport { useAuthStore } from '@/store/auth';\nimport navigationUiStore from '@/store/navigation/navigationUi';\n\nconst navigationUiStoreContext = navigationUiStore.context(store);\n\nexport default defineComponent({\n components: {\n AppSideBarMenuItem,\n },\n props: {\n sideBarIsShown: { type: Boolean, default: false },\n },\n setup() {\n const authStore = useAuthStore();\n\n const user = computed(() => authStore.getters.user);\n const headerMinHeight = computed(() => navigationUiStoreContext.getters.headerMinHeight);\n\n const iconOptions = {\n name: '$d1-project-logo',\n size: 48,\n custom: true,\n };\n\n return {\n user,\n headerMinHeight,\n iconOptions,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarLogo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarLogo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppSideBarLogo.vue?vue&type=template&id=0177b6ee&scoped=true&\"\nimport script from \"./AppSideBarLogo.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppSideBarLogo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppSideBarLogo.vue?vue&type=style&index=0&id=0177b6ee&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0177b6ee\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VList,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-side-bar-nav-menu\"},[_c('AppSideBarClient',{staticClass:\"app-side-bar-nav-menu__client\"}),_vm._v(\" \"),(_vm.user)?_vm._l((_vm.menu),function(group,groupIdx){return _c('v-list',{key:groupIdx,staticClass:\"py-0\",attrs:{\"subheader\":\"\",\"dense\":\"\"}},[(group.meta.title)?_c('v-subheader',{style:(_vm.sideBarIsShown ? 'padding: 8px 16px 4px 16px;' : 'padding: 8px 14px 4px 14px;')},[_c('span',{staticClass:\"subtext text-truncate\"},[(_vm.sideBarIsShown)?[_vm._v(\"\\n \"+_vm._s(group.meta.title)+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(group.meta.shortTitle || group.meta.title)+\"\\n \")]],2)]):_vm._e(),_vm._v(\" \"),_vm._l((group.children),function(route,routeIdx){return [(route.children.length)?_c('v-menu',{key:routeIdx,attrs:{\"close-delay\":\"75\",\"open-on-hover\":\"\",\"offset-x\":\"\",\"bottom\":\"\",\"tile\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('AppSideBarMenuItem',_vm._g(_vm._b({attrs:{\"title\":route.meta.title,\"to\":route.path,\"icon\":route.meta.icon,\"event\":\"\"}},'AppSideBarMenuItem',attrs,false),on))]}}],null,true)},[_vm._v(\" \"),_c('v-list',{staticClass:\"py-0\",attrs:{\"dense\":\"\"}},_vm._l((route.children),function(childRoute,childRouteIdx){return _c('AppSideBarMenuItem',{key:childRouteIdx,attrs:{\"to\":childRoute.path,\"title\":childRoute.meta.title}})}),1)],1):_c('DTooltip',{key:routeIdx,attrs:{\"open-delay\":\"300\",\"center\":\"\",\"right\":\"\",\"disabled\":_vm.sideBarIsShown || route.path === _vm.$route.path || !route.meta.title},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('AppSideBarMenuItem',_vm._g(_vm._b({key:routeIdx,attrs:{\"title\":route.meta.title,\"to\":route.path,\"icon\":route.meta.icon}},'AppSideBarMenuItem',attrs,false),on))]}}],null,true)},[_vm._v(\" \"),_c('span',{domProps:{\"textContent\":_vm._s(route.meta.title)}})])]})],2)}):_c('AppSidebarNavMenuLoader',{attrs:{\"side-bar-is-shown\":_vm.sideBarIsShown}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isShown)?_c('v-list',{staticClass:\"py-0\",attrs:{\"subheader\":\"\",\"dense\":\"\"}},[_c('AppSideBarMenuItem',{attrs:{\"title\":_vm.clientName,\"to\":_vm.clientPath,\"icon\":_vm.iconOptions,\"active\":_vm.isActive}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport AppSideBarMenuItem from '@/components/_newDesign/App/AppSideBar/AppSideBarMenuItem.vue';\n\nimport store from '@/store';\nimport navigationCurrentClientStore from '@/store/navigation/navigationCurrentClient';\n\nconst navigationCurrentClientContext = navigationCurrentClientStore.context(store);\n\nexport default defineComponent({\n components: {\n AppSideBarMenuItem,\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const clientName = computed(() => navigationCurrentClientContext.getters.currentClientName);\n const clientPath = computed(() => navigationCurrentClientContext.getters.currentClientPath);\n\n const isShown = computed(() => {\n const approvedRoutes = [\n /\\/campaigns\\/.+/i,\n /\\/clients\\/.+/i,\n ];\n\n const routeIsApproved = approvedRoutes.some((regExp) => regExp.test(route.value.fullPath || ''));\n\n return routeIsApproved && clientName.value && clientPath.value;\n });\n\n const isActive = computed(() => route.value.name === 'client-details');\n\n const iconOptions = {\n name: '$d1-client',\n size: 54,\n custom: true,\n };\n\n return {\n clientName,\n clientPath,\n isShown,\n isActive,\n iconOptions,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarClient.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarClient.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppSideBarClient.vue?vue&type=template&id=bcc45568&\"\nimport script from \"./AppSideBarClient.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppSideBarClient.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VList } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VList})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-sidebar-nav-menu-loader\"},_vm._l((3),function(num){return _c('div',{key:num,staticClass:\"app-sidebar-nav-menu-loader__item\"},[_c('v-skeleton-loader',{staticClass:\"app-sidebar-nav-menu-loader__item-icon\",attrs:{\"type\":\"heading\"}}),_vm._v(\" \"),(_vm.sideBarIsShown)?_c('v-skeleton-loader',{staticClass:\"app-sidebar-nav-menu-loader__item-text\",attrs:{\"type\":\"text\"}}):_vm._e()],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSidebarNavMenuLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSidebarNavMenuLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppSidebarNavMenuLoader.vue?vue&type=template&id=3ecc2764&scoped=true&\"\nimport script from \"./AppSidebarNavMenuLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./AppSidebarNavMenuLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppSidebarNavMenuLoader.vue?vue&type=style&index=0&id=3ecc2764&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ecc2764\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { DTooltip } from '@shared/druid-kit';\n\nimport AppSideBarClient from '@/components/_newDesign/App/AppSideBar/AppSideBarClient.vue';\nimport AppSideBarMenuItem from '@/components/_newDesign/App/AppSideBar/AppSideBarMenuItem.vue';\nimport AppSidebarNavMenuLoader from '@/components/_newDesign/App/AppSideBar/AppSidebarNavMenuLoader.vue';\n\nimport store from '@/store';\nimport { useAuthStore } from '@/store/auth';\nimport navigationStore from '@/store/navigation';\n\nconst navigationStoreContext = navigationStore.context(store);\n\nexport default defineComponent({\n components: {\n DTooltip,\n AppSideBarClient,\n AppSideBarMenuItem,\n AppSidebarNavMenuLoader,\n },\n props: {\n sideBarIsShown: { type: Boolean, default: false },\n },\n setup() {\n const authStore = useAuthStore();\n\n const user = computed(() => authStore.getters.user);\n const menu = computed(() => navigationStoreContext.getters.menu);\n\n return {\n user,\n menu,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarNavMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarNavMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppSideBarNavMenu.vue?vue&type=template&id=8486b9be&scoped=true&\"\nimport script from \"./AppSideBarNavMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppSideBarNavMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppSideBarNavMenu.vue?vue&type=style&index=0&id=8486b9be&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8486b9be\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VList,VMenu,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.user)?_c('v-list',{staticClass:\"pt-0\",attrs:{\"dense\":\"\"}},[_vm._l((_vm.menu),function(menuItem,menuItemIdx){return [(menuItem.children)?_c('v-menu',{key:menuItemIdx,attrs:{\"open-on-hover\":\"\",\"offset-x\":\"\",\"bottom\":\"\",\"tile\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('AppSideBarMenuItem',_vm._g(_vm._b({attrs:{\"title\":menuItem.title,\"to\":menuItem.path,\"icon\":menuItem.icon,\"gtm-is-active\":menuItem.gtmIsActive}},'AppSideBarMenuItem',attrs,false),on))]}}],null,true)},[_vm._v(\" \"),_c('v-list',{staticClass:\"py-0\",attrs:{\"dense\":\"\"}},_vm._l((menuItem.children),function(child,childIdx){return _c('AppSideBarMenuItem',{key:childIdx,attrs:{\"to\":child.path,\"title\":child.title,\"icon\":child.icon}})}),1)],1):[(menuItem.action)?_c('AppSideBarMenuItem',{key:menuItemIdx,attrs:{\"title\":menuItem.title,\"icon\":menuItem.icon,\"active\":menuItem.active},on:{\"click\":function($event){$event.preventDefault();return menuItem.action.apply(null, arguments)}}}):_c('AppSideBarMenuItem',{key:menuItemIdx,attrs:{\"title\":menuItem.title,\"to\":menuItem.path,\"icon\":menuItem.icon}})]]})],2):_c('v-skeleton-loader',{attrs:{\"type\":\"list-item@3\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport AppSideBarMenuItem from '@/components/_newDesign/App/AppSideBar/AppSideBarMenuItem.vue';\n\nimport { useSearchStore } from '@/modules/search/store';\n\nimport { useAuthStore } from '@/store/auth';\n\ntype MenuItem = {\n title: string;\n icon: string;\n path: string;\n} | {\n title: string;\n icon: string;\n gtmIsActive?: boolean;\n children: MenuItem[],\n} | {\n title: string;\n icon: string;\n active?: boolean;\n action: () => void;\n};\n\nexport default defineComponent({\n components: {\n AppSideBarMenuItem,\n },\n setup() {\n const authStore = useAuthStore();\n const searchStore = useSearchStore();\n\n const user = computed(() => authStore.getters.user);\n const userName = computed(() => authStore.getters.userName);\n\n const menu = computed(() => {\n const list: MenuItem[] = [\n {\n title: 'Поиск',\n icon: 'mdi-magnify',\n active: searchStore.getters.isShown,\n action: () => {\n searchStore.dispatch('SHOW_SEARCH');\n },\n },\n {\n title: 'Руководство',\n icon: 'mdi-help-circle-outline',\n path: '/wiki',\n },\n {\n title: userName.value,\n icon: '$d1-user',\n gtmIsActive: false,\n children: [\n {\n title: 'Выход',\n icon: 'mdi-exit-to-app',\n path: '/logout',\n },\n ],\n },\n {\n title: 'Приложения',\n path: '/apps',\n icon: '$d1-apps',\n },\n ];\n\n return list;\n });\n\n return {\n user,\n userName,\n menu,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarUserMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarUserMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppSideBarUserMenu.vue?vue&type=template&id=0fa567ef&\"\nimport script from \"./AppSideBarUserMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppSideBarUserMenu.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VList,VMenu,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-sheet',{staticClass:\"side-bar-minimizer\",on:{\"click\":_vm.onClick}},[_c('v-icon',{domProps:{\"textContent\":_vm._s(_vm.icon)}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n value: { type: Boolean, default: false },\n },\n setup(props, ctx) {\n const icon = computed(() => (props.value ? 'mdi-chevron-right' : 'mdi-chevron-left'));\n\n const onClick = () => ctx.emit('input', !props.value);\n\n return {\n icon,\n onClick,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarMinimizer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBarMinimizer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppSideBarMinimizer.vue?vue&type=template&id=89cffa26&scoped=true&\"\nimport script from \"./AppSideBarMinimizer.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppSideBarMinimizer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppSideBarMinimizer.vue?vue&type=style&index=0&id=89cffa26&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"89cffa26\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VIcon,VSheet})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport AppSideBarLogo from '@/components/_newDesign/App/AppSideBar/AppSideBarLogo.vue';\nimport AppSideBarNavMenu from '@/components/_newDesign/App/AppSideBar/AppSideBarNavMenu.vue';\nimport AppSideBarUserMenu from '@/components/_newDesign/App/AppSideBar/AppSideBarUserMenu.vue';\nimport AppSideBarMinimizer from '@/components/_newDesign/App/AppSideBar/AppSideBarMinimizer.vue';\n\nimport store from '@/store';\nimport navigationUiStore from '@/store/navigation/navigationUi';\n\nconst navigationUiStoreContext = navigationUiStore.context(store);\n\nexport default defineComponent({\n components: {\n AppSideBarLogo,\n AppSideBarNavMenu,\n AppSideBarUserMenu,\n AppSideBarMinimizer,\n },\n setup() {\n const sideBarWidth = computed(() => navigationUiStoreContext.getters.sideBarWidth);\n\n const sideBarMinWidth = computed(() => navigationUiStoreContext.getters.sideBarMinWidth);\n\n const sideBarMinimaized = computed({\n get() {\n return navigationUiStoreContext.getters.sideBarMinimaized;\n },\n set(val: boolean) {\n navigationUiStoreContext.dispatch('CHANGE_SIDE_BAR_MINIMAIZED', val);\n },\n });\n\n const rootClasses = computed(() => {\n const base = 'app-side-bar';\n\n return [\n base,\n Vue.device.os.slug === 'windows' ? `${base}--custom-scrollbar` : '',\n ];\n });\n\n return {\n rootClasses,\n sideBarWidth,\n sideBarMinWidth,\n sideBarMinimaized,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSideBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppSideBar.vue?vue&type=template&id=71595b46&scoped=true&\"\nimport script from \"./AppSideBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppSideBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppSideBar.vue?vue&type=style&index=0&id=71595b46&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71595b46\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VHover } from 'vuetify/lib/components/VHover';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\ninstallComponents(component, {VHover,VNavigationDrawer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-footer',{staticClass:\"app-footer\",attrs:{\"min-height\":_vm.footerMinHeight}},[_c('div',{staticClass:\"app-footer__block d-flex align-center px-6 py-3\",class:_vm.linksOnRight ? 'justify-end' : 'justify-space-between',style:({ minHeight: (_vm.footerMinHeight + \"px\") })},[_c('div',{staticClass:\"d-flex align-center\"},[_c('DBtnInline',{staticClass:\"app-footer__link mr-8\",attrs:{\"to\":\"/help\",\"color\":\"secondary\"}},[_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n Служба поддержки\\n \")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-img',{attrs:{\"width\":\"64\",\"height\":\"14\",\"src\":require('@/assets/img/company-logo.svg'),\"contain\":\"\"}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport store from '@/store';\nimport navigationUiStore from '@/store/navigation/navigationUi';\n\nconst navigationUiStoreContext = navigationUiStore.context(store);\n\nexport default defineComponent({\n components: {\n DBtnInline,\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const footerMinHeight = computed(() => navigationUiStoreContext.getters.footerMinHeight);\n const linksOnRight = computed(() => !!route.value.meta?.footer?.linksOnRight);\n\n return {\n footerMinHeight,\n linksOnRight,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppFooter.vue?vue&type=template&id=679871df&scoped=true&\"\nimport script from \"./AppFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppFooter.vue?vue&type=style&index=0&id=679871df&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"679871df\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VImg } from 'vuetify/lib/components/VImg';\ninstallComponents(component, {VFooter,VImg})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-bottom-navigation\"},[_c('portal-target',{attrs:{\"name\":\"app-bottom-navigation-content\",\"slim\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./AppBottomNavigation.vue?vue&type=template&id=0c00ffa7&scoped=true&\"\nvar script = {}\nimport style0 from \"./AppBottomNavigation.vue?vue&type=style&index=0&id=0c00ffa7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c00ffa7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',[_c('v-progress-circular',{attrs:{\"color\":\"white\",\"indeterminate\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./AppDefaultLoader.vue?vue&type=template&id=09991758&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VOverlay,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-side-bar\"},[_c('v-overlay',{attrs:{\"value\":_vm.isShown,\"z-index\":\"4\"},nativeOn:{\"click\":function($event){return _vm.onOverlayClick.apply(null, arguments)}}}),_vm._v(\" \"),_c('v-navigation-drawer',{staticClass:\"search-side-bar__navigation-drawer\",attrs:{\"width\":\"688\",\"value\":_vm.isShown,\"stateless\":\"\"}},[_c('SearchHeader',{staticClass:\"search-side-bar__header\"}),_vm._v(\" \"),_c('div',{staticClass:\"search-side-bar__main\"},[_c('SearchResult',{staticClass:\"search-side-bar__result\"})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-header d-flex align-center pa-6\"},[_c('div',{staticClass:\"search-header__field search-header__field--query mr-4\"},[_c('v-text-field',{staticClass:\"search-header__query\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\"},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search.apply(null, arguments)}},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary-gradient\",\"loading\":_vm.searchIsLoading,\"rounded\":\"\",\"disabled\":_vm.searchIsDisabled},on:{\"click\":_vm.search}},[_vm._v(\"\\n Найти\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"search-header__field search-header__field--status ml-auto\"},[(!_vm.searchHasBeenByDanboId)?_c('DSelectInline',{attrs:{\"items\":_vm.statusItems,\"disabled\":_vm.searchIsLoading},model:{value:(_vm.status),callback:function ($$v) {_vm.status=$$v},expression:\"status\"}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed, watch } from '@vue/composition-api';\n\nimport { debounce } from 'lodash';\n\nimport { DSelectInline } from '@shared/druid-kit';\n\nimport { useSearchStore } from '../store';\n\nimport { SearchFilters } from '../models';\n\nexport default defineComponent({\n components: {\n DSelectInline,\n },\n setup() {\n const searchStore = useSearchStore();\n\n const statusItems = ref([\n { text: 'Активные сейчас', value: 'active' },\n { text: 'Архивные', value: 'archive' },\n { text: 'Все', value: 'all' },\n ]);\n\n const searchIsLoading = computed(() => searchStore.getters.isLoading);\n const searchHasBeenByDanboId = computed(() => searchStore.getters.hasBeenByDanboId);\n\n const queryLimit = computed(() => searchStore.getters.queryLimit);\n\n const query = computed({\n get() {\n return searchStore.getters.query;\n },\n set: debounce((val: string) => {\n searchStore.dispatch('UPDATE_QUERY', val);\n }, 120),\n });\n\n const status = computed({\n get() {\n return searchStore.getters.filters.status;\n },\n set(val: SearchFilters['status']) {\n searchStore.dispatch('UPDATE_FILTERS', { status: val });\n },\n });\n\n const searchIsDisabled = computed(() => query.value.length < queryLimit.value.min);\n\n const search = () => {\n if (searchIsDisabled.value) return;\n\n searchStore.dispatch('SEARCH');\n };\n\n watch(status, () => {\n search();\n });\n\n return {\n searchIsLoading,\n searchHasBeenByDanboId,\n query,\n status,\n statusItems,\n searchIsDisabled,\n search,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchHeader.vue?vue&type=template&id=6b5f5d8a&scoped=true&\"\nimport script from \"./SearchHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchHeader.vue?vue&type=style&index=0&id=6b5f5d8a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b5f5d8a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-result\"},[(_vm.searchResultIsExist && _vm.searchResultIsEmpty)?_c('div',{staticClass:\"px-6\"},[_c('div',{staticClass:\"mb-1 text-h6 grey--text text--darken-1\"},[_vm._v(\"\\n Ничего не найдено :-(\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"body-1 grey--text text--darken-1\"},[_vm._v(\"\\n Попробуйте изменить запрос\\n \")])]):(!_vm.searchResultIsEmpty && !_vm.searchIsLoading)?_vm._l((_vm.searchCategories),function(category,idx){return _c('SearchList',{key:idx,staticClass:\"search-result__list\",attrs:{\"title\":category.title,\"items\":category.items}})}):(_vm.searchIsLoading)?_c('ListLoader',{staticClass:\"search-result__loader\"}):_c('div',{staticClass:\"px-6\"},[_vm._m(0)])],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"body-2 grey--text text--darken-1\"},[_vm._v(\"\\n Поиск поможет найти по названию клиента, бренд, кампанию.\"),_c('br'),_vm._v(\"\\n По danboid можно найти размещение.\\n \")])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-list\"},[(_vm.breadcrumbsIsShown)?_c('SearchBreadcrumbs',{staticClass:\"px-6 mb-2\",attrs:{\"breadcrumbs\":_vm.firstVisibleItem.breadcrumbs}}):_c('div',{staticClass:\"search-list__header px-6 text-h6 mb-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\" — \"+_vm._s(_vm.items.length)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"search-list__list\"},[_c('v-list',{staticClass:\"py-0\"},_vm._l((_vm.visibleItems),function(item,idx){return _c('SearchListItem',{key:idx,staticClass:\"search-list__item px-6\",attrs:{\"item\":item}})}),1)],1),_vm._v(\" \"),_c('div',{staticClass:\"search-list__footer px-6 mt-1\"},[(_vm.btnToggleAllItemsIsShown)?_c('DBtnInline',{attrs:{\"color\":\"grey darken-4\"},on:{\"click\":_vm.toggleAllItems},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n \"+_vm._s(_vm.allItemsIsShown ? 'mdi-close' : 'mdi-dots-horizontal')+\"\\n \")])]},proxy:true}],null,false,2429920127)},[_vm._v(\" \"),_c('span',{staticClass:\"body-2\"},[_vm._v(_vm._s(_vm.allItemsIsShown ? 'Скрыть' : 'Показать все'))])]):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-breadcrumbs d-flex\"},_vm._l((_vm.breadcrumbs),function(breadcrumb,idx){return _c('div',{key:idx,staticClass:\"search-breadcrumbs__breadcrumb d-flex mr-1\"},[_c('router-link',{staticClass:\"search-breadcrumbs__link text-h6 text-truncate text-decoration-none\",attrs:{\"exact-active-class\":\"search-breadcrumbs__link--active\",\"to\":breadcrumb.to},domProps:{\"textContent\":_vm._s(breadcrumb.label)}}),_vm._v(\" \"),(idx < _vm.breadcrumbs.length - 1)?_c('v-icon',{staticClass:\"flex-shrink-0 ml-1\",attrs:{\"size\":\"24\"}},[_vm._v(\"\\n mdi-chevron-right\\n \")]):_vm._e()],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport { SearchBreadcrumb } from '../models';\n\nexport default defineComponent({\n props: {\n breadcrumbs: { type: Array as PropType, default: () => [] },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBreadcrumbs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBreadcrumbs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchBreadcrumbs.vue?vue&type=template&id=49d67e52&scoped=true&\"\nimport script from \"./SearchBreadcrumbs.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchBreadcrumbs.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchBreadcrumbs.vue?vue&type=style&index=0&id=49d67e52&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49d67e52\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-item',{staticClass:\"search-list-item px-6\",attrs:{\"to\":_vm.item.to}},[_c('v-list-item-content',{staticClass:\"py-0\"},[_c('div',{staticClass:\"d-flex align-start\"},[_c('v-icon',{staticClass:\"search-list-item__icon mr-1\",attrs:{\"size\":\"24\"},domProps:{\"textContent\":_vm._s(_vm.item.icon)}}),_vm._v(\" \"),_c('div',{staticClass:\"search-list-item__title body-2\"},[_c('span',{staticClass:\"search-list-item__title\",domProps:{\"innerHTML\":_vm._s(_vm.name)}}),_vm._v(\" \"),(_vm.item.id)?_c('span',{staticClass:\"grey--text text--darken-1\",domProps:{\"textContent\":_vm._s(_vm.item.id)}}):_vm._e()]),_vm._v(\" \"),('approved' in _vm.item)?_c('v-icon',{staticClass:\"search-list-item__icon my-1 ml-2\",attrs:{\"size\":\"16\"}},[_vm._v(\"\\n \"+_vm._s(_vm.item.approved ? 'mdi-eye' : 'mdi-eye-off-outline')+\"\\n \")]):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, computed, PropType } from '@vue/composition-api';\n\nimport { SearchResultListItem } from '../../models';\n\nimport { useSearchStore } from '../../store';\n\nexport default defineComponent({\n props: {\n item: { type: Object as PropType, required: true },\n },\n setup(props) {\n const { item } = toRefs(props);\n\n const searchStore = useSearchStore();\n\n const query = computed(() => searchStore.getters.query);\n\n const name = computed(() => {\n const regExp = new RegExp(query.value, 'ig');\n\n return item.value.name.replace(regExp, '$&');\n });\n\n return {\n name,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchListItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchListItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchListItem.vue?vue&type=template&id=f092a7da&scoped=true&\"\nimport script from \"./SearchListItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchListItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchListItem.vue?vue&type=style&index=0&id=f092a7da&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f092a7da\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VIcon,VListItem,VListItemContent})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, PropType } from '@vue/composition-api';\n\nimport { DBtnInline } from '@shared/druid-kit';\n\nimport SearchBreadcrumbs from '../SearchBreadcrumbs.vue';\nimport SearchListItem from './SearchListItem.vue';\n\nimport { useSearchStore } from '../../store';\n\nimport { SearchResultListItem } from '../../models';\n\nexport default defineComponent({\n components: {\n DBtnInline,\n SearchBreadcrumbs,\n SearchListItem,\n },\n props: {\n title: { type: String, default: '' },\n items: { type: Array as PropType, default: () => [] },\n },\n setup(props) {\n const { items } = toRefs(props);\n\n const searchStore = useSearchStore();\n\n const limit = ref(5);\n const allItemsIsShown = ref(false);\n\n const searchResultContainsOnlyOneItem = computed(() => searchStore.getters.resultContainsOnlyOneItem);\n const btnToggleAllItemsIsShown = computed(() => !allItemsIsShown.value && limit.value < items.value.length);\n\n const visibleItems = computed(() => {\n if (allItemsIsShown.value) return items.value;\n\n return items.value.slice(0, limit.value);\n });\n\n const firstVisibleItem = computed(() => visibleItems.value[0]);\n\n const breadcrumbsIsShown = computed(() => {\n if (!firstVisibleItem.value) return false;\n\n return !!firstVisibleItem.value.breadcrumbs?.length && searchResultContainsOnlyOneItem.value;\n });\n\n const toggleAllItems = () => {\n allItemsIsShown.value = !allItemsIsShown.value;\n };\n\n return {\n btnToggleAllItemsIsShown,\n allItemsIsShown,\n visibleItems,\n firstVisibleItem,\n breadcrumbsIsShown,\n toggleAllItems,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchList.vue?vue&type=template&id=6e3bf70c&scoped=true&\"\nimport script from \"./SearchList.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchList.vue?vue&type=style&index=0&id=6e3bf70c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6e3bf70c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VIcon,VList})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport ListLoader from '@/components/_newDesign/common/loaders/ListLoader.vue';\n\nimport SearchList from './SearchList/SearchList.vue';\n\nimport { useSearchStore } from '../store';\n\nexport default defineComponent({\n components: {\n SearchList,\n ListLoader,\n },\n setup() {\n const searchStore = useSearchStore();\n\n const searchResultIsExist = computed(() => searchStore.getters.resultIsExist);\n const searchResultIsEmpty = computed(() => searchStore.getters.resultIsEmpty);\n const searchCategories = computed(() => searchStore.getters.categories);\n const searchIsLoading = computed(() => searchStore.getters.isLoading);\n\n return {\n searchResultIsExist,\n searchResultIsEmpty,\n searchCategories,\n searchIsLoading,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchResult.vue?vue&type=template&id=6a06e251&scoped=true&\"\nimport script from \"./SearchResult.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchResult.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchResult.vue?vue&type=style&index=0&id=6a06e251&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6a06e251\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, watch } from '@vue/composition-api';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport SearchHeader from './SearchHeader.vue';\nimport SearchResult from './SearchResult.vue';\n\nimport { useSearchStore } from '../store';\n\nexport default defineComponent({\n components: {\n SearchHeader,\n SearchResult,\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const searchStore = useSearchStore();\n\n const isShown = computed({\n get() {\n return searchStore.getters.isShown;\n },\n set(val: boolean) {\n searchStore.dispatch('UPDATE_IS_SHOWN', val);\n },\n });\n\n watch(route, () => {\n isShown.value = false;\n });\n\n const onOverlayClick = () => {\n isShown.value = false;\n };\n\n return {\n isShown,\n onOverlayClick,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchSideBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchSideBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchSideBar.vue?vue&type=template&id=6d96bb72&scoped=true&\"\nimport script from \"./SearchSideBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchSideBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchSideBar.vue?vue&type=style&index=0&id=6d96bb72&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d96bb72\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VNavigationDrawer,VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"notify-root\"},_vm._l((_vm.notificationsByPositionGroups),function(group,index){return _c('NotifyListByPosition',{key:index,attrs:{\"position\":group.position,\"notifications\":group.list}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"notify-list-by-position\",class:_vm.positionClasses},_vm._l((_vm.notifications),function(notification){return _c('NotifyListItem',{key:notification.id,attrs:{\"notification\":notification}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-snackbar',{staticClass:\"notify-item\",attrs:{\"timeout\":_vm.timeout,\"color\":_vm.color,\"elevation\":\"1\"},scopedSlots:_vm._u([(_vm.notification.hasCloseBtn)?{key:\"action\",fn:function(ref){\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._b({on:{\"click\":_vm.remove}},'v-btn',Object.assign({}, attrs, _vm.closeBtnProps),false),[(_vm.closeBtnContent.text)?[_vm._v(\"\\n \"+_vm._s(_vm.closeBtnContent.text)+\"\\n \")]:_c('v-icon',{attrs:{\"size\":\"16\"}},[_vm._v(\"\\n \"+_vm._s(_vm.closeBtnContent.icon)+\"\\n \")])],2)]}}:null],null,true),model:{value:(_vm.isShown),callback:function ($$v) {_vm.isShown=$$v},expression:\"isShown\"}},[_c('span',{staticClass:\"pa-4 body-2\"},[_vm._v(_vm._s(_vm.notification.text))]),_vm._v(\" \"),_vm._l((_vm.normalizedButtons),function(button,index){return _c('v-btn',{key:index,attrs:{\"color\":button.props.color,\"loading\":button.props.loading,\"disabled\":button.props.disabled,\"text\":\"\"},on:{\"click\":function($event){return _vm.onClickBtn({ button: button, index: index })}}},[_vm._v(\"\\n \"+_vm._s(button.props.text)+\"\\n \")])})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, toRefs, ref, computed, PropType } from '@vue/composition-api';\n\nimport store from '@/store';\n\nimport notifyStore from '../store/notify.store';\n\nimport { NotifyItem, NotifyItemButton } from '../types';\n\nconst notifyStoreContext = notifyStore.context(store);\n\nexport default defineComponent({\n props: {\n notification: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const { notification } = toRefs(props);\n\n const loadingButtonIdx = ref(-1);\n\n const timeout = computed(() => notification.value.timeout || 6000);\n const closeBtnContent = computed(() => notification.value?.closeBtnContent ?? { icon: 'mdi-close' });\n\n const closeBtnProps = computed(() => ({\n icon: !!closeBtnContent.value?.icon,\n text: !!closeBtnContent.value?.text,\n }));\n\n const remove = () => {\n notifyStoreContext.dispatch('REMOVE_NOTIFICATION', notification.value.id);\n };\n\n const isShown = computed({\n get() {\n return true;\n },\n set(value) {\n if (!value) remove();\n },\n });\n\n const color = computed(() => {\n const colors = {\n neutral: 'accent',\n positive: 'success',\n warning: 'warning',\n error: 'error',\n };\n\n return colors[notification.value.status || ''];\n });\n\n const normalizedButtons = computed(() => {\n const buttons = notification.value?.buttons;\n\n if (!buttons) return [];\n\n const someButtonsIsLoading = loadingButtonIdx.value < buttons.length && loadingButtonIdx.value !== -1;\n\n return buttons.map((button, idx) => {\n const buttonIsLoading = idx === loadingButtonIdx.value;\n\n return {\n ...button,\n props: {\n ...button.props,\n loading: buttonIsLoading,\n disabled: someButtonsIsLoading && !buttonIsLoading,\n },\n };\n });\n });\n\n const onClickBtn = async (payload: { button: NotifyItemButton; index: number }) => {\n if (!payload.button?.action) return;\n\n loadingButtonIdx.value = payload.index;\n\n try {\n await payload.button.action({ close: remove });\n } finally {\n loadingButtonIdx.value = -1;\n }\n };\n\n return {\n isShown,\n timeout,\n remove,\n color,\n closeBtnProps,\n closeBtnContent,\n normalizedButtons,\n onClickBtn,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotifyListItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotifyListItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotifyListItem.vue?vue&type=template&id=69d78def&scoped=true&\"\nimport script from \"./NotifyListItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotifyListItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotifyListItem.vue?vue&type=style&index=0&id=69d78def&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69d78def\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VBtn,VIcon,VSnackbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, toRefs, computed } from '@vue/composition-api';\n\nimport NotifyListItem from './NotifyListItem.vue';\n\nimport { NotifyItem, NotifyItemPosition } from '../types';\n\nimport { NOTIFY_ITEM_POSITION_DEFAULT } from '../constants';\n\nexport default defineComponent({\n components: { NotifyListItem },\n props: {\n position: {\n type: Array as unknown as PropType,\n default: () => NOTIFY_ITEM_POSITION_DEFAULT,\n },\n notifications: {\n type: Array as PropType,\n default: () => [],\n },\n },\n setup(props) {\n const { position } = toRefs(props);\n\n const positionClasses = computed(() => {\n const normalizedPosition = position.value;\n\n return [\n `notify-list-by-position--y-${normalizedPosition[0]}`,\n `notify-list-by-position--x-${normalizedPosition[1]}`,\n ];\n });\n\n return { positionClasses };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotifyListByPosition.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotifyListByPosition.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotifyListByPosition.vue?vue&type=template&id=ffcad548&scoped=true&\"\nimport script from \"./NotifyListByPosition.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotifyListByPosition.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotifyListByPosition.vue?vue&type=style&index=0&id=ffcad548&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ffcad548\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed } from '@vue/composition-api';\n\nimport store from '@/store';\nimport notifyStore from './store/notify.store';\n\nimport NotifyListByPosition from './components/NotifyListByPosition.vue';\n\nconst notifyStoreContext = notifyStore.context(store);\n\nexport default defineComponent({\n components: { NotifyListByPosition },\n setup() {\n const notificationsByPositionGroups = computed(() => notifyStoreContext.getters.notificationsByPositionGroups);\n\n return { notificationsByPositionGroups };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotifyRoot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotifyRoot.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotifyRoot.vue?vue&type=template&id=340424b6&scoped=true&\"\nimport script from \"./NotifyRoot.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotifyRoot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotifyRoot.vue?vue&type=style&index=0&id=340424b6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"340424b6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, computed, ComponentInstance } from '@vue/composition-api';\n\nimport useRoute from '@/packages/hooks/useRoute';\n\nimport { useLayoutLoadingStatus } from '@/composables/layout';\n\nimport AppRedesignNoticeCard from '@/components/_newDesign/App/AppRedesignNoticeCard.vue';\n\nimport AppHeader from '@/components/_newDesign/App/AppHeader.vue';\nimport AppSideBar from '@/components/_newDesign/App/AppSideBar/AppSideBar.vue';\nimport AppFooter from '@/components/_newDesign/App/AppFooter.vue';\nimport AppBottomNavigation from '@/components/_newDesign/App/AppBottomNavigation.vue';\n\nimport AppDefaultLoader from '@/components/_newDesign/App/AppDefaultLoader.vue';\n\nimport SearchSideBar from '@/modules/search/components/SearchSideBar.vue';\n\nimport ModallyRoot from '@/services/modally/ModallyRoot.vue';\nimport NotifyRoot from '@/services/notify/NotifyRoot.vue';\n\nexport default defineComponent({\n components: {\n AppRedesignNoticeCard,\n AppHeader,\n AppSideBar,\n AppFooter,\n AppBottomNavigation,\n SearchSideBar,\n ModallyRoot,\n NotifyRoot,\n },\n setup(props, context) {\n const route = useRoute(context);\n\n const { isLoading } = useLayoutLoadingStatus();\n\n const headerRef = ref(null);\n\n const loaderComponent = computed(() => route.value.meta.loader ?? AppDefaultLoader);\n\n const headerVisible = computed(() => route.value.meta?.header?.visible ?? true);\n const footerVisible = computed(() => route.value.meta?.footer?.visible ?? true);\n\n const onMutateHeader = () => {\n if (!headerRef.value || !(headerRef.value.$el instanceof HTMLElement)) return;\n\n document.documentElement.style.setProperty('--app-header-height', `${headerRef.value.$el.offsetHeight}px`);\n };\n\n return {\n isLoading,\n headerRef,\n onMutateHeader,\n loaderComponent,\n headerVisible,\n footerVisible,\n };\n },\n computed: {\n isEditPage() {\n return this.$route.path.includes('/edit');\n },\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Default.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Default.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Default.vue?vue&type=template&id=e52ddadc&scoped=true&\"\nimport script from \"./Default.vue?vue&type=script&lang=ts&\"\nexport * from \"./Default.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Default.vue?vue&type=style&index=0&id=e52ddadc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e52ddadc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Mutate from 'vuetify/lib/directives/mutate'\ninstallDirectives(component, {Mutate})\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardChart.vue?vue&type=style&index=1&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserActionsTableRow.vue?vue&type=style&index=0&id=516e25e0&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsTable.vue?vue&type=style&index=0&id=6f52821a&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataProvidersItemForm.vue?vue&type=style&index=0&id=3f01896d&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnapprovedPlacementsCampaignList.vue?vue&type=style&index=0&id=94afbc76&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlacementEditorFlights.vue?vue&type=style&index=0&id=164cf256&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HnTableDateCell.vue?vue&type=style&index=0&id=7678ff45&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignPlacementsCreateMarkupModal.vue?vue&type=style&index=0&id=11feaa5c&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FactUploadWorkSteps.vue?vue&type=style&index=0&id=c3210648&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppClientsTreeView.vue?vue&type=style&index=0&id=0d291d0c&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CampaignEditorSettingsPageLoader.vue?vue&type=style&index=0&id=3ce1d3bc&lang=scss&scoped=true&\""],"sourceRoot":""}