@aranova/tracking-react 1.4.1 → 1.5.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/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
1
  export { AdPlatformTracking, AdPlatformTrackingProps, BookingHandoffLink, BookingHandoffLinkProps, BookingHandoffOptions, BookingSubmitState, BookingSubmitStatus, ConsentBanner, ConsentBannerProps, CreateTrackingOptions, CreateTrackingResult, GoogleAdsTracking, GoogleAdsTrackingProps, PhoneField, PhoneFieldApi, PhoneFieldProps, PhoneInputProps, TrackingProviderProps, UseConsentResult, UseCookiePreferencesOptions, UseCookiePreferencesResult, UsePhoneFieldOptions, createTracking, useBookingHandoffUrl, useBookingIntegration, useBookingSlots, useBookingSubmit, useConsent, useConsentState, useCookiePreferences, useGclid, usePhoneConfig, usePhoneField, useTrackingParams } from '@aranova/tracking-react/client';
2
2
  import { T as TrackingParams, a as TrackingInstallSurface, b as TrackingEnvironment, c as TrackingClientContext, d as TrackingEventCreatePayload, e as TrackingSessionUpsertPayload } from './phone-utils-CM8eUPz8.mjs';
3
3
  export { C as ConsentChoice, f as ConsentChoiceState, g as ConsentSource, h as ConsentState, D as DEFAULT_DECLINE_TTL_DAYS, i as DEFAULT_PHONE_COUNTRY, G as GtagEnvironmentMap, M as MetaPixelEnvironmentMap, P as ParsedPhone, j as PhoneConfig, k as PhoneDisplayFormat, S as SetConsentOptions, l as TrackedField, m as TrackingInitConfig, n as formatPhone, o as formatPhoneAsTyped, p as getConsentChoice, q as getConsentState, r as onConsentChange, s as optIn, t as optOut, u as parsePhone, v as phoneField, w as resetConsent, x as setConsentState, y as toE164 } from './phone-utils-CM8eUPz8.mjs';
