{"version":3,"file":"longTermTrackingOptIn.jsx","sourceRoot":"","sources":["../../../components/longTermTrackingOptIn.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B,iDAAkD;AAClD,+DAAqE;AACrE,0CAKqB;AAMrB,MAAa,qBAAsB,SAAQ,eAAK,CAAC,SAShD;IATD;;QAYE,UAAK,GAA+B;YAClC,aAAa,EAAE,mCAAwB,EAAE;SAC1C,CAAC;QAEF,qBAAgB,GAAG,CAAC,eAAwB,EAAE,EAAE;YAC9C,IAAI,eAAe,EAAE;gBACnB,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE,gCAAqB,CAAC,OAAO,CAAC,CAAC;aAChF;iBAAM;gBACL,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE,gCAAqB,CAAC,QAAQ,CAAC,CAAC;aACjF;YACD,MAAM,CAAC,aAAa,CAClB,IAAI,YAAY,CAAC,SAAS,EAAE;gBAC1B,GAAG,EAAE,qBAAqB,CAAC,GAAG;aAC/B,CAAC,CACH,CAAC;YACF,0CAAwB,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,qBAAgB,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,QAAQ,CACX;gBACE,aAAa,EAAE,mCAAwB,EAAE;aAC1C,EACD,GAAG,EAAE;gBACH,uBAAY,CAAC,KAAK,CAAC,CAAC,CAAC,6CAA6C;YACpE,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAe,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,GAAG,KAAK,qBAAqB,CAAC,GAAG,EAAE;gBACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;QACH,CAAC,CAAC;IAoBJ,CAAC;IAlBC,iBAAiB;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9D,CAAC;IAED,oBAAoB;QAClB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EACE;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,4BAAiB,EAAE,CAAC,CAC5F;MAAA,GAAG,CACJ,CAAC;IACJ,CAAC;;AAhEH,sDAiEC;AAvDQ,yBAAG,GAAG,8BAAmB,CAAC","sourcesContent":["import React from \"react\";\r\n\r\nimport { sendPageview } from \"../events/pageView\";\r\nimport { sendTrackingConsentEvent } from \"../events/trackingConsent\";\r\nimport {\r\n  LongTermTrackingKey,\r\n  LongTermTrackingState,\r\n  getLongTermTrackingState,\r\n  isTrackingEnabled\r\n} from \"../settings\";\r\n\r\ntype LongTermTrackingOptInState = {\r\n  trackingState: LongTermTrackingState;\r\n};\r\n\r\nexport class LongTermTrackingOptIn extends React.Component<\r\n  {\r\n    children: (\r\n      trackingState: LongTermTrackingState,\r\n      setTrackingState: (trackingEnabled: boolean) => void,\r\n      trackingPossible: boolean\r\n    ) => React.ReactNode;\r\n  },\r\n  LongTermTrackingOptInState\r\n> {\r\n  static Key = LongTermTrackingKey;\r\n\r\n  state: LongTermTrackingOptInState = {\r\n    trackingState: getLongTermTrackingState()\r\n  };\r\n\r\n  setTrackingState = (trackingEnabled: boolean) => {\r\n    if (trackingEnabled) {\r\n      localStorage.setItem(LongTermTrackingOptIn.Key, LongTermTrackingState.Enabled);\r\n    } else {\r\n      localStorage.setItem(LongTermTrackingOptIn.Key, LongTermTrackingState.Disabled);\r\n    }\r\n    window.dispatchEvent(\r\n      new StorageEvent(\"storage\", {\r\n        key: LongTermTrackingOptIn.Key\r\n      })\r\n    );\r\n    sendTrackingConsentEvent(trackingEnabled);\r\n  };\r\n\r\n  storageDidChange = () => {\r\n    this.setState(\r\n      {\r\n        trackingState: getLongTermTrackingState()\r\n      },\r\n      () => {\r\n        sendPageview(false); // Update the cookies based on tracking state\r\n      }\r\n    );\r\n  };\r\n\r\n  storageEvent = (e: StorageEvent) => {\r\n    if (e.key === LongTermTrackingOptIn.Key) {\r\n      this.storageDidChange();\r\n    }\r\n  };\r\n\r\n  componentDidMount() {\r\n    this.storageDidChange();\r\n    window.addEventListener(\"storage\", this.storageEvent);\r\n    window.addEventListener(\"analytics\", this.storageDidChange);\r\n  }\r\n\r\n  componentWillUnmount() {\r\n    window.removeEventListener(\"storage\", this.storageEvent);\r\n    window.removeEventListener(\"analytics\", this.storageDidChange);\r\n  }\r\n\r\n  render() {\r\n    return (\r\n      <>\r\n        {this.props.children(this.state.trackingState, this.setTrackingState, isTrackingEnabled())}\r\n      </>\r\n    );\r\n  }\r\n}\r\n"]}