services/config/globeDefaults.jsjavascript
/*
  Central place for the Value Partnership globe's structured/complex default
  values - the ones that can't sensibly be a CONFIG_SCHEMA entry (config-schema.js)
  because they aren't a single number/string/boolean a URL param could carry.
  Simple tunable values (colors, thresholds, durations) live in CONFIG_SCHEMA
  instead, resolved via useConfig() - see InteractiveGlobe.jsx/GlobePage.jsx
  for how both halves get consumed. The point of splitting these out of their
  consuming components and into one file is purely findability: previously
  this content was scattered across InteractiveGlobe.jsx, GlobePage.jsx,
  GlobeDetailCard.jsx and countryMeta.js.
*/

import { resolveAssetPath } from "../../utils/resolveAssetPath";

// pin_orange.svg/pin_petrol.svg from the old app, ported as-is
export const MARKER_ICONS = {
  outcome: resolveAssetPath("/assets/images/value-partnership/marker_orange.svg"),
  impact: resolveAssetPath("/assets/images/value-partnership/marker_petrol.svg"),
};

// initial filter state, ported verbatim from the old globe-page.js
// constructor - the driver codes (WF/OP/ENV/CL/PE, TE/OP/WF/F/ST/DI) match
// content.valuePartnership.points[].drivers, not content.drivers' ids
export const INITIAL_FILTERS = {
  search: "",
  impactCasesActive: true,
  outcomeCasesActive: true,

  checkedStrategyCases: [
    { name: "Access", checked: true, value: "AC" },
    { name: "Efficiency", checked: true, value: "EF" },
    { name: "Clinical Excellence", checked: true, value: "CE" },
  ],

  checkedImpactCases: [
    { name: "Workforce", checked: true, value: "WF" },
    { name: "Operational", checked: true, value: "OP" },
    { name: "Environmental", checked: true, value: "ENV" },
    { name: "Clinical", checked: true, value: "CL" },
    { name: "Patient Experience", checked: true, value: "PE" },
  ],
  checkedOutcomeCases: [
    {
      name: "Value Drivers",
      items: [
        { name: "Technology", checked: true, value: "TE" },
        { name: "Operations", checked: true, value: "OP" },
        { name: "Workforce", checked: true, value: "WF" },
        { name: "Facility", checked: true, value: "F" },
      ],
    },
    {
      name: "Excellence Drivers",
      items: [
        { name: "Strategic Transformation", checked: true, value: "ST" },
        { name: "Digital Innovation", checked: true, value: "DI" },
      ],
    },
  ],
};

// impact-case category keys, in the old app's fixed tab order (see
// value-globe.js#render's card__tabs block) - only categories actually
// present on the point become tabs. Icon names are @ui-marcom/icon font
// classes (icon-<name> in shared/assets/icons/icons.css).
export const IMPACT_CATEGORIES = [
  ["workforce", "Workforce", "globe"],
  ["operational", "Operational", "settings"],
  ["environmental", "Environmental", "user"],
  ["facility", "Facility", "hospital"],
  ["clinical", "Clinical", "id-card"],
  ["patient_experience", "Patient Experience", "heart"],
];

export const TAG_META = {
  outcome: { label: "Customer Outcome Case", modifier: "orange" },
  impact: { label: "Customer Impact Case", modifier: "petrol" },
};

// The Siemens source data spells a few country names differently from
// world-countries' `name.common` (abbreviations, an outdated exonym, a
// trailing space). Map the raw strings we actually see in the dataset to
// the canonical common name before looking them up. Ported verbatim from
// globe-proto/src/lib/countryMeta.ts.
export const COUNTRY_NAME_ALIASES = {
  "usa": "United States",
  "uk": "United Kingdom",
  "turkey": "Türkiye",
  "united arabian emirates (uae)": "United Arab Emirates",
};