4
- export { A as AranovaApiError, B as BusinessConfig, a as BusinessConfigFeatures, b as BusinessConfigService, C as CompareTo, c as ConversionUserData, d as CurrencyRevenue, e as CustomerCurrencyDelta, f as CustomerCurrencyTotal, g as CustomerGetOptions, h as CustomerGetResult, i as CustomerKpis, j as CustomerKpisDeltas, k as CustomerKpisPrevious, l as CustomerListPage, m as CustomerListQuery, n as CustomerProfile, o as CustomerSegment, p as CustomerSegmentCount, q as CustomerSortField, r as CustomerSummary, s as CustomerSummaryQuery, D as DistinctCustomersByCurrency, E as EffectiveSaleProperty, G as Granularity, N as NAMED_RANGES, t as NamedRange, P as PublicServiceItem, S as SALE_SOURCES, u as SUPPORTED_CURRENCIES, v as Sale, w as SaleBuiltinRequirableField, x as SaleCursorPage, y as SaleFilters, z as SaleInput, F as SaleItem, H as SaleItemInput, I as SaleKeysetSortField, J as SaleListPage, K as SaleListQuery, L as SaleListQueryV2, M as SalePropertyOption, O as SalePropertyType, Q as SaleService, R as SaleServiceInput, T as SaleSortField, U as SaleSortOrder, V as SaleSource, W as SaleSourceFacts, X as SaleSummary, Y as SaleSummaryPrevious, Z as SaleSummaryQuery, _ as SaleSummaryQueryV2, $ as SaleSummaryV2, a0 as SaleUpdateInput, a1 as SalesBusinessClient, a2 as SalesCategoryBreakdown, a3 as SalesClient, a4 as SalesClientConfig, a5 as SalesCustomersClient, a6 as SalesServiceBreakdown, a7 as SalesTransportConfig, a8 as SalesTrendPoint, a9 as SummaryCurrencyDelta, aa as SummaryDeltas, ab as SummaryWindow, ac as SupportedCurrency, ad as TRACKING_RANGES, ae as TrackingOverviewRange, af as clearStashedUserData, ag as createSalesClient, ah as currencySchema, ai as fetchServices, aj as formatDateInTz, ak as formatMoney, al as fromMinor, am as saleCreateSchema, an as saleItemSchema, ao as saleServiceSchema, ap as saleUpdateSchema, aq as salesRequest, ar as stashUserData, as as toMinor } from './sales-CxJVthx_.mjs';
5
- export { B as BookingDropOff, a as BookingFormSubmit, b as BookingInput, c as BookingMode, d as BookingOutcome, e as BookingSimulation, f as BookingSubmitOptions, C as ConversionConfig, g as ConversionConfigStore, S as SalesBookingsClient, T as TrackingConfigReference, h as getTrackingConfigRuntime, n as newBookingAttemptKey, r as resolveConversionConfig, i as resolveTrackingConfigUrl } from './bookings-CqCuuyP6.mjs';
6
- export { A as AutomaticEventName, B as BookableDay, a as BookingHandoffPrefill, b as BookingIntegration, c as BookingOption, d as BookingProvider, e as BookingRules, C as CtaClickConfig, f as CtaClickMetadata, E as EVENT_SEMANTICS, g as EventCategory, h as EventClientVisibility, i as EventConfig, j as EventKind, k as EventMetadata, l as EventName, m as EventOutcomeRole, n as EventSemantics, F as FormStartConfig, o as FormStartMetadata, p as FormStepConfig, q as FormStepMetadata, M as ManualEventName, r as MultiPageSessionConfig, s as MultiPageSessionMetadata, P as PageExitConfig, t as PageExitMetadata, u as PageIdentity, v as PageViewConfig, w as PageViewMetadata, x as PhoneClickConfig, y as PhoneClickMetadata, R as RegisteredAutomaticEvents, z as RegisteredManualEvents, S as ScrollDepthConfig, D as ScrollDepthMetadata, G as SdkHeartbeatConfig, H as SdkHeartbeatMetadata, I as SiteLinkArrivalConfig, J as SiteLinkArrivalMetadata, K as SiteLinkClickConfig, L as SiteLinkClickMetadata, N as SpecificPageName, O as SpecificPageVisitConfig, Q as SpecificPageVisitMetadata, T as TimeOnSiteConfig, U as TimeOnSiteMetadata, V as TrackableEvent, W as TriggerRegistryConfig, X as TypedTrackEventOptions, Y as TypedTrackingClient, Z as bookableSlots, _ as buildBookingHandoffUrl, $ as getBookingIntegration, a0 as getEventSemantics, a1 as shopToday } from './ingest-typed-D7UZr0EM.mjs';
4
+ export { A as AranovaApiError, B as BusinessConfig, a as BusinessConfigFeatures, b as BusinessConfigService, C as CompareTo, c as ConversionUserData, d as CurrencyRevenue, e as CustomerCurrencyDelta, f as CustomerCurrencyTotal, g as CustomerGetOptions, h as CustomerGetResult, i as CustomerKpis, j as CustomerKpisDeltas, k as CustomerKpisPrevious, l as CustomerListPage, m as CustomerListQuery, n as CustomerProfile, o as CustomerSegment, p as CustomerSegmentCount, q as CustomerSortField, r as CustomerSummary, s as CustomerSummaryQuery, D as DistinctCustomersByCurrency, E as EffectiveSaleProperty, G as Granularity, N as NAMED_RANGES, t as NamedRange, P as PublicServiceItem, S as SALE_SOURCES, u as SUPPORTED_CURRENCIES, v as Sale, w as SaleBuiltinRequirableField, x as SaleCursorPage, y as SaleFilters, z as SaleInput, F as SaleItem, H as SaleItemInput, I as SaleKeysetSortField, J as SaleListPage, K as SaleListQuery, L as SaleListQueryV2, M as SalePropertyOption, O as SalePropertyType, Q as SaleService, R as SaleServiceInput, T as SaleSortField, U as SaleSortOrder, V as SaleSource, W as SaleSourceFacts, X as SaleSummary, Y as SaleSummaryPrevious, Z as SaleSummaryQuery, _ as SaleSummaryQueryV2, $ as SaleSummaryV2, a0 as SaleUpdateInput, a1 as SalesBusinessClient, a2 as SalesCategoryBreakdown, a3 as SalesClient, a4 as SalesClientConfig, a5 as SalesCustomersClient, a6 as SalesServiceBreakdown, a7 as SalesTransportConfig, a8 as SalesTrendPoint, a9 as SummaryCurrencyDelta, aa as SummaryDeltas, ab as SummaryWindow, ac as SupportedCurrency, ad as TRACKING_RANGES, ae as TrackingOverviewRange, af as clearStashedUserData, ag as createSalesClient, ah as currencySchema, ai as fetchServices, aj as formatDateInTz, ak as formatMoney, al as fromMinor, am as saleCreateSchema, an as saleItemSchema, ao as saleServiceSchema, ap as saleUpdateSchema, aq as salesRequest, ar as stashUserData, as as toMinor } from './sales-BdU9BRdG.mjs';
5
+ export { B as BookingDropOff, a as BookingFormSubmit, b as BookingInput, c as BookingMode, d as BookingOutcome, e as BookingSimulation, f as BookingSubmitOptions, C as ConversionConfig, g as ConversionConfigStore, S as SalesBookingsClient, T as TrackingConfigReference, h as getTrackingConfigRuntime, n as newBookingAttemptKey, r as resolveConversionConfig, i as resolveTrackingConfigUrl } from './bookings-CGWiBxnC.mjs';
6
+ export { A as AutomaticEventName, B as BookableDay, a as BookingHandoffPrefill, b as BookingIntegration, c as BookingOption, d as BookingOptionGroup, e as BookingProvider, f as BookingRules, C as CtaClickConfig, g as CtaClickMetadata, E as EVENT_SEMANTICS, h as EventCategory, i as EventClientVisibility, j as EventConfig, k as EventKind, l as EventMetadata, m as EventName, n as EventOutcomeRole, o as EventSemantics, F as FormStartConfig, p as FormStartMetadata, q as FormStepConfig, r as FormStepMetadata, M as ManualEventName, s as MultiPageSessionConfig, t as MultiPageSessionMetadata, P as PageExitConfig, u as PageExitMetadata, v as PageIdentity, w as PageViewConfig, x as PageViewMetadata, y as PhoneClickConfig, z as PhoneClickMetadata, R as RegisteredAutomaticEvents, D as RegisteredManualEvents, S as ScrollDepthConfig, G as ScrollDepthMetadata, H as SdkHeartbeatConfig, I as SdkHeartbeatMetadata, J as SiteLinkArrivalConfig, K as SiteLinkArrivalMetadata, L as SiteLinkClickConfig, N as SiteLinkClickMetadata, O as SpecificPageName, Q as SpecificPageVisitConfig, T as SpecificPageVisitMetadata, U as TimeOnSiteConfig, V as TimeOnSiteMetadata, W as TrackableEvent, X as TriggerRegistryConfig, Y as TypedTrackEventOptions, Z as TypedTrackingClient, _ as bookableSlots, $ as buildBookingHandoffUrl, a0 as getBookingIntegration, a1 as getEventSemantics, a2 as groupBookingOptions, a3 as shopToday } from './ingest-typed-CytXGVw4.mjs';
7
7
  export { F as FormSubmitConfig, a as FormSubmitMetadata, J as JsonValue } from './form-submit-BLb28aCk.mjs';
