@washingtonpost/subs-de-inputs 0.1.1-canary.3 → 0.1.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/CHANGELOG.md ADDED
@@ -0,0 +1,16 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file. See
4
+ [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ **[0.1.1 - 2024-04-30]**:
7
+ * Fix build by removing unused file
8
+
9
+ **[0.1.0 - 2024-04-25]**:
10
+ * Add initial `<DESelect />` component
11
+
12
+ **[0.0.2 - 2024-04-24]**:
13
+ * Fix build error
14
+
15
+ **[0.0.1 - 2024-04-09]**:
16
+ * Initial setup
@@ -1,5 +1,10 @@
1
1
  import React from 'react';
2
2
  import { Attribute, AttributeValue } from '../../interfaces';
3
+ import { SubsWindow } from '@washingtonpost/subs-sdk';
4
+ declare global {
5
+ interface Window extends SubsWindow {
6
+ }
7
+ }
3
8
  interface DESelectProps {
4
9
  source: string;
5
10
  fieldName: string;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from './interfaces/index';
2
- export * from './interfaces/twpdeu';
3
2
  export * from './utils/hasRequiredPrivacyCookies';
4
3
  export * from './services/dataEnrichment';
5
4
  export * from './components/DESelect';
@@ -23,10 +23,6 @@ export declare type Attribute = {
23
23
  export declare const AttributesState: {
24
24
  readonly SUCCESS: "100";
25
25
  };
26
- export declare const IngestType: {
27
- readonly EXPLICIT: "explicit";
28
- readonly IMPLICIT: "implicit";
29
- };
30
26
  export declare const IngestResponseState: {
31
27
  readonly SUCCESS: "100";
32
28
  readonly SYSTEM_ERROR: "101";
@@ -35,6 +31,4 @@ export declare const IngestResponseState: {
35
31
  readonly INVALID_DATA: "104";
36
32
  readonly INVALID_ATTRIBUTE_DEFINITION: "105";
37
33
  readonly INVALID_META_DEFINITION: "106";
38
- readonly UNAUTHENTICATED: "107";
39
- readonly MISMATCHED_IDENTIFIER: "108";
40
34
  };
@@ -1,18 +1,3 @@
1
- import { ResponseStatus } from '@washingtonpost/subs-sdk';
2
- import { Attribute, IngestResponseState, IngestType } from '../interfaces';
3
- export declare const getAttributes: GetAttributesType;
4
- declare type GetAttributesType = ({ fieldName, }: {
1
+ export declare const getAttributes: ({ fieldName }: {
5
2
  fieldName: string;
6
- }) => Promise<Attribute[]>;
7
- export declare const ingest: IngestType;
8
- declare type IngestType = ({ submitData: { fieldName, value }, source, }: {
9
- submitData: {
10
- fieldName: string;
11
- value: string;
12
- };
13
- source: string;
14
- }) => Promise<{
15
- status: ResponseStatus;
16
- state: (typeof IngestResponseState)[keyof typeof IngestResponseState];
17
- } | null>;
18
- export {};
3
+ }) => Promise<any>;
@@ -16,10 +16,6 @@ var CollectionBehaviors = {
16
16
  var AttributesState = {
17
17
  SUCCESS: '100'
18
18
  };
19
- var IngestType = {
20
- EXPLICIT: 'explicit',
21
- IMPLICIT: 'implicit'
22
- };
23
19
  var IngestResponseState = {
24
20
  SUCCESS: '100',
25
21
  SYSTEM_ERROR: '101',
@@ -27,9 +23,7 @@ var IngestResponseState = {
27
23
  INVALID_IDENTIFIER: '103',
28
24
  INVALID_DATA: '104',
29
25
  INVALID_ATTRIBUTE_DEFINITION: '105',
30
- INVALID_META_DEFINITION: '106',
31
- UNAUTHENTICATED: '107',
32
- MISMATCHED_IDENTIFIER: '108'
26
+ INVALID_META_DEFINITION: '106'
33
27
  };
34
28
 
35
29
  var hasRequiredPrivacyCookies = function hasRequiredPrivacyCookies() {
@@ -445,84 +439,6 @@ var getAttributes = /*#__PURE__*/function () {
445
439
  return _ref2.apply(this, arguments);
446
440
  };
447
441
  }();
448
- var ingest = /*#__PURE__*/function () {
449
- var _ref4 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref3) {
450
- var _ref3$submitData, fieldName, value, source, url, wapo_login_id, attributeInfo, jucid, ga, payload, response, json;
451
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
452
- while (1) switch (_context2.prev = _context2.next) {
453
- case 0:
454
- _ref3$submitData = _ref3.submitData, fieldName = _ref3$submitData.fieldName, value = _ref3$submitData.value, source = _ref3.source;
455
- url = base + "/ingest";
456
- wapo_login_id = subsSdk.getCookie('wapo_login_id');
457
- if (hasRequiredPrivacyCookies()) {
458
- _context2.next = 5;
459
- break;
460
- }
461
- throw new Error('does not satisfy cookie check');
462
- case 5:
463
- attributeInfo = attributesCache[fieldName];
464
- if (attributeInfo) {
465
- _context2.next = 10;
466
- break;
467
- }
468
- _context2.next = 9;
469
- return getAttributes({
470
- fieldName: fieldName
471
- });
472
- case 9:
473
- attributeInfo = _context2.sent;
474
- case 10:
475
- if (!(attributeInfo[0] && attributeInfo[0].name === fieldName && attributeInfo[0].collection_behavior === CollectionBehaviors.DO_NOT_COLLECT)) {
476
- _context2.next = 12;
477
- break;
478
- }
479
- throw new Error('do not collect');
480
- case 12:
481
- jucid = localStorage.getItem('uuid');
482
- ga = subsSdk.getCookie('_ga');
483
- payload = {
484
- jucid: jucid,
485
- ga: ga,
486
- type: IngestType.EXPLICIT,
487
- wapo_login_id: wapo_login_id,
488
- data: {
489
- fieldName: fieldName,
490
- value: value
491
- },
492
- metadata: {
493
- source: source
494
- }
495
- };
496
- _context2.prev = 15;
497
- _context2.next = 18;
498
- return fetch(url, {
499
- method: 'POST',
500
- credentials: 'include',
501
- headers: subsSdk.JSON_HEADERS,
502
- body: JSON.stringify(payload)
503
- });
504
- case 18:
505
- response = _context2.sent;
506
- _context2.next = 21;
507
- return response.json();
508
- case 21:
509
- json = _context2.sent;
510
- return _context2.abrupt("return", json);
511
- case 25:
512
- _context2.prev = 25;
513
- _context2.t0 = _context2["catch"](15);
514
- console.debug(_context2.t0);
515
- return _context2.abrupt("return", null);
516
- case 29:
517
- case "end":
518
- return _context2.stop();
519
- }
520
- }, _callee2, null, [[15, 25]]);
521
- }));
522
- return function ingest(_x2) {
523
- return _ref4.apply(this, arguments);
524
- };
525
- }();
526
442
 
527
443
  var DESelect = function DESelect(_ref) {
528
444
  var source = _ref.source,
@@ -579,36 +495,15 @@ var DESelect = function DESelect(_ref) {
579
495
  }
580
496
  }, []);
