@washingtonpost/subs-de-inputs 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"subs-de-inputs.esm.js","sources":["../src/interfaces/index.ts","../src/components/Dropdown/index.tsx","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/dataEnrichment.ts","../src/services/sendToGA.ts","../src/utils/getDefaultSubmitData.ts","../src/components/DataEnrichmentForm/index.tsx"],"sourcesContent":["import { FormEventHandler } from 'react';\n\nexport enum I1pDataInputTypes {\n DROPDOWN = 'dropdown',\n}\n\nexport enum I1pIngestDataTypes {\n JOB_LEVEL = 'profile_job_level',\n JOB_INDUSTRY = 'profile_job_industry',\n NY_PERSONAL_GOALS = 'new_year_personal_goals',\n NY_HOBBIES = 'new_year_hobbies',\n NY_PROFESSIONAL_GOALS = 'new_year_professional_goals',\n NY_INDUSTRY = 'new_year_industry',\n NY_NEWS_LOCATION = 'new_year_news_location',\n}\n\nexport interface I1pDataInputValue {\n archived: boolean;\n name: string;\n order: number;\n date_created?: string;\n last_modified_date?: string;\n}\n\nexport interface I1pDataInputProps {\n id: I1pIngestDataTypes;\n input_label: string;\n input_prompt?: string;\n input_type: I1pDataInputTypes;\n required: boolean;\n default_value?: string;\n values?: Array<I1pDataInputValue>;\n}\n\nexport interface I1pDataFormSubmitData {\n [key: string]: string[];\n}\n\nexport enum I1pDataIngestTypes {\n EXPLICIT = 'explicit',\n IMPLICIT = 'implicit',\n}\n\nexport interface I1pDataFormProps {\n source: string;\n submit?: boolean;\n ingestType: I1pDataIngestTypes;\n onChange?: (\n submitData: I1pDataFormSubmitData,\n requiredFieldsReady: boolean\n ) => void;\n onFinished?: (isFinished: boolean, isError: boolean) => void;\n formOptions?: Array<I1pDataInputProps>;\n handleSubmit?: FormEventHandler<HTMLFormElement>;\n disabled?: boolean;\n}\n\nexport type I1pIngestPropsData = {\n [key in I1pIngestDataTypes]?: string[];\n};\n\nexport interface I1pIngestProps {\n type: 'implicit' | 'explicit';\n data: I1pIngestPropsData;\n metadata?: Record<string, string | null | undefined>;\n [key: string]: any;\n}\n\nexport enum IngestResponseState {\n SUCCESS = '100',\n SYSTEM_ERROR = '101',\n INVALID_TYPE = '102',\n INVALID_IDENTIFIER = '103',\n INVALID_DATA = '104',\n INVALID_ATTRIBUTE_DEFINITION = '105',\n INVALID_META_DEFINITION = '106',\n}\n","import React, { useEffect, useState } from 'react';\nimport { Icon, Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { useWindowSize } from '@washingtonpost/subs-hooks';\nimport { ChevronDown } from '@washingtonpost/wpds-assets';\n\ninterface IDropdownProps {\n id: string;\n label: string;\n values: Array<string>;\n required?: boolean;\n defaultValue?: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n}\n\nconst StyledMobileSelect = styled('select', {\n padding: '12px 16px 12px 6px',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n backgroundColor: '$secondary',\n color: '$primary',\n fontFamily: '$meta',\n fontSize: '$100',\n fontWeight: '$light',\n lineHeight: '$125',\n paddingBlockRight: '$125',\n textOverflow: 'ellipsis',\n position: 'relative',\n borderColor: 'transparent',\n borderRightWidth: '10px',\n borderRightColor: 'transparent',\n appearance: 'none',\n '-webkit-appearance': 'none',\n '&:disabled': {\n backgroundColor: theme.colors.disabled,\n borderColor: theme.colors.disabled,\n color: theme.colors.onDisabled,\n cursor: 'not-allowed',\n },\n});\n\nconst StyledSelectWrapper = styled('div', {\n width: '100%',\n maxWidth: '380px',\n borderRadius: '$012',\n borderColor: '$subtle',\n borderStyle: 'solid',\n borderWidth: '1px',\n backgroundColor: '$secondary',\n position: 'relative',\n});\n\nconst StyledMobileOption = styled('option', {\n fontFamily: 'inherit',\n fontSize: 'inherit',\n color: 'inherit',\n});\n\nexport const Dropdown = ({\n id,\n label,\n values,\n required = false,\n defaultValue,\n onChange = () => {},\n disabled = false,\n}: IDropdownProps) => {\n const [answer, setAnswer] = useState<string>();\n const { isMobileSize } = useWindowSize();\n\n useEffect(() => {\n if (answer) onChange(answer);\n }, [answer]);\n\n const defaultValueProp = defaultValue ? { defaultValue } : {};\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n const defaultValuePropMobile = (value: string) => {\n return value === defaultValue ? { selected: true } : {};\n };\n\n return isMobileSize ? (\n <StyledSelectWrapper>\n <StyledMobileSelect\n id=\"\"\n required={required}\n onChange={(e) => setAnswer(e.target.value)}\n placeholder={label}\n {...disabledProp}\n >\n <label>{label}</label>\n <StyledMobileOption\n value=\"\"\n disabled\n selected\n style={{ color: '#666666' }}\n >\n {label}\n </StyledMobileOption>\n {values.map((value) => (\n <StyledMobileOption\n value={value}\n key={value}\n {...defaultValuePropMobile(value)}\n >\n {value}\n </StyledMobileOption>\n ))}\n </StyledMobileSelect>\n <Icon\n label=\"\"\n size=\"100\"\n fill={theme.colors['gray80']}\n style={{\n pointerEvents: 'none',\n position: 'absolute',\n right: '10px',\n top: '50%',\n transform: 'translateY(-50%)',\n }}\n >\n <ChevronDown style={{ position: 'absolute', right: '10px' }} />\n </Icon>\n </StyledSelectWrapper>\n ) : (\n <Select.Root\n onValueChange={(e) => setAnswer(e)}\n required={required}\n {...defaultValueProp}\n {...disabledProp}\n >\n <Select.Trigger data-test-id={`${id}-dropdown-label`}>\n <Select.Label>{label}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content css={{ zIndex: 8 }} data-test-id={`${id}-dropdown-input`}>\n {values.map((value) => (\n <Select.Item value={value} key={value}>\n {value}\n </Select.Item>\n ))}\n </Select.Content>\n </Select.Root>\n );\n};\n","import { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\n\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_usp = getCookie('wp_usp');\n\n const countryCode = WPGeo()?.country_code;\n\n return !!(wp_usp && countryCode === 'US');\n};\n","import { ENDPOINTS, getCookie } from '@washingtonpost/subs-sdk';\nimport {\n I1pDataIngestTypes,\n I1pIngestProps,\n I1pIngestPropsData,\n} from '../interfaces';\nimport { hasRequiredPrivacyCookies } from '../utils/hasRequiredPrivacyCookies';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nconst JSONHeaders = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n};\n\nexport const ingest = async (\n submitData: I1pIngestPropsData,\n metadata: { [key: string]: string }\n) => {\n const url = `${base}/ingest`;\n\n const wapo_login_id = getCookie('wapo_login_id');\n\n if (!hasRequiredPrivacyCookies()) {\n throw new Error('does not satisfy cookie check');\n }\n\n const jucid = localStorage.getItem('uuid');\n const ga = getCookie('_ga');\n\n const payload: I1pIngestProps = {\n jucid,\n ga,\n type: I1pDataIngestTypes.EXPLICIT,\n wapo_login_id, // TODO: move this to BE to read from cookie headers\n data: submitData,\n metadata,\n };\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n credentials: 'include',\n headers: JSONHeaders,\n body: JSON.stringify(payload),\n });\n\n const json = await response.json();\n\n return json;\n } catch (e) {\n console.debug(e);\n return null;\n }\n};\n","import { I1pIngestDataTypes, I1pIngestPropsData } from '../interfaces';\nimport { hasRequiredPrivacyCookies } from '../utils/hasRequiredPrivacyCookies';\n\nexport interface ISendGAEvent {\n event: string;\n category: string;\n action: string;\n label: string;\n 'de-label': I1pIngestDataTypes;\n [key: string]: undefined | string | string[];\n}\n\nconst sendGAEvent = (props: ISendGAEvent): void => {\n if (typeof window === 'undefined') {\n if (__DEV__) console.warn('NO WINDOW');\n return;\n }\n // Initialize dataLayer if needed\n window.dataLayer = window.dataLayer || [];\n\n const eventData: Record<string, any> = {\n ...props,\n };\n window.dataLayer.push(eventData);\n};\n\nexport const sendToGA = async (\n submitData: I1pIngestPropsData,\n metadata: { [key: string]: string }\n) => {\n if (!hasRequiredPrivacyCookies()) {\n throw new Error('does not satisfy cookie check');\n }\n\n const keysToSubmit = Object.keys(submitData);\n\n keysToSubmit.forEach((key) => {\n if (Object.values(I1pIngestDataTypes).includes(key as I1pIngestDataTypes)) {\n sendGAEvent({\n event: 'site-onpage-click',\n action: 'site-onpage-click',\n category: 'profile',\n\n label: key,\n 'de-label': key as I1pIngestDataTypes,\n [key]: submitData[key as I1pIngestDataTypes],\n\n section: 'profile',\n subsection: metadata.source,\n });\n }\n });\n\n return true;\n};\n","import {\n I1pDataFormSubmitData,\n I1pDataInputProps,\n I1pDataInputTypes,\n} from '../interfaces';\n\nexport const getDefaultSubmitData = (formOptions: Array<I1pDataInputProps>) => {\n const defaultSubmitData: I1pDataFormSubmitData = {};\n formOptions.forEach((formOption) => {\n if (formOption.default_value) {\n if (\n formOption.input_type === I1pDataInputTypes.DROPDOWN &&\n formOption.values\n ) {\n const values = formOption.values\n .filter((value) => value.archived !== true)\n .map((value) => value.name);\n if (values.includes(formOption.default_value)) {\n defaultSubmitData[formOption.id] = [formOption.default_value];\n }\n } else {\n defaultSubmitData[formOption.id] = [formOption.default_value];\n }\n }\n });\n return defaultSubmitData;\n};\n","import React, { useEffect, useState } from 'react';\nimport { styled } from '@washingtonpost/wpds-ui-kit';\nimport {\n I1pDataFormProps,\n I1pDataFormSubmitData,\n I1pDataIngestTypes,\n I1pDataInputTypes,\n} from '../../interfaces';\nimport { Dropdown } from '../Dropdown';\nimport { ingest } from '../../services/dataEnrichment';\nimport { ResponseStatus } from '@washingtonpost/subs-sdk';\nimport { hasRequiredPrivacyCookies } from '../../utils/hasRequiredPrivacyCookies';\nimport { sendToGA } from '../../services/sendToGA';\nimport { getDefaultSubmitData } from '../../utils/getDefaultSubmitData';\n\nexport const DataEnrichmentForm = ({\n submit,\n source, // used to track where on the site data is collected\n ingestType,\n formOptions = [],\n onChange = () => {},\n onFinished = () => {},\n handleSubmit = () => {},\n disabled = false,\n}: I1pDataFormProps) => {\n const [render, setRender] = useState(false);\n\n const [submitData, setSubmitData] = useState<I1pDataFormSubmitData>(\n getDefaultSubmitData(formOptions)\n );\n const [missingRequiredFields, setMissingRequiredFields] = useState(true);\n\n useEffect(() => {\n if (hasRequiredPrivacyCookies()) {\n setRender(true);\n } else {\n console.error('does not satisfy cookie check');\n onFinished(true, true);\n }\n }, []);\n\n useEffect(() => {\n // check for required fields that haven't been completed yet\n const missingRequiredFields = formOptions.filter((option) => {\n if (\n option.required &&\n option.input_type === I1pDataInputTypes.DROPDOWN &&\n !submitData[option.id]\n ) {\n return true;\n }\n return false;\n });\n\n setMissingRequiredFields(missingRequiredFields.length > 0);\n\n onChange(submitData, missingRequiredFields.length === 0);\n }, [JSON.stringify(submitData)]);\n\n useEffect(() => {\n (async () => {\n if (submit) {\n if (Object.keys(submitData).length >= 1) {\n if (ingestType === I1pDataIngestTypes.EXPLICIT) {\n const result = await ingest(submitData, { source });\n\n const isError = result && result.status !== ResponseStatus.SUCCESS;\n onFinished(true, isError);\n } else {\n const result = await sendToGA(submitData, { source });\n onFinished(true, result);\n }\n } else {\n onFinished(true, false);\n }\n }\n })();\n }, [submit]);\n\n if (!render) return <></>;\n\n return (\n <form\n method=\"post\"\n onSubmit={(e) => {\n e.preventDefault();\n handleSubmit(e);\n }}\n >\n {formOptions.map((formOption) => {\n if (\n formOption.input_type === I1pDataInputTypes.DROPDOWN &&\n formOption.values\n ) {\n // sort and filter out archived values\n const values = formOption.values\n .sort((a, b) => a.order - b.order)\n .filter((value) => value.archived !== true);\n\n return (\n <OptionWrapper data-private key={formOption.id}>\n <Dropdown\n id={formOption.id}\n label={formOption.input_label}\n values={values.map((value) => value.name)}\n required={formOption.required}\n defaultValue={formOption.default_value}\n onChange={(value) => {\n setSubmitData({ ...submitData, [formOption.id]: [value] });\n }}\n disabled={disabled}\n />\n </OptionWrapper>\n );\n }\n return null;\n })}\n\n {/* so the user can hit 'Enter' to submit */}\n <input\n type=\"submit\"\n hidden\n disabled={missingRequiredFields || disabled}\n data-qa=\"1p-data-inputs-submit\"\n />\n </form>\n );\n};\n\nconst OptionWrapper = styled('div', {\n boxSizing: 'border-box',\n display: 'flex',\n marginBottom: '$100',\n flexDirection: 'column',\n '& button': {\n padding: '1px 6px',\n },\n '& *': { boxSizing: 'border-box' },\n});\n"],"names":["I1pDataInputTypes","I1pIngestDataTypes","I1pDataIngestTypes","IngestResponseState","StyledMobileSelect","styled","padding","display","justifyContent","width","backgroundColor","color","fontFamily","fontSize","fontWeight","lineHeight","paddingBlockRight","textOverflow","position","borderColor","borderRightWidth","borderRightColor","appearance","theme","colors","disabled","onDisabled","cursor","StyledSelectWrapper","maxWidth","borderRadius","borderStyle","borderWidth","StyledMobileOption","Dropdown","_ref","id","label","values","_ref$required","required","defaultValue","_ref$onChange","onChange","_ref$disabled","_useState","useState","answer","setAnswer","_useWindowSize","useWindowSize","isMobileSize","useEffect","defaultValueProp","disabledProp","defaultValuePropMobile","value","selected","React","_extends","e","target","placeholder","style","map","key","Icon","size","fill","pointerEvents","right","top","transform","ChevronDown","Select","Root","onValueChange","Trigger","Label","Value","Content","css","zIndex","Item","hasRequiredPrivacyCookies","window","wp_usp","getCookie","countryCode","_WPGeo","WPGeo","country_code","base","ENDPOINTS","JSONHeaders","Accept","ingest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","submitData","metadata","url","wapo_login_id","jucid","ga","payload","response","json","wrap","_callee$","_context","prev","next","Error","localStorage","getItem","type","EXPLICIT","data","fetch","method","credentials","headers","body","JSON","stringify","sent","abrupt","t0","console","debug","stop","_x","_x2","apply","arguments","sendGAEvent","props","process","env","NODE_ENV","warn","dataLayer","eventData","push","sendToGA","keysToSubmit","Object","keys","forEach","includes","_sendGAEvent","event","action","category","section","subsection","source","getDefaultSubmitData","formOptions","defaultSubmitData","formOption","default_value","input_type","DROPDOWN","filter","archived","name","DataEnrichmentForm","submit","ingestType","_ref$formOptions","_ref$onFinished","onFinished","_ref$handleSubmit","handleSubmit","render","setRender","_useState2","setSubmitData","_useState3","missingRequiredFields","setMissingRequiredFields","error","option","length","result","isError","_result","status","ResponseStatus","SUCCESS","onSubmit","preventDefault","sort","a","b","order","OptionWrapper","input_label","_extends2","hidden","boxSizing","marginBottom","flexDirection"],"mappings":"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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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"}
@@ -1,2 +1,2 @@
1
- import { I1pDataFormSubmitData, I1pDataInputProps } from '../interfaces';
1
+ import { I1pDataInputProps } from '../interfaces';
2
2
  export declare const getDefaultSubmitData: (formOptions: Array<I1pDataInputProps>) => I1pDataFormSubmitData;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.1",
