@washingtonpost/subs-de-inputs 1.6.0 → 1.9.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.
@@ -4,14 +4,15 @@ interface IDropdownProps {
4
4
  label: string;
5
5
  values: Array<string>;
6
6
  required?: boolean;
7
- defaultValue?: string;
7
+ existingValue?: string;
8
8
  onChange?: (value: string) => void;
9
9
  disabled?: boolean;
10
+ valueSelectedByDefault?: string;
10
11
  }
11
12
  /**
12
13
  * Dropdown component. Uses wpds-ui-kit on desktop and native select on mobile.
13
14
  * @param {IDropdownProps} props The props.
14
15
  * @returns {React.ReactElement} The dropdown.
15
16
  */
16
- export declare const Dropdown: ({ id, label, values, required, defaultValue, onChange, disabled, }: IDropdownProps) => React.JSX.Element;
17
+ export declare const Dropdown: ({ id, label, values, required, existingValue, onChange, disabled, valueSelectedByDefault, }: IDropdownProps) => React.JSX.Element;
17
18
  export {};
@@ -5,7 +5,7 @@ interface DESelectProps {
5
5
  fieldName: string;
6
6
  label?: string;
7
7
  dataDictionaryConfig?: Attribute | Readonly<Attribute>;
8
- defaultValue?: string;
8
+ existingValue?: string;
9
9
  disabled?: boolean;
10
10
  submit: boolean;
11
11
  onChange?: ({ value }: {
@@ -25,6 +25,8 @@ interface DESelectProps {
25
25
  item?: any;
26
26
  };
27
27
  children?: React.ReactNode;
28
+ valueSelectedByDefault?: string;
29
+ defaultValue?: never;
28
30
  }
29
31
  export declare const DESelect: React.FC<DESelectProps>;
30
32
  export {};
@@ -287,9 +287,10 @@ const Dropdown = ({
287
287
  label,
288
288
  values,
289
289
  required = false,
290
- defaultValue,
290
+ existingValue,
291
291
  onChange = () => {},
292
- disabled = false
292
+ disabled = false,
293
+ valueSelectedByDefault
293
294
  }) => {
294
295
  const [answer, setAnswer] = React.useState();
295
296
  const {
@@ -301,11 +302,12 @@ const Dropdown = ({
301
302
  const disabledProp = disabled ? {
302
303
  disabled: true
303
304
  } : {};
305
+ const presetDropdownValue = existingValue || valueSelectedByDefault;
304
306
  // helps maintain state between WPDS and native dropdowns
305
307
  const defaultValueProp = answer ? {
306
308
  defaultValue: answer
307
- } : defaultValue ? {
308
- defaultValue
309
+ } : presetDropdownValue ? {
310
+ defaultValue: presetDropdownValue
309
311
  } : {};
310
312
  const defaultValuePropMobile = value => {
311
313
  if (answer) {
@@ -313,7 +315,7 @@ const Dropdown = ({
313
315
  selected: true
314
316
  } : {};
315
317
  }
316
- return value === defaultValue ? {
318
+ return value === presetDropdownValue ? {
317
319
  selected: true
318
320
  } : {};
319
321
  };
@@ -368,26 +370,40 @@ const Dropdown = ({
368
370
  };
369
371
 
370
372
  const scriptSrc = `${subsSdk.ENDPOINTS.base}/de-utils/twpdeu.min.js`;
373
+ const SelectWrapper = /*#__PURE__*/wpdsUiKit.styled('div', {
374
+ boxSizing: 'border-box',
375
+ display: 'flex',
376
+ marginBottom: '$100',
377
+ flexDirection: 'column',
378
+ '& button': {
379
+ padding: '1px 6px'
380
+ },
381
+ '& *': {
382
+ boxSizing: 'border-box'
383
+ }
384
+ });
371
385
  const DESelect = ({
372
386
  source,
373
387
  fieldName,
374
388
  label,
375
389
  dataDictionaryConfig,
376
- defaultValue,
390
+ existingValue,
377
391
  disabled,
378
392
  submit,
379
393
  onChange = () => {},
380
394
  onFinished = () => {},
381
395
  valuesFilter = () => true,
382
- children
396
+ children,
397
+ valueSelectedByDefault
383
398
  }) => {
384
399
  const [config, setConfig] = React.useState(dataDictionaryConfig);
385
- const [selected, setSelected] = React.useState('');
400
+ const [selected, setSelected] = React.useState(!existingValue && valueSelectedByDefault ? valueSelectedByDefault : '');
386
401
  const scriptStatus = subsHooks.useScript(scriptSrc);
387
402
  React.useEffect(() => {
388
403
  const fetchConfig = async () => {
389
404
  try {
390
405
  var _window;
406
+ // eslint-disable-next-line @typescript-eslint/no-shadow
391
407
  const config = await ((_window = window) === null || _window === void 0 || (_window = _window.__twpdeu) === null || _window === void 0 ? void 0 : _window.getFieldConfigs({
392
408
  fieldName
393
409
  }));
@@ -420,6 +436,7 @@ const DESelect = ({
420
436
  isFinished: true,
421
437
  isError
422
438
  });
439
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
423
440
  } catch (e) {
424
441
  onFinished({
425
442
  isFinished: false,
@@ -431,8 +448,8 @@ const DESelect = ({
431
448
  submitSelected();
432
449
  }
433
450
  }, [scriptStatus, submit]);
434
- const defaultValueProp = defaultValue && config ? {
435
- defaultValue
451
+ const defaultValueProp = existingValue && config ? {
452
+ defaultValue: existingValue
436
453
  } : {};
437
454
  const isLoading = !(children || config);
438
455
  const disabledProp = disabled || isLoading ? {
@@ -465,22 +482,11 @@ const DESelect = ({
465
482
  });
466
483
  },
467
484
  values: values.map(value => value.name),
468
- defaultValue: defaultValue,
469
- disabled: disabled
485
+ existingValue: existingValue,
486
+ disabled: disabled,
487
+ valueSelectedByDefault: valueSelectedByDefault
470
488
  }));
471
489
  };
472
- const SelectWrapper = /*#__PURE__*/wpdsUiKit.styled('div', {
473
- boxSizing: 'border-box',
474
- display: 'flex',
475
- marginBottom: '$100',
476
- flexDirection: 'column',
477
- '& button': {
478
- padding: '1px 6px'
479
- },
480
- '& *': {
481
- boxSizing: 'border-box'
482
- }
483
- });
484
490
 
485
491
  const configSrc = `${subsSdk.ENDPOINTS.base === 'https://subscribe.washingtonpost.com' ? 'https://www.washingtonpost.com/subscribe' : subsSdk.ENDPOINTS.base}/config/de/disclosure.json`;
486
492
  const getConfig = async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"subs-de-inputs.cjs.development.js","sources":["../src/interfaces/index.ts","../src/utils/checkConsentCookieForAllowTargeting.ts","../src/components/DEDisclosure/utils/checkAlertBoxClosedCookie.ts","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/getAttributes.ts","../src/services/sendToGA.ts","../src/services/ingest.ts","../src/utils/isAnonymousWebview.ts","../src/utils/push.ts","../src/components/DESelect/Dropdown.tsx","../src/components/DESelect/index.tsx","../src/components/DEDisclosure/utils/getConfig.ts","../src/components/DEDisclosure/utils/hydrateLinks.tsx","../src/components/DEDisclosure/utils/checkOptAnonConsentCookie.ts","../src/components/DEDisclosure/hooks/useOnetrust.ts","../src/components/DEDisclosure/DisclosureWithBannerStatus.tsx","../src/components/DEDisclosure/DisclosureWithoutBannerStatus.tsx","../src/components/DEDisclosure/index.tsx","../src/constants/IngestDataTypes.ts"],"sourcesContent":["import type { ResponseStatusType } from '@washingtonpost/subs-sdk';\n\nexport type AttributeValue = {\n name: string;\n date_created: number;\n last_modified_date: number;\n archived: boolean;\n order: number;\n};\n\nexport const CollectionBehaviors = {\n COLLECT: 'COLLECT',\n DO_NOT_COLLECT: 'DO_NOT_COLLECT',\n} as const;\n\nexport type Attribute = {\n name: string;\n approved_for_use?: boolean;\n collection_behavior?: (typeof CollectionBehaviors)[keyof typeof CollectionBehaviors];\n datatype: string;\n explicit: boolean;\n multiple_value: boolean;\n last_modified_date: number;\n date_created: number;\n values: AttributeValue[] | Readonly<AttributeValue[]>;\n};\n\nexport const AttributesState = {\n SUCCESS: '100',\n} as const;\n\n// https://github.com/WashPost/subs-be-user-data-enrichment/blob/8e8f8460c59adbe9c83b50f368bff1d3300bfd6b/src/main/java/washpost/paywall/userdataenrichment/model/ResponseState.java#L19\nexport const DeleteAttributeState = {\n SUCCESS: '150',\n SYSTEM_ERROR: '151',\n INVALID_ATTRIBUTE_NAME: '152',\n INVALID_ATTRIBUTE_NOT_EXISTS: '153',\n} as const;\n\nexport const IngestType = {\n EXPLICIT: 'explicit',\n IMPLICIT: 'implicit',\n} as const;\n\nexport const IngestResponseState = {\n SUCCESS: '100',\n SYSTEM_ERROR: '101',\n INVALID_TYPE: '102',\n INVALID_IDENTIFIER: '103',\n INVALID_DATA: '104',\n INVALID_ATTRIBUTE_DEFINITION: '105',\n INVALID_META_DEFINITION: '106',\n UNAUTHENTICATED: '107',\n MISMATCHED_IDENTIFIER: '108',\n DISABLED_ATTRIBUTE_DEFINITION: '109',\n DO_NOT_COLLECT: '110',\n} as const;\n\nexport interface IProfileResponse {\n status: ResponseStatusType;\n state: (typeof AttributesState)[keyof typeof AttributesState];\n attributes: {\n [key: string]: {\n attribute_name: string;\n value: string | null;\n date_created: number;\n last_modified_date: number;\n };\n };\n}\n","import { getCookie } from '@washingtonpost/subs-sdk';\n\nconst COOKIE = 'OptanonConsent';\n\n/**\n * Checks the users OptanonConsent cookie to determine if the user has allowed targeting.\n * Returns true or false if the flag is found in the cookie, null otherwise.\n * @returns {boolean | null}\n */\nexport const checkConsentCookieForAllowTargeting = () => {\n const value = getCookie(COOKIE) || '';\n return value.includes('C0004%3A1')\n ? true\n : value.includes('C0004%3A0')\n ? false\n : null;\n};\n","import { getCookie } from '@washingtonpost/subs-sdk';\n\nconst COOKIE = 'OptanonAlertBoxClosed';\n\nexport const checkAlertBoxClosedCookie = () => {\n const value = getCookie(COOKIE) || '';\n // Wed May 15 2024 06:29:23 GMT-0500 (Central Daylight Time)\n // \"Invalid date\" is 12 characters long\n return value.length > 12;\n};\n","import { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\nimport { checkConsentCookieForAllowTargeting } from './checkConsentCookieForAllowTargeting';\nimport { checkAlertBoxClosedCookie } from '../components/DEDisclosure/utils/checkAlertBoxClosedCookie';\n\n/**\n * Checks privacy cookies to decide if we can send up 1pd\n * If US, checks that wp_usp exists\n * Else If OptAnonConsent cookie exists, checks the value of targeting cookies consent\n * Else If EEA, always returns true\n * Else, returns false\n * @returns {boolean}\n */\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const { intl_region, country_code: countryCode } = WPGeo();\n\n if (countryCode === 'US') {\n return !!getCookie('wp_usp');\n }\n\n if (window.pageType === 'onboarding') {\n const gdprAllowTargarting = checkConsentCookieForAllowTargeting();\n if (\n typeof gdprAllowTargarting === 'boolean' &&\n checkAlertBoxClosedCookie()\n ) {\n return gdprAllowTargarting;\n }\n\n // Downstream systems\n // Checking for window.pageType === 'onboarding' to avoid being true on graphics articles etc for now -- MNI-710\n if (intl_region === 'EEA' && window.pageType === 'onboarding') {\n return true;\n }\n }\n\n return false;\n};\n","import {\n ENDPOINTS,\n ResponseStatus,\n DEFAULT_HEADERS,\n} from '@washingtonpost/subs-sdk';\nimport type { Attribute } from '../interfaces';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\ntype GetAttributesType = ({\n fieldName,\n}: {\n fieldName: string;\n}) => Promise<Attribute[]>;\n\nconst attributesCache: Record<string, any> = {};\nexport const getAttributes: GetAttributesType = async ({\n fieldName,\n}: {\n fieldName: string;\n}) => {\n if (attributesCache[fieldName]) {\n return attributesCache[fieldName];\n }\n\n const fieldNames = [fieldName];\n\n try {\n const url = new URL(`${base}/attributes`);\n url.searchParams.set('attributes', fieldNames.join(','));\n\n const data = await fetch(url.toString(), {\n credentials: 'include',\n headers: DEFAULT_HEADERS,\n });\n const json = await data.json();\n\n if (data.ok && json.status === ResponseStatus.SUCCESS) {\n const attributes = json.attributes || [];\n attributesCache[fieldName] = attributes;\n return attributes;\n }\n return [];\n } catch (e) {\n console.debug(e);\n return [];\n }\n};\n","const sendGAEvent = (props: {\n event: string;\n category: string;\n action: string;\n label: string;\n 'de-label': string;\n [key: string]: undefined | string | string[];\n}): void => {\n if (typeof window === 'undefined') {\n if (__DEV__) console.warn('NO WINDOW');\n return;\n }\n // Initialize dataLayer if needed\n window.dataLayer = window.dataLayer || [];\n\n const eventData: Record<string, any> = {\n ...props,\n };\n window.dataLayer.push(eventData);\n};\n\nexport const sendToGA: SendToGaType = async ({\n submitData: { fieldName, value },\n source,\n}) => {\n sendGAEvent({\n event: 'site-onpage-click',\n action: 'site-onpage-click',\n category: 'profile',\n\n label: fieldName,\n 'de-label': fieldName,\n [fieldName]: value,\n\n section: 'profile',\n subsection: source,\n });\n\n return true;\n};\n\ntype SendToGaType = ({\n submitData: { fieldName, value },\n source,\n}: {\n submitData: {\n fieldName: string;\n value: string;\n };\n source: string;\n}) => Promise<true>;\n","import {\n ENDPOINTS,\n DEFAULT_HEADERS,\n getCookie,\n} from '@washingtonpost/subs-sdk';\nimport type { ResponseStatusType } from '@washingtonpost/subs-sdk';\nimport { type IngestResponseState, IngestType } from '../interfaces';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nexport const ingest: IngestType = async ({\n submitData: { fieldName, value },\n source,\n}) => {\n const url = `${base}/ingest`;\n\n const wapo_login_id = getCookie('wapo_login_id');\n\n const jucid = localStorage.getItem('uuid');\n const ga = getCookie('_ga');\n\n const payload = {\n jucid,\n ga,\n type: IngestType.EXPLICIT,\n wapo_login_id, // TODO: move this to BE to read from cookie headers\n data: {\n [fieldName]: [value],\n },\n metadata: { source },\n };\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n credentials: 'include',\n headers: DEFAULT_HEADERS,\n body: JSON.stringify(payload),\n });\n\n const json = await response.json();\n\n return json;\n } catch (e) {\n console.debug(e);\n return null;\n }\n};\n\ntype IngestType = ({\n submitData: { fieldName, value },\n source,\n}: {\n submitData: {\n fieldName: string;\n value: string;\n };\n source: string;\n}) => Promise<{\n status: ResponseStatusType;\n state: (typeof IngestResponseState)[keyof typeof IngestResponseState];\n} | null>;\n","import { getCookie, isLoggedIn } from '@washingtonpost/subs-sdk';\n\nexport const isAnonymousWebview = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_wv = getCookie('wp_wv');\n\n return !!(wp_wv && !isLoggedIn());\n};\n","import type { ResponseStatusType } from '@washingtonpost/subs-sdk';\nimport { CollectionBehaviors, IngestType } from '../interfaces';\nimport type { IngestResponseState } from '../interfaces';\nimport { getAttributes } from '../services/getAttributes';\nimport { sendToGA } from '../services/sendToGA';\nimport { hasRequiredPrivacyCookies } from './hasRequiredPrivacyCookies';\nimport { ingest } from '../services/ingest';\nimport { isAnonymousWebview } from './isAnonymousWebview';\n\ntype PushType = ({\n submitData: { fieldName, value },\n source,\n}: {\n submitData: {\n fieldName: string;\n value: string;\n };\n source: string;\n}) => Promise<\n | {\n status: ResponseStatusType;\n state: (typeof IngestResponseState)[keyof typeof IngestResponseState];\n }\n | null\n | true\n>;\n\nexport const push: PushType = async ({ submitData, source }) => {\n if (!hasRequiredPrivacyCookies()) {\n throw new Error('does not satisfy cookie check');\n }\n\n if (isAnonymousWebview()) {\n throw new Error('does not satisfy cookie check');\n }\n\n const { fieldName } = submitData;\n\n const attributeInfo = await getAttributes({\n fieldName,\n });\n\n if (\n attributeInfo[0] &&\n attributeInfo[0].name === fieldName &&\n attributeInfo[0].collection_behavior === CollectionBehaviors.DO_NOT_COLLECT\n ) {\n throw new Error('do not collect');\n }\n\n const type =\n attributeInfo[0] && attributeInfo[0].explicit === true\n ? IngestType.EXPLICIT\n : IngestType.IMPLICIT;\n\n if (!attributeInfo[0] && __DEV__) {\n console.warn(`no attribute info found for ${fieldName}, assuming implicit`);\n }\n\n if (type === IngestType.EXPLICIT) {\n return ingest({ submitData, source });\n }\n return sendToGA({ submitData, source });\n};\n","import React, { useEffect, useState } from 'react';\nimport { Icon, Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { useWindowSize } from '@washingtonpost/subs-hooks';\nimport { ChevronDown } from '@washingtonpost/wpds-assets';\n\ninterface IDropdownProps {\n id: string;\n label: string;\n values: Array<string>;\n required?: boolean;\n defaultValue?: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n}\n\nconst StyledMobileSelect = styled('select', {\n padding: '12px 16px 12px 6px',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n backgroundColor: '$secondary',\n color: '$primary',\n fontFamily: '$meta',\n fontSize: '$100',\n fontWeight: '$light',\n lineHeight: '$125',\n paddingBlockRight: '$125',\n textOverflow: 'ellipsis',\n position: 'relative',\n borderColor: 'transparent',\n borderRightWidth: '10px',\n borderRightColor: 'transparent',\n appearance: 'none',\n '-webkit-appearance': 'none',\n '&:disabled': {\n backgroundColor: theme.colors.disabled,\n borderColor: theme.colors.disabled,\n color: theme.colors.onDisabled,\n cursor: 'not-allowed',\n },\n});\n\nconst StyledSelectWrapper = styled('div', {\n width: '100%',\n maxWidth: '380px',\n borderRadius: '$012',\n borderColor: '$subtle',\n borderStyle: 'solid',\n borderWidth: '1px',\n backgroundColor: '$secondary',\n position: 'relative',\n});\n\nconst StyledMobileOption = styled('option', {\n fontFamily: 'inherit',\n fontSize: 'inherit',\n color: 'inherit',\n});\n\n/**\n * Dropdown component. Uses wpds-ui-kit on desktop and native select on mobile.\n * @param {IDropdownProps} props The props.\n * @returns {React.ReactElement} The dropdown.\n */\nexport const Dropdown = ({\n id,\n label,\n values,\n required = false,\n defaultValue,\n onChange = () => {},\n disabled = false,\n}: IDropdownProps) => {\n const [answer, setAnswer] = useState<string>();\n const { isMobileSize } = useWindowSize();\n\n useEffect(() => {\n if (answer) onChange(answer);\n }, [answer]);\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n // helps maintain state between WPDS and native dropdowns\n const defaultValueProp = answer\n ? { defaultValue: answer }\n : defaultValue\n ? { defaultValue }\n : {};\n\n const defaultValuePropMobile = (value: string) => {\n if (answer) {\n return value === answer ? { selected: true } : {};\n }\n return value === defaultValue ? { selected: true } : {};\n };\n\n return isMobileSize ? (\n <StyledSelectWrapper>\n <StyledMobileSelect\n id=\"\"\n required={required}\n onChange={(e) => setAnswer(e.target.value)}\n {...disabledProp}\n >\n <label>{label}</label>\n <StyledMobileOption\n value=\"\"\n disabled\n selected\n style={{ color: '#666666' }}\n >\n {label}\n </StyledMobileOption>\n {values.map((value) => (\n <StyledMobileOption\n value={value}\n key={value}\n {...defaultValuePropMobile(value)}\n >\n {value}\n </StyledMobileOption>\n ))}\n </StyledMobileSelect>\n <Icon\n label=\"\"\n size=\"100\"\n fill={theme.colors.gray80}\n style={{\n pointerEvents: 'none',\n position: 'absolute',\n right: '10px',\n top: '50%',\n transform: 'translateY(-50%)',\n }}\n >\n <ChevronDown style={{ position: 'absolute', right: '10px' }} />\n </Icon>\n </StyledSelectWrapper>\n ) : (\n <Select.Root\n onValueChange={(e) => setAnswer(e)}\n required={required}\n {...defaultValueProp}\n {...disabledProp}\n >\n <Select.Trigger data-test-id={`${id}-select-trigger`}>\n <Select.Label>{label}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content\n css={{ zIndex: theme.zIndices.page }}\n data-test-id={`${id}-select-content`}\n >\n {values.map((value) => (\n <Select.Item value={value} key={value}>\n {value}\n </Select.Item>\n ))}\n </Select.Content>\n </Select.Root>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled } from '@washingtonpost/wpds-ui-kit';\nimport { ENDPOINTS, ResponseStatus } from '@washingtonpost/subs-sdk';\nimport { useScript, ScriptStatus } from '@washingtonpost/subs-hooks';\nimport type { Attribute, AttributeValue } from '../../interfaces';\nimport { Dropdown } from './Dropdown';\n\ninterface DESelectProps {\n source: string;\n fieldName: string;\n label?: string;\n dataDictionaryConfig?: Attribute | Readonly<Attribute>;\n defaultValue?: string;\n disabled?: boolean;\n submit: boolean;\n onChange?: ({ value }: { value: string }) => void;\n onFinished?: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n valuesFilter?: (value: AttributeValue) => boolean;\n selectProps?: {\n root?: any;\n trigger?: any;\n label?: any;\n value?: any;\n content?: any;\n item?: any;\n };\n children?: React.ReactNode;\n}\n\nconst scriptSrc = `${ENDPOINTS.base}/de-utils/twpdeu.min.js`;\n\nexport const DESelect: React.FC<DESelectProps> = ({\n source,\n fieldName,\n label,\n dataDictionaryConfig,\n defaultValue,\n disabled,\n submit,\n onChange = () => {},\n onFinished = () => {},\n valuesFilter = () => true,\n children,\n}) => {\n const [config, setConfig] = useState(dataDictionaryConfig);\n\n const [selected, setSelected] = useState('');\n\n const scriptStatus = useScript(scriptSrc);\n\n useEffect(() => {\n const fetchConfig = async () => {\n try {\n const config = await window?.__twpdeu?.getFieldConfigs({ fieldName });\n if (config) {\n setConfig(config[0]);\n } else {\n console.error('unable to get config', fieldName);\n }\n } catch (e) {\n console.warn('unable to get config', fieldName, e);\n }\n };\n\n if (scriptStatus === ScriptStatus.READY && !(children || config)) {\n fetchConfig();\n }\n }, [scriptStatus]);\n\n useEffect(() => {\n const submitSelected = async () => {\n try {\n const result = await window?.__twpdeu?.push({\n submitData: { fieldName, value: selected },\n source,\n });\n\n const isError =\n result === true\n ? false\n : result\n ? result.status !== ResponseStatus.SUCCESS\n : true;\n\n onFinished({\n isFinished: true,\n isError,\n });\n } catch (e) {\n onFinished({\n isFinished: false,\n isError: true,\n });\n }\n };\n\n if (scriptStatus === ScriptStatus.READY && submit && selected) {\n submitSelected();\n }\n }, [scriptStatus, submit]);\n\n const defaultValueProp = defaultValue && config ? { defaultValue } : {};\n\n const isLoading = !(children || config);\n\n const disabledProp = disabled || isLoading ? { disabled: true } : {};\n\n // sort and filter out archived values\n // Note: config.values may be readonly\n const values = config\n ? [...config.values]\n .sort((a, b) => a.order - b.order)\n .filter((value) => value.archived !== true)\n .filter(valuesFilter)\n : [];\n\n return (\n <SelectWrapper>\n {children && (\n <Select.Root\n onValueChange={(e) => {\n setSelected(e);\n onChange({ value: e });\n }}\n {...defaultValueProp}\n {...disabledProp}\n >\n {children}\n </Select.Root>\n )}\n {!children && !config && (\n <Dropdown\n id={'loading'}\n label={'Loading...'}\n values={[]}\n disabled={true}\n />\n )}\n {!children && config && (\n <Dropdown\n id={config.name}\n label={label || config.name}\n onChange={(e) => {\n setSelected(e);\n onChange({ value: e });\n }}\n values={values.map((value) => value.name)}\n defaultValue={defaultValue}\n disabled={disabled}\n />\n )}\n </SelectWrapper>\n );\n};\n\nconst SelectWrapper = styled('div', {\n boxSizing: 'border-box',\n display: 'flex',\n marginBottom: '$100',\n flexDirection: 'column',\n '& button': {\n padding: '1px 6px',\n },\n '& *': { boxSizing: 'border-box' },\n});\n","import { ENDPOINTS, WPGeo } from '@washingtonpost/subs-sdk';\nimport type {\n DisclosureConfig,\n DisclosureConfigValue,\n} from '../../../interfaces/disclosure';\n\nconst configSrc = `${\n ENDPOINTS.base === 'https://subscribe.washingtonpost.com'\n ? 'https://www.washingtonpost.com/subscribe'\n : ENDPOINTS.base\n}/config/de/disclosure.json`;\n\nexport const getConfig = async () => {\n let myConfig: DisclosureConfigValue | undefined;\n\n // step 1: fetch config\n const response = await fetch(configSrc);\n const remoteConfig: DisclosureConfig = await response.json();\n\n // step 2: figure out which part of the config to use\n\n // if country- or region-specific config found, use that\n const { country_code, intl_region } = WPGeo();\n Object.keys(remoteConfig).forEach((configKey) => {\n if (\n country_code &&\n configKey.split('|').includes(country_code.toLowerCase())\n ) {\n myConfig = remoteConfig[configKey];\n } else if (intl_region === 'EEA' && configKey === 'eea') {\n myConfig = remoteConfig[configKey];\n }\n });\n\n // TODO: Check for billing country also\n\n // else if no country-specific config, use the default config\n if (typeof myConfig === 'undefined' && remoteConfig._) {\n myConfig = remoteConfig._;\n }\n\n return myConfig;\n};\n","import React from 'react';\n\ntype hydrateLinksType = (\n str: string,\n onLinkClick: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void\n) => string | JSX.Element;\n\nexport const hydrateLinks: hydrateLinksType = (str, onLinkClick = () => {}) => {\n const array = str.split(/({{PRIVACY_POLICY}})/g);\n const chunks = array.map((str, i) => {\n if (str === '{{PRIVACY_POLICY}}') {\n return (\n <a\n key={`privacy-link-${i}`}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n style={{ color: 'inherit' }}\n className=\"underline\"\n href=\"https://www.washingtonpost.com/privacy-policy/\"\n onClick={(e) => onLinkClick(e)}\n >\n Privacy Policy\n </a>\n );\n }\n return str;\n });\n\n const toReturn = chunks.reduce(\n (prev, current) => (\n <>\n {prev}\n {current}\n </>\n ),\n <></>\n );\n\n return toReturn;\n};\n","import { getCookie } from '@washingtonpost/subs-sdk';\n\nconst COOKIE = 'OptanonConsent';\n\nexport const checkOptanonConsentCookie = () => {\n const value = getCookie(COOKIE) || '';\n return value.length > 12;\n};\n","import { useState, useEffect } from 'react';\nimport type { ICookieStore } from '@washingtonpost/subs-sdk';\nimport { listenToCookieStore as listenToCookieStoreUtil } from '@washingtonpost/subs-sdk';\nimport { checkAlertBoxClosedCookie } from '../utils/checkAlertBoxClosedCookie';\nimport { checkOptanonConsentCookie } from '../utils/checkOptAnonConsentCookie';\n\nconst CONSENT_COOKIE = 'OptanonConsent';\n\nconst ALERT_BOX_COOKIE = 'OptanonAlertBoxClosed';\n\ninterface TCData {\n eventStatus: 'tcloaded' | 'cmpuishown' | 'useractioncomplete';\n listenerId: number;\n [key: string]: any;\n}\n\ntype TCFAPIAddListener = (\n command: 'addEventListener',\n version: number,\n callback: (tcData: TCData, success: boolean) => void\n) => void;\n\ntype TCFAPIRmListener = (\n command: 'removeEventListener',\n version: number,\n callback: (success: boolean) => void,\n listenerId: number\n) => void;\n\ntype TCFAPIPing = (\n command: 'ping',\n version: number,\n callback: (pingReturn: any, success: boolean) => void\n) => void;\n\ndeclare global {\n interface Window {\n cookieStore?: ICookieStore;\n __tcfapi?: TCFAPIAddListener & TCFAPIRmListener & TCFAPIPing;\n }\n}\n\nexport const useOnetrust = ({\n allowCookieStore,\n}: {\n allowCookieStore: boolean;\n}) => {\n const [consentCookieExists, setConsentCookieExists] = useState<\n boolean | undefined\n >();\n const [alertBoxClosed, setAlertBoxClosed] = useState<boolean | undefined>();\n\n const [listenToCookieStore, setListenToCookieStore] = useState(false);\n const [listenToTcfApi, setListenToTcfApi] = useState(false);\n\n useEffect(() => {\n if (checkOptanonConsentCookie()) {\n setConsentCookieExists(true);\n }\n\n if (checkAlertBoxClosedCookie()) {\n setAlertBoxClosed(true);\n return;\n }\n\n if (!window.__tcfapi) {\n console.warn('warning: __tcfapi not found');\n }\n\n if (window?.cookieStore && allowCookieStore) {\n setListenToCookieStore(true);\n } else if (window.__tcfapi) {\n setListenToTcfApi(true);\n } else {\n console.warn('warning: neither cookieStore nor __tcfapi found');\n }\n }, []);\n\n useEffect(() => {\n const cleanupFns: ((() => void) | null)[] = [];\n if (listenToCookieStore && window.cookieStore) {\n const cleanupFn = listenToCookieStoreUtil(CONSENT_COOKIE, () => {\n if (checkOptanonConsentCookie()) {\n setConsentCookieExists(true);\n }\n });\n cleanupFns.push(cleanupFn);\n\n const cleanupFn2 = listenToCookieStoreUtil(ALERT_BOX_COOKIE, () => {\n if (checkAlertBoxClosedCookie()) {\n setAlertBoxClosed(true);\n } else {\n setAlertBoxClosed(false);\n }\n });\n cleanupFns.push(cleanupFn2);\n }\n return () => {\n cleanupFns.forEach((fn) => fn && fn());\n };\n }, [listenToCookieStore]);\n\n useEffect(() => {\n let listenerId: number;\n if (listenToTcfApi && window.__tcfapi) {\n const callback = (_tcData: TCData, success: boolean) => {\n if (success) {\n listenerId = _tcData.listenerId;\n\n if (checkOptanonConsentCookie()) {\n setConsentCookieExists(true);\n }\n\n // tcData.eventStatus can be:\n // tcloaded means user has made a choice and we’re ready to check it\n // cmpuishown means the banner is shown\n // useractioncomplete means the user has interacted with the banner\n\n // but actually if the result for any of these is true, we just use the value of the cookie\n if (checkAlertBoxClosedCookie()) {\n setAlertBoxClosed(true);\n }\n }\n };\n\n window.__tcfapi('addEventListener', 2, callback);\n }\n\n // cleanup fn\n return () => {\n if (window.__tcfapi && listenerId)\n window.__tcfapi(\n 'removeEventListener',\n 2,\n (success) => {\n console.debug(success);\n },\n listenerId\n );\n };\n }, [listenToTcfApi]);\n\n return {\n consentCookieExists,\n alertBoxClosed,\n listenToCookieStore,\n listenToTcfApi,\n };\n};\n","import type { ReactEventHandler } from 'react';\nimport React, { useState, useEffect } from 'react';\nimport type { DisclosureConfigValue } from '../../interfaces/disclosure';\nimport { hydrateLinks } from './utils/hydrateLinks';\nimport { useOnetrust } from './hooks/useOnetrust';\n\ninterface DEDisclosureWithBannerStatusProps {\n config: DisclosureConfigValue;\n allowCookieStore?: boolean;\n onFinished: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n onPrivacyPolicyClick?: ReactEventHandler<HTMLAnchorElement>;\n}\n\nexport const DEDisclosureWithBannerStatus: React.FC<\n DEDisclosureWithBannerStatusProps\n> = ({\n config,\n onFinished,\n allowCookieStore = true,\n onPrivacyPolicyClick = () => {},\n}) => {\n const [disclosure, setDisclosure] = useState<string[] | null>(null);\n const [disclosureRendering, setDisclosureRendering] =\n useState<JSX.Element | null>(null);\n\n const { alertBoxClosed, consentCookieExists } = useOnetrust({\n allowCookieStore,\n });\n\n useEffect(() => {\n if (config) {\n // step 3: set disclosure based on config\n\n if (alertBoxClosed) {\n setDisclosure(config.disclosure_afterbanner);\n } else {\n setDisclosure(config.disclosure_beforebanner);\n }\n }\n }, [alertBoxClosed]);\n\n useEffect(() => {\n if (disclosure && Array.isArray(disclosure)) {\n setDisclosureRendering(\n disclosure.reduce(\n (prev, current) => (\n <>\n {prev}\n <p>{hydrateLinks(current, onPrivacyPolicyClick)}</p>\n </>\n ),\n <></>\n )\n );\n }\n }, [disclosure]);\n\n useEffect(() => {\n if (disclosureRendering && consentCookieExists) {\n onFinished({ isFinished: true, isError: false });\n }\n }, [disclosureRendering, consentCookieExists]);\n\n return disclosureRendering;\n};\n","import type { ReactEventHandler } from 'react';\nimport React, { useState, useEffect } from 'react';\nimport type { DisclosureConfigValue } from '../../interfaces/disclosure';\nimport { hydrateLinks } from './utils/hydrateLinks';\n\ninterface DEDisclosureWithoutBannerStatusProps {\n config: DisclosureConfigValue;\n onFinished: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n onPrivacyPolicyClick?: ReactEventHandler<HTMLAnchorElement>;\n}\n\nexport const DEDisclosureWithoutBannerStatus: React.FC<\n DEDisclosureWithoutBannerStatusProps\n> = ({ config, onFinished, onPrivacyPolicyClick = () => {} }) => {\n const [disclosure, setDisclosure] = useState<string[] | null>(null);\n const [disclosureRendering, setDisclosureRendering] =\n useState<JSX.Element | null>(null);\n\n useEffect(() => {\n if (config) {\n setDisclosure(config.disclosure);\n }\n }, [config]);\n\n useEffect(() => {\n if (disclosure && Array.isArray(disclosure)) {\n setDisclosureRendering(\n disclosure.reduce(\n (prev, current) => (\n <>\n {prev}\n <p>{hydrateLinks(current, onPrivacyPolicyClick)}</p>\n </>\n ),\n <></>\n )\n );\n }\n }, [disclosure]);\n\n useEffect(() => {\n if (disclosureRendering) {\n onFinished({ isFinished: true, isError: false });\n }\n }, [disclosureRendering]);\n\n return disclosureRendering;\n};\n","import type { ReactEventHandler } from 'react';\nimport React, { useState, useEffect } from 'react';\nimport type { DisclosureConfigValue } from '../../interfaces/disclosure';\nimport { getConfig } from './utils/getConfig';\nimport { DEDisclosureWithBannerStatus } from './DisclosureWithBannerStatus';\nimport { DEDisclosureWithoutBannerStatus } from './DisclosureWithoutBannerStatus';\n\ninterface DisclosureProps {\n /** callback function to be called when the disclosure is finished loading */\n onFinished?: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n\n onPrivacyPolicyClick?: ReactEventHandler<HTMLAnchorElement>;\n\n /** ability to turn off cookiestore listener, primarily for testing purposes */\n allowCookieStore?: boolean;\n}\n\nexport const DEDisclosure: React.FC<DisclosureProps> = ({\n onFinished = () => {},\n allowCookieStore = true,\n onPrivacyPolicyClick = (_e) => {},\n}) => {\n const [disclosureRendering, setDisclosureRendering] =\n useState<JSX.Element | null>(null);\n const [myConfig, setMyConfig] = useState<DisclosureConfigValue>();\n // const { alertBoxClosed } = useOneTrustAlertBoxClosed({ allowCookieStore });\n\n useEffect(() => {\n (async () => {\n const config = await getConfig();\n setMyConfig(config);\n\n if (!config) {\n console.error('No config found');\n }\n })();\n }, []);\n\n useEffect(() => {\n if (myConfig) {\n // step 3: set disclosure based on config\n\n // if config says to check onetrust, check onetrust\n if ('checkBannerStatus' in myConfig && myConfig.checkBannerStatus) {\n // check if onetrust is closed\n // if it is, show the after banner disclosure\n // if it is not, show the before banner disclosure\n setDisclosureRendering(\n <DEDisclosureWithBannerStatus\n config={myConfig}\n allowCookieStore={allowCookieStore}\n onFinished={onFinished}\n onPrivacyPolicyClick={onPrivacyPolicyClick}\n />\n );\n } else if ('disclosure' in myConfig) {\n setDisclosureRendering(\n <DEDisclosureWithoutBannerStatus\n config={myConfig}\n onFinished={onFinished}\n onPrivacyPolicyClick={onPrivacyPolicyClick}\n />\n );\n } else {\n console.error('Invalid config');\n }\n }\n }, [myConfig]);\n\n if (disclosureRendering) {\n return <div data-test-id=\"de-disclosure\">{disclosureRendering}</div>;\n }\n\n return <div data-test-id=\"de-disclosure-loading\"></div>;\n};\n","export const FirstPartyIngestDataTypes = {\n JOB_LEVEL: 'profile_job_level',\n JOB_INDUSTRY: 'profile_job_industry',\n JOB_TITLE: 'profile_job_title',\n PERSONAL_GOALS: 'personal_goals',\n HOBBIES: 'hobbies',\n PROFESSIONAL_GOALS: 'professional_goals',\n INDUSTRY: 'industry',\n NEWS_LOCATION: 'news_location',\n NY_PERSONAL_GOALS: 'new_year_personal_goals',\n NY_HOBBIES: 'new_year_hobbies',\n NY_PROFESSIONAL_GOALS: 'new_year_professional_goals',\n NY_INDUSTRY: 'new_year_industry',\n NY_NEWS_LOCATION: 'new_year_news_location',\n EDU_ROLE: 'profile_edu_role',\n EDU_MAJOR: 'profile_edu_major',\n EDU_GRADUATION_YEAR: 'profile_edu_graduation_year',\n} as const;\n"],"names":["CollectionBehaviors","COLLECT","DO_NOT_COLLECT","AttributesState","SUCCESS","DeleteAttributeState","SYSTEM_ERROR","INVALID_ATTRIBUTE_NAME","INVALID_ATTRIBUTE_NOT_EXISTS","IngestType","EXPLICIT","IMPLICIT","IngestResponseState","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","UNAUTHENTICATED","MISMATCHED_IDENTIFIER","DISABLED_ATTRIBUTE_DEFINITION","COOKIE","checkConsentCookieForAllowTargeting","value","getCookie","includes","checkAlertBoxClosedCookie","length","hasRequiredPrivacyCookies","window","intl_region","country_code","countryCode","WPGeo","pageType","gdprAllowTargarting","base","ENDPOINTS","attributesCache","getAttributes","fieldName","fieldNames","url","URL","searchParams","set","join","data","fetch","toString","credentials","headers","DEFAULT_HEADERS","json","ok","status","ResponseStatus","attributes","e","console","debug","sendGAEvent","props","warn","dataLayer","eventData","push","sendToGA","submitData","source","event","action","category","label","section","subsection","ingest","wapo_login_id","jucid","localStorage","getItem","ga","payload","type","metadata","response","method","body","JSON","stringify","isAnonymousWebview","wp_wv","isLoggedIn","Error","attributeInfo","name","collection_behavior","explicit","process","StyledMobileSelect","styled","padding","display","justifyContent","width","backgroundColor","color","fontFamily","fontSize","fontWeight","lineHeight","paddingBlockRight","textOverflow","position","borderColor","borderRightWidth","borderRightColor","appearance","theme","colors","disabled","onDisabled","cursor","StyledSelectWrapper","maxWidth","borderRadius","borderStyle","borderWidth","StyledMobileOption","Dropdown","id","values","required","defaultValue","onChange","answer","setAnswer","useState","isMobileSize","useWindowSize","useEffect","disabledProp","defaultValueProp","defaultValuePropMobile","selected","React","createElement","target","style","map","key","Icon","size","fill","gray80","pointerEvents","right","top","transform","ChevronDown","Select","Root","onValueChange","Trigger","Label","Value","Content","css","zIndex","zIndices","page","Item","scriptSrc","DESelect","dataDictionaryConfig","submit","onFinished","valuesFilter","children","config","setConfig","setSelected","scriptStatus","useScript","fetchConfig","_window","__twpdeu","getFieldConfigs","error","ScriptStatus","READY","submitSelected","_window2","result","isError","isFinished","isLoading","sort","a","b","order","filter","archived","SelectWrapper","boxSizing","marginBottom","flexDirection","configSrc","getConfig","myConfig","remoteConfig","Object","keys","forEach","configKey","split","toLowerCase","_","hydrateLinks","str","onLinkClick","array","chunks","i","rel","className","href","onClick","toReturn","reduce","prev","current","Fragment","checkOptanonConsentCookie","CONSENT_COOKIE","ALERT_BOX_COOKIE","useOnetrust","allowCookieStore","consentCookieExists","setConsentCookieExists","alertBoxClosed","setAlertBoxClosed","listenToCookieStore","setListenToCookieStore","listenToTcfApi","setListenToTcfApi","__tcfapi","cookieStore","cleanupFns","cleanupFn","listenToCookieStoreUtil","cleanupFn2","fn","listenerId","callback","_tcData","success","DEDisclosureWithBannerStatus","onPrivacyPolicyClick","disclosure","setDisclosure","disclosureRendering","setDisclosureRendering","disclosure_afterbanner","disclosure_beforebanner","Array","isArray","DEDisclosureWithoutBannerStatus","DEDisclosure","_e","setMyConfig","checkBannerStatus","FirstPartyIngestDataTypes","JOB_LEVEL","JOB_INDUSTRY","JOB_TITLE","PERSONAL_GOALS","HOBBIES","PROFESSIONAL_GOALS","INDUSTRY","NEWS_LOCATION","NY_PERSONAL_GOALS","NY_HOBBIES","NY_PROFESSIONAL_GOALS","NY_INDUSTRY","NY_NEWS_LOCATION","EDU_ROLE","EDU_MAJOR","EDU_GRADUATION_YEAR"],"mappings":"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"}
1
+ {"version":3,"file":"subs-de-inputs.cjs.development.js","sources":["../src/interfaces/index.ts","../src/utils/checkConsentCookieForAllowTargeting.ts","../src/components/DEDisclosure/utils/checkAlertBoxClosedCookie.ts","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/getAttributes.ts","../src/services/sendToGA.ts","../src/services/ingest.ts","../src/utils/isAnonymousWebview.ts","../src/utils/push.ts","../src/components/DESelect/Dropdown.tsx","../src/components/DESelect/index.tsx","../src/components/DEDisclosure/utils/getConfig.ts","../src/components/DEDisclosure/utils/hydrateLinks.tsx","../src/components/DEDisclosure/utils/checkOptAnonConsentCookie.ts","../src/components/DEDisclosure/hooks/useOnetrust.ts","../src/components/DEDisclosure/DisclosureWithBannerStatus.tsx","../src/components/DEDisclosure/DisclosureWithoutBannerStatus.tsx","../src/components/DEDisclosure/index.tsx","../src/constants/IngestDataTypes.ts"],"sourcesContent":["import type { ResponseStatusType } from '@washingtonpost/subs-sdk';\n\nexport type AttributeValue = {\n name: string;\n date_created: number;\n last_modified_date: number;\n archived: boolean;\n order: number;\n};\n\nexport const CollectionBehaviors = {\n COLLECT: 'COLLECT',\n DO_NOT_COLLECT: 'DO_NOT_COLLECT',\n} as const;\n\nexport type Attribute = {\n name: string;\n approved_for_use?: boolean;\n collection_behavior?: (typeof CollectionBehaviors)[keyof typeof CollectionBehaviors];\n datatype: string;\n explicit: boolean;\n multiple_value: boolean;\n last_modified_date: number;\n date_created: number;\n values: AttributeValue[] | Readonly<AttributeValue[]>;\n};\n\nexport const AttributesState = {\n SUCCESS: '100',\n} as const;\n\n// https://github.com/WashPost/subs-be-user-data-enrichment/blob/8e8f8460c59adbe9c83b50f368bff1d3300bfd6b/src/main/java/washpost/paywall/userdataenrichment/model/ResponseState.java#L19\nexport const DeleteAttributeState = {\n SUCCESS: '150',\n SYSTEM_ERROR: '151',\n INVALID_ATTRIBUTE_NAME: '152',\n INVALID_ATTRIBUTE_NOT_EXISTS: '153',\n} as const;\n\nexport const IngestType = {\n EXPLICIT: 'explicit',\n IMPLICIT: 'implicit',\n} as const;\n\nexport const IngestResponseState = {\n SUCCESS: '100',\n SYSTEM_ERROR: '101',\n INVALID_TYPE: '102',\n INVALID_IDENTIFIER: '103',\n INVALID_DATA: '104',\n INVALID_ATTRIBUTE_DEFINITION: '105',\n INVALID_META_DEFINITION: '106',\n UNAUTHENTICATED: '107',\n MISMATCHED_IDENTIFIER: '108',\n DISABLED_ATTRIBUTE_DEFINITION: '109',\n DO_NOT_COLLECT: '110',\n} as const;\n\nexport interface IProfileResponse {\n status: ResponseStatusType;\n state: (typeof AttributesState)[keyof typeof AttributesState];\n attributes: {\n [key: string]: {\n attribute_name: string;\n value: string | null;\n date_created: number;\n last_modified_date: number;\n };\n };\n}\n","import { getCookie } from '@washingtonpost/subs-sdk';\n\nconst COOKIE = 'OptanonConsent';\n\n/**\n * Checks the users OptanonConsent cookie to determine if the user has allowed targeting.\n * Returns true or false if the flag is found in the cookie, null otherwise.\n * @returns {boolean | null}\n */\nexport const checkConsentCookieForAllowTargeting = () => {\n const value = getCookie(COOKIE) || '';\n return value.includes('C0004%3A1')\n ? true\n : value.includes('C0004%3A0')\n ? false\n : null;\n};\n","import { getCookie } from '@washingtonpost/subs-sdk';\n\nconst COOKIE = 'OptanonAlertBoxClosed';\n\nexport const checkAlertBoxClosedCookie = () => {\n const value = getCookie(COOKIE) || '';\n // Wed May 15 2024 06:29:23 GMT-0500 (Central Daylight Time)\n // \"Invalid date\" is 12 characters long\n return value.length > 12;\n};\n","import { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\nimport { checkConsentCookieForAllowTargeting } from './checkConsentCookieForAllowTargeting';\nimport { checkAlertBoxClosedCookie } from '../components/DEDisclosure/utils/checkAlertBoxClosedCookie';\n\n/**\n * Checks privacy cookies to decide if we can send up 1pd\n * If US, checks that wp_usp exists\n * Else If OptAnonConsent cookie exists, checks the value of targeting cookies consent\n * Else If EEA, always returns true\n * Else, returns false\n * @returns {boolean}\n */\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const { intl_region, country_code: countryCode } = WPGeo();\n\n if (countryCode === 'US') {\n return !!getCookie('wp_usp');\n }\n\n if (window.pageType === 'onboarding') {\n const gdprAllowTargarting = checkConsentCookieForAllowTargeting();\n if (\n typeof gdprAllowTargarting === 'boolean' &&\n checkAlertBoxClosedCookie()\n ) {\n return gdprAllowTargarting;\n }\n\n // Downstream systems\n // Checking for window.pageType === 'onboarding' to avoid being true on graphics articles etc for now -- MNI-710\n if (intl_region === 'EEA' && window.pageType === 'onboarding') {\n return true;\n }\n }\n\n return false;\n};\n","import {\n ENDPOINTS,\n ResponseStatus,\n DEFAULT_HEADERS,\n} from '@washingtonpost/subs-sdk';\nimport type { Attribute } from '../interfaces';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\ntype GetAttributesType = ({\n fieldName,\n}: {\n fieldName: string;\n}) => Promise<Attribute[]>;\n\nconst attributesCache: Record<string, any> = {};\nexport const getAttributes: GetAttributesType = async ({\n fieldName,\n}: {\n fieldName: string;\n}) => {\n if (attributesCache[fieldName]) {\n return attributesCache[fieldName];\n }\n\n const fieldNames = [fieldName];\n\n try {\n const url = new URL(`${base}/attributes`);\n url.searchParams.set('attributes', fieldNames.join(','));\n\n const data = await fetch(url.toString(), {\n credentials: 'include',\n headers: DEFAULT_HEADERS,\n });\n const json = await data.json();\n\n if (data.ok && json.status === ResponseStatus.SUCCESS) {\n const attributes = json.attributes || [];\n attributesCache[fieldName] = attributes;\n return attributes;\n }\n return [];\n } catch (e) {\n console.debug(e);\n return [];\n }\n};\n","const sendGAEvent = (props: {\n event: string;\n category: string;\n action: string;\n label: string;\n 'de-label': string;\n [key: string]: undefined | string | string[];\n}): void => {\n if (typeof window === 'undefined') {\n if (__DEV__) console.warn('NO WINDOW');\n return;\n }\n // Initialize dataLayer if needed\n window.dataLayer = window.dataLayer || [];\n\n const eventData: Record<string, any> = {\n ...props,\n };\n window.dataLayer.push(eventData);\n};\n\nexport const sendToGA: SendToGaType = async ({\n submitData: { fieldName, value },\n source,\n}) => {\n sendGAEvent({\n event: 'site-onpage-click',\n action: 'site-onpage-click',\n category: 'profile',\n\n label: fieldName,\n 'de-label': fieldName,\n [fieldName]: value,\n\n section: 'profile',\n subsection: source,\n });\n\n return true;\n};\n\ntype SendToGaType = ({\n submitData: { fieldName, value },\n source,\n}: {\n submitData: {\n fieldName: string;\n value: string;\n };\n source: string;\n}) => Promise<true>;\n","import {\n ENDPOINTS,\n DEFAULT_HEADERS,\n getCookie,\n} from '@washingtonpost/subs-sdk';\nimport type { ResponseStatusType } from '@washingtonpost/subs-sdk';\nimport { type IngestResponseState, IngestType } from '../interfaces';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nexport const ingest: IngestType = async ({\n submitData: { fieldName, value },\n source,\n}) => {\n const url = `${base}/ingest`;\n\n const wapo_login_id = getCookie('wapo_login_id');\n\n const jucid = localStorage.getItem('uuid');\n const ga = getCookie('_ga');\n\n const payload = {\n jucid,\n ga,\n type: IngestType.EXPLICIT,\n wapo_login_id, // TODO: move this to BE to read from cookie headers\n data: {\n [fieldName]: [value],\n },\n metadata: { source },\n };\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n credentials: 'include',\n headers: DEFAULT_HEADERS,\n body: JSON.stringify(payload),\n });\n\n const json = await response.json();\n\n return json;\n } catch (e) {\n console.debug(e);\n return null;\n }\n};\n\ntype IngestType = ({\n submitData: { fieldName, value },\n source,\n}: {\n submitData: {\n fieldName: string;\n value: string;\n };\n source: string;\n}) => Promise<{\n status: ResponseStatusType;\n state: (typeof IngestResponseState)[keyof typeof IngestResponseState];\n} | null>;\n","import { getCookie, isLoggedIn } from '@washingtonpost/subs-sdk';\n\nexport const isAnonymousWebview = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_wv = getCookie('wp_wv');\n\n return !!(wp_wv && !isLoggedIn());\n};\n","import type { ResponseStatusType } from '@washingtonpost/subs-sdk';\nimport { CollectionBehaviors, IngestType } from '../interfaces';\nimport type { IngestResponseState } from '../interfaces';\nimport { getAttributes } from '../services/getAttributes';\nimport { sendToGA } from '../services/sendToGA';\nimport { hasRequiredPrivacyCookies } from './hasRequiredPrivacyCookies';\nimport { ingest } from '../services/ingest';\nimport { isAnonymousWebview } from './isAnonymousWebview';\n\ntype PushType = ({\n submitData: { fieldName, value },\n source,\n}: {\n submitData: {\n fieldName: string;\n value: string;\n };\n source: string;\n}) => Promise<\n | {\n status: ResponseStatusType;\n state: (typeof IngestResponseState)[keyof typeof IngestResponseState];\n }\n | null\n | true\n>;\n\nexport const push: PushType = async ({ submitData, source }) => {\n if (!hasRequiredPrivacyCookies()) {\n throw new Error('does not satisfy cookie check');\n }\n\n if (isAnonymousWebview()) {\n throw new Error('does not satisfy cookie check');\n }\n\n const { fieldName } = submitData;\n\n const attributeInfo = await getAttributes({\n fieldName,\n });\n\n if (\n attributeInfo[0] &&\n attributeInfo[0].name === fieldName &&\n attributeInfo[0].collection_behavior === CollectionBehaviors.DO_NOT_COLLECT\n ) {\n throw new Error('do not collect');\n }\n\n const type =\n attributeInfo[0] && attributeInfo[0].explicit === true\n ? IngestType.EXPLICIT\n : IngestType.IMPLICIT;\n\n if (!attributeInfo[0] && __DEV__) {\n console.warn(`no attribute info found for ${fieldName}, assuming implicit`);\n }\n\n if (type === IngestType.EXPLICIT) {\n return ingest({ submitData, source });\n }\n return sendToGA({ submitData, source });\n};\n","import React, { useEffect, useState } from 'react';\nimport { Icon, Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { useWindowSize } from '@washingtonpost/subs-hooks';\nimport { ChevronDown } from '@washingtonpost/wpds-assets';\n\ninterface IDropdownProps {\n id: string;\n label: string;\n values: Array<string>;\n required?: boolean;\n existingValue?: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n valueSelectedByDefault?: string;\n}\n\nconst StyledMobileSelect = styled('select', {\n padding: '12px 16px 12px 6px',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n backgroundColor: '$secondary',\n color: '$primary',\n fontFamily: '$meta',\n fontSize: '$100',\n fontWeight: '$light',\n lineHeight: '$125',\n paddingBlockRight: '$125',\n textOverflow: 'ellipsis',\n position: 'relative',\n borderColor: 'transparent',\n borderRightWidth: '10px',\n borderRightColor: 'transparent',\n appearance: 'none',\n '-webkit-appearance': 'none',\n '&:disabled': {\n backgroundColor: theme.colors.disabled,\n borderColor: theme.colors.disabled,\n color: theme.colors.onDisabled,\n cursor: 'not-allowed',\n },\n});\n\nconst StyledSelectWrapper = styled('div', {\n width: '100%',\n maxWidth: '380px',\n borderRadius: '$012',\n borderColor: '$subtle',\n borderStyle: 'solid',\n borderWidth: '1px',\n backgroundColor: '$secondary',\n position: 'relative',\n});\n\nconst StyledMobileOption = styled('option', {\n fontFamily: 'inherit',\n fontSize: 'inherit',\n color: 'inherit',\n});\n\n/**\n * Dropdown component. Uses wpds-ui-kit on desktop and native select on mobile.\n * @param {IDropdownProps} props The props.\n * @returns {React.ReactElement} The dropdown.\n */\nexport const Dropdown = ({\n id,\n label,\n values,\n required = false,\n existingValue,\n onChange = () => {},\n disabled = false,\n valueSelectedByDefault,\n}: IDropdownProps) => {\n const [answer, setAnswer] = useState<string>();\n const { isMobileSize } = useWindowSize();\n\n useEffect(() => {\n if (answer) onChange(answer);\n }, [answer]);\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n const presetDropdownValue = existingValue || valueSelectedByDefault;\n\n // helps maintain state between WPDS and native dropdowns\n const defaultValueProp = answer\n ? { defaultValue: answer }\n : presetDropdownValue\n ? { defaultValue: presetDropdownValue }\n : {};\n\n const defaultValuePropMobile = (value: string) => {\n if (answer) {\n return value === answer ? { selected: true } : {};\n }\n return value === presetDropdownValue ? { selected: true } : {};\n };\n\n return isMobileSize ? (\n <StyledSelectWrapper>\n <StyledMobileSelect\n id=\"\"\n required={required}\n onChange={(e) => setAnswer(e.target.value)}\n {...disabledProp}\n >\n <label>{label}</label>\n <StyledMobileOption\n value=\"\"\n disabled\n selected\n style={{ color: '#666666' }}\n >\n {label}\n </StyledMobileOption>\n {values.map((value) => (\n <StyledMobileOption\n value={value}\n key={value}\n {...defaultValuePropMobile(value)}\n >\n {value}\n </StyledMobileOption>\n ))}\n </StyledMobileSelect>\n <Icon\n label=\"\"\n size=\"100\"\n fill={theme.colors.gray80}\n style={{\n pointerEvents: 'none',\n position: 'absolute',\n right: '10px',\n top: '50%',\n transform: 'translateY(-50%)',\n }}\n >\n <ChevronDown style={{ position: 'absolute', right: '10px' }} />\n </Icon>\n </StyledSelectWrapper>\n ) : (\n <Select.Root\n onValueChange={(e) => setAnswer(e)}\n required={required}\n {...defaultValueProp}\n {...disabledProp}\n >\n <Select.Trigger data-test-id={`${id}-select-trigger`}>\n <Select.Label>{label}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content\n css={{ zIndex: theme.zIndices.page }}\n data-test-id={`${id}-select-content`}\n >\n {values.map((value) => (\n <Select.Item value={value} key={value}>\n {value}\n </Select.Item>\n ))}\n </Select.Content>\n </Select.Root>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled } from '@washingtonpost/wpds-ui-kit';\nimport { ENDPOINTS, ResponseStatus } from '@washingtonpost/subs-sdk';\nimport { useScript, ScriptStatus } from '@washingtonpost/subs-hooks';\nimport type { Attribute, AttributeValue } from '../../interfaces';\nimport { Dropdown } from './Dropdown';\n\ninterface DESelectProps {\n source: string;\n fieldName: string;\n label?: string;\n dataDictionaryConfig?: Attribute | Readonly<Attribute>;\n existingValue?: string;\n disabled?: boolean;\n submit: boolean;\n onChange?: ({ value }: { value: string }) => void;\n onFinished?: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n valuesFilter?: (value: AttributeValue) => boolean;\n selectProps?: {\n root?: any;\n trigger?: any;\n label?: any;\n value?: any;\n content?: any;\n item?: any;\n };\n children?: React.ReactNode;\n valueSelectedByDefault?: string;\n defaultValue?: never;\n}\n\nconst scriptSrc = `${ENDPOINTS.base}/de-utils/twpdeu.min.js`;\n\nconst SelectWrapper = styled('div', {\n boxSizing: 'border-box',\n display: 'flex',\n marginBottom: '$100',\n flexDirection: 'column',\n '& button': {\n padding: '1px 6px',\n },\n '& *': { boxSizing: 'border-box' },\n});\n\nexport const DESelect: React.FC<DESelectProps> = ({\n source,\n fieldName,\n label,\n dataDictionaryConfig,\n existingValue,\n disabled,\n submit,\n onChange = () => {},\n onFinished = () => {},\n valuesFilter = () => true,\n children,\n valueSelectedByDefault,\n}) => {\n const [config, setConfig] = useState(dataDictionaryConfig);\n\n const [selected, setSelected] = useState(\n !existingValue && valueSelectedByDefault ? valueSelectedByDefault : ''\n );\n\n const scriptStatus = useScript(scriptSrc);\n\n useEffect(() => {\n const fetchConfig = async () => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const config = await window?.__twpdeu?.getFieldConfigs({\n fieldName,\n });\n if (config) {\n setConfig(config[0]);\n } else {\n console.error('unable to get config', fieldName);\n }\n } catch (e) {\n console.warn('unable to get config', fieldName, e);\n }\n };\n\n if (scriptStatus === ScriptStatus.READY && !(children || config)) {\n fetchConfig();\n }\n }, [scriptStatus]);\n\n useEffect(() => {\n const submitSelected = async () => {\n try {\n const result = await window?.__twpdeu?.push({\n submitData: { fieldName, value: selected },\n source,\n });\n\n const isError =\n result === true\n ? false\n : result\n ? result.status !== ResponseStatus.SUCCESS\n : true;\n\n onFinished({\n isFinished: true,\n isError,\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n onFinished({\n isFinished: false,\n isError: true,\n });\n }\n };\n\n if (scriptStatus === ScriptStatus.READY && submit && selected) {\n submitSelected();\n }\n }, [scriptStatus, submit]);\n\n const defaultValueProp =\n existingValue && config ? { defaultValue: existingValue } : {};\n\n const isLoading = !(children || config);\n\n const disabledProp = disabled || isLoading ? { disabled: true } : {};\n\n // sort and filter out archived values\n // Note: config.values may be readonly\n const values = config\n ? [...config.values]\n .sort((a, b) => a.order - b.order)\n .filter((value) => value.archived !== true)\n .filter(valuesFilter)\n : [];\n\n return (\n <SelectWrapper>\n {children && (\n <Select.Root\n onValueChange={(e) => {\n setSelected(e);\n onChange({ value: e });\n }}\n {...defaultValueProp}\n {...disabledProp}\n >\n {children}\n </Select.Root>\n )}\n {!children && !config && (\n <Dropdown\n id={'loading'}\n label={'Loading...'}\n values={[]}\n disabled={true}\n />\n )}\n {!children && config && (\n <Dropdown\n id={config.name}\n label={label || config.name}\n onChange={(e) => {\n setSelected(e);\n onChange({ value: e });\n }}\n values={values.map((value) => value.name)}\n existingValue={existingValue}\n disabled={disabled}\n valueSelectedByDefault={valueSelectedByDefault}\n />\n )}\n </SelectWrapper>\n );\n};\n","import { ENDPOINTS, WPGeo } from '@washingtonpost/subs-sdk';\nimport type {\n DisclosureConfig,\n DisclosureConfigValue,\n} from '../../../interfaces/disclosure';\n\nconst configSrc = `${\n ENDPOINTS.base === 'https://subscribe.washingtonpost.com'\n ? 'https://www.washingtonpost.com/subscribe'\n : ENDPOINTS.base\n}/config/de/disclosure.json`;\n\nexport const getConfig = async () => {\n let myConfig: DisclosureConfigValue | undefined;\n\n // step 1: fetch config\n const response = await fetch(configSrc);\n const remoteConfig: DisclosureConfig = await response.json();\n\n // step 2: figure out which part of the config to use\n\n // if country- or region-specific config found, use that\n const { country_code, intl_region } = WPGeo();\n Object.keys(remoteConfig).forEach((configKey) => {\n if (\n country_code &&\n configKey.split('|').includes(country_code.toLowerCase())\n ) {\n myConfig = remoteConfig[configKey];\n } else if (intl_region === 'EEA' && configKey === 'eea') {\n myConfig = remoteConfig[configKey];\n }\n });\n\n // TODO: Check for billing country also\n\n // else if no country-specific config, use the default config\n if (typeof myConfig === 'undefined' && remoteConfig._) {\n myConfig = remoteConfig._;\n }\n\n return myConfig;\n};\n","import React from 'react';\n\ntype hydrateLinksType = (\n str: string,\n onLinkClick: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void\n) => string | JSX.Element;\n\nexport const hydrateLinks: hydrateLinksType = (str, onLinkClick = () => {}) => {\n const array = str.split(/({{PRIVACY_POLICY}})/g);\n const chunks = array.map((str, i) => {\n if (str === '{{PRIVACY_POLICY}}') {\n return (\n <a\n key={`privacy-link-${i}`}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n style={{ color: 'inherit' }}\n className=\"underline\"\n href=\"https://www.washingtonpost.com/privacy-policy/\"\n onClick={(e) => onLinkClick(e)}\n >\n Privacy Policy\n </a>\n );\n }\n return str;\n });\n\n const toReturn = chunks.reduce(\n (prev, current) => (\n <>\n {prev}\n {current}\n </>\n ),\n <></>\n );\n\n return toReturn;\n};\n","import { getCookie } from '@washingtonpost/subs-sdk';\n\nconst COOKIE = 'OptanonConsent';\n\nexport const checkOptanonConsentCookie = () => {\n const value = getCookie(COOKIE) || '';\n return value.length > 12;\n};\n","import { useState, useEffect } from 'react';\nimport type { ICookieStore } from '@washingtonpost/subs-sdk';\nimport { listenToCookieStore as listenToCookieStoreUtil } from '@washingtonpost/subs-sdk';\nimport { checkAlertBoxClosedCookie } from '../utils/checkAlertBoxClosedCookie';\nimport { checkOptanonConsentCookie } from '../utils/checkOptAnonConsentCookie';\n\nconst CONSENT_COOKIE = 'OptanonConsent';\n\nconst ALERT_BOX_COOKIE = 'OptanonAlertBoxClosed';\n\ninterface TCData {\n eventStatus: 'tcloaded' | 'cmpuishown' | 'useractioncomplete';\n listenerId: number;\n [key: string]: any;\n}\n\ntype TCFAPIAddListener = (\n command: 'addEventListener',\n version: number,\n callback: (tcData: TCData, success: boolean) => void\n) => void;\n\ntype TCFAPIRmListener = (\n command: 'removeEventListener',\n version: number,\n callback: (success: boolean) => void,\n listenerId: number\n) => void;\n\ntype TCFAPIPing = (\n command: 'ping',\n version: number,\n callback: (pingReturn: any, success: boolean) => void\n) => void;\n\ndeclare global {\n interface Window {\n cookieStore?: ICookieStore;\n __tcfapi?: TCFAPIAddListener & TCFAPIRmListener & TCFAPIPing;\n }\n}\n\nexport const useOnetrust = ({\n allowCookieStore,\n}: {\n allowCookieStore: boolean;\n}) => {\n const [consentCookieExists, setConsentCookieExists] = useState<\n boolean | undefined\n >();\n const [alertBoxClosed, setAlertBoxClosed] = useState<boolean | undefined>();\n\n const [listenToCookieStore, setListenToCookieStore] = useState(false);\n const [listenToTcfApi, setListenToTcfApi] = useState(false);\n\n useEffect(() => {\n if (checkOptanonConsentCookie()) {\n setConsentCookieExists(true);\n }\n\n if (checkAlertBoxClosedCookie()) {\n setAlertBoxClosed(true);\n return;\n }\n\n if (!window.__tcfapi) {\n console.warn('warning: __tcfapi not found');\n }\n\n if (window?.cookieStore && allowCookieStore) {\n setListenToCookieStore(true);\n } else if (window.__tcfapi) {\n setListenToTcfApi(true);\n } else {\n console.warn('warning: neither cookieStore nor __tcfapi found');\n }\n }, []);\n\n useEffect(() => {\n const cleanupFns: ((() => void) | null)[] = [];\n if (listenToCookieStore && window.cookieStore) {\n const cleanupFn = listenToCookieStoreUtil(CONSENT_COOKIE, () => {\n if (checkOptanonConsentCookie()) {\n setConsentCookieExists(true);\n }\n });\n cleanupFns.push(cleanupFn);\n\n const cleanupFn2 = listenToCookieStoreUtil(ALERT_BOX_COOKIE, () => {\n if (checkAlertBoxClosedCookie()) {\n setAlertBoxClosed(true);\n } else {\n setAlertBoxClosed(false);\n }\n });\n cleanupFns.push(cleanupFn2);\n }\n return () => {\n cleanupFns.forEach((fn) => fn && fn());\n };\n }, [listenToCookieStore]);\n\n useEffect(() => {\n let listenerId: number;\n if (listenToTcfApi && window.__tcfapi) {\n const callback = (_tcData: TCData, success: boolean) => {\n if (success) {\n listenerId = _tcData.listenerId;\n\n if (checkOptanonConsentCookie()) {\n setConsentCookieExists(true);\n }\n\n // tcData.eventStatus can be:\n // tcloaded means user has made a choice and we’re ready to check it\n // cmpuishown means the banner is shown\n // useractioncomplete means the user has interacted with the banner\n\n // but actually if the result for any of these is true, we just use the value of the cookie\n if (checkAlertBoxClosedCookie()) {\n setAlertBoxClosed(true);\n }\n }\n };\n\n window.__tcfapi('addEventListener', 2, callback);\n }\n\n // cleanup fn\n return () => {\n if (window.__tcfapi && listenerId)\n window.__tcfapi(\n 'removeEventListener',\n 2,\n (success) => {\n console.debug(success);\n },\n listenerId\n );\n };\n }, [listenToTcfApi]);\n\n return {\n consentCookieExists,\n alertBoxClosed,\n listenToCookieStore,\n listenToTcfApi,\n };\n};\n","import type { ReactEventHandler } from 'react';\nimport React, { useState, useEffect } from 'react';\nimport type { DisclosureConfigValue } from '../../interfaces/disclosure';\nimport { hydrateLinks } from './utils/hydrateLinks';\nimport { useOnetrust } from './hooks/useOnetrust';\n\ninterface DEDisclosureWithBannerStatusProps {\n config: DisclosureConfigValue;\n allowCookieStore?: boolean;\n onFinished: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n onPrivacyPolicyClick?: ReactEventHandler<HTMLAnchorElement>;\n}\n\nexport const DEDisclosureWithBannerStatus: React.FC<\n DEDisclosureWithBannerStatusProps\n> = ({\n config,\n onFinished,\n allowCookieStore = true,\n onPrivacyPolicyClick = () => {},\n}) => {\n const [disclosure, setDisclosure] = useState<string[] | null>(null);\n const [disclosureRendering, setDisclosureRendering] =\n useState<JSX.Element | null>(null);\n\n const { alertBoxClosed, consentCookieExists } = useOnetrust({\n allowCookieStore,\n });\n\n useEffect(() => {\n if (config) {\n // step 3: set disclosure based on config\n\n if (alertBoxClosed) {\n setDisclosure(config.disclosure_afterbanner);\n } else {\n setDisclosure(config.disclosure_beforebanner);\n }\n }\n }, [alertBoxClosed]);\n\n useEffect(() => {\n if (disclosure && Array.isArray(disclosure)) {\n setDisclosureRendering(\n disclosure.reduce(\n (prev, current) => (\n <>\n {prev}\n <p>{hydrateLinks(current, onPrivacyPolicyClick)}</p>\n </>\n ),\n <></>\n )\n );\n }\n }, [disclosure]);\n\n useEffect(() => {\n if (disclosureRendering && consentCookieExists) {\n onFinished({ isFinished: true, isError: false });\n }\n }, [disclosureRendering, consentCookieExists]);\n\n return disclosureRendering;\n};\n","import type { ReactEventHandler } from 'react';\nimport React, { useState, useEffect } from 'react';\nimport type { DisclosureConfigValue } from '../../interfaces/disclosure';\nimport { hydrateLinks } from './utils/hydrateLinks';\n\ninterface DEDisclosureWithoutBannerStatusProps {\n config: DisclosureConfigValue;\n onFinished: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n onPrivacyPolicyClick?: ReactEventHandler<HTMLAnchorElement>;\n}\n\nexport const DEDisclosureWithoutBannerStatus: React.FC<\n DEDisclosureWithoutBannerStatusProps\n> = ({ config, onFinished, onPrivacyPolicyClick = () => {} }) => {\n const [disclosure, setDisclosure] = useState<string[] | null>(null);\n const [disclosureRendering, setDisclosureRendering] =\n useState<JSX.Element | null>(null);\n\n useEffect(() => {\n if (config) {\n setDisclosure(config.disclosure);\n }\n }, [config]);\n\n useEffect(() => {\n if (disclosure && Array.isArray(disclosure)) {\n setDisclosureRendering(\n disclosure.reduce(\n (prev, current) => (\n <>\n {prev}\n <p>{hydrateLinks(current, onPrivacyPolicyClick)}</p>\n </>\n ),\n <></>\n )\n );\n }\n }, [disclosure]);\n\n useEffect(() => {\n if (disclosureRendering) {\n onFinished({ isFinished: true, isError: false });\n }\n }, [disclosureRendering]);\n\n return disclosureRendering;\n};\n","import type { ReactEventHandler } from 'react';\nimport React, { useState, useEffect } from 'react';\nimport type { DisclosureConfigValue } from '../../interfaces/disclosure';\nimport { getConfig } from './utils/getConfig';\nimport { DEDisclosureWithBannerStatus } from './DisclosureWithBannerStatus';\nimport { DEDisclosureWithoutBannerStatus } from './DisclosureWithoutBannerStatus';\n\ninterface DisclosureProps {\n /** callback function to be called when the disclosure is finished loading */\n onFinished?: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n\n onPrivacyPolicyClick?: ReactEventHandler<HTMLAnchorElement>;\n\n /** ability to turn off cookiestore listener, primarily for testing purposes */\n allowCookieStore?: boolean;\n}\n\nexport const DEDisclosure: React.FC<DisclosureProps> = ({\n onFinished = () => {},\n allowCookieStore = true,\n onPrivacyPolicyClick = (_e) => {},\n}) => {\n const [disclosureRendering, setDisclosureRendering] =\n useState<JSX.Element | null>(null);\n const [myConfig, setMyConfig] = useState<DisclosureConfigValue>();\n // const { alertBoxClosed } = useOneTrustAlertBoxClosed({ allowCookieStore });\n\n useEffect(() => {\n (async () => {\n const config = await getConfig();\n setMyConfig(config);\n\n if (!config) {\n console.error('No config found');\n }\n })();\n }, []);\n\n useEffect(() => {\n if (myConfig) {\n // step 3: set disclosure based on config\n\n // if config says to check onetrust, check onetrust\n if ('checkBannerStatus' in myConfig && myConfig.checkBannerStatus) {\n // check if onetrust is closed\n // if it is, show the after banner disclosure\n // if it is not, show the before banner disclosure\n setDisclosureRendering(\n <DEDisclosureWithBannerStatus\n config={myConfig}\n allowCookieStore={allowCookieStore}\n onFinished={onFinished}\n onPrivacyPolicyClick={onPrivacyPolicyClick}\n />\n );\n } else if ('disclosure' in myConfig) {\n setDisclosureRendering(\n <DEDisclosureWithoutBannerStatus\n config={myConfig}\n onFinished={onFinished}\n onPrivacyPolicyClick={onPrivacyPolicyClick}\n />\n );\n } else {\n console.error('Invalid config');\n }\n }\n }, [myConfig]);\n\n if (disclosureRendering) {\n return <div data-test-id=\"de-disclosure\">{disclosureRendering}</div>;\n }\n\n return <div data-test-id=\"de-disclosure-loading\"></div>;\n};\n","export const FirstPartyIngestDataTypes = {\n JOB_LEVEL: 'profile_job_level',\n JOB_INDUSTRY: 'profile_job_industry',\n JOB_TITLE: 'profile_job_title',\n PERSONAL_GOALS: 'personal_goals',\n HOBBIES: 'hobbies',\n PROFESSIONAL_GOALS: 'professional_goals',\n INDUSTRY: 'industry',\n NEWS_LOCATION: 'news_location',\n NY_PERSONAL_GOALS: 'new_year_personal_goals',\n NY_HOBBIES: 'new_year_hobbies',\n NY_PROFESSIONAL_GOALS: 'new_year_professional_goals',\n NY_INDUSTRY: 'new_year_industry',\n NY_NEWS_LOCATION: 'new_year_news_location',\n EDU_ROLE: 'profile_edu_role',\n EDU_MAJOR: 'profile_edu_major',\n EDU_GRADUATION_YEAR: 'profile_edu_graduation_year',\n} as const;\n"],"names":["CollectionBehaviors","COLLECT","DO_NOT_COLLECT","AttributesState","SUCCESS","DeleteAttributeState","SYSTEM_ERROR","INVALID_ATTRIBUTE_NAME","INVALID_ATTRIBUTE_NOT_EXISTS","IngestType","EXPLICIT","IMPLICIT","IngestResponseState","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","UNAUTHENTICATED","MISMATCHED_IDENTIFIER","DISABLED_ATTRIBUTE_DEFINITION","COOKIE","checkConsentCookieForAllowTargeting","value","getCookie","includes","checkAlertBoxClosedCookie","length","hasRequiredPrivacyCookies","window","intl_region","country_code","countryCode","WPGeo","pageType","gdprAllowTargarting","base","ENDPOINTS","attributesCache","getAttributes","fieldName","fieldNames","url","URL","searchParams","set","join","data","fetch","toString","credentials","headers","DEFAULT_HEADERS","json","ok","status","ResponseStatus","attributes","e","console","debug","sendGAEvent","props","warn","dataLayer","eventData","push","sendToGA","submitData","source","event","action","category","label","section","subsection","ingest","wapo_login_id","jucid","localStorage","getItem","ga","payload","type","metadata","response","method","body","JSON","stringify","isAnonymousWebview","wp_wv","isLoggedIn","Error","attributeInfo","name","collection_behavior","explicit","process","StyledMobileSelect","styled","padding","display","justifyContent","width","backgroundColor","color","fontFamily","fontSize","fontWeight","lineHeight","paddingBlockRight","textOverflow","position","borderColor","borderRightWidth","borderRightColor","appearance","theme","colors","disabled","onDisabled","cursor","StyledSelectWrapper","maxWidth","borderRadius","borderStyle","borderWidth","StyledMobileOption","Dropdown","id","values","required","existingValue","onChange","valueSelectedByDefault","answer","setAnswer","useState","isMobileSize","useWindowSize","useEffect","disabledProp","presetDropdownValue","defaultValueProp","defaultValue","defaultValuePropMobile","selected","React","createElement","target","style","map","key","Icon","size","fill","gray80","pointerEvents","right","top","transform","ChevronDown","Select","Root","onValueChange","Trigger","Label","Value","Content","css","zIndex","zIndices","page","Item","scriptSrc","SelectWrapper","boxSizing","marginBottom","flexDirection","DESelect","dataDictionaryConfig","submit","onFinished","valuesFilter","children","config","setConfig","setSelected","scriptStatus","useScript","fetchConfig","_window","__twpdeu","getFieldConfigs","error","ScriptStatus","READY","submitSelected","_window2","result","isError","isFinished","isLoading","sort","a","b","order","filter","archived","configSrc","getConfig","myConfig","remoteConfig","Object","keys","forEach","configKey","split","toLowerCase","_","hydrateLinks","str","onLinkClick","array","chunks","i","rel","className","href","onClick","toReturn","reduce","prev","current","Fragment","checkOptanonConsentCookie","CONSENT_COOKIE","ALERT_BOX_COOKIE","useOnetrust","allowCookieStore","consentCookieExists","setConsentCookieExists","alertBoxClosed","setAlertBoxClosed","listenToCookieStore","setListenToCookieStore","listenToTcfApi","setListenToTcfApi","__tcfapi","cookieStore","cleanupFns","cleanupFn","listenToCookieStoreUtil","cleanupFn2","fn","listenerId","callback","_tcData","success","DEDisclosureWithBannerStatus","onPrivacyPolicyClick","disclosure","setDisclosure","disclosureRendering","setDisclosureRendering","disclosure_afterbanner","disclosure_beforebanner","Array","isArray","DEDisclosureWithoutBannerStatus","DEDisclosure","_e","setMyConfig","checkBannerStatus","FirstPartyIngestDataTypes","JOB_LEVEL","JOB_INDUSTRY","JOB_TITLE","PERSONAL_GOALS","HOBBIES","PROFESSIONAL_GOALS","INDUSTRY","NEWS_LOCATION","NY_PERSONAL_GOALS","NY_HOBBIES","NY_PROFESSIONAL_GOALS","NY_INDUSTRY","NY_NEWS_LOCATION","EDU_ROLE","EDU_MAJOR","EDU_GRADUATION_YEAR"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@washingtonpost/subs-sdk"),t=require("react"),o=require("@washingtonpost/wpds-ui-kit"),n=require("@washingtonpost/subs-hooks"),i=require("@washingtonpost/wpds-assets");const r={COLLECT:"COLLECT",DO_NOT_COLLECT:"DO_NOT_COLLECT"},a={EXPLICIT:"explicit",IMPLICIT:"implicit"},s=()=>(e.getCookie("OptanonAlertBoxClosed")||"").length>12,l=()=>{if("undefined"==typeof window)return!1;const{intl_region:t,country_code:o}=e.WPGeo();if("US"===o)return!!e.getCookie("wp_usp");if("onboarding"===window.pageType){const o=(()=>{const t=e.getCookie("OptanonConsent")||"";return!!t.includes("C0004%3A1")||!t.includes("C0004%3A0")&&null})();if("boolean"==typeof o&&s())return o;if("EEA"===t&&"onboarding"===window.pageType)return!0}return!1},c=`${e.ENDPOINTS.base}/de/v1`,d={},u=async({fieldName:t})=>{if(d[t])return d[t];const o=[t];try{const n=new URL(`${c}/attributes`);n.searchParams.set("attributes",o.join(","));const i=await fetch(n.toString(),{credentials:"include",headers:e.DEFAULT_HEADERS}),r=await i.json();if(i.ok&&r.status===e.ResponseStatus.SUCCESS){const e=r.attributes||[];return d[t]=e,e}return[]}catch(e){return console.debug(e),[]}},p=`${e.ENDPOINTS.base}/de/v1`,E=o.styled("select",{padding:"12px 16px 12px 6px",display:"flex",justifyContent:"space-between",width:"100%",backgroundColor:"$secondary",color:"$primary",fontFamily:"$meta",fontSize:"$100",fontWeight:"$light",lineHeight:"$125",paddingBlockRight:"$125",textOverflow:"ellipsis",position:"relative",borderColor:"transparent",borderRightWidth:"10px",borderRightColor:"transparent",appearance:"none","-webkit-appearance":"none","&:disabled":{backgroundColor:o.theme.colors.disabled,borderColor:o.theme.colors.disabled,color:o.theme.colors.onDisabled,cursor:"not-allowed"}}),f=o.styled("div",{width:"100%",maxWidth:"380px",borderRadius:"$012",borderColor:"$subtle",borderStyle:"solid",borderWidth:"1px",backgroundColor:"$secondary",position:"relative"}),_=o.styled("option",{fontFamily:"inherit",fontSize:"inherit",color:"inherit"}),g=({id:e,label:r,values:a,required:s=!1,defaultValue:l,onChange:c=()=>{},disabled:d=!1})=>{const[u,p]=t.useState(),{isMobileSize:g}=n.useWindowSize();t.useEffect((()=>{u&&c(u)}),[u]);const S=d?{disabled:!0}:{},w=u?{defaultValue:u}:l?{defaultValue:l}:{},b=e=>u?e===u?{selected:!0}:{}:e===l?{selected:!0}:{};return g?t.createElement(f,null,t.createElement(E,{id:"",required:s,onChange:e=>p(e.target.value),...S},t.createElement("label",null,r),t.createElement(_,{value:"",disabled:!0,selected:!0,style:{color:"#666666"}},r),a.map((e=>t.createElement(_,{value:e,key:e,...b(e)},e)))),t.createElement(o.Icon,{label:"",size:"100",fill:o.theme.colors.gray80,style:{pointerEvents:"none",position:"absolute",right:"10px",top:"50%",transform:"translateY(-50%)"}},t.createElement(i.ChevronDown,{style:{position:"absolute",right:"10px"}}))):t.createElement(o.Select.Root,{onValueChange:e=>p(e),required:s,...w,...S},t.createElement(o.Select.Trigger,{"data-test-id":`${e}-select-trigger`},t.createElement(o.Select.Label,null,r),t.createElement(o.Select.Value,null)),t.createElement(o.Select.Content,{css:{zIndex:o.theme.zIndices.page},"data-test-id":`${e}-select-content`},a.map((e=>t.createElement(o.Select.Item,{value:e,key:e},e)))))},S=`${e.ENDPOINTS.base}/de-utils/twpdeu.min.js`,w=o.styled("div",{boxSizing:"border-box",display:"flex",marginBottom:"$100",flexDirection:"column","& button":{padding:"1px 6px"},"& *":{boxSizing:"border-box"}}),b=`${"https://subscribe.washingtonpost.com"===e.ENDPOINTS.base?"https://www.washingtonpost.com/subscribe":e.ENDPOINTS.base}/config/de/disclosure.json`,C=(e,o=()=>{})=>e.split(/({{PRIVACY_POLICY}})/g).map(((e,n)=>"{{PRIVACY_POLICY}}"===e?t.createElement("a",{key:`privacy-link-${n}`,rel:"noopener noreferrer",target:"_blank",style:{color:"inherit"},className:"underline",href:"https://www.washingtonpost.com/privacy-policy/",onClick:e=>o(e)},"Privacy Policy"):e)).reduce(((e,o)=>t.createElement(t.Fragment,null,e,o)),t.createElement(t.Fragment,null)),h=()=>(e.getCookie("OptanonConsent")||"").length>12,m=({config:o,onFinished:n,allowCookieStore:i=!0,onPrivacyPolicyClick:r=()=>{}})=>{const[a,l]=t.useState(null),[c,d]=t.useState(null),{alertBoxClosed:u,consentCookieExists:p}=(({allowCookieStore:o})=>{const[n,i]=t.useState(),[r,a]=t.useState(),[l,c]=t.useState(!1),[d,u]=t.useState(!1);return t.useEffect((()=>{var e;h()&&i(!0),s()?a(!0):(window.__tcfapi||console.warn("warning: __tcfapi not found"),null!==(e=window)&&void 0!==e&&e.cookieStore&&o?c(!0):window.__tcfapi?u(!0):console.warn("warning: neither cookieStore nor __tcfapi found"))}),[]),t.useEffect((()=>{const t=[];if(l&&window.cookieStore){const o=e.listenToCookieStore("OptanonConsent",(()=>{h()&&i(!0)}));t.push(o);const n=e.listenToCookieStore("OptanonAlertBoxClosed",(()=>{s()?a(!0):a(!1)}));t.push(n)}return()=>{t.forEach((e=>e&&e()))}}),[l]),t.useEffect((()=>{let e;return d&&window.__tcfapi&&window.__tcfapi("addEventListener",2,((t,o)=>{o&&(e=t.listenerId,h()&&i(!0),s()&&a(!0))})),()=>{window.__tcfapi&&e&&window.__tcfapi("removeEventListener",2,(e=>{console.debug(e)}),e)}}),[d]),{consentCookieExists:n,alertBoxClosed:r,listenToCookieStore:l,listenToTcfApi:d}})({allowCookieStore:i});return t.useEffect((()=>{o&&l(u?o.disclosure_afterbanner:o.disclosure_beforebanner)}),[u]),t.useEffect((()=>{a&&Array.isArray(a)&&d(a.reduce(((e,o)=>t.createElement(t.Fragment,null,e,t.createElement("p",null,C(o,r)))),t.createElement(t.Fragment,null)))}),[a]),t.useEffect((()=>{c&&p&&n({isFinished:!0,isError:!1})}),[c,p]),c},y=({config:e,onFinished:o,onPrivacyPolicyClick:n=()=>{}})=>{const[i,r]=t.useState(null),[a,s]=t.useState(null);return t.useEffect((()=>{e&&r(e.disclosure)}),[e]),t.useEffect((()=>{i&&Array.isArray(i)&&s(i.reduce(((e,o)=>t.createElement(t.Fragment,null,e,t.createElement("p",null,C(o,n)))),t.createElement(t.Fragment,null)))}),[i]),t.useEffect((()=>{a&&o({isFinished:!0,isError:!1})}),[a]),a};exports.AttributesState={SUCCESS:"100"},exports.CollectionBehaviors=r,exports.DEDisclosure=({onFinished:o=()=>{},allowCookieStore:n=!0,onPrivacyPolicyClick:i=e=>{}})=>{const[r,a]=t.useState(null),[s,l]=t.useState();return t.useEffect((()=>{(async()=>{const t=await(async()=>{let t;const o=await fetch(b),n=await o.json(),{country_code:i,intl_region:r}=e.WPGeo();return Object.keys(n).forEach((e=>{(i&&e.split("|").includes(i.toLowerCase())||"EEA"===r&&"eea"===e)&&(t=n[e])})),void 0===t&&n._&&(t=n._),t})();l(t),t||console.error("No config found")})()}),[]),t.useEffect((()=>{s&&("checkBannerStatus"in s&&s.checkBannerStatus?a(t.createElement(m,{config:s,allowCookieStore:n,onFinished:o,onPrivacyPolicyClick:i})):"disclosure"in s?a(t.createElement(y,{config:s,onFinished:o,onPrivacyPolicyClick:i})):console.error("Invalid config"))}),[s]),r?t.createElement("div",{"data-test-id":"de-disclosure"},r):t.createElement("div",{"data-test-id":"de-disclosure-loading"})},exports.DESelect=({source:i,fieldName:r,label:a,dataDictionaryConfig:s,defaultValue:l,disabled:c,submit:d,onChange:u=()=>{},onFinished:p=()=>{},valuesFilter:E=()=>!0,children:f})=>{const[_,b]=t.useState(s),[C,h]=t.useState(""),m=n.useScript(S);t.useEffect((()=>{m!==n.ScriptStatus.READY||f||_||(async()=>{try{var e;const t=await(null===(e=window)||void 0===e||null===(e=e.__twpdeu)||void 0===e?void 0:e.getFieldConfigs({fieldName:r}));t?b(t[0]):console.error("unable to get config",r)}catch(e){console.warn("unable to get config",r,e)}})()}),[m]),t.useEffect((()=>{m===n.ScriptStatus.READY&&d&&C&&(async()=>{try{var t;const o=await(null===(t=window)||void 0===t||null===(t=t.__twpdeu)||void 0===t?void 0:t.push({submitData:{fieldName:r,value:C},source:i}));p({isFinished:!0,isError:!0!==o&&(!o||o.status!==e.ResponseStatus.SUCCESS)})}catch(e){p({isFinished:!1,isError:!0})}})()}),[m,d]);const y=l&&_?{defaultValue:l}:{},I=c||!f&&!_?{disabled:!0}:{},T=_?[..._.values].sort(((e,t)=>e.order-t.order)).filter((e=>!0!==e.archived)).filter(E):[];return t.createElement(w,null,f&&t.createElement(o.Select.Root,{onValueChange:e=>{h(e),u({value:e})},...y,...I},f),!f&&!_&&t.createElement(g,{id:"loading",label:"Loading...",values:[],disabled:!0}),!f&&_&&t.createElement(g,{id:_.name,label:a||_.name,onChange:e=>{h(e),u({value:e})},values:T.map((e=>e.name)),defaultValue:l,disabled:c}))},exports.DeleteAttributeState={SUCCESS:"150",SYSTEM_ERROR:"151",INVALID_ATTRIBUTE_NAME:"152",INVALID_ATTRIBUTE_NOT_EXISTS:"153"},exports.FirstPartyIngestDataTypes={JOB_LEVEL:"profile_job_level",JOB_INDUSTRY:"profile_job_industry",JOB_TITLE:"profile_job_title",PERSONAL_GOALS:"personal_goals",HOBBIES:"hobbies",PROFESSIONAL_GOALS:"professional_goals",INDUSTRY:"industry",NEWS_LOCATION:"news_location",NY_PERSONAL_GOALS:"new_year_personal_goals",NY_HOBBIES:"new_year_hobbies",NY_PROFESSIONAL_GOALS:"new_year_professional_goals",NY_INDUSTRY:"new_year_industry",NY_NEWS_LOCATION:"new_year_news_location",EDU_ROLE:"profile_edu_role",EDU_MAJOR:"profile_edu_major",EDU_GRADUATION_YEAR:"profile_edu_graduation_year"},exports.IngestResponseState={SUCCESS:"100",SYSTEM_ERROR:"101",INVALID_TYPE:"102",INVALID_IDENTIFIER:"103",INVALID_DATA:"104",INVALID_ATTRIBUTE_DEFINITION:"105",INVALID_META_DEFINITION:"106",UNAUTHENTICATED:"107",MISMATCHED_IDENTIFIER:"108",DISABLED_ATTRIBUTE_DEFINITION:"109",DO_NOT_COLLECT:"110"},exports.IngestType=a,exports.getAttributes=u,exports.hasRequiredPrivacyCookies=l,exports.push=async({submitData:t,source:o})=>{if(!l())throw new Error("does not satisfy cookie check");if("undefined"!=typeof window&&e.getCookie("wp_wv")&&!e.isLoggedIn())throw new Error("does not satisfy cookie check");const{fieldName:n}=t,i=await u({fieldName:n});if(i[0]&&i[0].name===n&&i[0].collection_behavior===r.DO_NOT_COLLECT)throw new Error("do not collect");return(i[0]&&!0===i[0].explicit?a.EXPLICIT:a.IMPLICIT)===a.EXPLICIT?(async({submitData:{fieldName:t,value:o},source:n})=>{const i=`${p}/ingest`,r=e.getCookie("wapo_login_id"),s={jucid:localStorage.getItem("uuid"),ga:e.getCookie("_ga"),type:a.EXPLICIT,wapo_login_id:r,data:{[t]:[o]},metadata:{source:n}};try{const t=await fetch(i,{method:"POST",credentials:"include",headers:e.DEFAULT_HEADERS,body:JSON.stringify(s)});return await t.json()}catch(e){return console.debug(e),null}})({submitData:t,source:o}):(async({submitData:{fieldName:e,value:t},source:o})=>((e=>{if("undefined"==typeof window)return;window.dataLayer=window.dataLayer||[];const t={...e};window.dataLayer.push(t)})({event:"site-onpage-click",action:"site-onpage-click",category:"profile",label:e,"de-label":e,[e]:t,section:"profile",subsection:o}),!0))({submitData:t,source:o})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@washingtonpost/subs-sdk"),t=require("react"),o=require("@washingtonpost/wpds-ui-kit"),n=require("@washingtonpost/subs-hooks"),i=require("@washingtonpost/wpds-assets");const r={COLLECT:"COLLECT",DO_NOT_COLLECT:"DO_NOT_COLLECT"},a={EXPLICIT:"explicit",IMPLICIT:"implicit"},s=()=>(e.getCookie("OptanonAlertBoxClosed")||"").length>12,l=()=>{if("undefined"==typeof window)return!1;const{intl_region:t,country_code:o}=e.WPGeo();if("US"===o)return!!e.getCookie("wp_usp");if("onboarding"===window.pageType){const o=(()=>{const t=e.getCookie("OptanonConsent")||"";return!!t.includes("C0004%3A1")||!t.includes("C0004%3A0")&&null})();if("boolean"==typeof o&&s())return o;if("EEA"===t&&"onboarding"===window.pageType)return!0}return!1},c=`${e.ENDPOINTS.base}/de/v1`,d={},u=async({fieldName:t})=>{if(d[t])return d[t];const o=[t];try{const n=new URL(`${c}/attributes`);n.searchParams.set("attributes",o.join(","));const i=await fetch(n.toString(),{credentials:"include",headers:e.DEFAULT_HEADERS}),r=await i.json();if(i.ok&&r.status===e.ResponseStatus.SUCCESS){const e=r.attributes||[];return d[t]=e,e}return[]}catch(e){return console.debug(e),[]}},p=`${e.ENDPOINTS.base}/de/v1`,E=o.styled("select",{padding:"12px 16px 12px 6px",display:"flex",justifyContent:"space-between",width:"100%",backgroundColor:"$secondary",color:"$primary",fontFamily:"$meta",fontSize:"$100",fontWeight:"$light",lineHeight:"$125",paddingBlockRight:"$125",textOverflow:"ellipsis",position:"relative",borderColor:"transparent",borderRightWidth:"10px",borderRightColor:"transparent",appearance:"none","-webkit-appearance":"none","&:disabled":{backgroundColor:o.theme.colors.disabled,borderColor:o.theme.colors.disabled,color:o.theme.colors.onDisabled,cursor:"not-allowed"}}),f=o.styled("div",{width:"100%",maxWidth:"380px",borderRadius:"$012",borderColor:"$subtle",borderStyle:"solid",borderWidth:"1px",backgroundColor:"$secondary",position:"relative"}),_=o.styled("option",{fontFamily:"inherit",fontSize:"inherit",color:"inherit"}),g=({id:e,label:r,values:a,required:s=!1,existingValue:l,onChange:c=()=>{},disabled:d=!1,valueSelectedByDefault:u})=>{const[p,g]=t.useState(),{isMobileSize:S}=n.useWindowSize();t.useEffect((()=>{p&&c(p)}),[p]);const w=d?{disabled:!0}:{},b=l||u,C=p?{defaultValue:p}:b?{defaultValue:b}:{},y=e=>p?e===p?{selected:!0}:{}:e===b?{selected:!0}:{};return S?t.createElement(f,null,t.createElement(E,{id:"",required:s,onChange:e=>g(e.target.value),...w},t.createElement("label",null,r),t.createElement(_,{value:"",disabled:!0,selected:!0,style:{color:"#666666"}},r),a.map((e=>t.createElement(_,{value:e,key:e,...y(e)},e)))),t.createElement(o.Icon,{label:"",size:"100",fill:o.theme.colors.gray80,style:{pointerEvents:"none",position:"absolute",right:"10px",top:"50%",transform:"translateY(-50%)"}},t.createElement(i.ChevronDown,{style:{position:"absolute",right:"10px"}}))):t.createElement(o.Select.Root,{onValueChange:e=>g(e),required:s,...C,...w},t.createElement(o.Select.Trigger,{"data-test-id":`${e}-select-trigger`},t.createElement(o.Select.Label,null,r),t.createElement(o.Select.Value,null)),t.createElement(o.Select.Content,{css:{zIndex:o.theme.zIndices.page},"data-test-id":`${e}-select-content`},a.map((e=>t.createElement(o.Select.Item,{value:e,key:e},e)))))},S=`${e.ENDPOINTS.base}/de-utils/twpdeu.min.js`,w=o.styled("div",{boxSizing:"border-box",display:"flex",marginBottom:"$100",flexDirection:"column","& button":{padding:"1px 6px"},"& *":{boxSizing:"border-box"}}),b=`${"https://subscribe.washingtonpost.com"===e.ENDPOINTS.base?"https://www.washingtonpost.com/subscribe":e.ENDPOINTS.base}/config/de/disclosure.json`,C=(e,o=()=>{})=>e.split(/({{PRIVACY_POLICY}})/g).map(((e,n)=>"{{PRIVACY_POLICY}}"===e?t.createElement("a",{key:`privacy-link-${n}`,rel:"noopener noreferrer",target:"_blank",style:{color:"inherit"},className:"underline",href:"https://www.washingtonpost.com/privacy-policy/",onClick:e=>o(e)},"Privacy Policy"):e)).reduce(((e,o)=>t.createElement(t.Fragment,null,e,o)),t.createElement(t.Fragment,null)),y=()=>(e.getCookie("OptanonConsent")||"").length>12,h=({config:o,onFinished:n,allowCookieStore:i=!0,onPrivacyPolicyClick:r=()=>{}})=>{const[a,l]=t.useState(null),[c,d]=t.useState(null),{alertBoxClosed:u,consentCookieExists:p}=(({allowCookieStore:o})=>{const[n,i]=t.useState(),[r,a]=t.useState(),[l,c]=t.useState(!1),[d,u]=t.useState(!1);return t.useEffect((()=>{var e;y()&&i(!0),s()?a(!0):(window.__tcfapi||console.warn("warning: __tcfapi not found"),null!==(e=window)&&void 0!==e&&e.cookieStore&&o?c(!0):window.__tcfapi?u(!0):console.warn("warning: neither cookieStore nor __tcfapi found"))}),[]),t.useEffect((()=>{const t=[];if(l&&window.cookieStore){const o=e.listenToCookieStore("OptanonConsent",(()=>{y()&&i(!0)}));t.push(o);const n=e.listenToCookieStore("OptanonAlertBoxClosed",(()=>{s()?a(!0):a(!1)}));t.push(n)}return()=>{t.forEach((e=>e&&e()))}}),[l]),t.useEffect((()=>{let e;return d&&window.__tcfapi&&window.__tcfapi("addEventListener",2,((t,o)=>{o&&(e=t.listenerId,y()&&i(!0),s()&&a(!0))})),()=>{window.__tcfapi&&e&&window.__tcfapi("removeEventListener",2,(e=>{console.debug(e)}),e)}}),[d]),{consentCookieExists:n,alertBoxClosed:r,listenToCookieStore:l,listenToTcfApi:d}})({allowCookieStore:i});return t.useEffect((()=>{o&&l(u?o.disclosure_afterbanner:o.disclosure_beforebanner)}),[u]),t.useEffect((()=>{a&&Array.isArray(a)&&d(a.reduce(((e,o)=>t.createElement(t.Fragment,null,e,t.createElement("p",null,C(o,r)))),t.createElement(t.Fragment,null)))}),[a]),t.useEffect((()=>{c&&p&&n({isFinished:!0,isError:!1})}),[c,p]),c},m=({config:e,onFinished:o,onPrivacyPolicyClick:n=()=>{}})=>{const[i,r]=t.useState(null),[a,s]=t.useState(null);return t.useEffect((()=>{e&&r(e.disclosure)}),[e]),t.useEffect((()=>{i&&Array.isArray(i)&&s(i.reduce(((e,o)=>t.createElement(t.Fragment,null,e,t.createElement("p",null,C(o,n)))),t.createElement(t.Fragment,null)))}),[i]),t.useEffect((()=>{a&&o({isFinished:!0,isError:!1})}),[a]),a};exports.AttributesState={SUCCESS:"100"},exports.CollectionBehaviors=r,exports.DEDisclosure=({onFinished:o=()=>{},allowCookieStore:n=!0,onPrivacyPolicyClick:i=e=>{}})=>{const[r,a]=t.useState(null),[s,l]=t.useState();return t.useEffect((()=>{(async()=>{const t=await(async()=>{let t;const o=await fetch(b),n=await o.json(),{country_code:i,intl_region:r}=e.WPGeo();return Object.keys(n).forEach((e=>{(i&&e.split("|").includes(i.toLowerCase())||"EEA"===r&&"eea"===e)&&(t=n[e])})),void 0===t&&n._&&(t=n._),t})();l(t),t||console.error("No config found")})()}),[]),t.useEffect((()=>{s&&("checkBannerStatus"in s&&s.checkBannerStatus?a(t.createElement(h,{config:s,allowCookieStore:n,onFinished:o,onPrivacyPolicyClick:i})):"disclosure"in s?a(t.createElement(m,{config:s,onFinished:o,onPrivacyPolicyClick:i})):console.error("Invalid config"))}),[s]),r?t.createElement("div",{"data-test-id":"de-disclosure"},r):t.createElement("div",{"data-test-id":"de-disclosure-loading"})},exports.DESelect=({source:i,fieldName:r,label:a,dataDictionaryConfig:s,existingValue:l,disabled:c,submit:d,onChange:u=()=>{},onFinished:p=()=>{},valuesFilter:E=()=>!0,children:f,valueSelectedByDefault:_})=>{const[b,C]=t.useState(s),[y,h]=t.useState(!l&&_?_:""),m=n.useScript(S);t.useEffect((()=>{m!==n.ScriptStatus.READY||f||b||(async()=>{try{var e;const t=await(null===(e=window)||void 0===e||null===(e=e.__twpdeu)||void 0===e?void 0:e.getFieldConfigs({fieldName:r}));t?C(t[0]):console.error("unable to get config",r)}catch(e){console.warn("unable to get config",r,e)}})()}),[m]),t.useEffect((()=>{m===n.ScriptStatus.READY&&d&&y&&(async()=>{try{var t;const o=await(null===(t=window)||void 0===t||null===(t=t.__twpdeu)||void 0===t?void 0:t.push({submitData:{fieldName:r,value:y},source:i}));p({isFinished:!0,isError:!0!==o&&(!o||o.status!==e.ResponseStatus.SUCCESS)})}catch(e){p({isFinished:!1,isError:!0})}})()}),[m,d]);const I=l&&b?{defaultValue:l}:{},T=c||!f&&!b?{disabled:!0}:{},N=b?[...b.values].sort(((e,t)=>e.order-t.order)).filter((e=>!0!==e.archived)).filter(E):[];return t.createElement(w,null,f&&t.createElement(o.Select.Root,{onValueChange:e=>{h(e),u({value:e})},...I,...T},f),!f&&!b&&t.createElement(g,{id:"loading",label:"Loading...",values:[],disabled:!0}),!f&&b&&t.createElement(g,{id:b.name,label:a||b.name,onChange:e=>{h(e),u({value:e})},values:N.map((e=>e.name)),existingValue:l,disabled:c,valueSelectedByDefault:_}))},exports.DeleteAttributeState={SUCCESS:"150",SYSTEM_ERROR:"151",INVALID_ATTRIBUTE_NAME:"152",INVALID_ATTRIBUTE_NOT_EXISTS:"153"},exports.FirstPartyIngestDataTypes={JOB_LEVEL:"profile_job_level",JOB_INDUSTRY:"profile_job_industry",JOB_TITLE:"profile_job_title",PERSONAL_GOALS:"personal_goals",HOBBIES:"hobbies",PROFESSIONAL_GOALS:"professional_goals",INDUSTRY:"industry",NEWS_LOCATION:"news_location",NY_PERSONAL_GOALS:"new_year_personal_goals",NY_HOBBIES:"new_year_hobbies",NY_PROFESSIONAL_GOALS:"new_year_professional_goals",NY_INDUSTRY:"new_year_industry",NY_NEWS_LOCATION:"new_year_news_location",EDU_ROLE:"profile_edu_role",EDU_MAJOR:"profile_edu_major",EDU_GRADUATION_YEAR:"profile_edu_graduation_year"},exports.IngestResponseState={SUCCESS:"100",SYSTEM_ERROR:"101",INVALID_TYPE:"102",INVALID_IDENTIFIER:"103",INVALID_DATA:"104",INVALID_ATTRIBUTE_DEFINITION:"105",INVALID_META_DEFINITION:"106",UNAUTHENTICATED:"107",MISMATCHED_IDENTIFIER:"108",DISABLED_ATTRIBUTE_DEFINITION:"109",DO_NOT_COLLECT:"110"},exports.IngestType=a,exports.getAttributes=u,exports.hasRequiredPrivacyCookies=l,exports.push=async({submitData:t,source:o})=>{if(!l())throw new Error("does not satisfy cookie check");if("undefined"!=typeof window&&e.getCookie("wp_wv")&&!e.isLoggedIn())throw new Error("does not satisfy cookie check");const{fieldName:n}=t,i=await u({fieldName:n});if(i[0]&&i[0].name===n&&i[0].collection_behavior===r.DO_NOT_COLLECT)throw new Error("do not collect");return(i[0]&&!0===i[0].explicit?a.EXPLICIT:a.IMPLICIT)===a.EXPLICIT?(async({submitData:{fieldName:t,value:o},source:n})=>{const i=`${p}/ingest`,r=e.getCookie("wapo_login_id"),s={jucid:localStorage.getItem("uuid"),ga:e.getCookie("_ga"),type:a.EXPLICIT,wapo_login_id:r,data:{[t]:[o]},metadata:{source:n}};try{const t=await fetch(i,{method:"POST",credentials:"include",headers:e.DEFAULT_HEADERS,body:JSON.stringify(s)});return await t.json()}catch(e){return console.debug(e),null}})({submitData:t,source:o}):(async({submitData:{fieldName:e,value:t},source:o})=>((e=>{if("undefined"==typeof window)return;window.dataLayer=window.dataLayer||[];const t={...e};window.dataLayer.push(t)})({event:"site-onpage-click",action:"site-onpage-click",category:"profile",label:e,"de-label":e,[e]:t,section:"profile",subsection:o}),!0))({submitData:t,source:o})};
2
2
  //# sourceMappingURL=subs-de-inputs.cjs.production.min.js.map