581
497
  React.useEffect(function () {
582
- _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
583
- var result, isError;
584
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
585
- while (1) switch (_context2.prev = _context2.next) {
586
- case 0:
587
- if (!(submit && selected)) {
588
- _context2.next = 6;
589
- break;
590
- }
591
- _context2.next = 3;
592
- return ingest({
593
- submitData: {
594
- fieldName: fieldName,
595
- value: selected
596
- },
597
- source: source
598
- });
599
- case 3:
600
- result = _context2.sent;
601
- isError = result ? result.status !== subsSdk.ResponseStatus.SUCCESS : true;
602
- onFinished({
603
- isFinished: true,
604
- isError: isError
605
- });
606
- case 6:
607
- case "end":
608
- return _context2.stop();
609
- }
610
- }, _callee2);
611
- }))();
498
+ if (submit && selected) {
499
+ if (process.env.NODE_ENV !== "production") {
500
+ console.error('push not implemented', selected, source);
501
+ }
502
+ onFinished({
503
+ isFinished: true,
504
+ isError: false
505
+ });
506
+ }
612
507
  }, [submit, selected]);
613
508
  if (!(children || config)) {
614
509
  return React__default.createElement("span", null, "loading");
@@ -663,8 +558,6 @@ exports.AttributesState = AttributesState;
663
558
  exports.CollectionBehaviors = CollectionBehaviors;
664
559
  exports.DESelect = DESelect;
665
560
  exports.IngestResponseState = IngestResponseState;
666
- exports.IngestType = IngestType;
667
561
  exports.getAttributes = getAttributes;
668
562
  exports.hasRequiredPrivacyCookies = hasRequiredPrivacyCookies;
669
- exports.ingest = ingest;
670
563
  //# sourceMappingURL=subs-de-inputs.cjs.development.js.map
@@ -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 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
+ {"version":3,"file":"subs-de-inputs.cjs.development.js","sources":["../src/interfaces/index.ts","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/dataEnrichment.ts","../src/components/DESelect/index.tsx"],"sourcesContent":["export type AttributeValue = {\n name: string;\n date_created: Number;\n last_modified_date: Number;\n archived: boolean;\n order: number;\n};\n\nexport const CollectionBehaviors = {\n COLLECT: 'COLLECT',\n DO_NOT_COLLECT: 'DO_NOT_COLLECT',\n} as const;\n\nexport type Attribute = {\n name: string;\n approved_for_use?: boolean;\n collection_behavior?: (typeof CollectionBehaviors)[keyof typeof CollectionBehaviors];\n datatype: 'string';\n explicit: boolean;\n multiple_value: boolean;\n last_modified_date: Number;\n date_created: Number;\n values: Array<AttributeValue>;\n};\n\nexport const AttributesState = {\n SUCCESS: '100',\n} as const;\n\nexport const IngestResponseState = {\n SUCCESS: '100',\n SYSTEM_ERROR: '101',\n INVALID_TYPE: '102',\n INVALID_IDENTIFIER: '103',\n INVALID_DATA: '104',\n INVALID_ATTRIBUTE_DEFINITION: '105',\n INVALID_META_DEFINITION: '106',\n} as const;\n","import { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\n\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_usp = getCookie('wp_usp');\n\n const countryCode = WPGeo()?.country_code;\n\n return !!(wp_usp && countryCode === 'US');\n};\n","import {\n ENDPOINTS,\n ResponseStatus,\n JSON_HEADERS,\n} from '@washingtonpost/subs-sdk';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nconst attributesCache: Record<string, any> = {};\nexport const getAttributes = async ({ fieldName }: { fieldName: string }) => {\n if (attributesCache[fieldName]) {\n return attributesCache[fieldName];\n }\n\n const fieldNames = [fieldName];\n\n try {\n const url = new URL(`${base}/attributes`);\n url.searchParams.set('attributes', fieldNames.join(','));\n\n const data = await fetch(url.toString(), {\n credentials: 'include',\n headers: JSON_HEADERS,\n });\n const json = await data.json();\n\n if (data.ok && json.status === ResponseStatus.SUCCESS) {\n const attributes = json.attributes || [];\n attributesCache[fieldName] = attributes;\n return attributes;\n } else {\n return [];\n }\n } catch (e) {\n console.debug(e);\n return [];\n }\n};\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { Attribute, AttributeValue } from '../../interfaces';\nimport { SubsWindow } from '@washingtonpost/subs-sdk';\nimport { getAttributes } from '../../services/dataEnrichment';\n\ndeclare global {\n interface Window extends SubsWindow {}\n}\n\ninterface DESelectProps {\n source: string;\n fieldName: string;\n label?: string;\n dataDictionaryConfig?: Attribute;\n defaultValue?: string;\n disabled?: boolean;\n submit: boolean;\n onChange?: ({ value }: { value: string }) => void;\n onFinished?: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n valuesFilter?: (value: AttributeValue) => boolean;\n selectProps?: {\n root?: any;\n trigger?: any;\n label?: any;\n value?: any;\n content?: any;\n item?: any;\n };\n children?: React.ReactNode;\n}\n\nexport const DESelect: React.FC<DESelectProps> = ({\n source,\n fieldName,\n label,\n dataDictionaryConfig,\n defaultValue,\n disabled,\n submit,\n onChange = () => {},\n onFinished = () => {},\n valuesFilter = () => true,\n children,\n}) => {\n const [config, setConfig] = useState(dataDictionaryConfig);\n\n const [selected, setSelected] = useState('');\n\n useEffect(() => {\n if (children) {\n if (__DEV__) {\n console.debug('childen props', children);\n }\n return;\n }\n\n if (!config) {\n (async () => {\n // TODO: Switch to window.__twpdeu.getFieldConfigs\n const config = await getAttributes({ fieldName });\n if (__DEV__) {\n console.debug('config from API', config);\n }\n setConfig(config[0]);\n })();\n }\n }, []);\n\n useEffect(() => {\n if (submit && selected) {\n if (__DEV__) {\n console.error('push not implemented', selected, source);\n }\n onFinished({ isFinished: true, isError: false });\n }\n }, [submit, selected]);\n\n if (!(children || config)) {\n return <span>loading</span>;\n }\n\n const defaultValueProp = defaultValue ? { defaultValue } : {};\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n // sort and filter out archived values\n const values = config\n ? config.values\n .sort((a, b) => a.order - b.order)\n .filter((value) => value.archived !== true)\n .filter(valuesFilter)\n : [];\n\n return (\n <SelectWrapper>\n <Select.Root\n onValueChange={(e: string) => {\n onChange({ value: e });\n setSelected(e);\n }}\n {...defaultValueProp}\n {...disabledProp}\n >\n {children ? children : null}\n {!children && config && (\n <>\n <Select.Trigger data-test-id={`${config.name}-select-trigger`}>\n <Select.Label>{label || config.name}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content\n css={{ zIndex: theme.zIndices.page }}\n data-test-id={`${config.name}-select-content`}\n >\n {values.map((value) => (\n <Select.Item value={value.name} key={value.name}>\n {value.name}\n </Select.Item>\n ))}\n </Select.Content>\n </>\n )}\n </Select.Root>\n </SelectWrapper>\n );\n};\n\nconst SelectWrapper = styled('div', {\n boxSizing: 'border-box',\n display: 'flex',\n marginBottom: '$100',\n flexDirection: 'column',\n '& button': {\n padding: '1px 6px',\n },\n '& *': { boxSizing: 'border-box' },\n});\n"],"names":["CollectionBehaviors","COLLECT","DO_NOT_COLLECT","AttributesState","SUCCESS","IngestResponseState","SYSTEM_ERROR","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","hasRequiredPrivacyCookies","window","wp_usp","getCookie","countryCode","_WPGeo","WPGeo","country_code","base","ENDPOINTS","attributesCache","getAttributes","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","fieldName","fieldNames","url","data","json","attributes","wrap","_callee$","_context","prev","next","abrupt","URL","searchParams","set","join","fetch","toString","credentials","headers","JSON_HEADERS","sent","ok","status","ResponseStatus","t0","console","debug","stop","_x","apply","arguments","DESelect","source","label","dataDictionaryConfig","defaultValue","disabled","submit","_ref$onChange","onChange","_ref$onFinished","onFinished","_ref$valuesFilter","valuesFilter","children","_useState","useState","config","setConfig","_useState2","selected","setSelected","useEffect","process","env","NODE_ENV","error","isFinished","isError","React","defaultValueProp","disabledProp","values","sort","a","b","order","filter","value","archived","SelectWrapper","Select","Root","_extends","onValueChange","e","Trigger","name","Label","Value","Content","css","zIndex","theme","zIndices","page","map","Item","key","styled","boxSizing","display","marginBottom","flexDirection","padding"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var 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;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e=require("@washingtonpost/subs-sdk"),r=require("react"),n=(t=r)&&"object"==typeof t&&"default"in t?t.default:t,o=require("@washingtonpost/wpds-ui-kit");function i(){i=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",u=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,o){var i=Object.create((e&&e.prototype instanceof p?e:p).prototype),a=new _(o||[]);return n(i,"_invoke",{value:x(t,r,a)}),i}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var h={};function p(){}function d(){}function v(){}var y={};s(y,a,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(N([])));m&&m!==e&&r.call(m,a)&&(y=m);var b=v.prototype=p.prototype=Object.create(y);function E(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){var o;n(this,"_invoke",{value:function(n,i){function a(){return new e((function(o,a){!function n(o,i,a,u){var c=f(t[o],t,i);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,u)}),(function(t){n("throw",t,a,u)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return n("throw",t,a,u)}))}u(c.arg)}(n,i,o,a)}))}return o=o?o.then(a,a):a()}})}function x(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=L(a,r);if(u){if(u===h)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=f(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===h)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function L(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,L(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,h;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,h):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function S(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(S,this),this.reset(!0)}function N(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:I}}function I(){return{value:void 0,done:!0}}return d.prototype=v,n(b,"constructor",{value:v,configurable:!0}),n(v,"constructor",{value:d,configurable:!0}),d.displayName=s(v,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===d||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,s(t,c,"GeneratorFunction")),t.prototype=Object.create(b),t},t.awrap=function(t){return{__await:t}},E(w.prototype),s(w.prototype,u,(function(){return this})),t.AsyncIterator=w,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new w(l(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},E(b),s(b,c,"Generator"),s(b,a,(function(){return this})),s(b,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=N,_.prototype={constructor:_,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(O),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type="throw",a.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),h},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),h}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:N(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},t}function a(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function u(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function u(t){a(i,n,o,u,c,"next",t)}function c(t){a(i,n,o,u,c,"throw",t)}u(void 0)}))}}function c(){return(c=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}var s=e.ENDPOINTS.base+"/de/v1",l={},f=function(){var t=u(i().mark((function t(r){var n,o,a,u,c,f;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!l[n=r.fieldName]){t.next=3;break}return t.abrupt("return",l[n]);case 3:return o=[n],t.prev=4,(a=new URL(s+"/attributes")).searchParams.set("attributes",o.join(",")),t.next=9,fetch(a.toString(),{credentials:"include",headers:e.JSON_HEADERS});case 9:return u=t.sent,t.next=12,u.json();case 12:if(c=t.sent,!u.ok||c.status!==e.ResponseStatus.SUCCESS){t.next=19;break}return l[n]=f=c.attributes||[],t.abrupt("return",f);case 19:return t.abrupt("return",[]);case 20:t.next=26;break;case 22:return t.prev=22,t.t0=t.catch(4),console.debug(t.t0),t.abrupt("return",[]);case 26:case"end":return t.stop()}}),t,null,[[4,22]])})));return function(e){return t.apply(this,arguments)}}(),h=o.styled("div",{boxSizing:"border-box",display:"flex",marginBottom:"$100",flexDirection:"column","& button":{padding:"1px 6px"},"& *":{boxSizing:"border-box"}});exports.AttributesState={SUCCESS:"100"},exports.CollectionBehaviors={COLLECT:"COLLECT",DO_NOT_COLLECT:"DO_NOT_COLLECT"},exports.DESelect=function(t){var e=t.source,a=t.fieldName,s=t.label,l=t.defaultValue,p=t.disabled,d=t.submit,v=t.onChange,y=void 0===v?function(){}:v,g=t.onFinished,m=void 0===g?function(){}:g,b=t.valuesFilter,E=void 0===b?function(){return!0}:b,w=t.children,x=r.useState(t.dataDictionaryConfig),L=x[0],S=x[1],O=r.useState(""),_=O[0],N=O[1];if(r.useEffect((function(){w?"production"!==process.env.NODE_ENV&&console.debug("childen props",w):L||u(i().mark((function t(){var e;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,f({fieldName:a});case 2:e=t.sent,"production"!==process.env.NODE_ENV&&console.debug("config from API",e),S(e[0]);case 5:case"end":return t.stop()}}),t)})))()}),[]),r.useEffect((function(){d&&_&&("production"!==process.env.NODE_ENV&&console.error("push not implemented",_,e),m({isFinished:!0,isError:!1}))}),[d,_]),!w&&!L)return n.createElement("span",null,"loading");var I=l?{defaultValue:l}:{},T=p?{disabled:!0}:{},C=L?L.values.sort((function(t,e){return t.order-e.order})).filter((function(t){return!0!==t.archived})).filter(E):[];return n.createElement(h,null,n.createElement(o.Select.Root,c({onValueChange:function(t){y({value:t}),N(t)}},I,T),w||null,!w&&L&&n.createElement(n.Fragment,null,n.createElement(o.Select.Trigger,{"data-test-id":L.name+"-select-trigger"},n.createElement(o.Select.Label,null,s||L.name),n.createElement(o.Select.Value,null)),n.createElement(o.Select.Content,{css:{zIndex:o.theme.zIndices.page},"data-test-id":L.name+"-select-content"},C.map((function(t){return n.createElement(o.Select.Item,{value:t.name,key:t.name},t.name)}))))))},exports.IngestResponseState={SUCCESS:"100",SYSTEM_ERROR:"101",INVALID_TYPE:"102",INVALID_IDENTIFIER:"103",INVALID_DATA:"104",INVALID_ATTRIBUTE_DEFINITION:"105",INVALID_META_DEFINITION:"106"},exports.getAttributes=f,exports.hasRequiredPrivacyCookies=function(){var t;if("undefined"==typeof window)return!1;var r=e.getCookie("wp_usp"),n=null==(t=e.WPGeo())?void 0:t.country_code;return!(!r||"US"!==n)};
2
2
  //# sourceMappingURL=subs-de-inputs.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subs-de-inputs.cjs.production.min.js","sources":["../src/interfaces/index.ts","../src/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":"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"}
1
+ {"version":3,"file":"subs-de-inputs.cjs.production.min.js","sources":["../src/services/dataEnrichment.ts","../src/components/DESelect/index.tsx","../src/interfaces/index.ts","../src/utils/hasRequiredPrivacyCookies.ts"],"sourcesContent":["import {\n ENDPOINTS,\n ResponseStatus,\n JSON_HEADERS,\n} from '@washingtonpost/subs-sdk';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nconst attributesCache: Record<string, any> = {};\nexport const getAttributes = async ({ fieldName }: { fieldName: string }) => {\n if (attributesCache[fieldName]) {\n return attributesCache[fieldName];\n }\n\n const fieldNames = [fieldName];\n\n try {\n const url = new URL(`${base}/attributes`);\n url.searchParams.set('attributes', fieldNames.join(','));\n\n const data = await fetch(url.toString(), {\n credentials: 'include',\n headers: JSON_HEADERS,\n });\n const json = await data.json();\n\n if (data.ok && json.status === ResponseStatus.SUCCESS) {\n const attributes = json.attributes || [];\n attributesCache[fieldName] = attributes;\n return attributes;\n } else {\n return [];\n }\n } catch (e) {\n console.debug(e);\n return [];\n }\n};\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { Attribute, AttributeValue } from '../../interfaces';\nimport { SubsWindow } from '@washingtonpost/subs-sdk';\nimport { getAttributes } from '../../services/dataEnrichment';\n\ndeclare global {\n interface Window extends SubsWindow {}\n}\n\ninterface DESelectProps {\n source: string;\n fieldName: string;\n label?: string;\n dataDictionaryConfig?: Attribute;\n defaultValue?: string;\n disabled?: boolean;\n submit: boolean;\n onChange?: ({ value }: { value: string }) => void;\n onFinished?: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n valuesFilter?: (value: AttributeValue) => boolean;\n selectProps?: {\n root?: any;\n trigger?: any;\n label?: any;\n value?: any;\n content?: any;\n item?: any;\n };\n children?: React.ReactNode;\n}\n\nexport const DESelect: React.FC<DESelectProps> = ({\n source,\n fieldName,\n label,\n dataDictionaryConfig,\n defaultValue,\n disabled,\n submit,\n onChange = () => {},\n onFinished = () => {},\n valuesFilter = () => true,\n children,\n}) => {\n const [config, setConfig] = useState(dataDictionaryConfig);\n\n const [selected, setSelected] = useState('');\n\n useEffect(() => {\n if (children) {\n if (__DEV__) {\n console.debug('childen props', children);\n }\n return;\n }\n\n if (!config) {\n (async () => {\n // TODO: Switch to window.__twpdeu.getFieldConfigs\n const config = await getAttributes({ fieldName });\n if (__DEV__) {\n console.debug('config from API', config);\n }\n setConfig(config[0]);\n })();\n }\n }, []);\n\n useEffect(() => {\n if (submit && selected) {\n if (__DEV__) {\n console.error('push not implemented', selected, source);\n }\n onFinished({ isFinished: true, isError: false });\n }\n }, [submit, selected]);\n\n if (!(children || config)) {\n return <span>loading</span>;\n }\n\n const defaultValueProp = defaultValue ? { defaultValue } : {};\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n // sort and filter out archived values\n const values = config\n ? config.values\n .sort((a, b) => a.order - b.order)\n .filter((value) => value.archived !== true)\n .filter(valuesFilter)\n : [];\n\n return (\n <SelectWrapper>\n <Select.Root\n onValueChange={(e: string) => {\n onChange({ value: e });\n setSelected(e);\n }}\n {...defaultValueProp}\n {...disabledProp}\n >\n {children ? children : null}\n {!children && config && (\n <>\n <Select.Trigger data-test-id={`${config.name}-select-trigger`}>\n <Select.Label>{label || config.name}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content\n css={{ zIndex: theme.zIndices.page }}\n data-test-id={`${config.name}-select-content`}\n >\n {values.map((value) => (\n <Select.Item value={value.name} key={value.name}>\n {value.name}\n </Select.Item>\n ))}\n </Select.Content>\n </>\n )}\n </Select.Root>\n </SelectWrapper>\n );\n};\n\nconst SelectWrapper = styled('div', {\n boxSizing: 'border-box',\n display: 'flex',\n marginBottom: '$100',\n flexDirection: 'column',\n '& button': {\n padding: '1px 6px',\n },\n '& *': { boxSizing: 'border-box' },\n});\n","export type AttributeValue = {\n name: string;\n date_created: Number;\n last_modified_date: Number;\n archived: boolean;\n order: number;\n};\n\nexport const CollectionBehaviors = {\n COLLECT: 'COLLECT',\n DO_NOT_COLLECT: 'DO_NOT_COLLECT',\n} as const;\n\nexport type Attribute = {\n name: string;\n approved_for_use?: boolean;\n collection_behavior?: (typeof CollectionBehaviors)[keyof typeof CollectionBehaviors];\n datatype: 'string';\n explicit: boolean;\n multiple_value: boolean;\n last_modified_date: Number;\n date_created: Number;\n values: Array<AttributeValue>;\n};\n\nexport const AttributesState = {\n SUCCESS: '100',\n} as const;\n\nexport const IngestResponseState = {\n SUCCESS: '100',\n SYSTEM_ERROR: '101',\n INVALID_TYPE: '102',\n INVALID_IDENTIFIER: '103',\n INVALID_DATA: '104',\n INVALID_ATTRIBUTE_DEFINITION: '105',\n INVALID_META_DEFINITION: '106',\n} as const;\n","import { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\n\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_usp = getCookie('wp_usp');\n\n const countryCode = WPGeo()?.country_code;\n\n return !!(wp_usp && countryCode === 'US');\n};\n"],"names":["base","ENDPOINTS","attributesCache","getAttributes","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","fieldName","fieldNames","url","data","json","attributes","wrap","_context","prev","next","abrupt","URL","searchParams","set","join","fetch","toString","credentials","headers","JSON_HEADERS","sent","ok","status","ResponseStatus","SUCCESS","t0","console","debug","stop","_x","apply","arguments","SelectWrapper","styled","boxSizing","display","marginBottom","flexDirection","& button","padding","& *","COLLECT","DO_NOT_COLLECT","source","label","defaultValue","disabled","submit","_ref$onChange","onChange","_ref$onFinished","onFinished","_ref$valuesFilter","valuesFilter","children","_useState","useState","dataDictionaryConfig","config","setConfig","_useState2","selected","setSelected","useEffect","process","env","NODE_ENV","error","isFinished","isError","React","defaultValueProp","disabledProp","values","sort","a","b","order","filter","value","archived","Select","Root","_extends","onValueChange","e","Trigger","name","Label","Value","Content","css","zIndex","theme","zIndices","page","map","Item","key","SYSTEM_ERROR","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","window","wp_usp","getCookie","countryCode","_WPGeo","WPGeo","country_code"],"mappings":"ysOAMA,IAAMA,EAAUC,YAAUD,cAEpBE,EAAuC,GAChCC,aAAa,IAAAC,EAAAC,EAAAC,IAAAC,MAAG,SAAAC,EAAAC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAT,IAAAU,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAAkB,IACzCjB,EADgCQ,EAASD,EAATC,YACNO,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,gBA5ByB+B,GAAA,OAAAnC,EAAAoC,WAAAC,eC6HpBC,EAAgBC,SAAO,MAAO,CAClCC,UAAW,aACXC,QAAS,OACTC,aAAc,OACdC,cAAe,SACfC,WAAY,CACVC,QAAS,WAEXC,MAAO,CAAEN,UAAW,wCCrHS,CAC7BV,QAAS,mCAlBwB,CACjCiB,QAAS,UACTC,eAAgB,mCD4B+B,SAA5B3C,OACnB4C,EAAM5C,EAAN4C,OACA3C,EAASD,EAATC,UACA4C,EAAK7C,EAAL6C,MAEAC,EAAY9C,EAAZ8C,aACAC,EAAQ/C,EAAR+C,SACAC,EAAMhD,EAANgD,OAAMC,EAAAjD,EACNkD,SAAAA,WAAQD,EAAG,aAAQA,EAAAE,EAAAnD,EACnBoD,WAAAA,WAAUD,EAAG,aAAQA,EAAAE,EAAArD,EACrBsD,aAAAA,WAAYD,EAAG,WAAA,OAAM,GAAIA,EACzBE,EAAQvD,EAARuD,SAEAC,EAA4BC,WATRzD,EAApB0D,sBASOC,EAAMH,KAAEI,EAASJ,KAExBK,EAAgCJ,WAAS,IAAlCK,EAAQD,KAAEE,EAAWF,KA+B5B,GA7BAG,aAAU,WACJT,iBACFU,QAAAC,IAAAC,UACExC,QAAQC,MAAM,gBAAiB2B,GAK9BI,GACH/D,EAAAC,IAAAC,MAAC,SAAAC,IAAA,IAAA4D,EAAA,OAAA9D,IAAAU,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAAA,OAAAF,EAAAE,OAEsBhB,EAAc,CAAEO,UAAAA,IAAY,OAA3C0D,EAAMnD,EAAAa,oBACZ4C,QAAAC,IAAAC,UACExC,QAAQC,MAAM,kBAAmB+B,GAEnCC,EAAUD,EAAO,IAAI,OAAA,UAAA,OAAAnD,EAAAqB,UAAA9B,MANvBH,KASD,IAEHoE,aAAU,WACJhB,GAAUc,mBACZG,QAAAC,IAAAC,UACExC,QAAQyC,MAAM,uBAAwBN,EAAUlB,GAElDQ,EAAW,CAAEiB,YAAY,EAAMC,SAAS,OAEzC,CAACtB,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,SAACC,GAAK,OAAwB,IAAnBA,EAAMC,YACxBF,OAAOzB,GACV,GAEJ,OACEiB,gBAACtC,OACCsC,gBAACW,SAAOC,KAAIC,GACVC,cAAe,SAACC,GACdpC,EAAS,CAAE8B,MAAOM,IAClBvB,EAAYuB,KAEVd,EACAC,GAEHlB,GAAsB,MACrBA,GAAYI,GACZY,gCACEA,gBAACW,SAAOK,wBAAyB5B,EAAO6B,wBACtCjB,gBAACW,SAAOO,WAAO5C,GAASc,EAAO6B,MAC/BjB,gBAACW,SAAOQ,aAEVnB,gBAACW,SAAOS,SACNC,IAAK,CAAEC,OAAQC,QAAMC,SAASC,qBACbrC,EAAO6B,wBAEvBd,EAAOuB,KAAI,SAACjB,GAAK,OAChBT,gBAACW,SAAOgB,MAAKlB,MAAOA,EAAMQ,KAAMW,IAAKnB,EAAMQ,MACxCR,EAAMQ,0CC9FU,CACjC/D,QAAS,MACT2E,aAAc,MACdC,aAAc,MACdC,mBAAoB,MACpBC,aAAc,MACdC,6BAA8B,MAC9BC,wBAAyB,iEClCc,iBACvC,GAAsB,oBAAXC,OACT,OAAO,EAGT,IAAMC,EAASC,YAAU,UAEnBC,SAAWC,EAAGC,kBAAAD,EAASE,aAE7B,SAAUL,GAA0B,OAAhBE"}
@@ -9,10 +9,6 @@ var CollectionBehaviors = {
9
9
  var AttributesState = {
10
10
  SUCCESS: '100'
11
11
  };
12
- var IngestType = {
13
- EXPLICIT: 'explicit',
14
- IMPLICIT: 'implicit'
15
- };
16
12
  var IngestResponseState = {
17
13
  SUCCESS: '100',
18
14
  SYSTEM_ERROR: '101',
@@ -20,9 +16,7 @@ var IngestResponseState = {
20
16
  INVALID_IDENTIFIER: '103',
21
17
  INVALID_DATA: '104',
22
18
  INVALID_ATTRIBUTE_DEFINITION: '105',
23
- INVALID_META_DEFINITION: '106',
24
- UNAUTHENTICATED: '107',
25
- MISMATCHED_IDENTIFIER: '108'
19
+ INVALID_META_DEFINITION: '106'
26
20
  };
27
21
 
28
22
  var hasRequiredPrivacyCookies = function hasRequiredPrivacyCookies() {
@@ -438,84 +432,6 @@ var getAttributes = /*#__PURE__*/function () {
438
432
  return _ref2.apply(this, arguments);
439
433
  };
440
434
  }();
441
- var ingest = /*#__PURE__*/function () {
442
- var _ref4 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref3) {
443
- var _ref3$submitData, fieldName, value, source, url, wapo_login_id, attributeInfo, jucid, ga, payload, response, json;
444
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
445
- while (1) switch (_context2.prev = _context2.next) {
446
- case 0:
447
- _ref3$submitData = _ref3.submitData, fieldName = _ref3$submitData.fieldName, value = _ref3$submitData.value, source = _ref3.source;
448
- url = base + "/ingest";
449
- wapo_login_id = getCookie('wapo_login_id');
450
- if (hasRequiredPrivacyCookies()) {
451
- _context2.next = 5;
452
- break;
453
- }
454
- throw new Error('does not satisfy cookie check');
455
- case 5:
456
- attributeInfo = attributesCache[fieldName];
457
- if (attributeInfo) {
458
- _context2.next = 10;
459
- break;
460
- }
461
- _context2.next = 9;
462
- return getAttributes({
463
- fieldName: fieldName
464
- });
465
- case 9:
466
- attributeInfo = _context2.sent;
467
- case 10:
468
- if (!(attributeInfo[0] && attributeInfo[0].name === fieldName && attributeInfo[0].collection_behavior === CollectionBehaviors.DO_NOT_COLLECT)) {
469
- _context2.next = 12;
470
- break;
471
- }
472
- throw new Error('do not collect');
473
- case 12:
474
- jucid = localStorage.getItem('uuid');
475
- ga = getCookie('_ga');
476
- payload = {
477
- jucid: jucid,
478
- ga: ga,
479
- type: IngestType.EXPLICIT,
480
- wapo_login_id: wapo_login_id,
481
- data: {
482
- fieldName: fieldName,
483
- value: value
484
- },
485
- metadata: {
486
- source: source
487
- }
488
- };
489
- _context2.prev = 15;
490
- _context2.next = 18;
491
- return fetch(url, {
492
- method: 'POST',
493
- credentials: 'include',
494
- headers: JSON_HEADERS,
495
- body: JSON.stringify(payload)
496
- });
497
- case 18:
498
- response = _context2.sent;
499
- _context2.next = 21;
500
- return response.json();
501
- case 21:
502
- json = _context2.sent;
503
- return _context2.abrupt("return", json);
504
- case 25:
505
- _context2.prev = 25;
506
- _context2.t0 = _context2["catch"](15);
507
- console.debug(_context2.t0);
508
- return _context2.abrupt("return", null);
509
- case 29:
510
- case "end":
511
- return _context2.stop();
512
- }
513
- }, _callee2, null, [[15, 25]]);
514
- }));
515
- return function ingest(_x2) {
516
- return _ref4.apply(this, arguments);
517
- };
518
- }();
519
435
 
520
436
  var DESelect = function DESelect(_ref) {
521
437
  var source = _ref.source,
@@ -572,36 +488,15 @@ var DESelect = function DESelect(_ref) {
572
488
  }
573
489
  }, []);
