adserver-dashboard 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ci/staging.yml +191 -0
- package/.dockerignore +117 -0
- package/.env +40 -0
- package/.env.staging +38 -0
- package/.gitlab-ci.yml +16 -0
- package/DEMO_STATUS.md +579 -0
- package/Dockerfile +61 -0
- package/Influence-MW-AdServer-12-02-2026/client/index.html +17 -0
- package/Influence-MW-AdServer-12-02-2026/client/public/favicon.png +0 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/App.tsx +91 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/advanced-map-drawer.tsx +1131 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ai-recommendation-panel.tsx +379 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/app-sidebar.tsx +183 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/auto-optimize-button.tsx +184 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/availability-drawer.tsx +385 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/brand-insights-panel.tsx +87 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/create-agency-drawer.tsx +198 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/create-brand-drawer.tsx +275 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/creative-assignment.tsx +526 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/data-table-toolbar.tsx +148 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/data-table.tsx +158 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/filter-drawer.tsx +356 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/form-insights-panel.tsx +82 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/geography-selector.tsx +699 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/header-user-menu.tsx +178 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/history-drawer.tsx +313 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/inventory-availability-section.tsx +176 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/inventory-format-drawer.tsx +173 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/inventory-selector.tsx +401 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/manual-inventory-drawer.tsx +368 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/mapbox-map.tsx +368 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/market-insights-panel.tsx +202 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/media-owner-drawer.tsx +217 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/metric-card.tsx +58 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/page-header.tsx +27 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/player-status-indicator.tsx +137 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/poi-targeting-drawer.tsx +298 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/recommendation-score-badge.tsx +102 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/recommended-inventories-panel.tsx +248 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/searchable-combobox.tsx +134 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/signal-visualizations.tsx +407 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/status-badge.tsx +35 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/theme-provider.tsx +73 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/theme-toggle.tsx +37 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/traffic-slider.tsx +75 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/accordion.tsx +56 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/alert-dialog.tsx +139 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/alert.tsx +59 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/aspect-ratio.tsx +5 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/avatar.tsx +51 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/badge.tsx +38 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/breadcrumb.tsx +115 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/button.tsx +62 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/calendar.tsx +68 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/card.tsx +85 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/carousel.tsx +260 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/chart.tsx +365 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/checkbox.tsx +28 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/collapsible.tsx +11 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/command.tsx +151 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/context-menu.tsx +198 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/dialog.tsx +122 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/drawer.tsx +118 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/dropdown-menu.tsx +198 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/form.tsx +178 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/hover-card.tsx +29 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/input-otp.tsx +69 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/input.tsx +23 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/label.tsx +24 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/menubar.tsx +256 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/navigation-menu.tsx +128 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/pagination.tsx +117 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/popover.tsx +29 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/progress.tsx +28 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/radio-group.tsx +42 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/resizable.tsx +45 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/scroll-area.tsx +46 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/select.tsx +160 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/separator.tsx +29 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/sheet.tsx +140 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/sidebar.tsx +727 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/skeleton.tsx +15 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/slider.tsx +26 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/switch.tsx +27 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/table.tsx +117 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/tabs.tsx +53 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/textarea.tsx +22 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/toast.tsx +127 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/toaster.tsx +33 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/toggle-group.tsx +61 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/toggle.tsx +43 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/tooltip.tsx +30 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/vendor-stores-modal.tsx +336 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/venue-type-drawer.tsx +359 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/components/venue-type-selector.tsx +436 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/hooks/use-mobile.tsx +19 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/hooks/use-toast.ts +191 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/index.css +244 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/lib/queryClient.ts +57 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/lib/utils.ts +39 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/lib/venue-taxonomy.ts +532 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/main.tsx +5 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/assign-creative.tsx +781 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/content-hub.tsx +995 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/custom-pois.tsx +431 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/dashboard.tsx +620 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/deal-detail.tsx +1062 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/deal-form.tsx +1570 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/deals.tsx +716 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/edit-creative-assignment.tsx +1051 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/geotargeting.tsx +675 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/integrations.tsx +425 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/line-item-creatives.tsx +622 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/line-item-form.tsx +3132 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/line-items.tsx +530 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/not-found.tsx +21 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/proof-of-play-upload.tsx +479 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/proof-of-play.tsx +880 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/reports.tsx +235 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/settings.tsx +652 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/signal-form.tsx +1117 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/signals.tsx +366 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/tags.tsx +332 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/pages/venues.tsx +381 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/types/mapbox-gl-draw.d.ts +37 -0
- package/Influence-MW-AdServer-12-02-2026/client/src/types/react-simple-maps.d.ts +57 -0
- package/Influence-MW-AdServer-12-02-2026/components.json +20 -0
- package/Influence-MW-AdServer-12-02-2026/docs/PRD.md +3373 -0
- package/Influence-MW-AdServer-12-02-2026/docs/influence-feature-mapping.csv +498 -0
- package/Influence-MW-AdServer-12-02-2026/drizzle.config.ts +14 -0
- package/Influence-MW-AdServer-12-02-2026/package-lock.json +9672 -0
- package/Influence-MW-AdServer-12-02-2026/package.json +118 -0
- package/Influence-MW-AdServer-12-02-2026/postcss.config.js +6 -0
- package/Influence-MW-AdServer-12-02-2026/replit.md +91 -0
- package/Influence-MW-AdServer-12-02-2026/script/build.ts +67 -0
- package/Influence-MW-AdServer-12-02-2026/scripts/create-miro-diagrams.cjs +318 -0
- package/Influence-MW-AdServer-12-02-2026/scripts/create-remaining-diagrams.cjs +270 -0
- package/Influence-MW-AdServer-12-02-2026/server/index.ts +103 -0
- package/Influence-MW-AdServer-12-02-2026/server/recommendation-service.ts +319 -0
- package/Influence-MW-AdServer-12-02-2026/server/routes.ts +1890 -0
- package/Influence-MW-AdServer-12-02-2026/server/static.ts +19 -0
- package/Influence-MW-AdServer-12-02-2026/server/storage.ts +2058 -0
- package/Influence-MW-AdServer-12-02-2026/server/vite.ts +58 -0
- package/Influence-MW-AdServer-12-02-2026/shared/schema.ts +1595 -0
- package/Influence-MW-AdServer-12-02-2026/tailwind.config.ts +107 -0
- package/Influence-MW-AdServer-12-02-2026/tsconfig.json +23 -0
- package/Influence-MW-AdServer-12-02-2026/vite.config.ts +40 -0
- package/LINE_ITEM_BUDGET_FIELD_MAPPING.md +178 -0
- package/PCM/.env.example +92 -0
- package/PCM/README.md +558 -0
- package/PCM/docs/TEST_CASES.md +422 -0
- package/PCM/index.js +106 -0
- package/PCM/package-lock.json +3282 -0
- package/PCM/package.json +32 -0
- package/PCM/replit.md +64 -0
- package/PCM/schema.sql +495 -0
- package/PCM/scripts/export-schema.js +183 -0
- package/PCM/scripts/seed-comprehensive.js +631 -0
- package/PCM/scripts/seed-production.js +477 -0
- package/PCM/src/config/db.js +56 -0
- package/PCM/src/config/swagger.js +5975 -0
- package/PCM/src/dto/EmailRequestDTO.js +166 -0
- package/PCM/src/middleware/errorHandler.js +52 -0
- package/PCM/src/middleware/logger.js +26 -0
- package/PCM/src/migrations/001_add_campaign_mode_fields.sql +36 -0
- package/PCM/src/migrations/002_create_deal_id_counters.sql +22 -0
- package/PCM/src/migrations/003_update_publishers_column.sql +15 -0
- package/PCM/src/migrations/004_add_direct_dealtype_and_advertiser.sql +5 -0
- package/PCM/src/migrations/005_add_programmatic_fields_and_update_enums.sql +31 -0
- package/PCM/src/migrations/006_add_line_item_programmatic_fields.sql +12 -0
- package/PCM/src/migrations/007_add_line_item_direct_fields.sql +15 -0
- package/PCM/src/migrations/008_add_inventory_fields.sql +45 -0
- package/PCM/src/migrations/009_move_inventory_fields_to_metadata.sql +32 -0
- package/PCM/src/migrations/010_add_draft_status_and_line_items_count.sql +23 -0
- package/PCM/src/migrations/011_add_planning_field.sql +21 -0
- package/PCM/src/migrations/012_fix_inventory_composite_pk.sql +17 -0
- package/PCM/src/migrations/013_make_external_id_optional.sql +3 -0
- package/PCM/src/migrations/014_create_change_history.sql +38 -0
- package/PCM/src/migrations/016_create_publisher_insertion_orders.sql +33 -0
- package/PCM/src/migrations/017_fix_line_item_id_fk_reference.sql +86 -0
- package/PCM/src/migrations/018_create_approval_tables.sql +44 -0
- package/PCM/src/migrations/019_add_encrypted_token_column.sql +2 -0
- package/PCM/src/migrations/020_add_rejection_reason_to_deals.sql +10 -0
- package/PCM/src/migrations/021_add_publisher_external_id_to_inventories.sql +12 -0
- package/PCM/src/migrations/022_add_line_item_extended_fields.sql +24 -0
- package/PCM/src/migrations/023_add_base_price_fields.sql +8 -0
- package/PCM/src/migrations/run-migrations.js +46 -0
- package/PCM/src/models/ApprovalOTP.js +51 -0
- package/PCM/src/models/ApprovalToken.js +79 -0
- package/PCM/src/models/ChangeHistory.js +107 -0
- package/PCM/src/models/Deal.js +186 -0
- package/PCM/src/models/DealIdCounter.js +28 -0
- package/PCM/src/models/LineItem.js +227 -0
- package/PCM/src/models/LineItemCreative.js +89 -0
- package/PCM/src/models/LineItemInventory.js +115 -0
- package/PCM/src/models/PublisherInsertionOrder.js +93 -0
- package/PCM/src/models/TransactionHistory.js +34 -0
- package/PCM/src/models/associations.js +81 -0
- package/PCM/src/routes/approval.js +321 -0
- package/PCM/src/routes/creatives.js +437 -0
- package/PCM/src/routes/deals.js +1638 -0
- package/PCM/src/routes/digitalSignage.js +242 -0
- package/PCM/src/routes/insertionOrders.js +380 -0
- package/PCM/src/routes/lineItems.js +926 -0
- package/PCM/src/routes/system.js +384 -0
- package/PCM/src/services/ApprovalService.js +885 -0
- package/PCM/src/services/CampaignImportConverter.js +631 -0
- package/PCM/src/services/CampaignModeService.js +273 -0
- package/PCM/src/services/CampaignStatusService.js +395 -0
- package/PCM/src/services/ChangeHistoryService.js +316 -0
- package/PCM/src/services/DealIdService.js +94 -0
- package/PCM/src/services/DealResponseFormatter.js +90 -0
- package/PCM/src/services/EmailNotificationService.js +315 -0
- package/PCM/src/services/LineItemResponseFormatter.js +122 -0
- package/PCM/src/services/LineItemStatusService.js +380 -0
- package/PCM/src/tests/comprehensiveTestRunner.js +360 -0
- package/PCM/src/tests/comprehensiveTests.js +1277 -0
- package/PCM/src/tests/dealTypeUnitTests.js +1058 -0
- package/PCM/src/tests/testRunner.js +248 -0
- package/PCM/src/utils/caseConverter.js +92 -0
- package/PCM/src/utils/dealCalculations.js +206 -0
- package/PCM/src/utils/lineItemPayloadNormalizer.js +41 -0
- package/PCM/src/utils/payloadNormalizer.js +34 -0
- package/PCM/src/utils/sourceNormalizer.js +56 -0
- package/PCM/src/validators/creativeValidator.js +27 -0
- package/PCM/src/validators/dealValidator.js +203 -0
- package/PCM/src/validators/lineItemValidator.js +489 -0
- package/PCM/tests/approval-flows.test.js +238 -0
- package/PCM/tests/approval-workflow.test.js +291 -0
- package/PCM/tests/campaign-import-converter.test.js +543 -0
- package/PCM/tests/campaign-import-e2e.test.js +520 -0
- package/PCM/tests/campaign-status.test.js +539 -0
- package/PCM/tests/direct-publisher-split-reimport.test.js +460 -0
- package/PCM/tests/e2e/digital-signage.test.js +145 -0
- package/PCM/tests/e2e/search-filter-pagination.test.js +399 -0
- package/PCM/tests/e2e-comprehensive.test.js +3446 -0
- package/PCM/tests/edge-cases.test.js +340 -0
- package/PCM/tests/line-item-status.test.js +340 -0
- package/PCM/tests/seller-account-external-ids.test.js +877 -0
- package/PCM/tests/source-validation.test.js +324 -0
- package/PRD.md +3373 -0
- package/README.md +186 -0
- package/client/index.html +35 -0
- package/client/public/DEMO_STATUS.md +579 -0
- package/client/public/img/MW-logo-trans_1754045676555.png +0 -0
- package/client/public/locales/ar/approval.json +144 -0
- package/client/public/locales/ar/buyer.json +61 -0
- package/client/public/locales/ar/campaigns.json +1 -0
- package/client/public/locales/ar/common.json +218 -0
- package/client/public/locales/ar/contentHub.json +266 -0
- package/client/public/locales/ar/creatives.json +79 -0
- package/client/public/locales/ar/dashboard.json +57 -0
- package/client/public/locales/ar/deals.json +886 -0
- package/client/public/locales/ar/dsp.json +131 -0
- package/client/public/locales/ar/inventory.json +201 -0
- package/client/public/locales/ar/lineItems.json +553 -0
- package/client/public/locales/ar/navigation.json +48 -0
- package/client/public/locales/ar/wizard.json +1 -0
- package/client/public/locales/en/approval.json +144 -0
- package/client/public/locales/en/buyer.json +65 -0
- package/client/public/locales/en/campaigns.json +1 -0
- package/client/public/locales/en/common.json +218 -0
- package/client/public/locales/en/contentHub.json +266 -0
- package/client/public/locales/en/creatives.json +79 -0
- package/client/public/locales/en/dashboard.json +57 -0
- package/client/public/locales/en/deals.json +886 -0
- package/client/public/locales/en/dsp.json +131 -0
- package/client/public/locales/en/inventory.json +201 -0
- package/client/public/locales/en/lineItems.json +659 -0
- package/client/public/locales/en/navigation.json +48 -0
- package/client/public/locales/en/wizard.json +1 -0
- package/client/public/locales/ja/approval.json +144 -0
- package/client/public/locales/ja/buyer.json +61 -0
- package/client/public/locales/ja/campaigns.json +1 -0
- package/client/public/locales/ja/common.json +218 -0
- package/client/public/locales/ja/contentHub.json +266 -0
- package/client/public/locales/ja/creatives.json +79 -0
- package/client/public/locales/ja/dashboard.json +57 -0
- package/client/public/locales/ja/deals.json +886 -0
- package/client/public/locales/ja/dsp.json +131 -0
- package/client/public/locales/ja/inventory.json +201 -0
- package/client/public/locales/ja/lineItems.json +553 -0
- package/client/public/locales/ja/navigation.json +48 -0
- package/client/public/locales/ja/wizard.json +1 -0
- package/client/public/locales/zh/approval.json +144 -0
- package/client/public/locales/zh/buyer.json +61 -0
- package/client/public/locales/zh/campaigns.json +1 -0
- package/client/public/locales/zh/common.json +218 -0
- package/client/public/locales/zh/contentHub.json +266 -0
- package/client/public/locales/zh/creatives.json +79 -0
- package/client/public/locales/zh/dashboard.json +57 -0
- package/client/public/locales/zh/deals.json +886 -0
- package/client/public/locales/zh/dsp.json +131 -0
- package/client/public/locales/zh/inventory.json +201 -0
- package/client/public/locales/zh/lineItems.json +553 -0
- package/client/public/locales/zh/navigation.json +48 -0
- package/client/public/locales/zh/wizard.json +1 -0
- package/client/public/manifest.json +36 -0
- package/client/src/App.tsx +464 -0
- package/client/src/components/app-sidebar.tsx +312 -0
- package/client/src/components/approval/approval-decision-form.test.tsx +294 -0
- package/client/src/components/approval/approval-decision-form.tsx +326 -0
- package/client/src/components/approval/approval-sheet.tsx +631 -0
- package/client/src/components/approval/line-item-details-sheet.tsx +371 -0
- package/client/src/components/approval/otp-verification.test.tsx +337 -0
- package/client/src/components/approval/otp-verification.tsx +180 -0
- package/client/src/components/content-hub/bulk-transcode-dialog.tsx +379 -0
- package/client/src/components/content-hub/content-hub-manager-v2.tsx +574 -0
- package/client/src/components/content-hub/content-hub-manager.tsx +330 -0
- package/client/src/components/content-hub/creative-card.tsx +456 -0
- package/client/src/components/content-hub/creative-detail-sheet.tsx +685 -0
- package/client/src/components/content-hub/creative-filters.tsx +457 -0
- package/client/src/components/content-hub/creative-grid.tsx +329 -0
- package/client/src/components/content-hub/creative-selector.tsx +415 -0
- package/client/src/components/content-hub/creative-upload.tsx +547 -0
- package/client/src/components/content-hub/folder-dialogs.tsx +445 -0
- package/client/src/components/content-hub/folder-list.tsx +280 -0
- package/client/src/components/content-hub/review-dialogs.tsx +268 -0
- package/client/src/components/content-hub/transcode-dialog.tsx +226 -0
- package/client/src/components/creative-library/creative-details-view.tsx +446 -0
- package/client/src/components/creative-library/creative-filters-panel.tsx +203 -0
- package/client/src/components/creative-library/creative-list.tsx +360 -0
- package/client/src/components/creative-library/creative-status-badge.tsx +71 -0
- package/client/src/components/creative-library/folder-card.tsx +78 -0
- package/client/src/components/creative-library/index.ts +27 -0
- package/client/src/components/creative-library/new-creative-card.tsx +211 -0
- package/client/src/components/creative-library/upload-creative-dialog.tsx +261 -0
- package/client/src/components/dashboard-overview.tsx +109 -0
- package/client/src/components/deals/approval-history-panel.test.tsx +240 -0
- package/client/src/components/deals/approval-history-panel.tsx +156 -0
- package/client/src/components/deals/deal-status-badge.tsx +92 -0
- package/client/src/components/deals/import-from-planner-dialog.tsx +399 -0
- package/client/src/components/deals/market-insights-panel.tsx +237 -0
- package/client/src/components/deals/reopen-deal-sheet.tsx +191 -0
- package/client/src/components/deals/request-approval-sheet.test.tsx +323 -0
- package/client/src/components/deals/request-approval-sheet.tsx +136 -0
- package/client/src/components/deals/resend-approval-sheet.tsx +201 -0
- package/client/src/components/direct-campaigns/campaign-card.tsx +283 -0
- package/client/src/components/direct-campaigns/deal-filter-panel.tsx +325 -0
- package/client/src/components/inventory/advanced-filters-panel.tsx +273 -0
- package/client/src/components/inventory/csv-upload-modal.tsx +639 -0
- package/client/src/components/inventory/inventory-availability-view.tsx +486 -0
- package/client/src/components/inventory/inventory-details-sheet.tsx +376 -0
- package/client/src/components/inventory/inventory-map-view.tsx +596 -0
- package/client/src/components/inventory/inventory-settings-menu.tsx +52 -0
- package/client/src/components/language-switcher.tsx +53 -0
- package/client/src/components/line-items/campaign-forecast-panel.tsx +138 -0
- package/client/src/components/line-items/form-insights.tsx +89 -0
- package/client/src/components/line-items/geofencing/LocationCsvUploadDrawer.tsx +100 -0
- package/client/src/components/line-items/geofencing/POIDropdown.tsx +379 -0
- package/client/src/components/line-items/geofencing/SelectedLocationsSidebar.tsx +436 -0
- package/client/src/components/line-items/geofencing/ViewFileLocationDrawer.tsx +199 -0
- package/client/src/components/line-items/geofencing/components/ExistingFilesTab.tsx +268 -0
- package/client/src/components/line-items/geofencing/components/TemplateDownloadSection.tsx +59 -0
- package/client/src/components/line-items/geofencing/components/UploadTab.tsx +215 -0
- package/client/src/components/line-items/geofencing-map.tsx +1270 -0
- package/client/src/components/line-items/inventory-availability-section.tsx +178 -0
- package/client/src/components/line-items/line-item-schedule-manager.tsx +313 -0
- package/client/src/components/line-items/manual-inventory-drawer.tsx +346 -0
- package/client/src/components/line-items/planner-inventory-card.tsx +495 -0
- package/client/src/components/line-items/planner-schedule-grid.tsx +495 -0
- package/client/src/components/line-items/schedule-rule-editor.tsx +649 -0
- package/client/src/components/line-items/schedule-rule-types.ts +122 -0
- package/client/src/components/line-items/steps/creatives-step.tsx +681 -0
- package/client/src/components/line-items/steps/inventory-schedule-step.tsx +1596 -0
- package/client/src/components/line-items/steps/inventory-step.tsx +1533 -0
- package/client/src/components/line-items/steps/line-item-details-step.tsx +916 -0
- package/client/src/components/line-items/steps/schedule-step.tsx +273 -0
- package/client/src/components/line-items/steps/summary-step.tsx +680 -0
- package/client/src/components/line-items/steps/targeting-step.tsx +1708 -0
- package/client/src/components/product-switcher.tsx +105 -0
- package/client/src/components/protected-route.tsx +49 -0
- package/client/src/components/skip-link.tsx +22 -0
- package/client/src/components/stat-card.tsx +53 -0
- package/client/src/components/status-badge.tsx +96 -0
- package/client/src/components/ui/hierarchical-venue-selector.tsx +389 -0
- package/client/src/components/ui/toaster.tsx +111 -0
- package/client/src/contexts/auth-context.tsx +181 -0
- package/client/src/contexts/sidebar-state.tsx +50 -0
- package/client/src/contexts/theme-context.tsx +66 -0
- package/client/src/data/campaign-data.json +107 -0
- package/client/src/data/countries.json +22 -0
- package/client/src/hooks/use-approval.ts +366 -0
- package/client/src/hooks/use-keyboard-shortcuts.ts +74 -0
- package/client/src/hooks/use-media-query.ts +46 -0
- package/client/src/hooks/use-mobile.tsx +19 -0
- package/client/src/hooks/use-page-title.ts +21 -0
- package/client/src/hooks/use-toast.ts +195 -0
- package/client/src/index.css +694 -0
- package/client/src/lib/__tests__/accessibility.test.ts +104 -0
- package/client/src/lib/__tests__/date-utils.test.ts +199 -0
- package/client/src/lib/__tests__/dsp-buyer-api.test.ts +127 -0
- package/client/src/lib/__tests__/dsp-buyer-integration.test.ts +247 -0
- package/client/src/lib/__tests__/storage-utils.test.ts +167 -0
- package/client/src/lib/__tests__/utils.test.ts +57 -0
- package/client/src/lib/accessibility.ts +141 -0
- package/client/src/lib/api-config.ts +9 -0
- package/client/src/lib/auth-service.ts +209 -0
- package/client/src/lib/campaign-creative-api.ts +82 -0
- package/client/src/lib/company-api.ts +61 -0
- package/client/src/lib/content-hub-api.ts +407 -0
- package/client/src/lib/creative-mapper.ts +61 -0
- package/client/src/lib/date-utils.ts +119 -0
- package/client/src/lib/deal-helpers.ts +220 -0
- package/client/src/lib/dsp-buyer-api.ts +196 -0
- package/client/src/lib/geo-import-api.ts +151 -0
- package/client/src/lib/google-poi-api.ts +305 -0
- package/client/src/lib/i18n/__tests__/formatting.test.ts +202 -0
- package/client/src/lib/i18n/formatting.ts +130 -0
- package/client/src/lib/i18n/index.ts +8 -0
- package/client/src/lib/i18n-compat.ts +76 -0
- package/client/src/lib/influence-deals-api.ts +896 -0
- package/client/src/lib/inventory-api.ts +399 -0
- package/client/src/lib/oauth-service.ts +678 -0
- package/client/src/lib/poi-types.ts +75 -0
- package/client/src/lib/queryClient.ts +144 -0
- package/client/src/lib/recommendation-api.ts +380 -0
- package/client/src/lib/storage-utils.ts +104 -0
- package/client/src/lib/tolgee.ts +85 -0
- package/client/src/lib/utils.ts +0 -0
- package/client/src/main.tsx +67 -0
- package/client/src/mapbox-draw-modes.d.ts +32 -0
- package/client/src/pages/all-folders.tsx +203 -0
- package/client/src/pages/auth-callback.tsx +115 -0
- package/client/src/pages/buyer-form.tsx +339 -0
- package/client/src/pages/buyer-list.tsx +622 -0
- package/client/src/pages/content-hub.tsx +1358 -0
- package/client/src/pages/create-deal.tsx +2093 -0
- package/client/src/pages/creative-assignment-page.tsx +548 -0
- package/client/src/pages/creatives.tsx +5 -0
- package/client/src/pages/custom-pois.tsx +425 -0
- package/client/src/pages/dashboard.tsx +615 -0
- package/client/src/pages/deal-history.tsx +434 -0
- package/client/src/pages/deal-line-items.tsx +1703 -0
- package/client/src/pages/demo-status.tsx +113 -0
- package/client/src/pages/direct-campaign-details.tsx +361 -0
- package/client/src/pages/direct-campaigns-new.tsx +824 -0
- package/client/src/pages/dsp-form.tsx +803 -0
- package/client/src/pages/dsp-list.tsx +239 -0
- package/client/src/pages/folder-content.tsx +336 -0
- package/client/src/pages/integrations.tsx +429 -0
- package/client/src/pages/line-item-creatives.tsx +789 -0
- package/client/src/pages/line-item-detail-page.tsx +684 -0
- package/client/src/pages/line-item-form-page.tsx +3261 -0
- package/client/src/pages/line-item-wizard.tsx +1207 -0
- package/client/src/pages/login.tsx +154 -0
- package/client/src/pages/not-found.tsx +23 -0
- package/client/src/pages/proof-of-play.tsx +397 -0
- package/client/src/pages/public-approval.tsx +551 -0
- package/client/src/pages/reports.tsx +231 -0
- package/client/src/pages/settings.tsx +760 -0
- package/client/src/pages/signals.tsx +389 -0
- package/client/src/pages/tags.tsx +318 -0
- package/client/src/pages/test-results.tsx +328 -0
- package/client/src/store/hooks.ts +5 -0
- package/client/src/store/index.ts +15 -0
- package/client/src/store/mapMarkerLocationsSlice.ts +241 -0
- package/client/src/styles/design-tokens.css +324 -0
- package/client/src/test/setup.ts +261 -0
- package/client/src/test/test-utils.tsx +40 -0
- package/client/src/types/approval.ts +221 -0
- package/client/src/types/content-hub.ts +209 -0
- package/client/src/types/geofencing.ts +67 -0
- package/client/src/types/transcoding.ts +140 -0
- package/client/src/vite-env.d.ts +18 -0
- package/components.json +20 -0
- package/creative-api.json +1 -0
- package/docs/AI_REFERENCE.md +459 -0
- package/docs/MWDesign-Prompt.md +132 -0
- package/docs/MWDesign-System.md +344 -0
- package/docs/test-plan.md +277 -0
- package/e2e/AUTONOMOUS-TESTING.md +406 -0
- package/e2e/README.md +219 -0
- package/e2e/autonomous-flow.spec.ts +308 -0
- package/e2e/debug-sso.spec.ts +163 -0
- package/e2e/direct-campaigns.spec.ts +219 -0
- package/e2e/explore-sso.spec.ts +149 -0
- package/e2e/fixtures/auth.ts +26 -0
- package/e2e/fixtures/enhanced-test.ts +331 -0
- package/e2e/pagination.spec.ts +280 -0
- package/e2e/view-toggle.spec.ts +312 -0
- package/generated-icon.png +0 -0
- package/i18next-scanner.config.cjs +46 -0
- package/package.json +141 -0
- package/playwright.config.ts +93 -0
- package/postcss.config.js +6 -0
- package/replit.md +196 -0
- package/screenshot-after-login.png +0 -0
- package/screenshot-contenthub-grid.png +0 -0
- package/screenshot-contenthub-list-fixed.png +0 -0
- package/screenshot-contenthub-list.png +0 -0
- package/screenshot-create-deal.png +0 -0
- package/screenshot-dashboard.png +0 -0
- package/screenshot-deals.png +0 -0
- package/screenshot-login-filled.png +0 -0
- package/screenshot-login.png +0 -0
- package/screenshot.mjs +24 -0
- package/scripts/deploy-stg.sh +185 -0
- package/shared/direct-io-schema.ts +383 -0
- package/shared/schema.ts +439 -0
- package/shared/screen-types.ts +149 -0
- package/springdocDefault.json +1 -0
- package/swagger-ui-bundle.js +2 -0
- package/swagger-ui-init.js +10316 -0
- package/tailwind.config.ts +282 -0
- package/terraform/README.md +306 -0
- package/terraform/cloudfront.tf +289 -0
- package/terraform/ecs.tf +727 -0
- package/terraform/environments/dev.tfvars +59 -0
- package/terraform/environments/production.tfvars +60 -0
- package/terraform/main.tf +47 -0
- package/terraform/outputs.tf +145 -0
- package/terraform/s3.tf +192 -0
- package/terraform/variables.tf +226 -0
- package/terraform/waf.tf +165 -0
- package/terraform-frontend/.terraform.lock.hcl +25 -0
- package/terraform-frontend/README.md +85 -0
- package/terraform-frontend/cloudfront.tf +125 -0
- package/terraform-frontend/main.tf +31 -0
- package/terraform-frontend/outputs.tf +24 -0
- package/terraform-frontend/terraform.tfvars +12 -0
- package/terraform-frontend/variables.tf +53 -0
- package/tsconfig.json +23 -0
- package/vite.config.ts +226 -0
- package/vitest.config.ts +56 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pageTitle": "Deal Approval",
|
|
3
|
+
"header": {
|
|
4
|
+
"adServer": "Influence",
|
|
5
|
+
"campaignId": "DealID"
|
|
6
|
+
},
|
|
7
|
+
"errors": {
|
|
8
|
+
"invalidLink": "Invalid Link",
|
|
9
|
+
"invalidLinkMessage": "The approval link is missing a required token. Please check your email for the correct link.",
|
|
10
|
+
"linkExpired": "Link Expired",
|
|
11
|
+
"linkExpiredMessage": "This approval link has expired. Please contact the campaign owner for a new link.",
|
|
12
|
+
"invalidLinkTitle": "Invalid Link",
|
|
13
|
+
"invalidLinkDescription": "This approval link is invalid. Please check your email for the correct link.",
|
|
14
|
+
"error": "Error",
|
|
15
|
+
"campaignNotFound": "Campaign Not Found",
|
|
16
|
+
"campaignNotFoundMessage": "The campaign associated with this link could not be found.",
|
|
17
|
+
"failedToSubmit": "Failed to submit. Please try again."
|
|
18
|
+
},
|
|
19
|
+
"loading": {
|
|
20
|
+
"campaignDetails": "Loading campaign details..."
|
|
21
|
+
},
|
|
22
|
+
"status": {
|
|
23
|
+
"approved": "Approved",
|
|
24
|
+
"rejected": "Rejected",
|
|
25
|
+
"pending": "Pending"
|
|
26
|
+
},
|
|
27
|
+
"actions": {
|
|
28
|
+
"approve": "Approve",
|
|
29
|
+
"reject": "Reject",
|
|
30
|
+
"approveRequest": "Approve Request",
|
|
31
|
+
"rejectRequest": "Reject Request",
|
|
32
|
+
"close": "Close",
|
|
33
|
+
"cancel": "Cancel",
|
|
34
|
+
"submit": "Submit"
|
|
35
|
+
},
|
|
36
|
+
"campaign": {
|
|
37
|
+
"brand": "Brand",
|
|
38
|
+
"flightDates": "Flight Dates",
|
|
39
|
+
"impressions": "Impressions",
|
|
40
|
+
"budget": "Budget",
|
|
41
|
+
"dayCap": "Day Cap",
|
|
42
|
+
"country": "Country"
|
|
43
|
+
},
|
|
44
|
+
"lineItems": {
|
|
45
|
+
"title": "Line Item Details",
|
|
46
|
+
"serialNo": "S.No",
|
|
47
|
+
"lineItem": "Line Item",
|
|
48
|
+
"lineItemId": "LID",
|
|
49
|
+
"inventory": "Inventory",
|
|
50
|
+
"flightDate": "Flight Date",
|
|
51
|
+
"impression": "Impression",
|
|
52
|
+
"budget": "Budget",
|
|
53
|
+
"actions": "Actions",
|
|
54
|
+
"publisher": "Publisher",
|
|
55
|
+
"inventories": "Inventories",
|
|
56
|
+
"duration": "Duration",
|
|
57
|
+
"resolutions": "Resolutions"
|
|
58
|
+
},
|
|
59
|
+
"tabs": {
|
|
60
|
+
"inventory": "Inventory",
|
|
61
|
+
"schedule": "Schedule",
|
|
62
|
+
"creatives": "Creatives"
|
|
63
|
+
},
|
|
64
|
+
"schedule": {
|
|
65
|
+
"pacingConfiguration": "Pacing Configuration",
|
|
66
|
+
"type": "Type",
|
|
67
|
+
"dailyCap": "Daily Cap",
|
|
68
|
+
"hourlyCap": "Hourly Cap",
|
|
69
|
+
"scheduleRule": "Schedule Rule",
|
|
70
|
+
"days": "Days",
|
|
71
|
+
"hours": "Hours",
|
|
72
|
+
"validityPeriod": "Validity Period",
|
|
73
|
+
"noScheduleRules": "No schedule rules defined"
|
|
74
|
+
},
|
|
75
|
+
"inventoryDetails": {
|
|
76
|
+
"noInventories": "No inventories found"
|
|
77
|
+
},
|
|
78
|
+
"creatives": {
|
|
79
|
+
"noCreatives": "No creatives assigned",
|
|
80
|
+
"creative": "Creative"
|
|
81
|
+
},
|
|
82
|
+
"otp": {
|
|
83
|
+
"verifyIdentity": "Verify Your Identity",
|
|
84
|
+
"verifyDescription": "We'll send a one-time verification code to your email to confirm your identity.",
|
|
85
|
+
"emailAddress": "Email Address",
|
|
86
|
+
"sendOtp": "Send OTP",
|
|
87
|
+
"sending": "Sending...",
|
|
88
|
+
"enterCode": "Enter Verification Code",
|
|
89
|
+
"codeSentTo": "We've sent a 6-digit code to",
|
|
90
|
+
"resendIn": "Resend code in",
|
|
91
|
+
"resendCode": "Resend Code",
|
|
92
|
+
"attemptsRemaining": "{{count}} attempt remaining",
|
|
93
|
+
"attemptsRemaining_plural": "{{count}} attempts remaining",
|
|
94
|
+
"verifyOtp": "Verify OTP",
|
|
95
|
+
"verifying": "Verifying...",
|
|
96
|
+
"requestOtp": "Request OTP",
|
|
97
|
+
"enter6DigitOtp": "Enter 6-digit OTP",
|
|
98
|
+
"resendOtp": "Resend OTP",
|
|
99
|
+
"resendOtpIn": "Resend OTP in {{seconds}}s",
|
|
100
|
+
"verify": "Verify",
|
|
101
|
+
"otpRequired": "Please verify your identity with OTP before making a decision."
|
|
102
|
+
},
|
|
103
|
+
"decision": {
|
|
104
|
+
"makeDecision": "Make Your Decision",
|
|
105
|
+
"decisionSubmitted": "Decision Submitted",
|
|
106
|
+
"decisionRecorded": "Decision Recorded",
|
|
107
|
+
"identityVerification": "Identity Verification",
|
|
108
|
+
"confirmApproval": "Confirm Approval",
|
|
109
|
+
"confirmRejection": "Confirm Rejection",
|
|
110
|
+
"identityVerified": "Identity Verified",
|
|
111
|
+
"canMakeDecision": "You can now make your approval decision.",
|
|
112
|
+
"dealApproved": "Deal Approved",
|
|
113
|
+
"dealRejected": "Deal Rejected",
|
|
114
|
+
"alreadyApproved": "You have already approved this deal.",
|
|
115
|
+
"alreadyRejected": "You have already rejected this deal.",
|
|
116
|
+
"alreadySubmitted": "Already Submitted",
|
|
117
|
+
"successMessage": "Your decision has been submitted successfully.",
|
|
118
|
+
"decisionAlreadyRecorded": "Your decision has already been recorded for this deal.",
|
|
119
|
+
"reviewAndConfirmApproval": "Review and confirm your approval.",
|
|
120
|
+
"provideRejectionReason": "Provide a reason for rejection.",
|
|
121
|
+
"reviewAndMakeDecision": "Review the deal and make your approval decision.",
|
|
122
|
+
"verifyToProceed": "Verify your identity to proceed with your decision.",
|
|
123
|
+
"approveCampaign": "Approve Campaign",
|
|
124
|
+
"rejectCampaign": "Reject Campaign",
|
|
125
|
+
"confirmApproveDesc": "Are you sure you want to approve this campaign? This action cannot be undone.",
|
|
126
|
+
"approveDesc": "The campaign will be marked as approved and the owner will be notified.",
|
|
127
|
+
"aboutToApprove": "You are about to approve this deal. The campaign owner will be notified of your decision.",
|
|
128
|
+
"pleaseProvideReason": "Please provide a reason for rejecting this deal.",
|
|
129
|
+
"rejectDesc": "Please provide a reason for rejecting this campaign. This helps the campaign owner understand what needs to be changed.",
|
|
130
|
+
"rejectionReason": "Rejection Reason",
|
|
131
|
+
"rejectionRequired": "A rejection reason is required to proceed.",
|
|
132
|
+
"enterRejectionReason": "Enter reason for rejection...",
|
|
133
|
+
"confirming": "Submitting...",
|
|
134
|
+
"approving": "Approving...",
|
|
135
|
+
"rejecting": "Rejecting...",
|
|
136
|
+
"confirmApprovalBtn": "Confirm Approval",
|
|
137
|
+
"confirmRejectionBtn": "Confirm Rejection",
|
|
138
|
+
"approveDeal": "Approve Deal",
|
|
139
|
+
"rejectDeal": "Reject Deal",
|
|
140
|
+
"campaignApprovedSuccess": "Campaign approved successfully.",
|
|
141
|
+
"campaignRejectedSuccess": "Campaign rejected successfully.",
|
|
142
|
+
"noFurtherAction": "This deal has already been {{decision}}. No further action is required."
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"list": {
|
|
3
|
+
"title": "DSP's Buyers",
|
|
4
|
+
"subtitle": "Manage your DSP's buyers efficiently",
|
|
5
|
+
"addBuyer": "Add DSP - Buyers",
|
|
6
|
+
"searchPlaceholder": "Search here...",
|
|
7
|
+
"noResults": "No buyers found",
|
|
8
|
+
"columns": {
|
|
9
|
+
"sNo": "S.No",
|
|
10
|
+
"dsp": "DSP",
|
|
11
|
+
"seatId": "Seat ID",
|
|
12
|
+
"seatName": "Seat Name",
|
|
13
|
+
"buyerAccountId": "Buyer Account ID",
|
|
14
|
+
"emailId": "Email ID",
|
|
15
|
+
"country": "Country",
|
|
16
|
+
"actions": "Actions"
|
|
17
|
+
},
|
|
18
|
+
"actions": {
|
|
19
|
+
"editBuyer": "Edit Buyer",
|
|
20
|
+
"remove": "Remove"
|
|
21
|
+
},
|
|
22
|
+
"pagination": {
|
|
23
|
+
"pageItems": "Page Items",
|
|
24
|
+
"of": "of",
|
|
25
|
+
"page": "Page"
|
|
26
|
+
},
|
|
27
|
+
"deleteConfirm": {
|
|
28
|
+
"title": "Delete Buyer",
|
|
29
|
+
"message": "Are you sure you want to delete this buyer? This action cannot be undone.",
|
|
30
|
+
"cancel": "Cancel",
|
|
31
|
+
"delete": "Delete"
|
|
32
|
+
},
|
|
33
|
+
"deleteSuccess": "Buyer deleted successfully"
|
|
34
|
+
},
|
|
35
|
+
"form": {
|
|
36
|
+
"addTitle": "Add New Buyer",
|
|
37
|
+
"editTitle": "Edit Buyer",
|
|
38
|
+
"subtitle": "Create your buyer here",
|
|
39
|
+
"cancel": "Cancel",
|
|
40
|
+
"saveBuyer": "Save Buyer",
|
|
41
|
+
"saveSuccess": "Buyer saved successfully",
|
|
42
|
+
"fields": {
|
|
43
|
+
"dsp": "DSP",
|
|
44
|
+
"selectDsp": "Select DSP",
|
|
45
|
+
"seatId": "Seat ID",
|
|
46
|
+
"enterSeatId": "Enter Seat ID",
|
|
47
|
+
"seatName": "Seat Name",
|
|
48
|
+
"enterSeatName": "Enter Seat Name",
|
|
49
|
+
"buyerAccountId": "Buyer Account ID",
|
|
50
|
+
"enterBuyerAccountId": "Enter Buyer Account ID",
|
|
51
|
+
"emailId": "Email ID",
|
|
52
|
+
"enterEmailId": "Enter Email ID",
|
|
53
|
+
"country": "Country",
|
|
54
|
+
"selectCountry": "Select Country"
|
|
55
|
+
},
|
|
56
|
+
"validation": {
|
|
57
|
+
"dspRequired": "DSP is required",
|
|
58
|
+
"seatIdRequired": "Seat ID is required",
|
|
59
|
+
"seatNameRequired": "Seat Name is required",
|
|
60
|
+
"buyerAccountIdRequired": "Buyer Account ID is required",
|
|
61
|
+
"emailInvalid": "Please enter a valid email address",
|
|
62
|
+
"countryRequired": "Country is required"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
{
|
|
2
|
+
"accessibility": {
|
|
3
|
+
"closeMenu": "Close menu",
|
|
4
|
+
"collapseSection": "Collapse section",
|
|
5
|
+
"expandSection": "Expand section",
|
|
6
|
+
"loaded": "Content loaded",
|
|
7
|
+
"loading": "Loading content",
|
|
8
|
+
"notSelected": "Not selected",
|
|
9
|
+
"openMenu": "Open menu",
|
|
10
|
+
"selected": "Selected",
|
|
11
|
+
"selectLanguage": "Select language",
|
|
12
|
+
"skipToContent": "Skip to main content",
|
|
13
|
+
"sortAscending": "Sort ascending",
|
|
14
|
+
"sortDescending": "Sort descending",
|
|
15
|
+
"toggleSidebar": "Toggle sidebar",
|
|
16
|
+
"switchProduct": "Switch product"
|
|
17
|
+
},
|
|
18
|
+
"actions": {
|
|
19
|
+
"add": "Add",
|
|
20
|
+
"apply": "Apply",
|
|
21
|
+
"archive": "Archive",
|
|
22
|
+
"back": "Back",
|
|
23
|
+
"cancel": "Cancel",
|
|
24
|
+
"clear": "Clear",
|
|
25
|
+
"close": "Close",
|
|
26
|
+
"confirm": "Confirm",
|
|
27
|
+
"copy": "Copy",
|
|
28
|
+
"create": "Create",
|
|
29
|
+
"delete": "Delete",
|
|
30
|
+
"deselectAll": "Deselect All",
|
|
31
|
+
"download": "Download",
|
|
32
|
+
"duplicate": "Duplicate",
|
|
33
|
+
"edit": "Edit",
|
|
34
|
+
"export": "Export",
|
|
35
|
+
"filter": "Filter",
|
|
36
|
+
"import": "Import",
|
|
37
|
+
"loading": "Loading...",
|
|
38
|
+
"next": "Next",
|
|
39
|
+
"preview": "Preview",
|
|
40
|
+
"previous": "Previous",
|
|
41
|
+
"processing": "Processing...",
|
|
42
|
+
"refresh": "Refresh",
|
|
43
|
+
"remove": "Remove",
|
|
44
|
+
"reset": "Reset",
|
|
45
|
+
"restore": "Restore",
|
|
46
|
+
"save": "Save",
|
|
47
|
+
"saving": "Saving...",
|
|
48
|
+
"search": "Search",
|
|
49
|
+
"select": "Select",
|
|
50
|
+
"selectAll": "Select All",
|
|
51
|
+
"sort": "Sort",
|
|
52
|
+
"submit": "Submit",
|
|
53
|
+
"upload": "Upload",
|
|
54
|
+
"view": "View"
|
|
55
|
+
},
|
|
56
|
+
"app": {
|
|
57
|
+
"copyright": "Copyrights @ Movingwalls Pvt Ltd",
|
|
58
|
+
"name": "Influence",
|
|
59
|
+
"tagline": "Digital Advertising Platform"
|
|
60
|
+
},
|
|
61
|
+
"thisDeal": "this deal",
|
|
62
|
+
"confirmations": {
|
|
63
|
+
"deleteWarning": "Are you sure you want to delete {{item}}?",
|
|
64
|
+
"cannotUndo": "This action cannot be undone."
|
|
65
|
+
},
|
|
66
|
+
"messages": {
|
|
67
|
+
"confirmAction": "Are you sure you want to proceed?",
|
|
68
|
+
"confirmDelete": "Are you sure you want to delete this item?",
|
|
69
|
+
"createdSuccessfully": "Created successfully",
|
|
70
|
+
"deletedSuccessfully": "Deleted successfully",
|
|
71
|
+
"error": "Error",
|
|
72
|
+
"info": "Information",
|
|
73
|
+
"invalidFormat": "Invalid format",
|
|
74
|
+
"itemCreated": "{{item}} created successfully",
|
|
75
|
+
"itemDeleted": "{{item}} deleted successfully",
|
|
76
|
+
"itemSaved": "{{item}} saved successfully",
|
|
77
|
+
"itemUpdated": "{{item}} updated successfully",
|
|
78
|
+
"networkError": "Network error. Please check your connection.",
|
|
79
|
+
"noData": "No data available",
|
|
80
|
+
"noResults": "No results found",
|
|
81
|
+
"required": "This field is required",
|
|
82
|
+
"savedSuccessfully": "Saved successfully",
|
|
83
|
+
"sessionExpired": "Session expired. Please log in again.",
|
|
84
|
+
"success": "Success",
|
|
85
|
+
"tryAgain": "Please try again",
|
|
86
|
+
"unauthorized": "You are not authorized to perform this action.",
|
|
87
|
+
"updatedSuccessfully": "Updated successfully",
|
|
88
|
+
"warning": "Warning"
|
|
89
|
+
},
|
|
90
|
+
"pagination": {
|
|
91
|
+
"first": "First",
|
|
92
|
+
"items": "items",
|
|
93
|
+
"last": "Last",
|
|
94
|
+
"of": "of",
|
|
95
|
+
"page": "Page",
|
|
96
|
+
"rowsPerPage": "Rows per page",
|
|
97
|
+
"showingItems": "Showing {{from}} to {{to}} of {{total}} items"
|
|
98
|
+
},
|
|
99
|
+
"pwa": {
|
|
100
|
+
"dismiss": "Not now",
|
|
101
|
+
"install": "Install App",
|
|
102
|
+
"installDescription": "Install Influence for a better experience"
|
|
103
|
+
},
|
|
104
|
+
"status": {
|
|
105
|
+
"active": "Active",
|
|
106
|
+
"approved": "Approved",
|
|
107
|
+
"archived": "Archived",
|
|
108
|
+
"cancelled": "Cancelled",
|
|
109
|
+
"completed": "Completed",
|
|
110
|
+
"draft": "Draft",
|
|
111
|
+
"expired": "Expired",
|
|
112
|
+
"inProgress": "In Progress",
|
|
113
|
+
"inactive": "Inactive",
|
|
114
|
+
"live": "Live",
|
|
115
|
+
"maintenance": "Maintenance",
|
|
116
|
+
"paused": "Paused",
|
|
117
|
+
"pending": "Pending",
|
|
118
|
+
"published": "Published",
|
|
119
|
+
"rejected": "Rejected",
|
|
120
|
+
"scheduled": "Scheduled"
|
|
121
|
+
},
|
|
122
|
+
"time": {
|
|
123
|
+
"dateRange": "Date Range",
|
|
124
|
+
"endDate": "End Date",
|
|
125
|
+
"from": "From",
|
|
126
|
+
"lastMonth": "Last Month",
|
|
127
|
+
"lastWeek": "Last Week",
|
|
128
|
+
"lastYear": "Last Year",
|
|
129
|
+
"startDate": "Start Date",
|
|
130
|
+
"thisMonth": "This Month",
|
|
131
|
+
"thisWeek": "This Week",
|
|
132
|
+
"thisYear": "This Year",
|
|
133
|
+
"to": "To",
|
|
134
|
+
"today": "Today",
|
|
135
|
+
"tomorrow": "Tomorrow",
|
|
136
|
+
"yesterday": "Yesterday"
|
|
137
|
+
},
|
|
138
|
+
"user": {
|
|
139
|
+
"company": "Company",
|
|
140
|
+
"email": "Email",
|
|
141
|
+
"login": "Login",
|
|
142
|
+
"logout": "Logout",
|
|
143
|
+
"name": "Name",
|
|
144
|
+
"profile": "Profile",
|
|
145
|
+
"reportBug": "Report Bug",
|
|
146
|
+
"role": "Role",
|
|
147
|
+
"settings": "Settings"
|
|
148
|
+
},
|
|
149
|
+
"validation": {
|
|
150
|
+
"dateInFuture": "Date must be in the future",
|
|
151
|
+
"dateInPast": "Date must be in the past",
|
|
152
|
+
"email": "Please enter a valid email address",
|
|
153
|
+
"endAfterStart": "End date must be after start date",
|
|
154
|
+
"max": "{{field}} must be at most {{max}}",
|
|
155
|
+
"maxLength": "{{field}} must be at most {{max}} characters",
|
|
156
|
+
"min": "{{field}} must be at least {{min}}",
|
|
157
|
+
"minLength": "{{field}} must be at least {{min}} characters",
|
|
158
|
+
"number": "Please enter a valid number",
|
|
159
|
+
"positive": "{{field}} must be a positive number",
|
|
160
|
+
"required": "{{field}} is required",
|
|
161
|
+
"url": "Please enter a valid URL"
|
|
162
|
+
},
|
|
163
|
+
"login": {
|
|
164
|
+
"redirecting": "Redirecting to login...",
|
|
165
|
+
"signIn": "Sign In",
|
|
166
|
+
"subtitle": "Sign in to access your global OOH campaign management platform",
|
|
167
|
+
"signInWithMWID": "Sign in with MW ID",
|
|
168
|
+
"hero": {
|
|
169
|
+
"title": "Control Your OOH",
|
|
170
|
+
"titleLine2": "Advertising In One Platform",
|
|
171
|
+
"description": "Global technology platform built by OOH experts. Automate planning, buying, executing, and measuring campaigns worldwide.",
|
|
172
|
+
"globalReach": "Global Reach",
|
|
173
|
+
"mediaSites": "500K+ media sites across 4 continents"
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"products": {
|
|
177
|
+
"planner": {
|
|
178
|
+
"name": "Planner",
|
|
179
|
+
"description": "Plan your campaigns effectively"
|
|
180
|
+
},
|
|
181
|
+
"influence": {
|
|
182
|
+
"name": "Influence",
|
|
183
|
+
"description": "Manage your active deals with ease"
|
|
184
|
+
},
|
|
185
|
+
"inventory": {
|
|
186
|
+
"name": "Inventory",
|
|
187
|
+
"description": "Manage your Inventories"
|
|
188
|
+
},
|
|
189
|
+
"measure": {
|
|
190
|
+
"name": "Measure",
|
|
191
|
+
"description": "Track and manage your data with ease"
|
|
192
|
+
},
|
|
193
|
+
"console": {
|
|
194
|
+
"name": "Console",
|
|
195
|
+
"description": "Manage your account"
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"creatives": {
|
|
199
|
+
"title": "Manage Creatives",
|
|
200
|
+
"assignment": "Creative Assignment",
|
|
201
|
+
"assignDescription": "Upload and assign creative assets to your line item",
|
|
202
|
+
"addCreatives": "Add Creatives",
|
|
203
|
+
"creativesCount": "{{count}} Creative",
|
|
204
|
+
"creativesCount_plural": "{{count}} Creatives",
|
|
205
|
+
"noCreativesAssigned": "No creatives assigned",
|
|
206
|
+
"noCreativesDescription": "Click \"Add Creatives\" to assign creative assets from your content library",
|
|
207
|
+
"added": "Creatives added",
|
|
208
|
+
"addedDescription": "Creatives have been assigned to the line item.",
|
|
209
|
+
"errorAdding": "Error adding creatives",
|
|
210
|
+
"errorAddingDescription": "Failed to add creatives",
|
|
211
|
+
"removed": "Creative removed",
|
|
212
|
+
"removedDescription": "Creative removed from line item.",
|
|
213
|
+
"errorRemoving": "Error removing creative",
|
|
214
|
+
"errorRemovingDescription": "Failed to remove creative",
|
|
215
|
+
"selectTitle": "Add Creatives",
|
|
216
|
+
"selectDescription": "Select creatives from your Content Hub to assign to this line item."
|
|
217
|
+
}
|
|
218
|
+
}
|