@washingtonpost/subs-de-inputs 0.2.0-canary.0 → 0.2.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 +0,0 @@
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 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} 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 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: IngestType.EXPLICIT,\n wapo_login_id, // TODO: move this to BE to read from cookie headers\n data: {\n fieldName,\n 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 source: string;\n}) => Promise<{\n status: ResponseStatus;\n state: (typeof IngestResponseState)[keyof typeof IngestResponseState];\n} | null>;\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { Attribute, AttributeValue } from '../../interfaces';\nimport { getAttributes, ingest } from '../../services/dataEnrichment';\nimport { ResponseStatus } from '@washingtonpost/subs-sdk';\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 (async () => {\n if (submit && selected) {\n // TODO: Switch to window.__twpdeu.push\n // TODO: Log to GA\n // TODO: Differentiate between explicit and implicit inputs?\n const result = await ingest({\n submitData: { fieldName, value: selected },\n source,\n });\n const isError = result\n ? result.status !== ResponseStatus.SUCCESS\n : true;\n\n onFinished({\n isFinished: true,\n isError,\n });\n }\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","IngestType","EXPLICIT","IMPLICIT","IngestResponseState","SYSTEM_ERROR","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","UNAUTHENTICATED","MISMATCHED_IDENTIFIER","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","ingest","_ref4","_callee2","_ref3","_ref3$submitData","value","source","wapo_login_id","attributeInfo","jucid","ga","payload","response","_callee2$","_context2","submitData","Error","name","collection_behavior","localStorage","getItem","type","metadata","method","body","JSON","stringify","_x2","DESelect","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","result","isError","isFinished","React","defaultValueProp","disabledProp","values","sort","a","b","order","filter","archived","SelectWrapper","Select","Root","_extends","onValueChange","e","Trigger","Label","Value","Content","css","zIndex","theme","zIndices","page","map","Item","key","styled","boxSizing","display","marginBottom","flexDirection","padding"],"mappings":"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"}
@@ -1,2 +0,0 @@
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"),i={COLLECT:"COLLECT",DO_NOT_COLLECT:"DO_NOT_COLLECT"},a={EXPLICIT:"explicit",IMPLICIT:"implicit"},c=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)};function u(){u=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:{},i=o.iterator||"@@iterator",a=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 I(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,i,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(N([])));m&&m!==e&&r.call(m,i)&&(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,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==typeof l&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,c)}),(function(t){n("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return n("throw",t,a,c)}))}c(u.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 c=L(a,r);if(c){if(c===h)continue;return c}}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 u=f(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===h)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.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 _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(S,this),this.reset(!0)}function N(t){if(t){var e=t[i];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:O}}function O(){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,a,(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,i,(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,I.prototype={constructor:I,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(_),!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 c=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)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),_(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;_(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 s(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}function l(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){s(i,n,o,a,c,"next",t)}function c(t){s(i,n,o,a,c,"throw",t)}a(void 0)}))}}function f(){return(f=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 h=e.ENDPOINTS.base+"/de/v1",p={},d=function(){var t=l(u().mark((function t(r){var n,o,i,a,c,s;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!p[n=r.fieldName]){t.next=3;break}return t.abrupt("return",p[n]);case 3:return o=[n],t.prev=4,(i=new URL(h+"/attributes")).searchParams.set("attributes",o.join(",")),t.next=9,fetch(i.toString(),{credentials:"include",headers:e.JSON_HEADERS});case 9:return a=t.sent,t.next=12,a.json();case 12:if(c=t.sent,!a.ok||c.status!==e.ResponseStatus.SUCCESS){t.next=19;break}return p[n]=s=c.attributes||[],t.abrupt("return",s);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)}}(),v=function(){var t=l(u().mark((function t(r){var n,o,s,l,f,v,y,g,m,b,E;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=(n=r.submitData).fieldName,s=n.value,l=r.source,f=h+"/ingest",v=e.getCookie("wapo_login_id"),c()){t.next=5;break}throw new Error("does not satisfy cookie check");case 5:if(y=p[o]){t.next=10;break}return t.next=9,d({fieldName:o});case 9:y=t.sent;case 10:if(!y[0]||y[0].name!==o||y[0].collection_behavior!==i.DO_NOT_COLLECT){t.next=12;break}throw new Error("do not collect");case 12:return g=localStorage.getItem("uuid"),m=e.getCookie("_ga"),b={jucid:g,ga:m,type:a.EXPLICIT,wapo_login_id:v,data:{fieldName:o,value:s},metadata:{source:l}},t.prev=15,t.next=18,fetch(f,{method:"POST",credentials:"include",headers:e.JSON_HEADERS,body:JSON.stringify(b)});case 18:return E=t.sent,t.next=21,E.json();case 21:return t.abrupt("return",t.sent);case 25:return t.prev=25,t.t0=t.catch(15),console.debug(t.t0),t.abrupt("return",null);case 29:case"end":return t.stop()}}),t,null,[[15,25]])})));return function(e){return t.apply(this,arguments)}}(),y=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=i,exports.DESelect=function(t){var i=t.source,a=t.fieldName,c=t.label,s=t.defaultValue,h=t.disabled,p=t.submit,g=t.onChange,m=void 0===g?function(){}:g,b=t.onFinished,E=void 0===b?function(){}:b,w=t.valuesFilter,x=void 0===w?function(){return!0}:w,L=t.children,S=r.useState(t.dataDictionaryConfig),_=S[0],I=S[1],N=r.useState(""),O=N[0],T=N[1];if(r.useEffect((function(){L?"production"!==process.env.NODE_ENV&&console.debug("childen props",L):_||l(u().mark((function t(){var e;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,d({fieldName:a});case 2:e=t.sent,"production"!==process.env.NODE_ENV&&console.debug("config from API",e),I(e[0]);case 5:case"end":return t.stop()}}),t)})))()}),[]),r.useEffect((function(){l(u().mark((function t(){var r;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!p||!O){t.next=6;break}return t.next=3,v({submitData:{fieldName:a,value:O},source:i});case 3:E({isFinished:!0,isError:!(r=t.sent)||r.status!==e.ResponseStatus.SUCCESS});case 6:case"end":return t.stop()}}),t)})))()}),[p,O]),!L&&!_)return n.createElement("span",null,"loading");var C=s?{defaultValue:s}:{},k=h?{disabled:!0}:{},D=_?_.values.sort((function(t,e){return t.order-e.order})).filter((function(t){return!0!==t.archived})).filter(x):[];return n.createElement(y,null,n.createElement(o.Select.Root,f({onValueChange:function(t){m({value:t}),T(t)}},C,k),L||null,!L&&_&&n.createElement(n.Fragment,null,n.createElement(o.Select.Trigger,{"data-test-id":_.name+"-select-trigger"},n.createElement(o.Select.Label,null,c||_.name),n.createElement(o.Select.Value,null)),n.createElement(o.Select.Content,{css:{zIndex:o.theme.zIndices.page},"data-test-id":_.name+"-select-content"},D.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",UNAUTHENTICATED:"107",MISMATCHED_IDENTIFIER:"108"},exports.IngestType=a,exports.getAttributes=d,exports.hasRequiredPrivacyCookies=c,exports.ingest=v;
2
- //# sourceMappingURL=subs-de-inputs.cjs.production.min.js.map
@@ -1 +0,0 @@
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/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} 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 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: IngestType.EXPLICIT,\n wapo_login_id, // TODO: move this to BE to read from cookie headers\n data: {\n fieldName,\n 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 source: string;\n}) => Promise<{\n status: ResponseStatus;\n state: (typeof IngestResponseState)[keyof typeof IngestResponseState];\n} | null>;\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { Attribute, AttributeValue } from '../../interfaces';\nimport { getAttributes, ingest } from '../../services/dataEnrichment';\nimport { ResponseStatus } from '@washingtonpost/subs-sdk';\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 (async () => {\n if (submit && selected) {\n // TODO: Switch to window.__twpdeu.push\n // TODO: Log to GA\n // TODO: Differentiate between explicit and implicit inputs?\n const result = await ingest({\n submitData: { fieldName, value: selected },\n source,\n });\n const isError = result\n ? result.status !== ResponseStatus.SUCCESS\n : true;\n\n onFinished({\n isFinished: true,\n isError,\n });\n }\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","IngestType","EXPLICIT","IMPLICIT","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","_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","ingest","_ref4","_callee2","_ref3","_ref3$submitData","value","source","wapo_login_id","attributeInfo","jucid","ga","payload","response","_context2","submitData","Error","name","collection_behavior","localStorage","getItem","type","metadata","method","body","JSON","stringify","_x2","SelectWrapper","styled","boxSizing","display","marginBottom","flexDirection","& button","padding","& *","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","result","isFinished","isError","React","defaultValueProp","disabledProp","values","sort","a","b","order","filter","archived","Select","Root","_extends","onValueChange","e","Trigger","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","UNAUTHENTICATED","MISMATCHED_IDENTIFIER"],"mappings":"mOAQaA,EAAsB,CACjCC,QAAS,UACTC,eAAgB,kBAmBLC,EAAa,CACxBC,SAAU,WACVC,SAAU,YC7BCC,EAA4B,iBACvC,GAAsB,oBAAXC,OACT,OAAO,EAGT,IAAMC,EAASC,YAAU,UAEnBC,SAAWC,EAAGC,kBAAAD,EAASE,aAE7B,SAAUL,GAA0B,OAAhBE,0+NCGtB,IAAMI,EAAUC,YAAUD,cAEpBE,EAAuC,GAChCC,aAAa,IAAAC,EAAAC,EAAAC,IAAAC,MAAsB,SAAAC,EAAAC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAT,IAAAU,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACrC,IAILjB,EAJJQ,EAASD,EAATC,YAI8BO,EAAAE,OAAA,MAAA,OAAAF,EAAAG,gBACrBlB,EAAgBQ,IAAU,OAOwB,OAJrDC,EAAa,CAACD,GAAUO,EAAAC,QAGtBN,EAAM,IAAIS,IAAOrB,kBACnBsB,aAAaC,IAAI,aAAcZ,EAAWa,KAAK,MAAMP,EAAAE,OAEtCM,MAAMb,EAAIc,WAAY,CACvCC,YAAa,UACbC,QAASC,iBACT,OAHQ,OAAJhB,EAAII,EAAAa,KAAAb,EAAAE,QAISN,EAAKC,OAAM,QAApB,GAAJA,EAAIG,EAAAa,MAENjB,EAAKkB,IAAMjB,EAAKkB,SAAWC,iBAAeC,SAAOjB,EAAAE,QAAA,MAEX,OAAxCjB,EAAgBQ,GADVK,EAAaD,EAAKC,YAAc,GACEE,EAAAG,gBACjCL,GAAU,QAAA,OAAAE,EAAAG,gBAEV,IAAE,QAAAH,EAAAE,QAAA,MAAA,QAGM,OAHNF,EAAAC,QAAAD,EAAAkB,GAAAlB,WAGXmB,QAAQC,MAAKpB,EAAAkB,IAAIlB,EAAAG,gBACV,IAAE,QAAA,UAAA,OAAAH,EAAAqB,UAAA9B,qBAEZ,gBAhCyB+B,GAAA,OAAAnC,EAAAoC,WAAAC,eAwCbC,aAAM,IAAAC,EAAAtC,EAAAC,IAAAC,MAAe,SAAAqC,EAAAC,GAAA,IAAAC,EAAApC,EAAAqC,EAAAC,EAAApC,EAAAqC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAhD,IAAAU,eAAAuC,GAAA,cAAAA,EAAArC,KAAAqC,EAAApC,MAAA,OAMgB,GALlCT,GADkBoC,EAAAD,EAChCW,YAAc9C,UAAWqC,EAAKD,EAALC,MACzBC,EAAMH,EAANG,OAEMpC,EAASZ,YAETiD,EAAgBtD,YAAU,iBAE3BH,KAA2B+D,EAAApC,OAAA,MAAA,MACxB,IAAIsC,MAAM,iCAAgC,OAGJ,GAA1CP,EAAgBhD,EAAgBQ,IAClB6C,EAAApC,QAAA,MAAA,OAAAoC,EAAApC,OACMhB,EAAc,CAAEO,UAAAA,IAAY,OAAlDwC,EAAaK,EAAAzB,KAAA,QAAA,IAIboB,EAAc,IACdA,EAAc,GAAGQ,OAAShD,GAC1BwC,EAAc,GAAGS,sBAAwBzE,EAAoBE,gBAAcmE,EAAApC,QAAA,MAAA,MAErE,IAAIsC,MAAM,kBAAiB,QAgBlC,OAbKN,EAAQS,aAAaC,QAAQ,QAC7BT,EAAKzD,YAAU,OAEf0D,EAAU,CACdF,MAAAA,EACAC,GAAAA,EACAU,KAAMzE,EAAWC,SACjB2D,cAAAA,EACApC,KAAM,CACJH,UAAAA,EACAqC,MAAAA,GAEFgB,SAAU,CAAEf,OAAAA,IACbO,EAAArC,QAAAqC,EAAApC,QAGwBM,MAAMb,EAAK,CAChCoD,OAAQ,OACRrC,YAAa,UACbC,QAASC,eACToC,KAAMC,KAAKC,UAAUd,KACrB,QALY,OAARC,EAAQC,EAAAzB,KAAAyB,EAAApC,QAOKmC,EAASxC,OAAM,QAAxB,OAAAyC,EAAAnC,gBAAAmC,EAAAzB,MAEC,QAEM,OAFNyB,EAAArC,QAAAqC,EAAApB,GAAAoB,YAEXnB,QAAQC,MAAKkB,EAAApB,IAAIoB,EAAAnC,gBACV,MAAI,QAAA,UAAA,OAAAmC,EAAAjB,UAAAM,sBAEd,gBAvDkBwB,GAAA,OAAAzB,EAAAH,WAAAC,eCsFb4B,EAAgBC,SAAO,MAAO,CAClCC,UAAW,aACXC,QAAS,OACTC,aAAc,OACdC,cAAe,SACfC,WAAY,CACVC,QAAS,WAEXC,MAAO,CAAEN,UAAW,wCH9HS,CAC7BrC,QAAS,sDGQsC,SAA5BzB,OACnBuC,EAAMvC,EAANuC,OACAtC,EAASD,EAATC,UACAoE,EAAKrE,EAALqE,MAEAC,EAAYtE,EAAZsE,aACAC,EAAQvE,EAARuE,SACAC,EAAMxE,EAANwE,OAAMC,EAAAzE,EACN0E,SAAAA,WAAQD,EAAG,aAAQA,EAAAE,EAAA3E,EACnB4E,WAAAA,WAAUD,EAAG,aAAQA,EAAAE,EAAA7E,EACrB8E,aAAAA,WAAYD,EAAG,WAAA,OAAM,GAAIA,EACzBE,EAAQ/E,EAAR+E,SAEAC,EAA4BC,WATRjF,EAApBkF,sBASOC,EAAMH,KAAEI,EAASJ,KAExBK,EAAgCJ,WAAS,IAAlCK,EAAQD,KAAEE,EAAWF,KA4C5B,GA1CAG,aAAU,WACJT,iBACFU,QAAAC,IAAAC,UACEhE,QAAQC,MAAM,gBAAiBmD,GAK9BI,GACHvF,EAAAC,IAAAC,MAAC,SAAAC,IAAA,IAAAoF,EAAA,OAAAtF,IAAAU,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAAA,OAAAF,EAAAE,OAEsBhB,EAAc,CAAEO,UAAAA,IAAY,OAA3CkF,EAAM3E,EAAAa,oBACZoE,QAAAC,IAAAC,UACEhE,QAAQC,MAAM,kBAAmBuD,GAEnCC,EAAUD,EAAO,IAAI,OAAA,UAAA,OAAA3E,EAAAqB,UAAA9B,MANvBH,KASD,IAEH4F,aAAU,WACR5F,EAAAC,IAAAC,MAAC,SAAAqC,IAAA,IAAAyD,EAAA,OAAA/F,IAAAU,eAAAuC,GAAA,cAAAA,EAAArC,KAAAqC,EAAApC,MAAA,OAAA,IACK8D,IAAUc,GAAQxC,EAAApC,OAAA,MAAA,OAAAoC,EAAApC,OAICuB,EAAO,CAC1Bc,WAAY,CAAE9C,UAAAA,EAAWqC,MAAOgD,GAChC/C,OAAAA,IACA,OAKFqC,EAAW,CACTiB,YAAY,EACZC,UAVIF,EAAM9C,EAAAzB,OAKRuE,EAAOrE,SAAWC,iBAAeC,UAMlC,OAAA,UAAA,OAAAqB,EAAAjB,UAAAM,MAhBPvC,KAmBC,CAAC4E,EAAQc,KAENP,IAAYI,EAChB,OAAOY,uCAGT,IAAMC,EAAmB1B,EAAe,CAAEA,aAAAA,GAAiB,GAErD2B,EAAe1B,EAAW,CAAEA,UAAU,GAAS,GAG/C2B,EAASf,EACXA,EAAOe,OACJC,MAAK,SAACC,EAAGC,GAAC,OAAKD,EAAEE,MAAQD,EAAEC,SAC3BC,QAAO,SAACjE,GAAK,OAAwB,IAAnBA,EAAMkE,YACxBD,OAAOzB,GACV,GAEJ,OACEiB,gBAACnC,OACCmC,gBAACU,SAAOC,KAAIC,GACVC,cAAe,SAACC,GACdnC,EAAS,CAAEpC,MAAOuE,IAClBtB,EAAYsB,KAEVb,EACAC,GAEHlB,GAAsB,MACrBA,GAAYI,GACZY,gCACEA,gBAACU,SAAOK,wBAAyB3B,EAAOlC,wBACtC8C,gBAACU,SAAOM,WAAO1C,GAASc,EAAOlC,MAC/B8C,gBAACU,SAAOO,aAEVjB,gBAACU,SAAOQ,SACNC,IAAK,CAAEC,OAAQC,QAAMC,SAASC,qBACbnC,EAAOlC,wBAEvBiD,EAAOqB,KAAI,SAACjF,GAAK,OAChByD,gBAACU,SAAOe,MAAKlF,MAAOA,EAAMW,KAAMwE,IAAKnF,EAAMW,MACxCX,EAAMW,0CHlGU,CACjCxB,QAAS,MACTiG,aAAc,MACdC,aAAc,MACdC,mBAAoB,MACpBC,aAAc,MACdC,6BAA8B,MAC9BC,wBAAyB,MACzBC,gBAAiB,MACjBC,sBAAuB"}