574
490
  useEffect(function () {
575
- _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
576
- var result, isError;
577
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
578
- while (1) switch (_context2.prev = _context2.next) {
579
- case 0:
580
- if (!(submit && selected)) {
581
- _context2.next = 6;
582
- break;
583
- }
584
- _context2.next = 3;
585
- return ingest({
586
- submitData: {
587
- fieldName: fieldName,
588
- value: selected
589
- },
590
- source: source
591
- });
592
- case 3:
593
- result = _context2.sent;
594
- isError = result ? result.status !== ResponseStatus.SUCCESS : true;
595
- onFinished({
596
- isFinished: true,
597
- isError: isError
598
- });
599
- case 6:
600
- case "end":
601
- return _context2.stop();
602
- }
603
- }, _callee2);
604
- }))();
491
+ if (submit && selected) {
492
+ if (process.env.NODE_ENV !== "production") {
493
+ console.error('push not implemented', selected, source);
494
+ }
495
+ onFinished({
496
+ isFinished: true,
497
+ isError: false
498
+ });
499
+ }
605
500
  }, [submit, selected]);
606
501
  if (!(children || config)) {
607
502
  return React.createElement("span", null, "loading");
@@ -652,5 +547,5 @@ var SelectWrapper = /*#__PURE__*/styled('div', {
652
547
  }
653
548
  });