8
8
  export { CountryCode } from 'libphonenumber-js';
9
9
  import 'zod/mini';
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  export { AdPlatformTracking, AdPlatformTrackingProps, BookingHandoffLink, BookingHandoffLinkProps, BookingHandoffOptions, BookingSubmitState, BookingSubmitStatus, ConsentBanner, ConsentBannerProps, CreateTrackingOptions, CreateTrackingResult, GoogleAdsTracking, GoogleAdsTrackingProps, PhoneField, PhoneFieldApi, PhoneFieldProps, PhoneInputProps, TrackingProviderProps, UseConsentResult, UseCookiePreferencesOptions, UseCookiePreferencesResult, UsePhoneFieldOptions, createTracking, useBookingHandoffUrl, useBookingIntegration, useBookingSlots, useBookingSubmit, useConsent, useConsentState, useCookiePreferences, useGclid, usePhoneConfig, usePhoneField, useTrackingParams } from '@aranova/tracking-react/client';
2
2
  import { T as TrackingParams, a as TrackingInstallSurface, b as TrackingEnvironment, c as TrackingClientContext, d as TrackingEventCreatePayload, e as TrackingSessionUpsertPayload } from './phone-utils-l8ey3Zdm.js';
3
3
  export { C as ConsentChoice, f as ConsentChoiceState, g as ConsentSource, h as ConsentState, D as DEFAULT_DECLINE_TTL_DAYS, i as DEFAULT_PHONE_COUNTRY, G as GtagEnvironmentMap, M as MetaPixelEnvironmentMap, P as ParsedPhone, j as PhoneConfig, k as PhoneDisplayFormat, S as SetConsentOptions, l as TrackedField, m as TrackingInitConfig, n as formatPhone, o as formatPhoneAsTyped, p as getConsentChoice, q as getConsentState, r as onConsentChange, s as optIn, t as optOut, u as parsePhone, v as phoneField, w as resetConsent, x as setConsentState, y as toE164 } from './phone-utils-l8ey3Zdm.js';