2
+ "version": "0.1.0",
3
3
  "license": "UNLICENSED",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -1,2 +0,0 @@
1
- import { I1pDataFormProps } from '../../interfaces';
2
- export declare const DataEnrichmentForm: ({ submit, source, ingestType, formOptions, onChange, onFinished, handleSubmit, disabled, }: I1pDataFormProps) => JSX.Element;
@@ -1,11 +0,0 @@
1
- interface IDropdownProps {
2
- id: string;
3
- label: string;
4
- values: Array<string>;
5
- required?: boolean;
6
- defaultValue?: string;
7
- onChange?: (value: string) => void;
8
- disabled?: boolean;
9
- }
10
- export declare const Dropdown: ({ id, label, values, required, defaultValue, onChange, disabled, }: IDropdownProps) => JSX.Element;
11
- export {};
@@ -1,12 +0,0 @@
1
- import { I1pIngestDataTypes, I1pIngestPropsData } from '../interfaces';
2
- export interface ISendGAEvent {
3
- event: string;
4
- category: string;
5
- action: string;
6
- label: string;
7
- 'de-label': I1pIngestDataTypes;
8
- [key: string]: undefined | string | string[];
9
- }
10
- export declare const sendToGA: (submitData: I1pIngestPropsData, metadata: {
11
- [key: string]: string;
12
- }) => Promise<boolean>;