{"version":3,"file":"/Users/anthonygubler/development/dojo-org/widgets/src/chip-typeahead/index.tsx","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { create, tsx } from '@dojo/framework/core/vdom';\nimport { RenderResult } from '@dojo/framework/core/interfaces';\nimport { createICacheMiddleware } from '@dojo/framework/core/middleware/icache';\nimport theme from '../middleware/theme';\nimport { createResourceMiddleware } from '@dojo/framework/core/middleware/resources';\nimport Typeahead from '../typeahead';\nimport * as css from '../theme/default/chip-typeahead.m.css';\nimport {\n\tItemRendererProperties,\n\tListOption,\n\tListItem,\n\tListItemProperties,\n\tMenuItemProperties\n} from '../list';\nimport Chip from '../chip';\nimport focus from '@dojo/framework/core/middleware/focus';\nimport * as typeaheadCss from '../theme/default/typeahead.m.css';\nimport * as chipCss from '../theme/default/chip.m.css';\nimport { PopupPosition } from '@dojo/widgets/popup';\nimport { find } from '@dojo/framework/shim/array';\n\nexport interface ChipTypeaheadProperties {\n\t/** The initial selected value */\n\tinitialValue?: string[];\n\t/** Callback called when user selects an option from the typeahead */\n\tonValue?: (value: ListOption[]) => void;\n\t/** Optional controlled value */\n\tvalue?: string[];\n\t/** Property to determine if the input is disabled */\n\tdisabled?: boolean;\n\t/** Property to determine how many items to render. Defaults to 6 */\n\titemsInView?: number;\n\t/** The name of the input */\n\tname?: string;\n\t/** Placement of the select menu; 'above' or 'below' */\n\tposition?: PopupPosition;\n\t/** Placement of the selected values. Default is 'inline' */\n\tplacement?: 'inline' | 'bottom';\n\t/** Allow duplicates of the same value to be selected. Default is false */\n\tduplicates?: boolean;\n\t/** Flag to indicate if values other than those in the resource can be entered, defaults to true */\n\tstrict?: boolean;\n\t/** The kind of chip typeahead input */\n\tkind?: 'outlined' | 'filled';\n}\n\nexport interface ChipTypeaheadChildren {\n\t/** Adds a <label> element with the supplied text */\n\tlabel?: RenderResult;\n\t/** Custom renderer for item contents */\n\titems?: (\n\t\titem: ItemRendererProperties,\n\t\tprops: ListItemProperties & MenuItemProperties\n\t) => RenderResult;\n\t/** Custom renderer for selected items */\n\tselected?: (value: string, label: string) => RenderResult;\n}\n\nexport interface ChipTypeaheadIcache {\n\tinitialValue: string[];\n\toptions: ListOption[];\n\tfocused: boolean;\n}\n\nconst factory = create({\n\ticache: createICacheMiddleware<ChipTypeaheadIcache>(),\n\ttheme,\n\tresource: createResourceMiddleware<ListOption>(),\n\tfocus\n})\n\t.properties<ChipTypeaheadProperties>()\n\t.children<ChipTypeaheadChildren>();\n\nfunction valueChanged(values: string[] = [], options: ListOption[] = []): boolean {\n\tif (values.length !== options.length) {\n\t\treturn true;\n\t}\n\n\tfor (let i = 0; i < values.length; i++) {\n\t\tif (!options[i] || options[i].value !== values[i]) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nexport const ChipTypeahead = factory(function ChipTypeahead({\n\tmiddleware: { icache, theme, focus, resource },\n\tproperties,\n\tchildren\n}) {\n\tconst {\n\t\tvalue,\n\t\tclasses = {},\n\t\tvariant,\n\t\tinitialValue = [],\n\t\tdisabled,\n\t\titemsInView,\n\t\tposition,\n\t\tname,\n\t\tplacement = 'inline',\n\t\tstrict,\n\t\tresource: {\n\t\t\ttemplate,\n\t\t\toptions = resource.createOptions((curr, next) => ({ ...curr, ...next }))\n\t\t},\n\t\tkind\n\t} = properties();\n\tconst {\n\t\tget,\n\t\ttemplate: { read }\n\t} = resource.template(template);\n\n\tconst [{ label, items, selected } = {} as ChipTypeaheadChildren] = children();\n\tconst themeCss = theme.classes(css);\n\tconst focused = icache.getOrSet('focused', false);\n\tconst selectedOptions = icache.set('options', (current) => {\n\t\tif (!current && initialValue && !value) {\n\t\t\tconst items = get(options(), { read });\n\t\t\tconst initialSelectedOptions = initialValue.map((valueId) => {\n\t\t\t\tif (items) {\n\t\t\t\t\tconst findResult = find(items, (item) => item.value === valueId);\n\t\t\t\t\tif (findResult) {\n\t\t\t\t\t\treturn findResult;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tvalue: '',\n\t\t\t\t\tlabel: ''\n\t\t\t\t};\n\t\t\t});\n\t\t\tif (valueChanged(initialValue, initialSelectedOptions)) {\n\t\t\t\treturn current || [];\n\t\t\t}\n\t\t\treturn initialSelectedOptions;\n\t\t} else if (value && valueChanged(value, current)) {\n\t\t\tconst controlledOptions = value.map((valueId) => {\n\t\t\t\tconst items = get(options(), { read });\n\t\t\t\tif (items) {\n\t\t\t\t\tconst findResult = find(items, (item) => item.value === valueId);\n\t\t\t\t\tif (findResult) {\n\t\t\t\t\t\treturn findResult;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tvalue: '',\n\t\t\t\t\tlabel: ''\n\t\t\t\t};\n\t\t\t});\n\t\t\tif (valueChanged(value, controlledOptions)) {\n\t\t\t\treturn current || [];\n\t\t\t}\n\t\t\treturn controlledOptions;\n\t\t}\n\t\treturn current || [];\n\t});\n\n\tconst chips = selectedOptions.map(({ value, label }, index) => {\n\t\treturn (\n\t\t\t<Chip\n\t\t\t\ttheme={theme.compose(\n\t\t\t\t\tchipCss,\n\t\t\t\t\tcss,\n\t\t\t\t\t'selection'\n\t\t\t\t)}\n\t\t\t\tkey={`value-${value}`}\n\t\t\t\tclasses={{\n\t\t\t\t\t...classes,\n\t\t\t\t\t'@dojo/widgets/chip': {\n\t\t\t\t\t\t...classes['@dojo/widgets/chip'],\n\t\t\t\t\t\troot: [themeCss.value]\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tvariant={variant}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonClose={\n\t\t\t\t\tdisabled\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: () => {\n\t\t\t\t\t\t\t\tconst { onValue } = properties();\n\t\t\t\t\t\t\t\tconst options = [...icache.getOrSet('options', [])];\n\t\t\t\t\t\t\t\toptions.splice(index, 1);\n\t\t\t\t\t\t\t\ticache.set('options', options);\n\t\t\t\t\t\t\t\tonValue && onValue(options);\n\t\t\t\t\t\t\t\tfocus.focus();\n\t\t\t\t\t\t  }\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tlabel: selected ? selected(value, label) : label\n\t\t\t\t}}\n\t\t\t</Chip>\n\t\t);\n\t});\n\n\treturn (\n\t\t<div\n\t\t\tkey=\"root\"\n\t\t\tclasses={[\n\t\t\t\ttheme.variant(),\n\t\t\t\tdisabled ? themeCss.disabled : null,\n\t\t\t\tthemeCss.root,\n\t\t\t\tselectedOptions.length > 0 ? themeCss.hasValue : null,\n\t\t\t\tfocused ? themeCss.focused : null,\n\t\t\t\tlabel ? themeCss.hasLabel : themeCss.noLabel\n\t\t\t]}\n\t\t>\n\t\t\t<Typeahead\n\t\t\t\tkey=\"typeahead\"\n\t\t\t\ttheme={theme.compose(\n\t\t\t\t\ttypeaheadCss,\n\t\t\t\t\tcss,\n\t\t\t\t\t'input'\n\t\t\t\t)}\n\t\t\t\tvariant={variant}\n\t\t\t\tstrict={strict}\n\t\t\t\titemsInView={itemsInView}\n\t\t\t\tposition={position}\n\t\t\t\tname={name}\n\t\t\t\tfocus={focus.shouldFocus}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tresource={resource({ template, options })}\n\t\t\t\tonValue={(value) => {\n\t\t\t\t\tconst { onValue } = properties();\n\t\t\t\t\tconst options = icache.set('options', (values = []) => {\n\t\t\t\t\t\treturn [...values, value];\n\t\t\t\t\t});\n\t\t\t\t\tonValue && onValue(options);\n\t\t\t\t\tfocus.focus();\n\t\t\t\t}}\n\t\t\t\tvalue=\"\"\n\t\t\t\tonFocus={() => icache.set('focused', true)}\n\t\t\t\tonBlur={() => icache.set('focused', false)}\n\t\t\t\tclasses={{\n\t\t\t\t\t'@dojo/widgets/text-input': {\n\t\t\t\t\t\tinput: [themeCss.input],\n\t\t\t\t\t\twrapper: [themeCss.wrapper],\n\t\t\t\t\t\tleading: [themeCss.inputLeading],\n\t\t\t\t\t\tleadingWrapper: [themeCss.inputLeadingWrapper],\n\t\t\t\t\t\tdefaultKind: [themeCss.defaultKind],\n\t\t\t\t\t\toutlinedKind: [themeCss.outlinedKind],\n\t\t\t\t\t\tlabelWrapper: [themeCss.inputLabel],\n\t\t\t\t\t\tlabel: [themeCss.label, chips.length ? themeCss.labelActive : undefined],\n\t\t\t\t\t\tnotchedOutline: [\n\t\t\t\t\t\t\tkind === 'outlined' && chips.length ? themeCss.notchActive : undefined\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\titemDisabled={(item) => {\n\t\t\t\t\tconst { duplicates = false, strict = true } = properties();\n\t\t\t\t\tconst selected =\n\t\t\t\t\t\ticache\n\n\t\t\t\t\t\t\t.getOrSet('options', [])\n\t\t\t\t\t\t\t.findIndex((option) => option.value === item.value) !== -1;\n\t\t\t\t\treturn item.disabled || (!duplicates && strict && selected);\n\t\t\t\t}}\n\t\t\t\tkind={kind}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tlabel,\n\t\t\t\t\titems: (item, props) => {\n\t\t\t\t\t\tconst selected =\n\t\t\t\t\t\t\ticache\n\t\t\t\t\t\t\t\t.getOrSet('options', [])\n\t\t\t\t\t\t\t\t.findIndex((option) => option.value === item.value) !== -1;\n\n\t\t\t\t\t\tif (items) {\n\t\t\t\t\t\t\treturn items(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\t\tselected\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t\tselected\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ListItem {...props} selected={selected}>\n\t\t\t\t\t\t\t\t<div classes={[themeCss.item, selected ? themeCss.selected : null]}>\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ListItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t\tleading: placement === 'inline' && chips && chips.length ? chips : undefined\n\t\t\t\t}}\n\t\t\t</Typeahead>\n\t\t\t{placement === 'bottom' && <div classes={themeCss.values}>{chips}</div>}\n\t\t</div>\n\t);\n});\n\nexport default ChipTypeahead;\n"]}