4
- export { A as AranovaApiError, B as BusinessConfig, a as BusinessConfigFeatures, b as BusinessConfigService, C as CompareTo, c as ConversionUserData, d as CurrencyRevenue, e as CustomerCurrencyDelta, f as CustomerCurrencyTotal, g as CustomerGetOptions, h as CustomerGetResult, i as CustomerKpis, j as CustomerKpisDeltas, k as CustomerKpisPrevious, l as CustomerListPage, m as CustomerListQuery, n as CustomerProfile, o as CustomerSegment, p as CustomerSegmentCount, q as CustomerSortField, r as CustomerSummary, s as CustomerSummaryQuery, D as DistinctCustomersByCurrency, E as EffectiveSaleProperty, G as Granularity, N as NAMED_RANGES, t as NamedRange, P as PublicServiceItem, S as SALE_SOURCES, u as SUPPORTED_CURRENCIES, v as Sale, w as SaleBuiltinRequirableField, x as SaleCursorPage, y as SaleFilters, z as SaleInput, F as SaleItem, H as SaleItemInput, I as SaleKeysetSortField, J as SaleListPage, K as SaleListQuery, L as SaleListQueryV2, M as SalePropertyOption, O as SalePropertyType, Q as SaleService, R as SaleServiceInput, T as SaleSortField, U as SaleSortOrder, V as SaleSource, W as SaleSourceFacts, X as SaleSummary, Y as SaleSummaryPrevious, Z as SaleSummaryQuery, _ as SaleSummaryQueryV2, $ as SaleSummaryV2, a0 as SaleUpdateInput, a1 as SalesBusinessClient, a2 as SalesCategoryBreakdown, a3 as SalesClient, a4 as SalesClientConfig, a5 as SalesCustomersClient, a6 as SalesServiceBreakdown, a7 as SalesTransportConfig, a8 as SalesTrendPoint, a9 as SummaryCurrencyDelta, aa as SummaryDeltas, ab as SummaryWindow, ac as SupportedCurrency, ad as TRACKING_RANGES, ae as TrackingOverviewRange, af as clearStashedUserData, ag as createSalesClient, ah as currencySchema, ai as fetchServices, aj as formatDateInTz, ak as formatMoney, al as fromMinor, am as saleCreateSchema, an as saleItemSchema, ao as saleServiceSchema, ap as saleUpdateSchema, aq as salesRequest, ar as stashUserData, as as toMinor } from './sales-hlcVTJSS.js';
5
- export { B as BookingDropOff, a as BookingFormSubmit, b as BookingInput, c as BookingMode, d as BookingOutcome, e as BookingSimulation, f as BookingSubmitOptions, C as ConversionConfig, g as ConversionConfigStore, S as SalesBookingsClient, T as TrackingConfigReference, h as getTrackingConfigRuntime, n as newBookingAttemptKey, r as resolveConversionConfig, i as resolveTrackingConfigUrl } from './bookings-DIu1ho6v.js';
6
- export { A as AutomaticEventName, B as BookableDay, a as BookingHandoffPrefill, b as BookingIntegration, c as BookingOption, d as BookingProvider, e as BookingRules, C as CtaClickConfig, f as CtaClickMetadata, E as EVENT_SEMANTICS, g as EventCategory, h as EventClientVisibility, i as EventConfig, j as EventKind, k as EventMetadata, l as EventName, m as EventOutcomeRole, n as EventSemantics, F as FormStartConfig, o as FormStartMetadata, p as FormStepConfig, q as FormStepMetadata, M as ManualEventName, r as MultiPageSessionConfig, s as MultiPageSessionMetadata, P as PageExitConfig, t as PageExitMetadata, u as PageIdentity, v as PageViewConfig, w as PageViewMetadata, x as PhoneClickConfig, y as PhoneClickMetadata, R as RegisteredAutomaticEvents, z as RegisteredManualEvents, S as ScrollDepthConfig, D as ScrollDepthMetadata, G as SdkHeartbeatConfig, H as SdkHeartbeatMetadata, I as SiteLinkArrivalConfig, J as SiteLinkArrivalMetadata, K as SiteLinkClickConfig, L as SiteLinkClickMetadata, N as SpecificPageName, O as SpecificPageVisitConfig, Q as SpecificPageVisitMetadata, T as TimeOnSiteConfig, U as TimeOnSiteMetadata, V as TrackableEvent, W as TriggerRegistryConfig, X as TypedTrackEventOptions, Y as TypedTrackingClient, Z as bookableSlots, _ as buildBookingHandoffUrl, $ as getBookingIntegration, a0 as getEventSemantics, a1 as shopToday } from './ingest-typed-D2S3Kb8m.js';
4
+ export { A as AranovaApiError, B as BusinessConfig, a as BusinessConfigFeatures, b as BusinessConfigService, C as CompareTo, c as ConversionUserData, d as CurrencyRevenue, e as CustomerCurrencyDelta, f as CustomerCurrencyTotal, g as CustomerGetOptions, h as CustomerGetResult, i as CustomerKpis, j as CustomerKpisDeltas, k as CustomerKpisPrevious, l as CustomerListPage, m as CustomerListQuery, n as CustomerProfile, o as CustomerSegment, p as CustomerSegmentCount, q as CustomerSortField, r as CustomerSummary, s as CustomerSummaryQuery, D as DistinctCustomersByCurrency, E as EffectiveSaleProperty, G as Granularity, N as NAMED_RANGES, t as NamedRange, P as PublicServiceItem, S as SALE_SOURCES, u as SUPPORTED_CURRENCIES, v as Sale, w as SaleBuiltinRequirableField, x as SaleCursorPage, y as SaleFilters, z as SaleInput, F as SaleItem, H as SaleItemInput, I as SaleKeysetSortField, J as SaleListPage, K as SaleListQuery, L as SaleListQueryV2, M as SalePropertyOption, O as SalePropertyType, Q as SaleService, R as SaleServiceInput, T as SaleSortField, U as SaleSortOrder, V as SaleSource, W as SaleSourceFacts, X as SaleSummary, Y as SaleSummaryPrevious, Z as SaleSummaryQuery, _ as SaleSummaryQueryV2, $ as SaleSummaryV2, a0 as SaleUpdateInput, a1 as SalesBusinessClient, a2 as SalesCategoryBreakdown, a3 as SalesClient, a4 as SalesClientConfig, a5 as SalesCustomersClient, a6 as SalesServiceBreakdown, a7 as SalesTransportConfig, a8 as SalesTrendPoint, a9 as SummaryCurrencyDelta, aa as SummaryDeltas, ab as SummaryWindow, ac as SupportedCurrency, ad as TRACKING_RANGES, ae as TrackingOverviewRange, af as clearStashedUserData, ag as createSalesClient, ah as currencySchema, ai as fetchServices, aj as formatDateInTz, ak as formatMoney, al as fromMinor, am as saleCreateSchema, an as saleItemSchema, ao as saleServiceSchema, ap as saleUpdateSchema, aq as salesRequest, ar as stashUserData, as as toMinor } from './sales-Dvh-tPsk.js';
5
+ export { B as BookingDropOff, a as BookingFormSubmit, b as BookingInput, c as BookingMode, d as BookingOutcome, e as BookingSimulation, f as BookingSubmitOptions, C as ConversionConfig, g as ConversionConfigStore, S as SalesBookingsClient, T as TrackingConfigReference, h as getTrackingConfigRuntime, n as newBookingAttemptKey, r as resolveConversionConfig, i as resolveTrackingConfigUrl } from './bookings-aJuXoVwX.js';
6
+ export { A as AutomaticEventName, B as BookableDay, a as BookingHandoffPrefill, b as BookingIntegration, c as BookingOption, d as BookingOptionGroup, e as BookingProvider, f as BookingRules, C as CtaClickConfig, g as CtaClickMetadata, E as EVENT_SEMANTICS, h as EventCategory, i as EventClientVisibility, j as EventConfig, k as EventKind, l as EventMetadata, m as EventName, n as EventOutcomeRole, o as EventSemantics, F as FormStartConfig, p as FormStartMetadata, q as FormStepConfig, r as FormStepMetadata, M as ManualEventName, s as MultiPageSessionConfig, t as MultiPageSessionMetadata, P as PageExitConfig, u as PageExitMetadata, v as PageIdentity, w as PageViewConfig, x as PageViewMetadata, y as PhoneClickConfig, z as PhoneClickMetadata, R as RegisteredAutomaticEvents, D as RegisteredManualEvents, S as ScrollDepthConfig, G as ScrollDepthMetadata, H as SdkHeartbeatConfig, I as SdkHeartbeatMetadata, J as SiteLinkArrivalConfig, K as SiteLinkArrivalMetadata, L as SiteLinkClickConfig, N as SiteLinkClickMetadata, O as SpecificPageName, Q as SpecificPageVisitConfig, T as SpecificPageVisitMetadata, U as TimeOnSiteConfig, V as TimeOnSiteMetadata, W as TrackableEvent, X as TriggerRegistryConfig, Y as TypedTrackEventOptions, Z as TypedTrackingClient, _ as bookableSlots, $ as buildBookingHandoffUrl, a0 as getBookingIntegration, a1 as getEventSemantics, a2 as groupBookingOptions, a3 as shopToday } from './ingest-typed-DpT-uFme.js';
7
7
  export { F as FormSubmitConfig, a as FormSubmitMetadata, J as JsonValue } from './form-submit-BLb28aCk.js';