654
549
 
655
- export { AttributesState, CollectionBehaviors, DESelect, IngestResponseState, IngestType, getAttributes, hasRequiredPrivacyCookies, ingest };
550
+ export { AttributesState, CollectionBehaviors, DESelect, IngestResponseState, getAttributes, hasRequiredPrivacyCookies };
656
551
  //# sourceMappingURL=subs-de-inputs.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subs-de-inputs.esm.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
+ {"version":3,"file":"subs-de-inputs.esm.js","sources":["../src/interfaces/index.ts","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/dataEnrichment.ts","../src/components/DESelect/index.tsx"],"sourcesContent":["export type AttributeValue = {\n name: string;\n date_created: Number;\n last_modified_date: Number;\n archived: boolean;\n order: number;\n};\n\nexport const CollectionBehaviors = {\n COLLECT: 'COLLECT',\n DO_NOT_COLLECT: 'DO_NOT_COLLECT',\n} as const;\n\nexport type Attribute = {\n name: string;\n approved_for_use?: boolean;\n collection_behavior?: (typeof CollectionBehaviors)[keyof typeof CollectionBehaviors];\n datatype: 'string';\n explicit: boolean;\n multiple_value: boolean;\n last_modified_date: Number;\n date_created: Number;\n values: Array<AttributeValue>;\n};\n\nexport const AttributesState = {\n SUCCESS: '100',\n} as const;\n\nexport const IngestResponseState = {\n SUCCESS: '100',\n SYSTEM_ERROR: '101',\n INVALID_TYPE: '102',\n INVALID_IDENTIFIER: '103',\n INVALID_DATA: '104',\n INVALID_ATTRIBUTE_DEFINITION: '105',\n INVALID_META_DEFINITION: '106',\n} as const;\n","import { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\n\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_usp = getCookie('wp_usp');\n\n const countryCode = WPGeo()?.country_code;\n\n return !!(wp_usp && countryCode === 'US');\n};\n","import {\n ENDPOINTS,\n ResponseStatus,\n JSON_HEADERS,\n} from '@washingtonpost/subs-sdk';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nconst attributesCache: Record<string, any> = {};\nexport const getAttributes = async ({ fieldName }: { fieldName: string }) => {\n if (attributesCache[fieldName]) {\n return attributesCache[fieldName];\n }\n\n const fieldNames = [fieldName];\n\n try {\n const url = new URL(`${base}/attributes`);\n url.searchParams.set('attributes', fieldNames.join(','));\n\n const data = await fetch(url.toString(), {\n credentials: 'include',\n headers: JSON_HEADERS,\n });\n const json = await data.json();\n\n if (data.ok && json.status === ResponseStatus.SUCCESS) {\n const attributes = json.attributes || [];\n attributesCache[fieldName] = attributes;\n return attributes;\n } else {\n return [];\n }\n } catch (e) {\n console.debug(e);\n return [];\n }\n};\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { Attribute, AttributeValue } from '../../interfaces';\nimport { SubsWindow } from '@washingtonpost/subs-sdk';\nimport { getAttributes } from '../../services/dataEnrichment';\n\ndeclare global {\n interface Window extends SubsWindow {}\n}\n\ninterface DESelectProps {\n source: string;\n fieldName: string;\n label?: string;\n dataDictionaryConfig?: Attribute;\n defaultValue?: string;\n disabled?: boolean;\n submit: boolean;\n onChange?: ({ value }: { value: string }) => void;\n onFinished?: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n valuesFilter?: (value: AttributeValue) => boolean;\n selectProps?: {\n root?: any;\n trigger?: any;\n label?: any;\n value?: any;\n content?: any;\n item?: any;\n };\n children?: React.ReactNode;\n}\n\nexport const DESelect: React.FC<DESelectProps> = ({\n source,\n fieldName,\n label,\n dataDictionaryConfig,\n defaultValue,\n disabled,\n submit,\n onChange = () => {},\n onFinished = () => {},\n valuesFilter = () => true,\n children,\n}) => {\n const [config, setConfig] = useState(dataDictionaryConfig);\n\n const [selected, setSelected] = useState('');\n\n useEffect(() => {\n if (children) {\n if (__DEV__) {\n console.debug('childen props', children);\n }\n return;\n }\n\n if (!config) {\n (async () => {\n // TODO: Switch to window.__twpdeu.getFieldConfigs\n const config = await getAttributes({ fieldName });\n if (__DEV__) {\n console.debug('config from API', config);\n }\n setConfig(config[0]);\n })();\n }\n }, []);\n\n useEffect(() => {\n if (submit && selected) {\n if (__DEV__) {\n console.error('push not implemented', selected, source);\n }\n onFinished({ isFinished: true, isError: false });\n }\n }, [submit, selected]);\n\n if (!(children || config)) {\n return <span>loading</span>;\n }\n\n const defaultValueProp = defaultValue ? { defaultValue } : {};\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n // sort and filter out archived values\n const values = config\n ? config.values\n .sort((a, b) => a.order - b.order)\n .filter((value) => value.archived !== true)\n .filter(valuesFilter)\n : [];\n\n return (\n <SelectWrapper>\n <Select.Root\n onValueChange={(e: string) => {\n onChange({ value: e });\n setSelected(e);\n }}\n {...defaultValueProp}\n {...disabledProp}\n >\n {children ? children : null}\n {!children && config && (\n <>\n <Select.Trigger data-test-id={`${config.name}-select-trigger`}>\n <Select.Label>{label || config.name}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content\n css={{ zIndex: theme.zIndices.page }}\n data-test-id={`${config.name}-select-content`}\n >\n {values.map((value) => (\n <Select.Item value={value.name} key={value.name}>\n {value.name}\n </Select.Item>\n ))}\n </Select.Content>\n </>\n )}\n </Select.Root>\n </SelectWrapper>\n );\n};\n\nconst SelectWrapper = styled('div', {\n boxSizing: 'border-box',\n display: 'flex',\n marginBottom: '$100',\n flexDirection: 'column',\n '& button': {\n padding: '1px 6px',\n },\n '& *': { boxSizing: 'border-box' },\n});\n"],"names":["CollectionBehaviors","COLLECT","DO_NOT_COLLECT","AttributesState","SUCCESS","IngestResponseState","SYSTEM_ERROR","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","hasRequiredPrivacyCookies","window","wp_usp","getCookie","countryCode","_WPGeo","WPGeo","country_code","base","ENDPOINTS","attributesCache","getAttributes","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","fieldName","fieldNames","url","data","json","attributes","wrap","_callee$","_context","prev","next","abrupt","URL","searchParams","set","join","fetch","toString","credentials","headers","JSON_HEADERS","sent","ok","status","ResponseStatus","t0","console","debug","stop","_x","apply","arguments","DESelect","source","label","dataDictionaryConfig","defaultValue","disabled","submit","_ref$onChange","onChange","_ref$onFinished","onFinished","_ref$valuesFilter","valuesFilter","children","_useState","useState","config","setConfig","_useState2","selected","setSelected","useEffect","process","env","NODE_ENV","error","isFinished","isError","React","defaultValueProp","disabledProp","values","sort","a","b","order","filter","value","archived","SelectWrapper","Select","Root","_extends","onValueChange","e","Trigger","name","Label","Value","Content","css","zIndex","theme","zIndices","page","map","Item","key","styled","boxSizing","display","marginBottom","flexDirection","padding"],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.1-canary.3",
2
+ "version": "0.1.1",
3
3
  "license": "UNLICENSED",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -9,7 +9,7 @@
9
9
  ],
