@washingtonpost/subs-de-inputs 1.0.0-react18.0 → 1.0.0-react18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/DESelect/Dropdown.d.ts +17 -0
- package/dist/components/DESelect/index.d.ts +0 -5
- package/dist/index.d.ts +1 -0
- package/dist/interfaces/index.d.ts +8 -0
- package/dist/interfaces/twpdeu.d.ts +11 -0
- package/dist/services/dataEnrichment.d.ts +18 -2
- package/dist/subs-de-inputs.cjs.development.js +305 -483
- package/dist/subs-de-inputs.cjs.development.js.map +1 -1
- package/dist/subs-de-inputs.cjs.production.min.js +1 -1
- package/dist/subs-de-inputs.cjs.production.min.js.map +1 -1
- package/dist/subs-de-inputs.esm.js +306 -486
- package/dist/subs-de-inputs.esm.js.map +1 -1
- package/package.json +23 -8
|
@@ -1 +1 @@
|
|
|
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 { SubsWindow } from '@washingtonpost/subs-sdk';\nimport { Attribute, AttributeValue } from '../../interfaces';\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 || null}\n {!children && config && (\n <React.Fragment>\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 </React.Fragment>\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","_WPGeo","window","wp_usp","getCookie","countryCode","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","error","isFinished","isError","React","defaultValueProp","disabledProp","values","sort","a","b","order","filter","value","archived","SelectWrapper","createElement","Select","Root","_extends","onValueChange","e","Fragment","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
|
+
{"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/Dropdown.tsx","../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 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","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 getCookie,\n} from '@washingtonpost/subs-sdk';\nimport {\n Attribute,\n CollectionBehaviors,\n IngestResponseState,\n IngestType,\n} from '../interfaces';\nimport { hasRequiredPrivacyCookies } from '../utils/hasRequiredPrivacyCookies';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\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: 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\ntype GetAttributesType = ({\n fieldName,\n}: {\n fieldName: string;\n}) => Promise<Attribute[]>;\n\nexport const ingest: IngestType = async ({\n submitData: { fieldName, value },\n type = IngestType.IMPLICIT,\n source,\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 let attributeInfo = attributesCache[fieldName];\n if (!attributeInfo) {\n attributeInfo = await getAttributes({ 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 jucid = localStorage.getItem('uuid');\n const ga = getCookie('_ga');\n\n const payload = {\n jucid,\n ga,\n type,\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: JSON_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 type?: (typeof IngestType)[keyof typeof IngestType];\n source: string;\n}) => Promise<{\n status: ResponseStatus;\n state: (typeof IngestResponseState)[keyof typeof IngestResponseState];\n} | null>;\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 { Attribute, AttributeValue, IngestType } from '../../interfaces';\nimport { Dropdown } from './Dropdown';\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\nconst scriptSrc = `${\n ENDPOINTS.staticAssets === 'https://subscribe.washingtonpost.com/static'\n ? 'https://www.washingtonpost.com/subscribe/static/'\n : ENDPOINTS.staticAssets\n}/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 // TODO: Log to GA?\n\n const result = await window?.__twpdeu?.push({\n submitData: { fieldName, value: selected },\n type: config?.explicit ? IngestType.EXPLICIT : IngestType.IMPLICIT,\n source,\n });\n\n const isError = 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 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"],"names":["CollectionBehaviors","COLLECT","DO_NOT_COLLECT","AttributesState","SUCCESS","IngestType","EXPLICIT","IMPLICIT","IngestResponseState","SYSTEM_ERROR","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","UNAUTHENTICATED","MISMATCHED_IDENTIFIER","DISABLED_ATTRIBUTE_DEFINITION","hasRequiredPrivacyCookies","_WPGeo","window","wp_usp","getCookie","countryCode","WPGeo","country_code","base","ENDPOINTS","attributesCache","getAttributes","fieldName","fieldNames","url","URL","searchParams","set","join","data","fetch","toString","credentials","headers","JSON_HEADERS","json","ok","status","ResponseStatus","attributes","e","console","debug","ingest","submitData","value","type","source","wapo_login_id","Error","attributeInfo","name","collection_behavior","jucid","localStorage","getItem","ga","payload","metadata","response","method","body","JSON","stringify","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","label","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","staticAssets","DESelect","dataDictionaryConfig","submit","onFinished","valuesFilter","children","config","setConfig","setSelected","scriptStatus","useScript","fetchConfig","_window","__twpdeu","getFieldConfigs","error","warn","ScriptStatus","READY","submitSelected","_window2","result","push","explicit","isError","isFinished","isLoading","sort","a","b","order","filter","archived","SelectWrapper","boxSizing","marginBottom","flexDirection"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@washingtonpost/subs-sdk"),e=require("react"),r=require("@washingtonpost/wpds-ui-kit");function n(){n=function(){return e};var t,e={},r=Object.prototype,o=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},u=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function f(t,e,r,n){var o=Object.create((e&&e.prototype instanceof m?e:m).prototype),a=new j(n||[]);return i(o,"_invoke",{value:I(t,r,a)}),o}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=f;var p="suspendedStart",d="suspendedYield",v="executing",y="completed",g={};function m(){}function b(){}function w(){}var E={};l(E,u,(function(){return this}));var x=Object.getPrototypeOf,L=x&&x(x(k([])));L&&L!==r&&o.call(L,u)&&(E=L);var S=w.prototype=m.prototype=Object.create(E);function O(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function _(t,e){function r(n,i,a,u){var c=h(t[n],t,i);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&o.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,u)}),(function(t){r("throw",t,a,u)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,u)}))}u(c.arg)}var n;i(this,"_invoke",{value:function(t,o){function i(){return new e((function(e,n){r(t,o,e,n)}))}return n=n?n.then(i,i):i()}})}function I(e,r,n){var o=p;return function(i,a){if(o===v)throw Error("Generator is already running");if(o===y){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var u=n.delegate;if(u){var c=N(u,n);if(c){if(c===g)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var s=h(e,r,n);if("normal"===s.type){if(o=n.done?y:d,s.arg===g)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=y,n.method="throw",n.arg=s.arg)}}}function N(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,N(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=h(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,g;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function T(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 C(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function j(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function k(e){if(e||""===e){var r=e[u];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,i=function r(){for(;++n<e.length;)if(o.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(typeof e+" is not iterable")}return b.prototype=w,i(S,"constructor",{value:w,configurable:!0}),i(w,"constructor",{value:b,configurable:!0}),b.displayName=l(w,s,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===b||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,l(t,s,"GeneratorFunction")),t.prototype=Object.create(S),t},e.awrap=function(t){return{__await:t}},O(_.prototype),l(_.prototype,c,(function(){return this})),e.AsyncIterator=_,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new _(f(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},O(S),l(S,s,"Generator"),l(S,u,(function(){return this})),l(S,"toString",(function(){return"[object Generator]"})),e.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}},e.values=k,j.prototype={constructor:j,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(C),!e)for(var r in this)"t"===r.charAt(0)&&o.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(n,o){return u.type="throw",u.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var c=o.call(a,"catchLoc"),s=o.call(a,"finallyLoc");if(c&&s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var i=n;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,g):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),g},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),C(r),g}},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;C(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:k(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}function o(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 i(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function u(t){o(a,n,i,u,c,"next",t)}function c(t){o(a,n,i,u,c,"throw",t)}u(void 0)}))}}function a(){return a=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},a.apply(this,arguments)}var u=t.ENDPOINTS.base+"/de/v1",c={},s=function(){var e=i(n().mark((function e(r){var o,i,a,s,l,f;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!c[o=r.fieldName]){e.next=3;break}return e.abrupt("return",c[o]);case 3:return i=[o],e.prev=4,(a=new URL(u+"/attributes")).searchParams.set("attributes",i.join(",")),e.next=9,fetch(a.toString(),{credentials:"include",headers:t.JSON_HEADERS});case 9:return s=e.sent,e.next=12,s.json();case 12:if(l=e.sent,!s.ok||l.status!==t.ResponseStatus.SUCCESS){e.next=19;break}return c[o]=f=l.attributes||[],e.abrupt("return",f);case 19:return e.abrupt("return",[]);case 20:e.next=26;break;case 22:return e.prev=22,e.t0=e.catch(4),console.debug(e.t0),e.abrupt("return",[]);case 26:case"end":return e.stop()}}),e,null,[[4,22]])})));return function(t){return e.apply(this,arguments)}}(),l=r.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 o=t.fieldName,u=t.label,c=t.defaultValue,f=t.disabled,h=t.submit,p=t.onChange,d=void 0===p?function(){}:p,v=t.onFinished,y=void 0===v?function(){}:v,g=t.valuesFilter,m=void 0===g?function(){return!0}:g,b=t.children,w=e.useState(t.dataDictionaryConfig),E=w[0],x=w[1],L=e.useState(""),S=L[0],O=L[1];if(e.useEffect((function(){b||E||i(n().mark((function t(){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s({fieldName:o});case 2:x(t.sent[0]);case 5:case"end":return t.stop()}}),t)})))()}),[]),e.useEffect((function(){h&&S&&y({isFinished:!0,isError:!1})}),[h,S]),!b&&!E)return e.createElement("span",null,"loading");var _=c?{defaultValue:c}:{},I=f?{disabled:!0}:{},N=E?E.values.sort((function(t,e){return t.order-e.order})).filter((function(t){return!0!==t.archived})).filter(m):[];return e.createElement(l,null,e.createElement(r.Select.Root,a({onValueChange:function(t){d({value:t}),O(t)}},_,I),b||null,!b&&E&&e.createElement(e.Fragment,null,e.createElement(r.Select.Trigger,{"data-test-id":E.name+"-select-trigger"},e.createElement(r.Select.Label,null,u||E.name),e.createElement(r.Select.Value,null)),e.createElement(r.Select.Content,{css:{zIndex:r.theme.zIndices.page},"data-test-id":E.name+"-select-content"},N.map((function(t){return e.createElement(r.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=s,exports.hasRequiredPrivacyCookies=function(){var e;if("undefined"==typeof window)return!1;var r=t.getCookie("wp_usp"),n=null==(e=t.WPGeo())?void 0:e.country_code;return!(!r||"US"!==n)};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@washingtonpost/subs-sdk"),t=require("react"),o=require("@washingtonpost/wpds-ui-kit"),a=require("@washingtonpost/subs-hooks"),i=require("@washingtonpost/wpds-assets");const s={COLLECT:"COLLECT",DO_NOT_COLLECT:"DO_NOT_COLLECT"},r={EXPLICIT:"explicit",IMPLICIT:"implicit"},n=()=>{var t;if("undefined"==typeof window)return!1;const o=e.getCookie("wp_usp"),a=null===(t=e.WPGeo())||void 0===t?void 0:t.country_code;return!(!o||"US"!==a)},l=`${e.ENDPOINTS.base}/de/v1`,d={},c=async({fieldName:t})=>{if(d[t])return d[t];const o=[t];try{const a=new URL(`${l}/attributes`);a.searchParams.set("attributes",o.join(","));const i=await fetch(a.toString(),{credentials:"include",headers:e.JSON_HEADERS}),s=await i.json();if(i.ok&&s.status===e.ResponseStatus.SUCCESS){const e=s.attributes||[];return d[t]=e,e}return[]}catch(e){return console.debug(e),[]}},u=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"}}),p=o.styled("div",{width:"100%",maxWidth:"380px",borderRadius:"$012",borderColor:"$subtle",borderStyle:"solid",borderWidth:"1px",backgroundColor:"$secondary",position:"relative"}),b=o.styled("option",{fontFamily:"inherit",fontSize:"inherit",color:"inherit"}),E=({id:e,label:s,values:r,required:n=!1,defaultValue:l,onChange:d=(()=>{}),disabled:c=!1})=>{const[E,g]=t.useState(),{isMobileSize:h}=a.useWindowSize();t.useEffect((()=>{E&&d(E)}),[E]);const m=c?{disabled:!0}:{},S=E?{defaultValue:E}:l?{defaultValue:l}:{},I=e=>E?e===E?{selected:!0}:{}:e===l?{selected:!0}:{};return h?t.createElement(p,null,t.createElement(u,{id:"",required:n,onChange:e=>g(e.target.value),...m},t.createElement("label",null,s),t.createElement(b,{value:"",disabled:!0,selected:!0,style:{color:"#666666"}},s),r.map((e=>t.createElement(b,{value:e,key:e,...I(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:n,...S,...m},t.createElement(o.Select.Trigger,{"data-test-id":`${e}-select-trigger`},t.createElement(o.Select.Label,null,s),t.createElement(o.Select.Value,null)),t.createElement(o.Select.Content,{css:{zIndex:o.theme.zIndices.page},"data-test-id":`${e}-select-content`},r.map((e=>t.createElement(o.Select.Item,{value:e,key:e},e)))))},g=`${"https://subscribe.washingtonpost.com/static"===e.ENDPOINTS.staticAssets?"https://www.washingtonpost.com/subscribe/static/":e.ENDPOINTS.staticAssets}/de-utils/twpdeu.min.js`,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=s,exports.DESelect=({source:i,fieldName:s,label:n,dataDictionaryConfig:l,defaultValue:d,disabled:c,submit:u,onChange:p=(()=>{}),onFinished:b=(()=>{}),valuesFilter:m=(()=>!0),children:S})=>{const[I,C]=t.useState(l),[f,w]=t.useState(""),T=a.useScript(g);t.useEffect((()=>{T!==a.ScriptStatus.READY||S||I||(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:s}));t?C(t[0]):console.error("unable to get config",s)}catch(e){console.warn("unable to get config",s,e)}})()}),[T]),t.useEffect((()=>{T===a.ScriptStatus.READY&&u&&f&&(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:s,value:f},type:null!=I&&I.explicit?r.EXPLICIT:r.IMPLICIT,source:i}));b({isFinished:!0,isError:!o||o.status!==e.ResponseStatus.SUCCESS})}catch(e){b({isFinished:!1,isError:!0})}})()}),[T,u]);const y=d&&I?{defaultValue:d}:{},v=c||!S&&!I?{disabled:!0}:{},_=I?I.values.sort(((e,t)=>e.order-t.order)).filter((e=>!0!==e.archived)).filter(m):[];return t.createElement(h,null,S&&t.createElement(o.Select.Root,{onValueChange:e=>{w(e),p({value:e})},...y,...v},S),!S&&!I&&t.createElement(E,{id:"loading",label:"Loading...",values:[],disabled:!0}),!S&&I&&t.createElement(E,{id:I.name,label:n||I.name,onChange:e=>{w(e),p({value:e})},values:_.map((e=>e.name)),defaultValue:d,disabled:c}))},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=r,exports.getAttributes=c,exports.hasRequiredPrivacyCookies=n,exports.ingest=async({submitData:{fieldName:t,value:o},type:a=r.IMPLICIT,source:i})=>{const u=`${l}/ingest`,p=e.getCookie("wapo_login_id");if(!n())throw new Error("does not satisfy cookie check");let b=d[t];if(b||(b=await c({fieldName:t})),b[0]&&b[0].name===t&&b[0].collection_behavior===s.DO_NOT_COLLECT)throw new Error("do not collect");const E={jucid:localStorage.getItem("uuid"),ga:e.getCookie("_ga"),type:a,wapo_login_id:p,data:{[t]:[o]},metadata:{source:i}};try{const t=await fetch(u,{method:"POST",credentials:"include",headers:e.JSON_HEADERS,body:JSON.stringify(E)});return await t.json()}catch(e){return console.debug(e),null}};
|
|
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/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 { SubsWindow } from '@washingtonpost/subs-sdk';\nimport { Attribute, AttributeValue } from '../../interfaces';\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 || null}\n {!children && config && (\n <React.Fragment>\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 </React.Fragment>\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","this","arguments","SelectWrapper","styled","boxSizing","display","marginBottom","flexDirection","padding","COLLECT","DO_NOT_COLLECT","label","defaultValue","disabled","submit","_ref$onChange","onChange","_ref$onFinished","onFinished","_ref$valuesFilter","valuesFilter","children","_useState","useState","dataDictionaryConfig","config","setConfig","_useState2","selected","setSelected","useEffect","isFinished","isError","React","defaultValueProp","disabledProp","values","sort","a","b","order","filter","value","archived","createElement","Select","Root","_extends","onValueChange","e","Fragment","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","_WPGeo","window","wp_usp","getCookie","countryCode","WPGeo","country_code"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subs-de-inputs.cjs.production.min.js","sources":["../src/interfaces/index.ts","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/dataEnrichment.ts","../src/components/DESelect/Dropdown.tsx","../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 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","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 getCookie,\n} from '@washingtonpost/subs-sdk';\nimport {\n Attribute,\n CollectionBehaviors,\n IngestResponseState,\n IngestType,\n} from '../interfaces';\nimport { hasRequiredPrivacyCookies } from '../utils/hasRequiredPrivacyCookies';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\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: 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\ntype GetAttributesType = ({\n fieldName,\n}: {\n fieldName: string;\n}) => Promise<Attribute[]>;\n\nexport const ingest: IngestType = async ({\n submitData: { fieldName, value },\n type = IngestType.IMPLICIT,\n source,\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 let attributeInfo = attributesCache[fieldName];\n if (!attributeInfo) {\n attributeInfo = await getAttributes({ 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 jucid = localStorage.getItem('uuid');\n const ga = getCookie('_ga');\n\n const payload = {\n jucid,\n ga,\n type,\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: JSON_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 type?: (typeof IngestType)[keyof typeof IngestType];\n source: string;\n}) => Promise<{\n status: ResponseStatus;\n state: (typeof IngestResponseState)[keyof typeof IngestResponseState];\n} | null>;\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 { Attribute, AttributeValue, IngestType } from '../../interfaces';\nimport { Dropdown } from './Dropdown';\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\nconst scriptSrc = `${\n ENDPOINTS.staticAssets === 'https://subscribe.washingtonpost.com/static'\n ? 'https://www.washingtonpost.com/subscribe/static/'\n : ENDPOINTS.staticAssets\n}/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 // TODO: Log to GA?\n\n const result = await window?.__twpdeu?.push({\n submitData: { fieldName, value: selected },\n type: config?.explicit ? IngestType.EXPLICIT : IngestType.IMPLICIT,\n source,\n });\n\n const isError = 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 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"],"names":["CollectionBehaviors","COLLECT","DO_NOT_COLLECT","IngestType","EXPLICIT","IMPLICIT","hasRequiredPrivacyCookies","_WPGeo","window","wp_usp","getCookie","countryCode","WPGeo","country_code","base","ENDPOINTS","attributesCache","getAttributes","async","fieldName","fieldNames","url","URL","searchParams","set","join","data","fetch","toString","credentials","headers","JSON_HEADERS","json","ok","status","ResponseStatus","SUCCESS","attributes","e","console","debug","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","label","values","required","defaultValue","onChange","answer","setAnswer","useState","isMobileSize","useWindowSize","useEffect","disabledProp","defaultValueProp","defaultValuePropMobile","value","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","staticAssets","SelectWrapper","boxSizing","marginBottom","flexDirection","DESelect","source","dataDictionaryConfig","submit","onFinished","valuesFilter","children","config","setConfig","setSelected","scriptStatus","useScript","ScriptStatus","READY","_window","__twpdeu","getFieldConfigs","error","warn","fetchConfig","_window2","result","push","submitData","type","explicit","isFinished","isError","submitSelected","sort","a","b","order","filter","archived","name","SYSTEM_ERROR","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","UNAUTHENTICATED","MISMATCHED_IDENTIFIER","DISABLED_ATTRIBUTE_DEFINITION","wapo_login_id","Error","attributeInfo","collection_behavior","payload","jucid","localStorage","getItem","ga","metadata","response","method","body","JSON","stringify"],"mappings":"2PAQO,MAAMA,EAAsB,CACjCC,QAAS,UACTC,eAAgB,kBAmBLC,EAAa,CACxBC,SAAU,WACVC,SAAU,YC7BCC,EAA4BA,KAAK,IAAAC,EAC5C,GAAsB,oBAAXC,OACT,OAAO,EAGT,MAAMC,EAASC,YAAU,UAEnBC,EAAqB,QAAVJ,EAAGK,EAAAA,eAAO,IAAAL,OAAA,EAAPA,EAASM,aAE7B,SAAUJ,GAA0B,OAAhBE,EAAqB,ECGrCG,EAAO,GAAGC,EAAAA,UAAUD,aAEpBE,EAAuC,CAAA,EAChCC,EAAmCC,OAC9CC,gBAIA,GAAIH,EAAgBG,GAClB,OAAOH,EAAgBG,GAGzB,MAAMC,EAAa,CAACD,GAEpB,IACE,MAAME,EAAM,IAAIC,IAAO,GAAAR,gBACvBO,EAAIE,aAAaC,IAAI,aAAcJ,EAAWK,KAAK,MAEnD,MAAMC,QAAaC,MAAMN,EAAIO,WAAY,CACvCC,YAAa,UACbC,QAASC,EAAAA,eAELC,QAAaN,EAAKM,OAExB,GAAIN,EAAKO,IAAMD,EAAKE,SAAWC,EAAAA,eAAeC,QAAS,CACrD,MAAMC,EAAaL,EAAKK,YAAc,GAEtC,OADArB,EAAgBG,GAAakB,EACtBA,CACT,CACE,MAAO,EAEV,CAAC,MAAOC,GAEP,OADAC,QAAQC,MAAMF,GACP,EACT,GCjCIG,EAAqBC,EAAMA,OAAC,SAAU,CAC1CC,QAAS,qBACTC,QAAS,OACTC,eAAgB,gBAChBC,MAAO,OACPC,gBAAiB,aACjBC,MAAO,WACPC,WAAY,QACZC,SAAU,OACVC,WAAY,SACZC,WAAY,OACZC,kBAAmB,OACnBC,aAAc,WACdC,SAAU,WACVC,YAAa,cACbC,iBAAkB,OAClBC,iBAAkB,cAClBC,WAAY,OACZ,qBAAsB,OACtB,aAAc,CACZZ,gBAAiBa,EAAAA,MAAMC,OAAOC,SAC9BN,YAAaI,EAAAA,MAAMC,OAAOC,SAC1Bd,MAAOY,EAAAA,MAAMC,OAAOE,WACpBC,OAAQ,iBAINC,EAAsBvB,EAAMA,OAAC,MAAO,CACxCI,MAAO,OACPoB,SAAU,QACVC,aAAc,OACdX,YAAa,UACbY,YAAa,QACbC,YAAa,MACbtB,gBAAiB,aACjBQ,SAAU,aAGNe,EAAqB5B,EAAMA,OAAC,SAAU,CAC1CO,WAAY,UACZC,SAAU,UACVF,MAAO,YAQIuB,EAAWA,EACtBC,KACAC,QACAC,SACAC,YAAW,EACXC,eACAC,WAAWA,SACXf,YAAW,MAEX,MAAOgB,EAAQC,GAAaC,EAAQA,YAC9BC,aAAEA,GAAiBC,EAAaA,gBAEtCC,EAAAA,WAAU,KACJL,GAAQD,EAASC,EAAO,GAC3B,CAACA,IAEJ,MAAMM,EAAetB,EAAW,CAAEA,UAAU,GAAS,GAG/CuB,EAAmBP,EACrB,CAAEF,aAAcE,GAChBF,EACA,CAAEA,gBACF,GAEEU,EAA0BC,GAC1BT,EACKS,IAAUT,EAAS,CAAEU,UAAU,GAAS,GAE1CD,IAAUX,EAAe,CAAEY,UAAU,GAAS,GAGvD,OAAOP,EACLQ,gBAACxB,EAAmB,KAClBwB,EAACC,cAAAjD,EACC,CAAA+B,GAAG,GACHG,SAAUA,EACVE,SAAWvC,GAAMyC,EAAUzC,EAAEqD,OAAOJ,UAChCH,GAEJK,EAAAC,cAAA,QAAA,KAAQjB,GACRgB,EAAAC,cAACpB,EACC,CAAAiB,MAAM,GACNzB,UACA,EAAA0B,YACAI,MAAO,CAAE5C,MAAO,YAEfyB,GAEFC,EAAOmB,KAAKN,GACXE,EAAAC,cAACpB,EAAkB,CACjBiB,MAAOA,EACPO,IAAKP,KACDD,EAAuBC,IAE1BA,MAIPE,EAAAC,cAACK,EAAAA,KACC,CAAAtB,MAAM,GACNuB,KAAK,MACLC,KAAMrC,EAAAA,MAAMC,OAAOqC,OACnBN,MAAO,CACLO,cAAe,OACf5C,SAAU,WACV6C,MAAO,OACPC,IAAK,MACLC,UAAW,qBAGbb,EAACC,cAAAa,eAAYX,MAAO,CAAErC,SAAU,WAAY6C,MAAO,YAIvDX,EAAAC,cAACc,EAAAA,OAAOC,MACNC,cAAgBpE,GAAMyC,EAAUzC,GAChCqC,SAAUA,KACNU,KACAD,GAEJK,EAAAC,cAACc,EAAMA,OAACG,QAAsB,CAAA,eAAA,GAAGnC,oBAC/BiB,EAAAC,cAACc,EAAMA,OAACI,MAAK,KAAEnC,GACfgB,EAAAC,cAACc,EAAMA,OAACK,MAAK,OAEfpB,EAACC,cAAAc,EAAMA,OAACM,QAAO,CACbC,IAAK,CAAEC,OAAQpD,EAAAA,MAAMqD,SAASC,MAAM,eACnB,GAAA1C,oBAEhBE,EAAOmB,KAAKN,GACXE,EAAAC,cAACc,EAAMA,OAACW,KAAK,CAAA5B,MAAOA,EAAOO,IAAKP,GAC7BA,MAKV,EC7HG6B,EAAY,GACW,gDAA3BrG,EAASA,UAACsG,aACN,mDACAtG,EAASA,UAACsG,sCA8HVC,EAAgB5E,EAAMA,OAAC,MAAO,CAClC6E,UAAW,aACX3E,QAAS,OACT4E,aAAc,OACdC,cAAe,SACf,WAAY,CACV9E,QAAS,WAEX,MAAO,CAAE4E,UAAW,wCJnJS,CAC7BnF,QAAS,sDIesCsF,EAC/CC,SACAxG,YACAsD,QACAmD,uBACAhD,eACAd,WACA+D,SACAhD,WAAWA,SACXiD,aAAaA,SACbC,eAAeA,MAAM,GACrBC,eAEA,MAAOC,EAAQC,GAAalD,EAAQA,SAAC4C,IAE9BpC,EAAU2C,GAAenD,EAAQA,SAAC,IAEnCoD,EAAeC,YAAUjB,GAE/BjC,EAAAA,WAAU,KAcJiD,IAAiBE,EAAAA,aAAaC,OAAWP,GAAYC,GAbrC/G,WAClB,IAAI,IAAAsH,EACF,MAAMP,QAAqB,QAAZO,EAAMhI,cAAMgI,IAAAA,GAAUA,QAAVA,EAANA,EAAQC,oBAAQD,SAAhBA,EAAkBE,gBAAgB,CAAEvH,eACrD8G,EACFC,EAAUD,EAAO,IAEjB1F,QAAQoG,MAAM,uBAAwBxH,EAEzC,CAAC,MAAOmB,GACPC,QAAQqG,KAAK,uBAAwBzH,EAAWmB,EAClD,GAIAuG,EACF,GACC,CAACT,IAEJjD,EAAAA,WAAU,KA2BJiD,IAAiBE,EAAYA,aAACC,OAASV,GAAUrC,GA1B9BtE,WACrB,IAAI,IAAA4H,EAGF,MAAMC,QAAqB,QAAZD,EAAMtI,cAAMsI,IAAAA,GAAUA,QAAVA,EAANA,EAAQL,oBAAQK,SAAhBA,EAAkBE,KAAK,CAC1CC,WAAY,CAAE9H,YAAWoE,MAAOC,GAChC0D,KAAMjB,SAAAA,EAAQkB,SAAWhJ,EAAWC,SAAWD,EAAWE,SAC1DsH,YAOFG,EAAW,CACTsB,YAAY,EACZC,SANcN,GACZA,EAAO7G,SAAWC,EAAcA,eAACC,SAOtC,CAAC,MAAOE,GACPwF,EAAW,CACTsB,YAAY,EACZC,SAAS,GAEb,GAIAC,EACF,GACC,CAAClB,EAAcP,IAElB,MAAMxC,EAAmBT,GAAgBqD,EAAS,CAAErD,gBAAiB,GAI/DQ,EAAetB,IAFDkE,IAAYC,EAEa,CAAEnE,UAAU,GAAS,GAG5DY,EAASuD,EACXA,EAAOvD,OACJ6E,MAAK,CAACC,EAAGC,IAAMD,EAAEE,MAAQD,EAAEC,QAC3BC,QAAQpE,IAA6B,IAAnBA,EAAMqE,WACxBD,OAAO5B,GACV,GAEJ,OACEtC,gBAAC6B,EAAa,KACXU,GACCvC,EAACC,cAAAc,EAAMA,OAACC,KACN,CAAAC,cAAgBpE,IACd6F,EAAY7F,GACZuC,EAAS,CAAEU,MAAOjD,GAAI,KAEpB+C,KACAD,GAEH4C,IAGHA,IAAaC,GACbxC,EAACC,cAAAnB,EACC,CAAAC,GAAI,UACJC,MAAO,aACPC,OAAQ,GACRZ,UAAU,KAGZkE,GAAYC,GACZxC,EAACC,cAAAnB,EACC,CAAAC,GAAIyD,EAAO4B,KACXpF,MAAOA,GAASwD,EAAO4B,KACvBhF,SAAWvC,IACT6F,EAAY7F,GACZuC,EAAS,CAAEU,MAAOjD,GAAI,EAExBoC,OAAQA,EAAOmB,KAAKN,GAAUA,EAAMsE,OACpCjF,aAAcA,EACdd,SAAUA,IAGA,8BJ9He,CACjC1B,QAAS,MACT0H,aAAc,MACdC,aAAc,MACdC,mBAAoB,MACpBC,aAAc,MACdC,6BAA8B,MAC9BC,wBAAyB,MACzBC,gBAAiB,MACjBC,sBAAuB,MACvBC,8BAA+B,MAC/BpK,eAAgB,uGEYgBgB,OAChC+H,YAAc9H,YAAWoE,SACzB2D,OAAO/I,EAAWE,SAClBsH,aAEA,MAAMtG,EAAS,GAAAP,WAETyJ,EAAgB7J,YAAU,iBAEhC,IAAKJ,IACH,MAAM,IAAIkK,MAAM,iCAGlB,IAAIC,EAAgBzJ,EAAgBG,GAKpC,GAJKsJ,IACHA,QAAsBxJ,EAAc,CAAEE,eAItCsJ,EAAc,IACdA,EAAc,GAAGZ,OAAS1I,GAC1BsJ,EAAc,GAAGC,sBAAwB1K,EAAoBE,eAE7D,MAAM,IAAIsK,MAAM,kBAGlB,MAGMG,EAAU,CACdC,MAJYC,aAAaC,QAAQ,QAKjCC,GAJSrK,YAAU,OAKnBwI,OACAqB,gBACA7I,KAAM,CACJP,CAACA,GAAY,CAACoE,IAEhByF,SAAU,CAAErD,WAGd,IACE,MAAMsD,QAAiBtJ,MAAMN,EAAK,CAChC6J,OAAQ,OACRrJ,YAAa,UACbC,QAASC,EAAYA,aACrBoJ,KAAMC,KAAKC,UAAUV,KAKvB,aAFmBM,EAASjJ,MAG7B,CAAC,MAAOM,GAEP,OADAC,QAAQC,MAAMF,GACP,IACT"}
|