@washingtonpost/subs-de-inputs 0.0.1 → 0.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"subs-de-inputs.cjs.development.js","sources":["../src/interfaces/index.ts","../src/components/Dropdown/index.tsx","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/dataEnrichment.ts","../src/services/sendToGA.ts","../src/utils/getDefaultSubmitData.ts","../src/components/DataEnrichmentForm/index.tsx"],"sourcesContent":["import { FormEventHandler } from 'react';\n\nexport enum I1pDataInputTypes {\n DROPDOWN = 'dropdown',\n}\n\nexport enum I1pIngestDataTypes {\n JOB_LEVEL = 'profile_job_level',\n JOB_INDUSTRY = 'profile_job_industry',\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}\n\nexport interface I1pDataInputValue {\n archived: boolean;\n name: string;\n order: number;\n date_created?: string;\n last_modified_date?: string;\n}\n\nexport interface I1pDataInputProps {\n id: I1pIngestDataTypes;\n input_label: string;\n input_prompt?: string;\n input_type: I1pDataInputTypes;\n required: boolean;\n default_value?: string;\n values?: Array<I1pDataInputValue>;\n}\n\nexport interface I1pDataFormSubmitData {\n [key: string]: string[];\n}\n\nexport enum I1pDataIngestTypes {\n EXPLICIT = 'explicit',\n IMPLICIT = 'implicit',\n}\n\nexport interface I1pDataFormProps {\n source: string;\n submit?: boolean;\n ingestType: I1pDataIngestTypes;\n onChange?: (\n submitData: I1pDataFormSubmitData,\n requiredFieldsReady: boolean\n ) => void;\n onFinished?: (isFinished: boolean, isError: boolean) => void;\n formOptions?: Array<I1pDataInputProps>;\n handleSubmit?: FormEventHandler<HTMLFormElement>;\n disabled?: boolean;\n}\n\nexport type I1pIngestPropsData = {\n [key in I1pIngestDataTypes]?: string[];\n};\n\nexport interface I1pIngestProps {\n type: 'implicit' | 'explicit';\n data: I1pIngestPropsData;\n metadata?: Record<string, string | null | undefined>;\n [key: string]: any;\n}\n\nexport enum 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}\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\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 defaultValueProp = defaultValue ? { defaultValue } : {};\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n const defaultValuePropMobile = (value: string) => {\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 placeholder={label}\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}-dropdown-label`}>\n <Select.Label>{label}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content css={{ zIndex: 8 }} data-test-id={`${id}-dropdown-input`}>\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 { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\n\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_usp = getCookie('wp_usp');\n\n const countryCode = WPGeo()?.country_code;\n\n return !!(wp_usp && countryCode === 'US');\n};\n","import { ENDPOINTS, getCookie } from '@washingtonpost/subs-sdk';\nimport {\n I1pDataIngestTypes,\n I1pIngestProps,\n I1pIngestPropsData,\n} from '../interfaces';\nimport { hasRequiredPrivacyCookies } from '../utils/hasRequiredPrivacyCookies';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nconst JSONHeaders = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n};\n\nexport const ingest = async (\n submitData: I1pIngestPropsData,\n metadata: { [key: string]: string }\n) => {\n const url = `${base}/ingest`;\n\n const wapo_login_id = getCookie('wapo_login_id');\n\n if (!hasRequiredPrivacyCookies()) {\n throw new Error('does not satisfy cookie check');\n }\n\n const jucid = localStorage.getItem('uuid');\n const ga = getCookie('_ga');\n\n const payload: I1pIngestProps = {\n jucid,\n ga,\n type: I1pDataIngestTypes.EXPLICIT,\n wapo_login_id, // TODO: move this to BE to read from cookie headers\n data: submitData,\n metadata,\n };\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n credentials: 'include',\n headers: JSONHeaders,\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","import { I1pIngestDataTypes, I1pIngestPropsData } from '../interfaces';\nimport { hasRequiredPrivacyCookies } from '../utils/hasRequiredPrivacyCookies';\n\nexport interface ISendGAEvent {\n event: string;\n category: string;\n action: string;\n label: string;\n 'de-label': I1pIngestDataTypes;\n [key: string]: undefined | string | string[];\n}\n\nconst sendGAEvent = (props: ISendGAEvent): 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 = async (\n submitData: I1pIngestPropsData,\n metadata: { [key: string]: string }\n) => {\n if (!hasRequiredPrivacyCookies()) {\n throw new Error('does not satisfy cookie check');\n }\n\n const keysToSubmit = Object.keys(submitData);\n\n keysToSubmit.forEach((key) => {\n if (Object.values(I1pIngestDataTypes).includes(key as I1pIngestDataTypes)) {\n sendGAEvent({\n event: 'site-onpage-click',\n action: 'site-onpage-click',\n category: 'profile',\n\n label: key,\n 'de-label': key as I1pIngestDataTypes,\n [key]: submitData[key as I1pIngestDataTypes],\n\n section: 'profile',\n subsection: metadata.source,\n });\n }\n });\n\n return true;\n};\n","import {\n I1pDataFormSubmitData,\n I1pDataInputProps,\n I1pDataInputTypes,\n} from '../interfaces';\n\nexport const getDefaultSubmitData = (formOptions: Array<I1pDataInputProps>) => {\n const defaultSubmitData: I1pDataFormSubmitData = {};\n formOptions.forEach((formOption) => {\n if (formOption.default_value) {\n if (\n formOption.input_type === I1pDataInputTypes.DROPDOWN &&\n formOption.values\n ) {\n const values = formOption.values\n .filter((value) => value.archived !== true)\n .map((value) => value.name);\n if (values.includes(formOption.default_value)) {\n defaultSubmitData[formOption.id] = [formOption.default_value];\n }\n } else {\n defaultSubmitData[formOption.id] = [formOption.default_value];\n }\n }\n });\n return defaultSubmitData;\n};\n","import React, { useEffect, useState } from 'react';\nimport { styled } from '@washingtonpost/wpds-ui-kit';\nimport {\n I1pDataFormProps,\n I1pDataFormSubmitData,\n I1pDataIngestTypes,\n I1pDataInputTypes,\n} from '../../interfaces';\nimport { Dropdown } from '../Dropdown';\nimport { ingest } from '../../services/dataEnrichment';\nimport { ResponseStatus } from '@washingtonpost/subs-sdk';\nimport { hasRequiredPrivacyCookies } from '../../utils/hasRequiredPrivacyCookies';\nimport { sendToGA } from '../../services/sendToGA';\nimport { getDefaultSubmitData } from '../../utils/getDefaultSubmitData';\n\nexport const DataEnrichmentForm = ({\n submit,\n source, // used to track where on the site data is collected\n ingestType,\n formOptions = [],\n onChange = () => {},\n onFinished = () => {},\n handleSubmit = () => {},\n disabled = false,\n}: I1pDataFormProps) => {\n const [render, setRender] = useState(false);\n\n const [submitData, setSubmitData] = useState<I1pDataFormSubmitData>(\n getDefaultSubmitData(formOptions)\n );\n const [missingRequiredFields, setMissingRequiredFields] = useState(true);\n\n useEffect(() => {\n if (hasRequiredPrivacyCookies()) {\n setRender(true);\n } else {\n console.error('does not satisfy cookie check');\n onFinished(true, true);\n }\n }, []);\n\n useEffect(() => {\n // check for required fields that haven't been completed yet\n const missingRequiredFields = formOptions.filter((option) => {\n if (\n option.required &&\n option.input_type === I1pDataInputTypes.DROPDOWN &&\n !submitData[option.id]\n ) {\n return true;\n }\n return false;\n });\n\n setMissingRequiredFields(missingRequiredFields.length > 0);\n\n onChange(submitData, missingRequiredFields.length === 0);\n }, [JSON.stringify(submitData)]);\n\n useEffect(() => {\n (async () => {\n if (submit) {\n if (Object.keys(submitData).length >= 1) {\n if (ingestType === I1pDataIngestTypes.EXPLICIT) {\n const result = await ingest(submitData, { source });\n\n const isError = result && result.status !== ResponseStatus.SUCCESS;\n onFinished(true, isError);\n } else {\n const result = await sendToGA(submitData, { source });\n onFinished(true, result);\n }\n } else {\n onFinished(true, false);\n }\n }\n })();\n }, [submit]);\n\n if (!render) return <></>;\n\n return (\n <form\n method=\"post\"\n onSubmit={(e) => {\n e.preventDefault();\n handleSubmit(e);\n }}\n >\n {formOptions.map((formOption) => {\n if (\n formOption.input_type === I1pDataInputTypes.DROPDOWN &&\n formOption.values\n ) {\n // sort and filter out archived values\n const values = formOption.values\n .sort((a, b) => a.order - b.order)\n .filter((value) => value.archived !== true);\n\n return (\n <OptionWrapper data-private key={formOption.id}>\n <Dropdown\n id={formOption.id}\n label={formOption.input_label}\n values={values.map((value) => value.name)}\n required={formOption.required}\n defaultValue={formOption.default_value}\n onChange={(value) => {\n setSubmitData({ ...submitData, [formOption.id]: [value] });\n }}\n disabled={disabled}\n />\n </OptionWrapper>\n );\n }\n return null;\n })}\n\n {/* so the user can hit 'Enter' to submit */}\n <input\n type=\"submit\"\n hidden\n disabled={missingRequiredFields || disabled}\n data-qa=\"1p-data-inputs-submit\"\n />\n </form>\n );\n};\n\nconst OptionWrapper = 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"],"names":["I1pDataInputTypes","I1pIngestDataTypes","I1pDataIngestTypes","IngestResponseState","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","_ref","id","label","values","_ref$required","required","defaultValue","_ref$onChange","onChange","_ref$disabled","_useState","useState","answer","setAnswer","_useWindowSize","useWindowSize","isMobileSize","useEffect","defaultValueProp","disabledProp","defaultValuePropMobile","value","selected","React","_extends","e","target","placeholder","style","map","key","Icon","size","fill","pointerEvents","right","top","transform","ChevronDown","Select","Root","onValueChange","Trigger","Label","Value","Content","css","zIndex","Item","hasRequiredPrivacyCookies","window","wp_usp","getCookie","countryCode","_WPGeo","WPGeo","country_code","base","ENDPOINTS","JSONHeaders","Accept","ingest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","submitData","metadata","url","wapo_login_id","jucid","ga","payload","response","json","wrap","_callee$","_context","prev","next","Error","localStorage","getItem","type","EXPLICIT","data","fetch","method","credentials","headers","body","JSON","stringify","sent","abrupt","t0","console","debug","stop","_x","_x2","apply","arguments","sendGAEvent","props","process","env","NODE_ENV","warn","dataLayer","eventData","push","sendToGA","keysToSubmit","Object","keys","forEach","includes","_sendGAEvent","event","action","category","section","subsection","source","getDefaultSubmitData","formOptions","defaultSubmitData","formOption","default_value","input_type","DROPDOWN","filter","archived","name","DataEnrichmentForm","submit","ingestType","_ref$formOptions","_ref$onFinished","onFinished","_ref$handleSubmit","handleSubmit","render","setRender","_useState2","setSubmitData","_useState3","missingRequiredFields","setMissingRequiredFields","error","option","length","result","isError","_result","status","ResponseStatus","SUCCESS","onSubmit","preventDefault","sort","a","b","order","OptionWrapper","input_label","_extends2","hidden","boxSizing","marginBottom","flexDirection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,WAAYA,iBAAiB;EAC3BA,0CAAqB;AACvB,CAAC,EAFWA,yBAAiB,KAAjBA,yBAAiB;AAI7B,WAAYC,kBAAkB;EAC5BA,qDAA+B;EAC/BA,2DAAqC;EACrCA,mEAA6C;EAC7CA,qDAA+B;EAC/BA,2EAAqD;EACrDA,uDAAiC;EACjCA,iEAA2C;AAC7C,CAAC,EARWA,0BAAkB,KAAlBA,0BAAkB;AAgC9B,WAAYC,kBAAkB;EAC5BA,2CAAqB;EACrBA,2CAAqB;AACvB,CAAC,EAHWA,0BAAkB,KAAlBA,0BAAkB;AA8B9B,WAAYC,mBAAmB;EAC7BA,sCAAe;EACfA,2CAAoB;EACpBA,2CAAoB;EACpBA,iDAA0B;EAC1BA,2CAAoB;EACpBA,2DAAoC;EACpCA,sDAA+B;AACjC,CAAC,EARWA,2BAAmB,KAAnBA,2BAAmB;;ACrD/B,IAAMC,kBAAkB,gBAAGC,gBAAM,CAAC,QAAQ,EAAE;EAC1CC,OAAO,EAAE,oBAAoB;EAC7BC,OAAO,EAAE,MAAM;EACfC,cAAc,EAAE,eAAe;EAC/BC,KAAK,EAAE,MAAM;EACbC,eAAe,EAAE,YAAY;EAC7BC,KAAK,EAAE,UAAU;EACjBC,UAAU,EAAE,OAAO;EACnBC,QAAQ,EAAE,MAAM;EAChBC,UAAU,EAAE,QAAQ;EACpBC,UAAU,EAAE,MAAM;EAClBC,iBAAiB,EAAE,MAAM;EACzBC,YAAY,EAAE,UAAU;EACxBC,QAAQ,EAAE,UAAU;EACpBC,WAAW,EAAE,aAAa;EAC1BC,gBAAgB,EAAE,MAAM;EACxBC,gBAAgB,EAAE,aAAa;EAC/BC,UAAU,EAAE,MAAM;EAClB,oBAAoB,EAAE,MAAM;EAC5B,YAAY,EAAE;IACZZ,eAAe,EAAEa,eAAK,CAACC,MAAM,CAACC,QAAQ;IACtCN,WAAW,EAAEI,eAAK,CAACC,MAAM,CAACC,QAAQ;IAClCd,KAAK,EAAEY,eAAK,CAACC,MAAM,CAACE,UAAU;IAC9BC,MAAM,EAAE;;CAEX,CAAC;AAEF,IAAMC,mBAAmB,gBAAGvB,gBAAM,CAAC,KAAK,EAAE;EACxCI,KAAK,EAAE,MAAM;EACboB,QAAQ,EAAE,OAAO;EACjBC,YAAY,EAAE,MAAM;EACpBX,WAAW,EAAE,SAAS;EACtBY,WAAW,EAAE,OAAO;EACpBC,WAAW,EAAE,KAAK;EAClBtB,eAAe,EAAE,YAAY;EAC7BQ,QAAQ,EAAE;CACX,CAAC;AAEF,IAAMe,kBAAkB,gBAAG5B,gBAAM,CAAC,QAAQ,EAAE;EAC1CO,UAAU,EAAE,SAAS;EACrBC,QAAQ,EAAE,SAAS;EACnBF,KAAK,EAAE;CACR,CAAC;AAEF,AAAO,IAAMuB,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA;MACnBC,EAAE,GAAAD,IAAA,CAAFC,EAAE;IACFC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,MAAM,GAAAH,IAAA,CAANG,MAAM;IAAAC,aAAA,GAAAJ,IAAA,CACNK,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAChBE,YAAY,GAAAN,IAAA,CAAZM,YAAY;IAAAC,aAAA,GAAAP,IAAA,CACZQ,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,cAAQ,GAAAA,aAAA;IAAAE,aAAA,GAAAT,IAAA,CACnBV,QAAQ;IAARA,QAAQ,GAAAmB,aAAA,cAAG,KAAK,GAAAA,aAAA;EAEhB,IAAAC,SAAA,GAA4BC,cAAQ,EAAU;IAAvCC,MAAM,GAAAF,SAAA;IAAEG,SAAS,GAAAH,SAAA;EACxB,IAAAI,cAAA,GAAyBC,uBAAa,EAAE;IAAhCC,YAAY,GAAAF,cAAA,CAAZE,YAAY;EAEpBC,eAAS,CAAC;IACR,IAAIL,MAAM,EAAEJ,QAAQ,CAACI,MAAM,CAAC;GAC7B,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,IAAMM,gBAAgB,GAAGZ,YAAY,GAAG;IAAEA,YAAY,EAAZA;GAAc,GAAG,EAAE;EAE7D,IAAMa,YAAY,GAAG7B,QAAQ,GAAG;IAAEA,QAAQ,EAAE;GAAM,GAAG,EAAE;EAEvD,IAAM8B,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,KAAa;IAC3C,OAAOA,KAAK,KAAKf,YAAY,GAAG;MAAEgB,QAAQ,EAAE;KAAM,GAAG,EAAE;GACxD;EAED,OAAON,YAAY,GACjBO,6BAAC9B,mBAAmB,QAClB8B,6BAACtD,kBAAkB,EAAAuD,QAAA;IACjBvB,EAAE,EAAC,EAAE;IACLI,QAAQ,EAAEA,QAAQ;IAClBG,QAAQ,EAAE,SAAAA,SAACiB,CAAC;MAAA,OAAKZ,SAAS,CAACY,CAAC,CAACC,MAAM,CAACL,KAAK,CAAC;;IAC1CM,WAAW,EAAEzB;KACTiB,YAAY,GAEhBI,4CAAQrB,KAAK,CAAS,EACtBqB,6BAACzB,kBAAkB;IACjBuB,KAAK,EAAC,EAAE;IACR/B,QAAQ;IACRgC,QAAQ;IACRM,KAAK,EAAE;MAAEpD,KAAK,EAAE;;KAEf0B,KAAK,CACa,EACpBC,MAAM,CAAC0B,GAAG,CAAC,UAACR,KAAK;IAAA,OAChBE,6BAACzB,kBAAkB,EAAA0B,QAAA;MACjBH,KAAK,EAAEA,KAAK;MACZS,GAAG,EAAET;OACDD,sBAAsB,CAACC,KAAK,CAAC,GAEhCA,KAAK,CACa;GACtB,CAAC,CACiB,EACrBE,6BAACQ,cAAI;IACH7B,KAAK,EAAC,EAAE;IACR8B,IAAI,EAAC,KAAK;IACVC,IAAI,EAAE7C,eAAK,CAACC,MAAM,CAAC,QAAQ,CAAC;IAC5BuC,KAAK,EAAE;MACLM,aAAa,EAAE,MAAM;MACrBnD,QAAQ,EAAE,UAAU;MACpBoD,KAAK,EAAE,MAAM;MACbC,GAAG,EAAE,KAAK;MACVC,SAAS,EAAE;;KAGbd,6BAACe,sBAAW;IAACV,KAAK,EAAE;MAAE7C,QAAQ,EAAE,UAAU;MAAEoD,KAAK,EAAE;;IAAY,CAC1D,CACa,GAEtBZ,6BAACgB,gBAAM,CAACC,IAAI,EAAAhB,QAAA;IACViB,aAAa,EAAE,SAAAA,cAAChB,CAAC;MAAA,OAAKZ,SAAS,CAACY,CAAC,CAAC;;IAClCpB,QAAQ,EAAEA;KACNa,gBAAgB,EAChBC,YAAY,GAEhBI,6BAACgB,gBAAM,CAACG,OAAO;oBAAkBzC,EAAE;KACjCsB,6BAACgB,gBAAM,CAACI,KAAK,QAAEzC,KAAK,CAAgB,EACpCqB,6BAACgB,gBAAM,CAACK,KAAK,OAAG,CACD,EACjBrB,6BAACgB,gBAAM,CAACM,OAAO;IAACC,GAAG,EAAE;MAAEC,MAAM,EAAE;KAAG;oBAAmB9C,EAAE;KACpDE,MAAM,CAAC0B,GAAG,CAAC,UAACR,KAAK;IAAA,OAChBE,6BAACgB,gBAAM,CAACS,IAAI;MAAC3B,KAAK,EAAEA,KAAK;MAAES,GAAG,EAAET;OAC7BA,KAAK,CACM;GACf,CAAC,CACa,CAEpB;AACH,CAAC;;IChJY4B,yBAAyB,GAAG,SAA5BA,yBAAyBA;;EACpC,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,OAAO,KAAK;;EAGd,IAAMC,MAAM,GAAGC,iBAAS,CAAC,QAAQ,CAAC;EAElC,IAAMC,WAAW,IAAAC,MAAA,GAAGC,aAAK,EAAE,qBAAPD,MAAA,CAASE,YAAY;EAEzC,OAAO,CAAC,EAAEL,MAAM,IAAIE,WAAW,KAAK,IAAI,CAAC;AAC3C,CAAC;;ACJD,IAAMI,IAAI,GAAMC,iBAAS,CAACD,IAAI,WAAQ;AAEtC,IAAME,WAAW,GAAG;EAClBC,MAAM,EAAE,kBAAkB;EAC1B,cAAc,EAAE;CACjB;AAED,IAAaC,MAAM;EAAA,IAAA7D,IAAA,gBAAA8D,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QACpBC,UAA8B,EAC9BC,QAAmC;IAAA,IAAAC,GAAA,EAAAC,aAAA,EAAAC,KAAA,EAAAC,EAAA,EAAAC,OAAA,EAAAC,QAAA,EAAAC,IAAA;IAAA,OAAAX,mBAAA,GAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAE7BX,GAAG,GAAMX,IAAI;UAEbY,aAAa,GAAGjB,iBAAS,CAAC,eAAe,CAAC;UAAA,IAE3CH,yBAAyB,EAAE;YAAA4B,QAAA,CAAAE,IAAA;YAAA;;UAAA,MACxB,IAAIC,KAAK,CAAC,+BAA+B,CAAC;QAAA;UAG5CV,KAAK,GAAGW,YAAY,CAACC,OAAO,CAAC,MAAM,CAAC;UACpCX,EAAE,GAAGnB,iBAAS,CAAC,KAAK,CAAC;UAErBoB,OAAO,GAAmB;YAC9BF,KAAK,EAALA,KAAK;YACLC,EAAE,EAAFA,EAAE;YACFY,IAAI,EAAEpH,0BAAkB,CAACqH,QAAQ;YACjCf,aAAa,EAAbA,aAAa;YACbgB,IAAI,EAAEnB,UAAU;YAChBC,QAAQ,EAARA;WACD;UAAAU,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAE,IAAA;UAAA,OAGwBO,KAAK,CAAClB,GAAG,EAAE;YAChCmB,MAAM,EAAE,MAAM;YACdC,WAAW,EAAE,SAAS;YACtBC,OAAO,EAAE9B,WAAW;YACpB+B,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACpB,OAAO;WAC7B,CAAC;QAAA;UALIC,QAAQ,GAAAI,QAAA,CAAAgB,IAAA;UAAAhB,QAAA,CAAAE,IAAA;UAAA,OAOKN,QAAQ,CAACC,IAAI,EAAE;QAAA;UAA5BA,IAAI,GAAAG,QAAA,CAAAgB,IAAA;UAAA,OAAAhB,QAAA,CAAAiB,MAAA,WAEHpB,IAAI;QAAA;UAAAG,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAkB,EAAA,GAAAlB,QAAA;UAEXmB,OAAO,CAACC,KAAK,CAAApB,QAAA,CAAAkB,EAAA,CAAG;UAAC,OAAAlB,QAAA,CAAAiB,MAAA,WACV,IAAI;QAAA;QAAA;UAAA,OAAAjB,QAAA,CAAAqB,IAAA;;OAAAjC,OAAA;GAEd;EAAA,gBAvCYJ,MAAMA,CAAAsC,EAAA,EAAAC,GAAA;IAAA,OAAApG,IAAA,CAAAqG,KAAA,OAAAC,SAAA;;AAAA,GAuClB;;AC1CD,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAAmB;EACtC,IAAI,OAAOtD,MAAM,KAAK,WAAW,EAAE;IACjC,IAAAuD,OAAA,CAAAC,GAAA,CAAAC,QAAA,mBAAaX,OAAO,CAACY,IAAI,CAAC,WAAW,CAAC;IACtC;;;EAGF1D,MAAM,CAAC2D,SAAS,GAAG3D,MAAM,CAAC2D,SAAS,IAAI,EAAE;EAEzC,IAAMC,SAAS,GAAAtF,QAAA,KACVgF,KAAK,CACT;EACDtD,MAAM,CAAC2D,SAAS,CAACE,IAAI,CAACD,SAAS,CAAC;AAClC,CAAC;AAED,IAAaE,QAAQ;EAAA,IAAAhH,IAAA,gBAAA8D,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QACtBC,UAA8B,EAC9BC,QAAmC;IAAA,IAAA8C,YAAA;IAAA,OAAAlD,mBAAA,GAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAA,IAE9B9B,yBAAyB,EAAE;YAAA4B,QAAA,CAAAE,IAAA;YAAA;;UAAA,MACxB,IAAIC,KAAK,CAAC,+BAA+B,CAAC;QAAA;UAG5CiC,YAAY,GAAGC,MAAM,CAACC,IAAI,CAACjD,UAAU,CAAC;UAE5C+C,YAAY,CAACG,OAAO,CAAC,UAACtF,GAAG;YACvB,IAAIoF,MAAM,CAAC/G,MAAM,CAACrC,0BAAkB,CAAC,CAACuJ,QAAQ,CAACvF,GAAyB,CAAC,EAAE;cAAA,IAAAwF,YAAA;cACzEf,WAAW,EAAAe,YAAA;gBACTC,KAAK,EAAE,mBAAmB;gBAC1BC,MAAM,EAAE,mBAAmB;gBAC3BC,QAAQ,EAAE,SAAS;gBAEnBvH,KAAK,EAAE4B,GAAG;gBACV,UAAU,EAAEA;iBAAyBwF,YAAA,CACpCxF,GAAG,IAAGoC,UAAU,CAACpC,GAAyB,CAAC,EAAAwF,YAAA,CAE5CI,OAAO,GAAE,SAAS,EAAAJ,YAAA,CAClBK,UAAU,GAAExD,QAAQ,CAACyD,MAAM,EAAAN,YAAA,EAC3B;;WAEL,CAAC;UAAC,OAAAzC,QAAA,CAAAiB,MAAA,WAEI,IAAI;QAAA;QAAA;UAAA,OAAAjB,QAAA,CAAAqB,IAAA;;OAAAjC,OAAA;GACZ;EAAA,gBA5BY+C,QAAQA,CAAAb,EAAA,EAAAC,GAAA;IAAA,OAAApG,IAAA,CAAAqG,KAAA,OAAAC,SAAA;;AAAA,GA4BpB;;AChDM,IAAMuB,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,WAAqC;EACxE,IAAMC,iBAAiB,GAA0B,EAAE;EACnDD,WAAW,CAACV,OAAO,CAAC,UAACY,UAAU;IAC7B,IAAIA,UAAU,CAACC,aAAa,EAAE;MAC5B,IACED,UAAU,CAACE,UAAU,KAAKrK,yBAAiB,CAACsK,QAAQ,IACpDH,UAAU,CAAC7H,MAAM,EACjB;QACA,IAAMA,MAAM,GAAG6H,UAAU,CAAC7H,MAAM,CAC7BiI,MAAM,CAAC,UAAC/G,KAAK;UAAA,OAAKA,KAAK,CAACgH,QAAQ,KAAK,IAAI;UAAC,CAC1CxG,GAAG,CAAC,UAACR,KAAK;UAAA,OAAKA,KAAK,CAACiH,IAAI;UAAC;QAC7B,IAAInI,MAAM,CAACkH,QAAQ,CAACW,UAAU,CAACC,aAAa,CAAC,EAAE;UAC7CF,iBAAiB,CAACC,UAAU,CAAC/H,EAAE,CAAC,GAAG,CAAC+H,UAAU,CAACC,aAAa,CAAC;;OAEhE,MAAM;QACLF,iBAAiB,CAACC,UAAU,CAAC/H,EAAE,CAAC,GAAG,CAAC+H,UAAU,CAACC,aAAa,CAAC;;;GAGlE,CAAC;EACF,OAAOF,iBAAiB;AAC1B,CAAC;;ICXYQ,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAvI,IAAA;MAC7BwI,MAAM,GAAAxI,IAAA,CAANwI,MAAM;IACNZ,MAAM,GAAA5H,IAAA,CAAN4H,MAAM;IACNa,UAAU,GAAAzI,IAAA,CAAVyI,UAAU;IAAAC,gBAAA,GAAA1I,IAAA,CACV8H,WAAW;IAAXA,WAAW,GAAAY,gBAAA,cAAG,EAAE,GAAAA,gBAAA;IAAAnI,aAAA,GAAAP,IAAA,CAChBQ,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,cAAQ,GAAAA,aAAA;IAAAoI,eAAA,GAAA3I,IAAA,CACnB4I,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,cAAQ,GAAAA,eAAA;IAAAE,iBAAA,GAAA7I,IAAA,CACrB8I,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,cAAQ,GAAAA,iBAAA;IAAApI,aAAA,GAAAT,IAAA,CACvBV,QAAQ;IAARA,QAAQ,GAAAmB,aAAA,cAAG,KAAK,GAAAA,aAAA;EAEhB,IAAAC,SAAA,GAA4BC,cAAQ,CAAC,KAAK,CAAC;IAApCoI,MAAM,GAAArI,SAAA;IAAEsI,SAAS,GAAAtI,SAAA;EAExB,IAAAuI,UAAA,GAAoCtI,cAAQ,CAC1CkH,oBAAoB,CAACC,WAAW,CAAC,CAClC;IAFM5D,UAAU,GAAA+E,UAAA;IAAEC,aAAa,GAAAD,UAAA;EAGhC,IAAAE,UAAA,GAA0DxI,cAAQ,CAAC,IAAI,CAAC;IAAjEyI,qBAAqB,GAAAD,UAAA;IAAEE,wBAAwB,GAAAF,UAAA;EAEtDlI,eAAS,CAAC;IACR,IAAIgC,yBAAyB,EAAE,EAAE;MAC/B+F,SAAS,CAAC,IAAI,CAAC;KAChB,MAAM;MACLhD,OAAO,CAACsD,KAAK,CAAC,+BAA+B,CAAC;MAC9CV,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;;GAEzB,EAAE,EAAE,CAAC;EAEN3H,eAAS,CAAC;;IAER,IAAMmI,qBAAqB,GAAGtB,WAAW,CAACM,MAAM,CAAC,UAACmB,MAAM;MACtD,IACEA,MAAM,CAAClJ,QAAQ,IACfkJ,MAAM,CAACrB,UAAU,KAAKrK,yBAAiB,CAACsK,QAAQ,IAChD,CAACjE,UAAU,CAACqF,MAAM,CAACtJ,EAAE,CAAC,EACtB;QACA,OAAO,IAAI;;MAEb,OAAO,KAAK;KACb,CAAC;IAEFoJ,wBAAwB,CAACD,qBAAqB,CAACI,MAAM,GAAG,CAAC,CAAC;IAE1DhJ,QAAQ,CAAC0D,UAAU,EAAEkF,qBAAqB,CAACI,MAAM,KAAK,CAAC,CAAC;GACzD,EAAE,CAAC7D,IAAI,CAACC,SAAS,CAAC1B,UAAU,CAAC,CAAC,CAAC;EAEhCjD,eAAS,CAAC;IACR6C,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAC,SAAAC;MAAA,IAAAwF,MAAA,EAAAC,OAAA,EAAAC,OAAA;MAAA,OAAA5F,mBAAA,GAAAY,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,KACKyD,MAAM;cAAA3D,QAAA,CAAAE,IAAA;cAAA;;YAAA,MACJmC,MAAM,CAACC,IAAI,CAACjD,UAAU,CAAC,CAACsF,MAAM,IAAI,CAAC;cAAA3E,QAAA,CAAAE,IAAA;cAAA;;YAAA,MACjC0D,UAAU,KAAK1K,0BAAkB,CAACqH,QAAQ;cAAAP,QAAA,CAAAE,IAAA;cAAA;;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACvBlB,MAAM,CAACK,UAAU,EAAE;cAAE0D,MAAM,EAANA;aAAQ,CAAC;UAAA;YAA7C6B,MAAM,GAAA5E,QAAA,CAAAgB,IAAA;YAEN6D,OAAO,GAAGD,MAAM,IAAIA,MAAM,CAACG,MAAM,KAAKC,sBAAc,CAACC,OAAO;YAClElB,UAAU,CAAC,IAAI,EAAEc,OAAO,CAAC;YAAC7E,QAAA,CAAAE,IAAA;YAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAELiC,QAAQ,CAAC9C,UAAU,EAAE;cAAE0D,MAAM,EAANA;aAAQ,CAAC;UAAA;YAA/C6B,OAAM,GAAA5E,QAAA,CAAAgB,IAAA;YACZ+C,UAAU,CAAC,IAAI,EAAEa,OAAM,CAAC;UAAC;YAAA5E,QAAA,CAAAE,IAAA;YAAA;UAAA;YAG3B6D,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;UAAC;UAAA;YAAA,OAAA/D,QAAA,CAAAqB,IAAA;;SAAAjC,OAAA;KAG7B,IAAG;GACL,EAAE,CAACuE,MAAM,CAAC,CAAC;EAEZ,IAAI,CAACO,MAAM,EAAE,OAAOxH,2DAAK;EAEzB,OACEA;IACEgE,MAAM,EAAC,MAAM;IACbwE,QAAQ,EAAE,SAAAA,SAACtI,CAAC;MACVA,CAAC,CAACuI,cAAc,EAAE;MAClBlB,YAAY,CAACrH,CAAC,CAAC;;KAGhBqG,WAAW,CAACjG,GAAG,CAAC,UAACmG,UAAU;IAC1B,IACEA,UAAU,CAACE,UAAU,KAAKrK,yBAAiB,CAACsK,QAAQ,IACpDH,UAAU,CAAC7H,MAAM,EACjB;;MAEA,IAAMA,MAAM,GAAG6H,UAAU,CAAC7H,MAAM,CAC7B8J,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC;QAAA,OAAKD,CAAC,CAACE,KAAK,GAAGD,CAAC,CAACC,KAAK;QAAC,CACjChC,MAAM,CAAC,UAAC/G,KAAK;QAAA,OAAKA,KAAK,CAACgH,QAAQ,KAAK,IAAI;QAAC;MAE7C,OACE9G,6BAAC8I,aAAa;;QAAcvI,GAAG,EAAEkG,UAAU,CAAC/H;SAC1CsB,6BAACxB,QAAQ;QACPE,EAAE,EAAE+H,UAAU,CAAC/H,EAAE;QACjBC,KAAK,EAAE8H,UAAU,CAACsC,WAAW;QAC7BnK,MAAM,EAAEA,MAAM,CAAC0B,GAAG,CAAC,UAACR,KAAK;UAAA,OAAKA,KAAK,CAACiH,IAAI;UAAC;QACzCjI,QAAQ,EAAE2H,UAAU,CAAC3H,QAAQ;QAC7BC,YAAY,EAAE0H,UAAU,CAACC,aAAa;QACtCzH,QAAQ,EAAE,SAAAA,SAACa,KAAK;;UACd6H,aAAa,CAAA1H,QAAA,KAAM0C,UAAU,GAAAqG,SAAA,OAAAA,SAAA,CAAGvC,UAAU,CAAC/H,EAAE,IAAG,CAACoB,KAAK,CAAC,EAAAkJ,SAAA,GAAG;SAC3D;QACDjL,QAAQ,EAAEA;QACV,CACY;;IAGpB,OAAO,IAAI;GACZ,CAAC,EAGFiC;IACE4D,IAAI,EAAC,QAAQ;IACbqF,MAAM;IACNlL,QAAQ,EAAE8J,qBAAqB,IAAI9J,QAAQ;eACnC;IACR,CACG;AAEX,CAAC;AAED,IAAM+K,aAAa,gBAAGnM,gBAAM,CAAC,KAAK,EAAE;EAClCuM,SAAS,EAAE,YAAY;EACvBrM,OAAO,EAAE,MAAM;EACfsM,YAAY,EAAE,MAAM;EACpBC,aAAa,EAAE,QAAQ;EACvB,UAAU,EAAE;IACVxM,OAAO,EAAE;GACV;EACD,KAAK,EAAE;IAAEsM,SAAS,EAAE;;CACrB,CAAC;;;;;;;"}
1
+ {"version":3,"file":"subs-de-inputs.cjs.development.js","sources":["../src/interfaces/index.ts","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/dataEnrichment.ts","../src/components/DESelect/index.tsx"],"sourcesContent":["export 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: Array<AttributeValue>;\n};\n\nexport const AttributesState = {\n SUCCESS: '100',\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} as const;\n","import { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\n\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_usp = getCookie('wp_usp');\n\n const countryCode = WPGeo()?.country_code;\n\n return !!(wp_usp && countryCode === 'US');\n};\n","import {\n ENDPOINTS,\n ResponseStatus,\n JSON_HEADERS,\n} from '@washingtonpost/subs-sdk';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nconst attributesCache: Record<string, any> = {};\nexport const getAttributes = async ({ fieldName }: { fieldName: string }) => {\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: JSON_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 } else {\n return [];\n }\n } catch (e) {\n console.debug(e);\n return [];\n }\n};\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { Attribute, AttributeValue } from '../../interfaces';\nimport { SubsWindow } from '@washingtonpost/subs-sdk';\nimport { getAttributes } from '../../services/dataEnrichment';\n\ndeclare global {\n interface Window extends SubsWindow {}\n}\n\ninterface DESelectProps {\n source: string;\n fieldName: string;\n label?: string;\n dataDictionaryConfig?: 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\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 useEffect(() => {\n if (children) {\n if (__DEV__) {\n console.debug('childen props', children);\n }\n return;\n }\n\n if (!config) {\n (async () => {\n // TODO: Switch to window.__twpdeu.getFieldConfigs\n const config = await getAttributes({ fieldName });\n if (__DEV__) {\n console.debug('config from API', config);\n }\n setConfig(config[0]);\n })();\n }\n }, []);\n\n useEffect(() => {\n if (submit && selected) {\n if (__DEV__) {\n console.error('push not implemented', selected, source);\n }\n onFinished({ isFinished: true, isError: false });\n }\n }, [submit, selected]);\n\n if (!(children || config)) {\n return <span>loading</span>;\n }\n\n const defaultValueProp = defaultValue ? { defaultValue } : {};\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n // sort and filter out archived values\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 <Select.Root\n onValueChange={(e: string) => {\n onChange({ value: e });\n setSelected(e);\n }}\n {...defaultValueProp}\n {...disabledProp}\n >\n {children ? children : null}\n {!children && config && (\n <>\n <Select.Trigger data-test-id={`${config.name}-select-trigger`}>\n <Select.Label>{label || config.name}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content\n css={{ zIndex: theme.zIndices.page }}\n data-test-id={`${config.name}-select-content`}\n >\n {values.map((value) => (\n <Select.Item value={value.name} key={value.name}>\n {value.name}\n </Select.Item>\n ))}\n </Select.Content>\n </>\n )}\n </Select.Root>\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"],"names":["CollectionBehaviors","COLLECT","DO_NOT_COLLECT","AttributesState","SUCCESS","IngestResponseState","SYSTEM_ERROR","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","hasRequiredPrivacyCookies","window","wp_usp","getCookie","countryCode","_WPGeo","WPGeo","country_code","base","ENDPOINTS","attributesCache","getAttributes","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","fieldName","fieldNames","url","data","json","attributes","wrap","_callee$","_context","prev","next","abrupt","URL","searchParams","set","join","fetch","toString","credentials","headers","JSON_HEADERS","sent","ok","status","ResponseStatus","t0","console","debug","stop","_x","apply","arguments","DESelect","source","label","dataDictionaryConfig","defaultValue","disabled","submit","_ref$onChange","onChange","_ref$onFinished","onFinished","_ref$valuesFilter","valuesFilter","children","_useState","useState","config","setConfig","_useState2","selected","setSelected","useEffect","process","env","NODE_ENV","error","isFinished","isError","React","defaultValueProp","disabledProp","values","sort","a","b","order","filter","value","archived","SelectWrapper","Select","Root","_extends","onValueChange","e","Trigger","name","Label","Value","Content","css","zIndex","theme","zIndices","page","map","Item","key","styled","boxSizing","display","marginBottom","flexDirection","padding"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,r,n,o=require("react"),i=(e=o)&&"object"==typeof e&&"default"in e?e.default:e,a=require("@washingtonpost/wpds-ui-kit"),u=require("@washingtonpost/subs-hooks"),c=require("@washingtonpost/wpds-assets"),s=require("@washingtonpost/subs-sdk");function l(){l=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function s(e,t,r,o){var i=Object.create((t&&t.prototype instanceof d?t:d).prototype),a=new S(o||[]);return n(i,"_invoke",{value:E(e,r,a)}),i}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var f={};function d(){}function h(){}function v(){}var y={};c(y,i,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(L([])));m&&m!==t&&r.call(m,i)&&(y=m);var b=v.prototype=d.prototype=Object.create(y);function w(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){var o;n(this,"_invoke",{value:function(n,i){function a(){return new t((function(o,a){!function n(o,i,a,u){var c=p(e[o],e,i);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&r.call(l,"__await")?t.resolve(l.__await).then((function(e){n("next",e,a,u)}),(function(e){n("throw",e,a,u)})):t.resolve(l).then((function(e){s.value=e,a(s)}),(function(e){return n("throw",e,a,u)}))}u(c.arg)}(n,i,o,a)}))}return o=o?o.then(a,a):a()}})}function E(e,t,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=I(a,r);if(u){if(u===f)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=p(e,t,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function I(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,I(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),f;var o=p(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,f;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function _(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function L(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:k}}function k(){return{value:void 0,done:!0}}return h.prototype=v,n(b,"constructor",{value:v,configurable:!0}),n(v,"constructor",{value:h,configurable:!0}),h.displayName=c(v,u,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,c(e,u,"GeneratorFunction")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},w(x.prototype),c(x.prototype,a,(function(){return this})),e.AsyncIterator=x,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new x(s(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},w(b),c(b,u,"Generator"),c(b,i,(function(){return this})),c(b,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=L,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(O),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,f):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),O(r),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:L(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},e}function p(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function f(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){p(i,n,o,a,u,"next",e)}function u(e){p(i,n,o,a,u,"throw",e)}a(void 0)}))}}function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}(exports.I1pDataInputTypes||(exports.I1pDataInputTypes={})).DROPDOWN="dropdown",(t=exports.I1pIngestDataTypes||(exports.I1pIngestDataTypes={})).JOB_LEVEL="profile_job_level",t.JOB_INDUSTRY="profile_job_industry",t.NY_PERSONAL_GOALS="new_year_personal_goals",t.NY_HOBBIES="new_year_hobbies",t.NY_PROFESSIONAL_GOALS="new_year_professional_goals",t.NY_INDUSTRY="new_year_industry",t.NY_NEWS_LOCATION="new_year_news_location",(r=exports.I1pDataIngestTypes||(exports.I1pDataIngestTypes={})).EXPLICIT="explicit",r.IMPLICIT="implicit",(n=exports.IngestResponseState||(exports.IngestResponseState={})).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";var h=a.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:a.theme.colors.disabled,borderColor:a.theme.colors.disabled,color:a.theme.colors.onDisabled,cursor:"not-allowed"}}),v=a.styled("div",{width:"100%",maxWidth:"380px",borderRadius:"$012",borderColor:"$subtle",borderStyle:"solid",borderWidth:"1px",backgroundColor:"$secondary",position:"relative"}),y=a.styled("option",{fontFamily:"inherit",fontSize:"inherit",color:"inherit"}),g=function(e){var t=e.id,r=e.label,n=e.values,s=e.required,l=void 0!==s&&s,p=e.defaultValue,f=e.onChange,g=void 0===f?function(){}:f,m=e.disabled,b=void 0!==m&&m,w=o.useState(),x=w[0],E=w[1],I=u.useWindowSize().isMobileSize;o.useEffect((function(){x&&g(x)}),[x]);var _=p?{defaultValue:p}:{},O=b?{disabled:!0}:{};return I?i.createElement(v,null,i.createElement(h,d({id:"",required:l,onChange:function(e){return E(e.target.value)},placeholder:r},O),i.createElement("label",null,r),i.createElement(y,{value:"",disabled:!0,selected:!0,style:{color:"#666666"}},r),n.map((function(e){return i.createElement(y,d({value:e,key:e},function(e){return e===p?{selected:!0}:{}}(e)),e)}))),i.createElement(a.Icon,{label:"",size:"100",fill:a.theme.colors.gray80,style:{pointerEvents:"none",position:"absolute",right:"10px",top:"50%",transform:"translateY(-50%)"}},i.createElement(c.ChevronDown,{style:{position:"absolute",right:"10px"}}))):i.createElement(a.Select.Root,d({onValueChange:function(e){return E(e)},required:l},_,O),i.createElement(a.Select.Trigger,{"data-test-id":t+"-dropdown-label"},i.createElement(a.Select.Label,null,r),i.createElement(a.Select.Value,null)),i.createElement(a.Select.Content,{css:{zIndex:8},"data-test-id":t+"-dropdown-input"},n.map((function(e){return i.createElement(a.Select.Item,{value:e,key:e},e)}))))},m=function(){var e;if("undefined"==typeof window)return!1;var t=s.getCookie("wp_usp"),r=null==(e=s.WPGeo())?void 0:e.country_code;return!(!t||"US"!==r)},b=s.ENDPOINTS.base+"/de/v1",w={Accept:"application/json","Content-Type":"application/json"},x=function(){var e=f(l().mark((function e(t,r){var n,o,i,a,u,c;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=b+"/ingest",o=s.getCookie("wapo_login_id"),m()){e.next=4;break}throw new Error("does not satisfy cookie check");case 4:return i=localStorage.getItem("uuid"),a=s.getCookie("_ga"),u={jucid:i,ga:a,type:exports.I1pDataIngestTypes.EXPLICIT,wapo_login_id:o,data:t,metadata:r},e.prev=7,e.next=10,fetch(n,{method:"POST",credentials:"include",headers:w,body:JSON.stringify(u)});case 10:return c=e.sent,e.next=13,c.json();case 13:return e.abrupt("return",e.sent);case 17:return e.prev=17,e.t0=e.catch(7),console.debug(e.t0),e.abrupt("return",null);case 21:case"end":return e.stop()}}),e,null,[[7,17]])})));return function(t,r){return e.apply(this,arguments)}}(),E=function(e){if("undefined"!=typeof window){window.dataLayer=window.dataLayer||[];var t=d({},e);window.dataLayer.push(t)}else"production"!==process.env.NODE_ENV&&console.warn("NO WINDOW")},I=function(){var e=f(l().mark((function e(t,r){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(m()){e.next=2;break}throw new Error("does not satisfy cookie check");case 2:return Object.keys(t).forEach((function(e){var n;Object.values(exports.I1pIngestDataTypes).includes(e)&&E(((n={event:"site-onpage-click",action:"site-onpage-click",category:"profile",label:e,"de-label":e})[e]=t[e],n.section="profile",n.subsection=r.source,n))})),e.abrupt("return",!0);case 5:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),_=a.styled("div",{boxSizing:"border-box",display:"flex",marginBottom:"$100",flexDirection:"column","& button":{padding:"1px 6px"},"& *":{boxSizing:"border-box"}});exports.DataEnrichmentForm=function(e){var t=e.submit,r=e.source,n=e.ingestType,a=e.formOptions,u=void 0===a?[]:a,c=e.onChange,p=void 0===c?function(){}:c,h=e.onFinished,v=void 0===h?function(){}:h,y=e.handleSubmit,b=void 0===y?function(){}:y,w=e.disabled,E=void 0!==w&&w,O=o.useState(!1),S=O[0],L=O[1],k=o.useState(function(e){var t={};return e.forEach((function(e){e.default_value&&(e.input_type===exports.I1pDataInputTypes.DROPDOWN&&e.values?e.values.filter((function(e){return!0!==e.archived})).map((function(e){return e.name})).includes(e.default_value)&&(t[e.id]=[e.default_value]):t[e.id]=[e.default_value])})),t}(u)),N=k[0],T=k[1],D=o.useState(!0),C=D[0],j=D[1];return o.useEffect((function(){m()?L(!0):(console.error("does not satisfy cookie check"),v(!0,!0))}),[]),o.useEffect((function(){var e=u.filter((function(e){return!(!e.required||e.input_type!==exports.I1pDataInputTypes.DROPDOWN||N[e.id])}));j(e.length>0),p(N,0===e.length)}),[JSON.stringify(N)]),o.useEffect((function(){f(l().mark((function e(){var o;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=17;break}if(!(Object.keys(N).length>=1)){e.next=16;break}if(n!==exports.I1pDataIngestTypes.EXPLICIT){e.next=10;break}return e.next=5,x(N,{source:r});case 5:v(!0,(o=e.sent)&&o.status!==s.ResponseStatus.SUCCESS),e.next=14;break;case 10:return e.next=12,I(N,{source:r});case 12:v(!0,e.sent);case 14:e.next=17;break;case 16:v(!0,!1);case 17:case"end":return e.stop()}}),e)})))()}),[t]),S?i.createElement("form",{method:"post",onSubmit:function(e){e.preventDefault(),b(e)}},u.map((function(e){if(e.input_type===exports.I1pDataInputTypes.DROPDOWN&&e.values){var t=e.values.sort((function(e,t){return e.order-t.order})).filter((function(e){return!0!==e.archived}));return i.createElement(_,{"data-private":!0,key:e.id},i.createElement(g,{id:e.id,label:e.input_label,values:t.map((function(e){return e.name})),required:e.required,defaultValue:e.default_value,onChange:function(t){var r;T(d({},N,((r={})[e.id]=[t],r)))},disabled:E}))}return null})),i.createElement("input",{type:"submit",hidden:!0,disabled:C||E,"data-qa":"1p-data-inputs-submit"})):i.createElement(i.Fragment,null)},exports.hasRequiredPrivacyCookies=m,exports.ingest=x,exports.sendToGA=I;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e=require("@washingtonpost/subs-sdk"),r=require("react"),n=(t=r)&&"object"==typeof t&&"default"in t?t.default:t,o=require("@washingtonpost/wpds-ui-kit");function i(){i=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",u=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,o){var i=Object.create((e&&e.prototype instanceof p?e:p).prototype),a=new _(o||[]);return n(i,"_invoke",{value:x(t,r,a)}),i}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var h={};function p(){}function d(){}function v(){}var y={};s(y,a,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(N([])));m&&m!==e&&r.call(m,a)&&(y=m);var b=v.prototype=p.prototype=Object.create(y);function E(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){var o;n(this,"_invoke",{value:function(n,i){function a(){return new e((function(o,a){!function n(o,i,a,u){var c=f(t[o],t,i);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,u)}),(function(t){n("throw",t,a,u)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return n("throw",t,a,u)}))}u(c.arg)}(n,i,o,a)}))}return o=o?o.then(a,a):a()}})}function x(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=L(a,r);if(u){if(u===h)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=f(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===h)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function L(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,L(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,h;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,h):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function S(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(S,this),this.reset(!0)}function N(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:I}}function I(){return{value:void 0,done:!0}}return d.prototype=v,n(b,"constructor",{value:v,configurable:!0}),n(v,"constructor",{value:d,configurable:!0}),d.displayName=s(v,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===d||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,s(t,c,"GeneratorFunction")),t.prototype=Object.create(b),t},t.awrap=function(t){return{__await:t}},E(w.prototype),s(w.prototype,u,(function(){return this})),t.AsyncIterator=w,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new w(l(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},E(b),s(b,c,"Generator"),s(b,a,(function(){return this})),s(b,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=N,_.prototype={constructor:_,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(O),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type="throw",a.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),h},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),h}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:N(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},t}function a(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function u(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function u(t){a(i,n,o,u,c,"next",t)}function c(t){a(i,n,o,u,c,"throw",t)}u(void 0)}))}}function c(){return(c=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}var s=e.ENDPOINTS.base+"/de/v1",l={},f=function(){var t=u(i().mark((function t(r){var n,o,a,u,c,f;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!l[n=r.fieldName]){t.next=3;break}return t.abrupt("return",l[n]);case 3:return o=[n],t.prev=4,(a=new URL(s+"/attributes")).searchParams.set("attributes",o.join(",")),t.next=9,fetch(a.toString(),{credentials:"include",headers:e.JSON_HEADERS});case 9:return u=t.sent,t.next=12,u.json();case 12:if(c=t.sent,!u.ok||c.status!==e.ResponseStatus.SUCCESS){t.next=19;break}return l[n]=f=c.attributes||[],t.abrupt("return",f);case 19:return t.abrupt("return",[]);case 20:t.next=26;break;case 22:return t.prev=22,t.t0=t.catch(4),console.debug(t.t0),t.abrupt("return",[]);case 26:case"end":return t.stop()}}),t,null,[[4,22]])})));return function(e){return t.apply(this,arguments)}}(),h=o.styled("div",{boxSizing:"border-box",display:"flex",marginBottom:"$100",flexDirection:"column","& button":{padding:"1px 6px"},"& *":{boxSizing:"border-box"}});exports.AttributesState={SUCCESS:"100"},exports.CollectionBehaviors={COLLECT:"COLLECT",DO_NOT_COLLECT:"DO_NOT_COLLECT"},exports.DESelect=function(t){var e=t.source,a=t.fieldName,s=t.label,l=t.defaultValue,p=t.disabled,d=t.submit,v=t.onChange,y=void 0===v?function(){}:v,g=t.onFinished,m=void 0===g?function(){}:g,b=t.valuesFilter,E=void 0===b?function(){return!0}:b,w=t.children,x=r.useState(t.dataDictionaryConfig),L=x[0],S=x[1],O=r.useState(""),_=O[0],N=O[1];if(r.useEffect((function(){w?"production"!==process.env.NODE_ENV&&console.debug("childen props",w):L||u(i().mark((function t(){var e;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,f({fieldName:a});case 2:e=t.sent,"production"!==process.env.NODE_ENV&&console.debug("config from API",e),S(e[0]);case 5:case"end":return t.stop()}}),t)})))()}),[]),r.useEffect((function(){d&&_&&("production"!==process.env.NODE_ENV&&console.error("push not implemented",_,e),m({isFinished:!0,isError:!1}))}),[d,_]),!w&&!L)return n.createElement("span",null,"loading");var I=l?{defaultValue:l}:{},T=p?{disabled:!0}:{},C=L?L.values.sort((function(t,e){return t.order-e.order})).filter((function(t){return!0!==t.archived})).filter(E):[];return n.createElement(h,null,n.createElement(o.Select.Root,c({onValueChange:function(t){y({value:t}),N(t)}},I,T),w||null,!w&&L&&n.createElement(n.Fragment,null,n.createElement(o.Select.Trigger,{"data-test-id":L.name+"-select-trigger"},n.createElement(o.Select.Label,null,s||L.name),n.createElement(o.Select.Value,null)),n.createElement(o.Select.Content,{css:{zIndex:o.theme.zIndices.page},"data-test-id":L.name+"-select-content"},C.map((function(t){return n.createElement(o.Select.Item,{value:t.name,key:t.name},t.name)}))))))},exports.IngestResponseState={SUCCESS:"100",SYSTEM_ERROR:"101",INVALID_TYPE:"102",INVALID_IDENTIFIER:"103",INVALID_DATA:"104",INVALID_ATTRIBUTE_DEFINITION:"105",INVALID_META_DEFINITION:"106"},exports.getAttributes=f,exports.hasRequiredPrivacyCookies=function(){var t;if("undefined"==typeof window)return!1;var r=e.getCookie("wp_usp"),n=null==(t=e.WPGeo())?void 0:t.country_code;return!(!r||"US"!==n)};
2
2
  //# sourceMappingURL=subs-de-inputs.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subs-de-inputs.cjs.production.min.js","sources":["../src/interfaces/index.ts","../src/components/Dropdown/index.tsx","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/dataEnrichment.ts","../src/services/sendToGA.ts","../src/components/DataEnrichmentForm/index.tsx","../src/utils/getDefaultSubmitData.ts"],"sourcesContent":["import { FormEventHandler } from 'react';\n\nexport enum I1pDataInputTypes {\n DROPDOWN = 'dropdown',\n}\n\nexport enum I1pIngestDataTypes {\n JOB_LEVEL = 'profile_job_level',\n JOB_INDUSTRY = 'profile_job_industry',\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}\n\nexport interface I1pDataInputValue {\n archived: boolean;\n name: string;\n order: number;\n date_created?: string;\n last_modified_date?: string;\n}\n\nexport interface I1pDataInputProps {\n id: I1pIngestDataTypes;\n input_label: string;\n input_prompt?: string;\n input_type: I1pDataInputTypes;\n required: boolean;\n default_value?: string;\n values?: Array<I1pDataInputValue>;\n}\n\nexport interface I1pDataFormSubmitData {\n [key: string]: string[];\n}\n\nexport enum I1pDataIngestTypes {\n EXPLICIT = 'explicit',\n IMPLICIT = 'implicit',\n}\n\nexport interface I1pDataFormProps {\n source: string;\n submit?: boolean;\n ingestType: I1pDataIngestTypes;\n onChange?: (\n submitData: I1pDataFormSubmitData,\n requiredFieldsReady: boolean\n ) => void;\n onFinished?: (isFinished: boolean, isError: boolean) => void;\n formOptions?: Array<I1pDataInputProps>;\n handleSubmit?: FormEventHandler<HTMLFormElement>;\n disabled?: boolean;\n}\n\nexport type I1pIngestPropsData = {\n [key in I1pIngestDataTypes]?: string[];\n};\n\nexport interface I1pIngestProps {\n type: 'implicit' | 'explicit';\n data: I1pIngestPropsData;\n metadata?: Record<string, string | null | undefined>;\n [key: string]: any;\n}\n\nexport enum 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}\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\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 defaultValueProp = defaultValue ? { defaultValue } : {};\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n const defaultValuePropMobile = (value: string) => {\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 placeholder={label}\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}-dropdown-label`}>\n <Select.Label>{label}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content css={{ zIndex: 8 }} data-test-id={`${id}-dropdown-input`}>\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 { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\n\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_usp = getCookie('wp_usp');\n\n const countryCode = WPGeo()?.country_code;\n\n return !!(wp_usp && countryCode === 'US');\n};\n","import { ENDPOINTS, getCookie } from '@washingtonpost/subs-sdk';\nimport {\n I1pDataIngestTypes,\n I1pIngestProps,\n I1pIngestPropsData,\n} from '../interfaces';\nimport { hasRequiredPrivacyCookies } from '../utils/hasRequiredPrivacyCookies';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nconst JSONHeaders = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n};\n\nexport const ingest = async (\n submitData: I1pIngestPropsData,\n metadata: { [key: string]: string }\n) => {\n const url = `${base}/ingest`;\n\n const wapo_login_id = getCookie('wapo_login_id');\n\n if (!hasRequiredPrivacyCookies()) {\n throw new Error('does not satisfy cookie check');\n }\n\n const jucid = localStorage.getItem('uuid');\n const ga = getCookie('_ga');\n\n const payload: I1pIngestProps = {\n jucid,\n ga,\n type: I1pDataIngestTypes.EXPLICIT,\n wapo_login_id, // TODO: move this to BE to read from cookie headers\n data: submitData,\n metadata,\n };\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n credentials: 'include',\n headers: JSONHeaders,\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","import { I1pIngestDataTypes, I1pIngestPropsData } from '../interfaces';\nimport { hasRequiredPrivacyCookies } from '../utils/hasRequiredPrivacyCookies';\n\nexport interface ISendGAEvent {\n event: string;\n category: string;\n action: string;\n label: string;\n 'de-label': I1pIngestDataTypes;\n [key: string]: undefined | string | string[];\n}\n\nconst sendGAEvent = (props: ISendGAEvent): 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 = async (\n submitData: I1pIngestPropsData,\n metadata: { [key: string]: string }\n) => {\n if (!hasRequiredPrivacyCookies()) {\n throw new Error('does not satisfy cookie check');\n }\n\n const keysToSubmit = Object.keys(submitData);\n\n keysToSubmit.forEach((key) => {\n if (Object.values(I1pIngestDataTypes).includes(key as I1pIngestDataTypes)) {\n sendGAEvent({\n event: 'site-onpage-click',\n action: 'site-onpage-click',\n category: 'profile',\n\n label: key,\n 'de-label': key as I1pIngestDataTypes,\n [key]: submitData[key as I1pIngestDataTypes],\n\n section: 'profile',\n subsection: metadata.source,\n });\n }\n });\n\n return true;\n};\n","import React, { useEffect, useState } from 'react';\nimport { styled } from '@washingtonpost/wpds-ui-kit';\nimport {\n I1pDataFormProps,\n I1pDataFormSubmitData,\n I1pDataIngestTypes,\n I1pDataInputTypes,\n} from '../../interfaces';\nimport { Dropdown } from '../Dropdown';\nimport { ingest } from '../../services/dataEnrichment';\nimport { ResponseStatus } from '@washingtonpost/subs-sdk';\nimport { hasRequiredPrivacyCookies } from '../../utils/hasRequiredPrivacyCookies';\nimport { sendToGA } from '../../services/sendToGA';\nimport { getDefaultSubmitData } from '../../utils/getDefaultSubmitData';\n\nexport const DataEnrichmentForm = ({\n submit,\n source, // used to track where on the site data is collected\n ingestType,\n formOptions = [],\n onChange = () => {},\n onFinished = () => {},\n handleSubmit = () => {},\n disabled = false,\n}: I1pDataFormProps) => {\n const [render, setRender] = useState(false);\n\n const [submitData, setSubmitData] = useState<I1pDataFormSubmitData>(\n getDefaultSubmitData(formOptions)\n );\n const [missingRequiredFields, setMissingRequiredFields] = useState(true);\n\n useEffect(() => {\n if (hasRequiredPrivacyCookies()) {\n setRender(true);\n } else {\n console.error('does not satisfy cookie check');\n onFinished(true, true);\n }\n }, []);\n\n useEffect(() => {\n // check for required fields that haven't been completed yet\n const missingRequiredFields = formOptions.filter((option) => {\n if (\n option.required &&\n option.input_type === I1pDataInputTypes.DROPDOWN &&\n !submitData[option.id]\n ) {\n return true;\n }\n return false;\n });\n\n setMissingRequiredFields(missingRequiredFields.length > 0);\n\n onChange(submitData, missingRequiredFields.length === 0);\n }, [JSON.stringify(submitData)]);\n\n useEffect(() => {\n (async () => {\n if (submit) {\n if (Object.keys(submitData).length >= 1) {\n if (ingestType === I1pDataIngestTypes.EXPLICIT) {\n const result = await ingest(submitData, { source });\n\n const isError = result && result.status !== ResponseStatus.SUCCESS;\n onFinished(true, isError);\n } else {\n const result = await sendToGA(submitData, { source });\n onFinished(true, result);\n }\n } else {\n onFinished(true, false);\n }\n }\n })();\n }, [submit]);\n\n if (!render) return <></>;\n\n return (\n <form\n method=\"post\"\n onSubmit={(e) => {\n e.preventDefault();\n handleSubmit(e);\n }}\n >\n {formOptions.map((formOption) => {\n if (\n formOption.input_type === I1pDataInputTypes.DROPDOWN &&\n formOption.values\n ) {\n // sort and filter out archived values\n const values = formOption.values\n .sort((a, b) => a.order - b.order)\n .filter((value) => value.archived !== true);\n\n return (\n <OptionWrapper data-private key={formOption.id}>\n <Dropdown\n id={formOption.id}\n label={formOption.input_label}\n values={values.map((value) => value.name)}\n required={formOption.required}\n defaultValue={formOption.default_value}\n onChange={(value) => {\n setSubmitData({ ...submitData, [formOption.id]: [value] });\n }}\n disabled={disabled}\n />\n </OptionWrapper>\n );\n }\n return null;\n })}\n\n {/* so the user can hit 'Enter' to submit */}\n <input\n type=\"submit\"\n hidden\n disabled={missingRequiredFields || disabled}\n data-qa=\"1p-data-inputs-submit\"\n />\n </form>\n );\n};\n\nconst OptionWrapper = 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 {\n I1pDataFormSubmitData,\n I1pDataInputProps,\n I1pDataInputTypes,\n} from '../interfaces';\n\nexport const getDefaultSubmitData = (formOptions: Array<I1pDataInputProps>) => {\n const defaultSubmitData: I1pDataFormSubmitData = {};\n formOptions.forEach((formOption) => {\n if (formOption.default_value) {\n if (\n formOption.input_type === I1pDataInputTypes.DROPDOWN &&\n formOption.values\n ) {\n const values = formOption.values\n .filter((value) => value.archived !== true)\n .map((value) => value.name);\n if (values.includes(formOption.default_value)) {\n defaultSubmitData[formOption.id] = [formOption.default_value];\n }\n } else {\n defaultSubmitData[formOption.id] = [formOption.default_value];\n }\n }\n });\n return defaultSubmitData;\n};\n"],"names":["I1pIngestDataTypes","I1pDataIngestTypes","IngestResponseState","I1pDataInputTypes","StyledMobileSelect","styled","padding","display","justifyContent","width","backgroundColor","color","fontFamily","fontSize","fontWeight","lineHeight","paddingBlockRight","textOverflow","position","borderColor","borderRightWidth","borderRightColor","appearance","-webkit-appearance","&:disabled","theme","colors","disabled","onDisabled","cursor","StyledSelectWrapper","maxWidth","borderRadius","borderStyle","borderWidth","StyledMobileOption","Dropdown","_ref","id","label","values","_ref$required","required","defaultValue","_ref$onChange","onChange","_ref$disabled","_useState","useState","answer","setAnswer","isMobileSize","useWindowSize","useEffect","defaultValueProp","disabledProp","React","_extends","e","target","value","placeholder","selected","style","map","key","defaultValuePropMobile","Icon","size","fill","pointerEvents","right","top","transform","ChevronDown","Select","Root","onValueChange","Trigger","Label","Value","Content","css","zIndex","Item","hasRequiredPrivacyCookies","window","wp_usp","getCookie","countryCode","_WPGeo","WPGeo","country_code","base","ENDPOINTS","JSONHeaders","Accept","Content-Type","ingest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","submitData","metadata","url","wapo_login_id","jucid","ga","payload","response","wrap","_context","prev","next","Error","localStorage","getItem","type","EXPLICIT","data","fetch","method","credentials","headers","body","JSON","stringify","sent","json","abrupt","t0","console","debug","stop","_x","_x2","apply","arguments","sendGAEvent","props","dataLayer","eventData","push","process","env","NODE_ENV","warn","sendToGA","Object","keys","forEach","_sendGAEvent","includes","event","action","category","de-label","section","subsection","source","OptionWrapper","boxSizing","marginBottom","flexDirection","& button","& *","submit","ingestType","_ref$formOptions","formOptions","_ref$onFinished","onFinished","_ref$handleSubmit","handleSubmit","render","setRender","_useState2","defaultSubmitData","formOption","default_value","input_type","DROPDOWN","filter","archived","name","getDefaultSubmitData","setSubmitData","_useState3","missingRequiredFields","setMissingRequiredFields","error","option","length","result","status","ResponseStatus","SUCCESS","onSubmit","preventDefault","sort","a","b","order","input_label","_extends2","hidden"],"mappings":"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"}
1
+ {"version":3,"file":"subs-de-inputs.cjs.production.min.js","sources":["../src/services/dataEnrichment.ts","../src/components/DESelect/index.tsx","../src/interfaces/index.ts","../src/utils/hasRequiredPrivacyCookies.ts"],"sourcesContent":["import {\n ENDPOINTS,\n ResponseStatus,\n JSON_HEADERS,\n} from '@washingtonpost/subs-sdk';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nconst attributesCache: Record<string, any> = {};\nexport const getAttributes = async ({ fieldName }: { fieldName: string }) => {\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: JSON_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 } else {\n return [];\n }\n } catch (e) {\n console.debug(e);\n return [];\n }\n};\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { Attribute, AttributeValue } from '../../interfaces';\nimport { SubsWindow } from '@washingtonpost/subs-sdk';\nimport { getAttributes } from '../../services/dataEnrichment';\n\ndeclare global {\n interface Window extends SubsWindow {}\n}\n\ninterface DESelectProps {\n source: string;\n fieldName: string;\n label?: string;\n dataDictionaryConfig?: 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\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 useEffect(() => {\n if (children) {\n if (__DEV__) {\n console.debug('childen props', children);\n }\n return;\n }\n\n if (!config) {\n (async () => {\n // TODO: Switch to window.__twpdeu.getFieldConfigs\n const config = await getAttributes({ fieldName });\n if (__DEV__) {\n console.debug('config from API', config);\n }\n setConfig(config[0]);\n })();\n }\n }, []);\n\n useEffect(() => {\n if (submit && selected) {\n if (__DEV__) {\n console.error('push not implemented', selected, source);\n }\n onFinished({ isFinished: true, isError: false });\n }\n }, [submit, selected]);\n\n if (!(children || config)) {\n return <span>loading</span>;\n }\n\n const defaultValueProp = defaultValue ? { defaultValue } : {};\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n // sort and filter out archived values\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 <Select.Root\n onValueChange={(e: string) => {\n onChange({ value: e });\n setSelected(e);\n }}\n {...defaultValueProp}\n {...disabledProp}\n >\n {children ? children : null}\n {!children && config && (\n <>\n <Select.Trigger data-test-id={`${config.name}-select-trigger`}>\n <Select.Label>{label || config.name}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content\n css={{ zIndex: theme.zIndices.page }}\n data-test-id={`${config.name}-select-content`}\n >\n {values.map((value) => (\n <Select.Item value={value.name} key={value.name}>\n {value.name}\n </Select.Item>\n ))}\n </Select.Content>\n </>\n )}\n </Select.Root>\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","export 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: Array<AttributeValue>;\n};\n\nexport const AttributesState = {\n SUCCESS: '100',\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} as const;\n","import { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\n\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_usp = getCookie('wp_usp');\n\n const countryCode = WPGeo()?.country_code;\n\n return !!(wp_usp && countryCode === 'US');\n};\n"],"names":["base","ENDPOINTS","attributesCache","getAttributes","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","fieldName","fieldNames","url","data","json","attributes","wrap","_context","prev","next","abrupt","URL","searchParams","set","join","fetch","toString","credentials","headers","JSON_HEADERS","sent","ok","status","ResponseStatus","SUCCESS","t0","console","debug","stop","_x","apply","arguments","SelectWrapper","styled","boxSizing","display","marginBottom","flexDirection","& button","padding","& *","COLLECT","DO_NOT_COLLECT","source","label","defaultValue","disabled","submit","_ref$onChange","onChange","_ref$onFinished","onFinished","_ref$valuesFilter","valuesFilter","children","_useState","useState","dataDictionaryConfig","config","setConfig","_useState2","selected","setSelected","useEffect","process","env","NODE_ENV","error","isFinished","isError","React","defaultValueProp","disabledProp","values","sort","a","b","order","filter","value","archived","Select","Root","_extends","onValueChange","e","Trigger","name","Label","Value","Content","css","zIndex","theme","zIndices","page","map","Item","key","SYSTEM_ERROR","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","window","wp_usp","getCookie","countryCode","_WPGeo","WPGeo","country_code"],"mappings":"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"}