10
10
  "scripts": {
11
11
  "start": "tsdx watch --verbose --noClean",
12
- "build": "tsdx build --format esm",
12
+ "build": "tsdx build",
13
13
  "test": "APP_ENV=test tsdx test",
14
14
  "lint": "tsdx lint",
15
15
  "size": "NODE_OPTIONS=--openssl-legacy-provider size-limit",
@@ -30,19 +30,11 @@
30
30
  "name": "@washingtonpost/subs-de-inputs",
31
31
  "author": "Subs FE",
32
32
  "module": "dist/subs-de-inputs.esm.js",
33
- "sideEffects": false,
34
33
  "size-limit": [
35
34
  {
36
- "name": "de-inputs: utils",
37
- "path": "dist/subs-de-inputs.esm.js",
38
- "import": "{ getAttributes, ingest }",
39
- "limit": "50 KB"
40
- },
41
- {
42
- "name": "de-inputs: DESelect",
43
- "path": "dist/subs-de-inputs.esm.js",
44
- "import": "{ DESelect }",
45
- "limit": "50 KB"
35
+ "name": "subs-de-inputs: CommonJS bundle",
36
+ "path": "dist/subs-de-inputs.cjs.production.min.js",
37
+ "limit": "57 KB"
46
38
  }
47
39
  ],
48
40
  "devDependencies": {
@@ -1,11 +0,0 @@
1
- import { getAttributes, ingest } from '../services/dataEnrichment';
2
- export declare type TWPDEU = {
3
- getFieldConfigs: typeof getAttributes;
4
- push: typeof ingest;
5
- version: string;
6
- };
7
- declare global {
8
- interface Window {
9
- __twpdeu?: TWPDEU;
10
- }
11
- }
@@ -1,2 +0,0 @@
1
- import { I1pDataInputProps } from '../interfaces';
2
- export declare const getDefaultSubmitData: (formOptions: Array<I1pDataInputProps>) => I1pDataFormSubmitData;
@@ -1,4 +0,0 @@
1
- /**
2
- * @deprecated - use hasRequiredPrivacyCookies instead
3
- */
4
- export declare const hasRequiredCookies: () => boolean | "" | null | undefined;