8
8
  export { CountryCode } from 'libphonenumber-js';
9
9
  import 'zod/mini';
package/dist/index.js CHANGED
@@ -65,6 +65,7 @@ __export(src_exports, {
65
65
  getConsentState: () => getConsentState,
66
66
  getEventSemantics: () => getEventSemantics,
67
67
  getTrackingConfigRuntime: () => getTrackingConfigRuntime,
68
+ groupBookingOptions: () => groupBookingOptions,
68
69
  newBookingAttemptKey: () => newBookingAttemptKey,
69
70
  onConsentChange: () => onConsentChange,
70
71
  optIn: () => optIn,
@@ -810,7 +811,14 @@ function parseBookingOption(value) {
810
811
  if (!value || typeof value !== "object") return [];
811
812
  const o = value;
812
813
  if (typeof o.key !== "string" || !o.key || typeof o.label !== "string") return [];
813
- return [{ key: o.key, label: o.label }];
814
+ return [
815
+ {
816
+ key: o.key,
817
+ label: o.label,
818
+ group: typeof o.group === "string" && o.group ? o.group : null,
819
+ description: typeof o.description === "string" && o.description ? o.description : null
820
+ }
821
+ ];
814
822
  }
815
823
  function parseIntegrations(value) {
816
824
  if (!value || typeof value !== "object") return {};
@@ -1537,7 +1545,12 @@ function getBookingIntegration(integrations) {
1537
1545
  timezone: booking.timezone,
1538
1546
  configVersion: booking.config_version,
1539
1547
  rules,
1540
- options: booking.options.map((option) => ({ key: option.key, label: option.label })),
1548
+ options: booking.options.map((option) => ({
1549
+ key: option.key,
1550
+ label: option.label,
1551
+ group: option.group,
1552
+ description: option.description
1553
+ })),
1541
1554
  mode: booking.mode ?? "live"
1542
1555
  };
1543
1556
  }
@@ -1617,6 +1630,15 @@ function nationalDigits(phone) {
1617
1630
  const parsed = parsePhone(phone);
1618
1631
  return (parsed.isValid ? parsed.national : phone).replace(/\D/g, "");
1619
1632
  }
1633
+ function groupBookingOptions(options) {
1634
+ const groups = /* @__PURE__ */ new Map();
1635
+ for (const option of options) {
1636
+ const members = groups.get(option.group);
1637
+ if (members) members.push(option);
1638
+ else groups.set(option.group, [option]);
1639
+ }
1640
+ return [...groups].map(([group, members]) => ({ group, options: members }));
1641
+ }
1620
1642
 
1621
1643
  // ../tracking-core/src/events/semantics.ts
1622
1644
  var EVENT_SEMANTICS = {
@@ -2524,6 +2546,7 @@ var import_client3 = require("@aranova/tracking-react/client");
2524
2546
  getConsentState,
2525
2547
  getEventSemantics,
2526
2548
  getTrackingConfigRuntime,
2549
+ groupBookingOptions,
2527
2550
  newBookingAttemptKey,
2528
2551
  onConsentChange,
2529
2552
  optIn,