@propellerads/tags-input 3.7.0 → 4.0.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ #### `4.0.0`
2
+
3
+ * Added creatable select
4
+
1
5
  #### `3.7.0`
2
6
 
3
7
  * Show minimal length info for async select
@@ -11,6 +11,7 @@ var ReactSelect__default = _interopDefault(ReactSelect);
11
11
  var isFunction = _interopDefault(require('lodash.isfunction'));
12
12
  var ReactAsyncSelect = _interopDefault(require('react-select/lib/Async'));
13
13
  var ErrorLabel = _interopDefault(require('@propellerads/error-label'));
14
+ var CreatableSelect = _interopDefault(require('react-select/lib/Creatable'));
14
15
  var icon = require('@propellerads/icon');
15
16
  var styled = _interopDefault(require('styled-components'));
16
17
  var stylevariables = require('@propellerads/stylevariables');
@@ -362,12 +363,23 @@ var TagsInput = function TagsInput(props) {
362
363
  value = _props$value === void 0 ? [] : _props$value,
363
364
  _props$actionColor = props.actionColor,
364
365
  actionColor = _props$actionColor === void 0 ? '' : _props$actionColor,
366
+ _props$isCreatable = props.isCreatable,
367
+ isCreatable = _props$isCreatable === void 0 ? false : _props$isCreatable,
368
+ _props$isLoading = props.isLoading,
369
+ isLoading = _props$isLoading === void 0 ? false : _props$isLoading,
365
370
  _props$loadingMessage = props.loadingMessage,
366
371
  loadingMessage = _props$loadingMessage === void 0 ? function () {
367
372
  return 'Loading...';
368
373
  } : _props$loadingMessage,
369
374
  _props$minHeightInput = props.minHeightInput,
370
- minHeightInput = _props$minHeightInput === void 0 ? 36 : _props$minHeightInput;
375
+ minHeightInput = _props$minHeightInput === void 0 ? 36 : _props$minHeightInput,
376
+ _props$createOptionPl = props.createOptionPlaceholder,
377
+ createOptionPlaceholder = _props$createOptionPl === void 0 ? 'Create ' : _props$createOptionPl,
378
+ _props$onCreateOption = props.onCreateOption,
379
+ _onCreateOption = _props$onCreateOption === void 0 ? function () {
380
+ return null;
381
+ } : _props$onCreateOption;
382
+
371
383
  var currentValue = value;
372
384
 
373
385
  var preparedStyled = _extends({}, prepareStyles(actionColor), customStyles, {
@@ -435,18 +447,29 @@ var TagsInput = function TagsInput(props) {
435
447
  }
436
448
  };
437
449
 
438
- var asyncSelect = React__default.createElement(ReactAsyncSelect, Object.assign({}, config, {
450
+ var regularSelect = isAsync ? React__default.createElement(ReactAsyncSelect, Object.assign({}, config, {
439
451
  loadOptions: function loadOptions(newValue) {
440
452
  return handleAsyncRequest(newValue);
441
453
  }
442
- }));
443
- var select = React__default.createElement("div", {
454
+ })) : React__default.createElement("div", {
444
455
  onPaste: onPaste
445
456
  }, React__default.createElement(ReactSelect__default, Object.assign({}, config, {
446
457
  ref: reactSelectElement,
447
458
  options: options
448
459
  })));
449
- return React__default.createElement(StyledTagsInput, null, isAsync ? asyncSelect : select, errors && errors.length > 0 && isErrorLabelVisible && React__default.createElement(TagsInputErrors, null, React__default.createElement(ErrorLabel, {
460
+ var select = isCreatable ? React__default.createElement(CreatableSelect, Object.assign({
461
+ formatCreateLabel: function formatCreateLabel(newValue) {
462
+ return createOptionPlaceholder + "\"" + newValue + "\"";
463
+ },
464
+ isLoading: isLoading,
465
+ onCreateOption: function onCreateOption(newOption) {
466
+ return _onCreateOption(newOption);
467
+ }
468
+ }, config, {
469
+ ref: reactSelectElement,
470
+ options: options
471
+ })) : regularSelect;
472
+ return React__default.createElement(StyledTagsInput, null, select, errors && errors.length > 0 && isErrorLabelVisible && React__default.createElement(TagsInputErrors, null, React__default.createElement(ErrorLabel, {
450
473
  elementId: elementId,
451
474
  errors: errors
452
475
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"tags-input.cjs.development.js","sources":["../src/style.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport {\n lineHeight, actionColor, borderRadius, gray80, errorColor, black, white,\n} from '@propellerads/stylevariables';\n\nconst StyledTagsInput = styled.div`\n position: relative;\n`;\n\nconst TagsInputErrors = styled.div`\n position: absolute;\n display: flex;\n flex-direction: row;\n right: 1px;\n top: 0;\n height: ${lineHeight}px;\n align-items: center;\n`;\n\nconst prepareStyles = (customActionColor: string) => {\n const mainColor = customActionColor || actionColor;\n return {\n control: (styles, {isFocused, isDisabled}) => ({\n ...styles,\n borderRadius,\n backgroundColor: isDisabled ? '#ededed' : '#fff',\n minHeight: `${lineHeight}px`,\n borderWidth: 1,\n boxShadow: 'none',\n borderColor: isFocused ? mainColor : gray80,\n }),\n valueContainer: (styles) => ({\n ...styles,\n overflow: 'hidden',\n padding: '2px 2px 4px 2px',\n justifyContent: 'flex-start',\n }),\n placeholder: () => ({\n color: '#c0c0c0',\n fontWeight: 100,\n paddingLeft: '4px',\n position: 'absolute',\n }),\n clearIndicator: () => ({\n color: '#c0c0c0',\n display: 'inline-flex',\n marginRight: '4px',\n }),\n dropdownIndicator: () => ({\n display: 'none',\n }),\n indicatorSeparator: () => ({\n display: 'none',\n }),\n multiValue: (styles, {data}) => ({\n ...styles,\n backgroundColor: data.isException ? errorColor : mainColor,\n color: white,\n borderRadius: `${borderRadius / 2}px`,\n height: '22px',\n display: 'flex',\n alignItems: 'center',\n margin: '2px 0 0 2px',\n }),\n multiValueLabel: (styles) => ({\n ...styles,\n color: white,\n padding: '0 0 0 5px',\n fontSize: '12px',\n borderRadius: 0,\n display: 'inline-flex',\n lineHeight: '1',\n }),\n multiValueRemove: (styles, {data}) => ({\n ...styles,\n padding: 0,\n margin: '0 4px 0 2px',\n backgroundColor: data.isException ? errorColor : mainColor,\n cursor: 'pointer',\n ':hover': {\n backgroundColor: data.isException ? errorColor : mainColor,\n color: 'white',\n },\n }),\n menu: (styles) => ({\n ...styles,\n margin: 0,\n borderRadius: 0,\n zIndex: 10,\n }),\n menuList: (styles) => ({\n ...styles,\n '::-webkit-scrollbar': {\n width: '7px',\n },\n '::-webkit-scrollbar-thumb': {\n borderRadius: '4px',\n backgroundColor: 'rgba(0, 0, 0, .5)',\n boxShadow: '0 0 1px rgba(255, 255, 255, .5)',\n },\n }),\n option: (styles, {isFocused}) => ({\n backgroundColor: isFocused ? mainColor : null,\n padding: '5px 10px',\n fontSize: '14px',\n color: isFocused ? white : black,\n }),\n input: (styles) => ({\n ...styles,\n height: '16px',\n }),\n };\n};\n\nexport {prepareStyles, StyledTagsInput, TagsInputErrors};\n","import React, {useRef, useState} from 'react';\nimport ReactSelect, {components as reactSelectComponents} from 'react-select';\nimport isFunction from 'lodash.isfunction';\nimport ReactAsyncSelect from 'react-select/lib/Async';\nimport ErrorLabel from '@propellerads/error-label';\nimport {Close, SIZE, COLOR} from '@propellerads/icon';\n\nimport {TagsInputProps} from './types';\nimport {prepareStyles, StyledTagsInput, TagsInputErrors} from './style';\n\n// regexps by priority\nconst REGEXPS = [\n /(?:\\b|\\B)\\n+\\b/,\n /(?:\\b|\\B),\\s\\b/,\n /(?:\\b|\\B),+\\b/,\n];\n\ninterface SplitStringReturnValue {\n splits: string[]\n specialHandle: boolean\n}\n\nfunction splitString(value: string): SplitStringReturnValue {\n let splits: string[] = [];\n\n let specialHandle = false;\n // eslint-disable-next-line no-restricted-syntax\n for (const regex of REGEXPS) {\n splits = value.split(regex);\n if (splits.length > 1) {\n break;\n }\n }\n\n // special case. Need handle in special way\n if (splits.length === 1) {\n splits = value.split(/\\b\\s+\\b/);\n specialHandle = splits.length > 1;\n }\n\n return {\n splits,\n specialHandle,\n };\n}\n\nfunction searchSuitableOptions(pastedValue, availableOptions, searchableKeys) {\n const {splits, specialHandle} = splitString(pastedValue);\n\n if (specialHandle) {\n let rawPastedString = splits.join(' ')\n .toLowerCase();\n\n return availableOptions\n .sort((firstEl, secondEl) => {\n if (firstEl.label.length > secondEl.label.length) {\n return -1;\n }\n if (firstEl.label.length < secondEl.label.length) {\n return 1;\n }\n\n return 0;\n })\n .filter((option) => searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const position = rawPastedString.search(optionValue);\n const condition = position !== -1;\n if (condition) {\n rawPastedString = rawPastedString.replace(optionValue, '');\n }\n\n return prevValue || condition;\n }, false));\n }\n\n return splits.map((splitValue) => availableOptions.find((option) => {\n const comparableValue = splitValue.trim().toLowerCase();\n\n return searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const condition = optionValue === comparableValue;\n\n return prevValue || condition;\n }, false);\n }))\n .filter(Boolean);\n}\n\ninterface ClearIndicatorProps {\n // eslint-disable-next-line @typescript-eslint/ban-types\n getStyles: (clearIndicator: string, props: any) => {},\n innerProps: {\n ref: React.Ref<HTMLDivElement>\n },\n elementId: string,\n}\n\nconst ClearIndicator = (props: ClearIndicatorProps) => {\n const {\n elementId,\n getStyles,\n innerProps: {\n ref,\n ...restInnerProps\n },\n } = props;\n\n return (\n <div\n {...restInnerProps}\n ref={ref}\n style={getStyles('clearIndicator', props)}\n id={`${elementId}-clear`}\n >\n <Close\n color={COLOR.GRAY_DARK}\n size={SIZE.MEDIUM_SMALL}\n />\n </div>\n );\n};\n\nconst TagsInput = (props: TagsInputProps) => {\n const reactSelectElement = useRef<any>(null);\n const [showMinLenTip, setShowMinLenTip] = useState(false);\n\n const {\n components = {},\n customStyles = {},\n elementId,\n errors = [],\n isAsync = false,\n isErrorLabelVisible = false,\n onChange,\n onInputChange = null,\n filterOption = null,\n options = [],\n promiseOptions = () => Promise.resolve(),\n searchableKeys = [\n 'label',\n ],\n value = [],\n actionColor = '',\n isClearable = true,\n isDisabled = false,\n isLoading = false,\n isRtl = false,\n isMulti = true,\n isSearchable = true,\n cacheOptions = false,\n placeholder = 'Start typing...',\n noOptionsMessage = () => 'No options...',\n loadingMessage = () => 'Loading...',\n minHeightInput = 36,\n } = props;\n\n const currentValue = value;\n\n const preparedStyled = {\n ...prepareStyles(actionColor),\n ...customStyles,\n control: (base, state) => {\n const styles = (customStyles.control && isFunction(customStyles.control))\n ? customStyles.control(base, state)\n : {};\n\n return {\n ...prepareStyles(actionColor).control(base, state),\n ...styles,\n border: errors.length ? '1px solid #ed3030' : prepareStyles(actionColor).control(base, state).border,\n minHeight: minHeightInput,\n };\n },\n };\n\n const config = {\n ...props,\n id: elementId,\n onChange,\n ...(onInputChange && {onInputChange}),\n ...(filterOption && {filterOption}),\n styles: preparedStyled,\n loadingMessage: showMinLenTip ? () => 'Enter two or more characters' : loadingMessage,\n components: {\n ClearIndicator: (clearIndicatorProps) => (\n <ClearIndicator\n {...clearIndicatorProps}\n elementId={elementId}\n />\n ),\n ...components,\n },\n };\n\n const handleAsyncRequest = (newValue: any) => {\n if (!newValue.length || newValue.length < 2) {\n setShowMinLenTip(true);\n\n return null;\n }\n\n if (!showMinLenTip) {\n setShowMinLenTip(false);\n }\n\n return promiseOptions(newValue);\n };\n\n const onPaste = (e) => {\n const pasteData = e.clipboardData.getData('text/plain');\n\n const pastedOptions = searchSuitableOptions(pasteData, options, searchableKeys);\n\n const newInputOptions = pastedOptions.reduce((acc, curVal) => {\n if (!acc.find((el) => el.value === curVal.value)) {\n acc.push(curVal);\n }\n\n return acc;\n }, currentValue);\n\n if (pastedOptions.length !== 0) {\n onChange(newInputOptions);\n setTimeout(() => {\n reactSelectElement.current.select.blur();\n }, 0);\n }\n };\n\n const asyncSelect = (\n <ReactAsyncSelect\n {...config}\n loadOptions={(newValue) => handleAsyncRequest(newValue)}\n />\n );\n\n const select = (\n <div onPaste={onPaste}>\n <ReactSelect\n {...config}\n ref={reactSelectElement}\n options={options}\n />\n </div>\n );\n\n return (\n <StyledTagsInput>\n {isAsync ? asyncSelect : select}\n {errors && errors.length > 0 && isErrorLabelVisible && (\n <TagsInputErrors>\n <ErrorLabel\n elementId={elementId}\n errors={errors}\n />\n </TagsInputErrors>\n )}\n </StyledTagsInput>\n );\n};\n\nfunction customChecker(props, propName, component) {\n const {[propName]: propValue} = props;\n if (typeof propValue !== 'function') {\n return new Error(`Invalid prop \"${propName}\" passed to ${component}`);\n }\n\n const value = propValue();\n if (typeof value !== 'string' && !React.isValidElement(value)) {\n // eslint-disable-next-line max-len\n return new Error(`Invalid prop \"${propName}\" passed to ${component}. Function should return \"string\" or \"react.Node\"`);\n }\n\n return null;\n}\n\nexport {reactSelectComponents as components};\n\nexport default TagsInput;\n"],"names":["StyledTagsInput","styled","div","TagsInputErrors","lineHeight","prepareStyles","customActionColor","mainColor","actionColor","control","styles","isFocused","isDisabled","borderRadius","backgroundColor","minHeight","borderWidth","boxShadow","borderColor","gray80","valueContainer","overflow","padding","justifyContent","placeholder","color","fontWeight","paddingLeft","position","clearIndicator","display","marginRight","dropdownIndicator","indicatorSeparator","multiValue","data","isException","errorColor","white","height","alignItems","margin","multiValueLabel","fontSize","multiValueRemove","cursor","menu","zIndex","menuList","width","option","black","input","REGEXPS","splitString","value","splits","specialHandle","regex","split","length","searchSuitableOptions","pastedValue","availableOptions","searchableKeys","rawPastedString","join","toLowerCase","sort","firstEl","secondEl","label","filter","reduce","prevValue","currValue","optionValue","String","search","condition","replace","map","splitValue","find","comparableValue","trim","Boolean","ClearIndicator","props","elementId","getStyles","innerProps","ref","restInnerProps","React","style","id","Close","COLOR","GRAY_DARK","size","SIZE","MEDIUM_SMALL","TagsInput","reactSelectElement","useRef","useState","showMinLenTip","setShowMinLenTip","components","customStyles","errors","isAsync","isErrorLabelVisible","onChange","onInputChange","filterOption","options","promiseOptions","Promise","resolve","loadingMessage","minHeightInput","currentValue","preparedStyled","base","state","isFunction","border","config","clearIndicatorProps","handleAsyncRequest","newValue","onPaste","e","pasteData","clipboardData","getData","pastedOptions","newInputOptions","acc","curVal","el","push","setTimeout","current","select","blur","asyncSelect","ReactAsyncSelect","loadOptions","ReactSelect","ErrorLabel"],"mappings":"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"}
1
+ {"version":3,"file":"tags-input.cjs.development.js","sources":["../src/style.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport {\n lineHeight, actionColor, borderRadius, gray80, errorColor, black, white,\n} from '@propellerads/stylevariables';\n\nconst StyledTagsInput = styled.div`\n position: relative;\n`;\n\nconst TagsInputErrors = styled.div`\n position: absolute;\n display: flex;\n flex-direction: row;\n right: 1px;\n top: 0;\n height: ${lineHeight}px;\n align-items: center;\n`;\n\nconst prepareStyles = (customActionColor: string) => {\n const mainColor = customActionColor || actionColor;\n return {\n control: (styles, {isFocused, isDisabled}) => ({\n ...styles,\n borderRadius,\n backgroundColor: isDisabled ? '#ededed' : '#fff',\n minHeight: `${lineHeight}px`,\n borderWidth: 1,\n boxShadow: 'none',\n borderColor: isFocused ? mainColor : gray80,\n }),\n valueContainer: (styles) => ({\n ...styles,\n overflow: 'hidden',\n padding: '2px 2px 4px 2px',\n justifyContent: 'flex-start',\n }),\n placeholder: () => ({\n color: '#c0c0c0',\n fontWeight: 100,\n paddingLeft: '4px',\n position: 'absolute',\n }),\n clearIndicator: () => ({\n color: '#c0c0c0',\n display: 'inline-flex',\n marginRight: '4px',\n }),\n dropdownIndicator: () => ({\n display: 'none',\n }),\n indicatorSeparator: () => ({\n display: 'none',\n }),\n multiValue: (styles, {data}) => ({\n ...styles,\n backgroundColor: data.isException ? errorColor : mainColor,\n color: white,\n borderRadius: `${borderRadius / 2}px`,\n height: '22px',\n display: 'flex',\n alignItems: 'center',\n margin: '2px 0 0 2px',\n }),\n multiValueLabel: (styles) => ({\n ...styles,\n color: white,\n padding: '0 0 0 5px',\n fontSize: '12px',\n borderRadius: 0,\n display: 'inline-flex',\n lineHeight: '1',\n }),\n multiValueRemove: (styles, {data}) => ({\n ...styles,\n padding: 0,\n margin: '0 4px 0 2px',\n backgroundColor: data.isException ? errorColor : mainColor,\n cursor: 'pointer',\n ':hover': {\n backgroundColor: data.isException ? errorColor : mainColor,\n color: 'white',\n },\n }),\n menu: (styles) => ({\n ...styles,\n margin: 0,\n borderRadius: 0,\n zIndex: 10,\n }),\n menuList: (styles) => ({\n ...styles,\n '::-webkit-scrollbar': {\n width: '7px',\n },\n '::-webkit-scrollbar-thumb': {\n borderRadius: '4px',\n backgroundColor: 'rgba(0, 0, 0, .5)',\n boxShadow: '0 0 1px rgba(255, 255, 255, .5)',\n },\n }),\n option: (styles, {isFocused}) => ({\n backgroundColor: isFocused ? mainColor : null,\n padding: '5px 10px',\n fontSize: '14px',\n color: isFocused ? white : black,\n }),\n input: (styles) => ({\n ...styles,\n height: '16px',\n }),\n };\n};\n\nexport {prepareStyles, StyledTagsInput, TagsInputErrors};\n","import React, {useRef, useState} from 'react';\nimport ReactSelect, {components as reactSelectComponents} from 'react-select';\nimport isFunction from 'lodash.isfunction';\nimport ReactAsyncSelect from 'react-select/lib/Async';\nimport ErrorLabel from '@propellerads/error-label';\nimport CreatableSelect from 'react-select/lib/Creatable';\nimport {Close, SIZE, COLOR} from '@propellerads/icon';\n\nimport {TagsInputProps} from './types';\nimport {prepareStyles, StyledTagsInput, TagsInputErrors} from './style';\n\n// regexps by priority\nconst REGEXPS = [\n /(?:\\b|\\B)\\n+\\b/,\n /(?:\\b|\\B),\\s\\b/,\n /(?:\\b|\\B),+\\b/,\n];\n\ninterface SplitStringReturnValue {\n splits: string[]\n specialHandle: boolean\n}\n\nfunction splitString(value: string): SplitStringReturnValue {\n let splits: string[] = [];\n\n let specialHandle = false;\n // eslint-disable-next-line no-restricted-syntax\n for (const regex of REGEXPS) {\n splits = value.split(regex);\n if (splits.length > 1) {\n break;\n }\n }\n\n // special case. Need handle in special way\n if (splits.length === 1) {\n splits = value.split(/\\b\\s+\\b/);\n specialHandle = splits.length > 1;\n }\n\n return {\n splits,\n specialHandle,\n };\n}\n\nfunction searchSuitableOptions(pastedValue, availableOptions, searchableKeys) {\n const {splits, specialHandle} = splitString(pastedValue);\n\n if (specialHandle) {\n let rawPastedString = splits.join(' ')\n .toLowerCase();\n\n return availableOptions\n .sort((firstEl, secondEl) => {\n if (firstEl.label.length > secondEl.label.length) {\n return -1;\n }\n if (firstEl.label.length < secondEl.label.length) {\n return 1;\n }\n\n return 0;\n })\n .filter((option) => searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const position = rawPastedString.search(optionValue);\n const condition = position !== -1;\n if (condition) {\n rawPastedString = rawPastedString.replace(optionValue, '');\n }\n\n return prevValue || condition;\n }, false));\n }\n\n return splits.map((splitValue) => availableOptions.find((option) => {\n const comparableValue = splitValue.trim().toLowerCase();\n\n return searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const condition = optionValue === comparableValue;\n\n return prevValue || condition;\n }, false);\n }))\n .filter(Boolean);\n}\n\ninterface ClearIndicatorProps {\n // eslint-disable-next-line @typescript-eslint/ban-types\n getStyles: (clearIndicator: string, props: any) => {},\n innerProps: {\n ref: React.Ref<HTMLDivElement>\n },\n elementId: string,\n}\n\nconst ClearIndicator = (props: ClearIndicatorProps) => {\n const {\n elementId,\n getStyles,\n innerProps: {\n ref,\n ...restInnerProps\n },\n } = props;\n\n return (\n <div\n {...restInnerProps}\n ref={ref}\n style={getStyles('clearIndicator', props)}\n id={`${elementId}-clear`}\n >\n <Close\n color={COLOR.GRAY_DARK}\n size={SIZE.MEDIUM_SMALL}\n />\n </div>\n );\n};\n\nconst TagsInput = (props: TagsInputProps) => {\n const reactSelectElement = useRef<any>(null);\n const [showMinLenTip, setShowMinLenTip] = useState(false);\n\n const {\n components = {},\n customStyles = {},\n elementId,\n errors = [],\n isAsync = false,\n isErrorLabelVisible = false,\n onChange,\n onInputChange = null,\n filterOption = null,\n options = [],\n promiseOptions = () => Promise.resolve(),\n searchableKeys = [\n 'label',\n ],\n value = [],\n actionColor = '',\n isClearable = true,\n isCreatable = false,\n isDisabled = false,\n isLoading = false,\n isRtl = false,\n isMulti = true,\n isSearchable = true,\n cacheOptions = false,\n placeholder = 'Start typing...',\n noOptionsMessage = () => 'No options...',\n loadingMessage = () => 'Loading...',\n minHeightInput = 36,\n createOptionPlaceholder = 'Create ',\n onCreateOption = () => null,\n } = props;\n\n const currentValue = value;\n\n const preparedStyled = {\n ...prepareStyles(actionColor),\n ...customStyles,\n control: (base, state) => {\n const styles = (customStyles.control && isFunction(customStyles.control))\n ? customStyles.control(base, state)\n : {};\n\n return {\n ...prepareStyles(actionColor).control(base, state),\n ...styles,\n border: errors.length ? '1px solid #ed3030' : prepareStyles(actionColor).control(base, state).border,\n minHeight: minHeightInput,\n };\n },\n };\n\n const config = {\n ...props,\n id: elementId,\n onChange,\n ...(onInputChange && {onInputChange}),\n ...(filterOption && {filterOption}),\n styles: preparedStyled,\n loadingMessage: showMinLenTip ? () => 'Enter two or more characters' : loadingMessage,\n components: {\n ClearIndicator: (clearIndicatorProps) => (\n <ClearIndicator\n {...clearIndicatorProps}\n elementId={elementId}\n />\n ),\n ...components,\n },\n };\n\n const handleAsyncRequest = (newValue: any) => {\n if (!newValue.length || newValue.length < 2) {\n setShowMinLenTip(true);\n\n return null;\n }\n\n if (!showMinLenTip) {\n setShowMinLenTip(false);\n }\n\n return promiseOptions(newValue);\n };\n\n const onPaste = (e) => {\n const pasteData = e.clipboardData.getData('text/plain');\n\n const pastedOptions = searchSuitableOptions(pasteData, options, searchableKeys);\n\n const newInputOptions = pastedOptions.reduce((acc, curVal) => {\n if (!acc.find((el) => el.value === curVal.value)) {\n acc.push(curVal);\n }\n\n return acc;\n }, currentValue);\n\n if (pastedOptions.length !== 0) {\n onChange(newInputOptions);\n setTimeout(() => {\n reactSelectElement.current.select.blur();\n }, 0);\n }\n };\n\n const regularSelect = isAsync\n ? (\n <ReactAsyncSelect\n {...config}\n loadOptions={(newValue) => handleAsyncRequest(newValue)}\n />\n )\n : (\n <div onPaste={onPaste}>\n <ReactSelect\n {...config}\n ref={reactSelectElement}\n options={options}\n />\n </div>\n );\n\n const select = isCreatable\n ? (\n <CreatableSelect\n formatCreateLabel={(newValue) => `${createOptionPlaceholder}\"${newValue}\"`}\n isLoading={isLoading}\n onCreateOption={(newOption) => onCreateOption(newOption)}\n {...config}\n ref={reactSelectElement}\n options={options}\n />\n ) : regularSelect;\n\n return (\n <StyledTagsInput>\n {select}\n {errors && errors.length > 0 && isErrorLabelVisible && (\n <TagsInputErrors>\n <ErrorLabel\n elementId={elementId}\n errors={errors}\n />\n </TagsInputErrors>\n )}\n </StyledTagsInput>\n );\n};\n\nexport {reactSelectComponents as components};\n\nexport default TagsInput;\n"],"names":["StyledTagsInput","styled","div","TagsInputErrors","lineHeight","prepareStyles","customActionColor","mainColor","actionColor","control","styles","isFocused","isDisabled","borderRadius","backgroundColor","minHeight","borderWidth","boxShadow","borderColor","gray80","valueContainer","overflow","padding","justifyContent","placeholder","color","fontWeight","paddingLeft","position","clearIndicator","display","marginRight","dropdownIndicator","indicatorSeparator","multiValue","data","isException","errorColor","white","height","alignItems","margin","multiValueLabel","fontSize","multiValueRemove","cursor","menu","zIndex","menuList","width","option","black","input","REGEXPS","splitString","value","splits","specialHandle","regex","split","length","searchSuitableOptions","pastedValue","availableOptions","searchableKeys","rawPastedString","join","toLowerCase","sort","firstEl","secondEl","label","filter","reduce","prevValue","currValue","optionValue","String","search","condition","replace","map","splitValue","find","comparableValue","trim","Boolean","ClearIndicator","props","elementId","getStyles","innerProps","ref","restInnerProps","React","style","id","Close","COLOR","GRAY_DARK","size","SIZE","MEDIUM_SMALL","TagsInput","reactSelectElement","useRef","useState","showMinLenTip","setShowMinLenTip","components","customStyles","errors","isAsync","isErrorLabelVisible","onChange","onInputChange","filterOption","options","promiseOptions","Promise","resolve","isCreatable","isLoading","loadingMessage","minHeightInput","createOptionPlaceholder","onCreateOption","currentValue","preparedStyled","base","state","isFunction","border","config","clearIndicatorProps","handleAsyncRequest","newValue","onPaste","e","pasteData","clipboardData","getData","pastedOptions","newInputOptions","acc","curVal","el","push","setTimeout","current","select","blur","regularSelect","ReactAsyncSelect","loadOptions","ReactSelect","CreatableSelect","formatCreateLabel","newOption","ErrorLabel"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r=require("react"),n=e(r),t=require("react-select"),o=e(t),i=e(require("lodash.isfunction")),l=e(require("react-select/lib/Async")),a=e(require("@propellerads/error-label")),u=require("@propellerads/icon"),c=e(require("styled-components")),s=require("@propellerads/stylevariables");function d(){return(d=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e}).apply(this,arguments)}function p(e,r){return r||(r=e.slice(0)),e.raw=r,e}function f(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function b(){var e=p(["\n position: absolute;\n display: flex;\n flex-direction: row;\n right: 1px;\n top: 0;\n height: ","px;\n align-items: center;\n"]);return b=function(){return e},e}function g(){var e=p(["\n position: relative;\n"]);return g=function(){return e},e}var v=c.div(g()),h=c.div(b(),s.lineHeight),m=function(e){var r=e||s.actionColor;return{control:function(e,n){return d({},e,{borderRadius:s.borderRadius,backgroundColor:n.isDisabled?"#ededed":"#fff",minHeight:s.lineHeight+"px",borderWidth:1,boxShadow:"none",borderColor:n.isFocused?r:s.gray80})},valueContainer:function(e){return d({},e,{overflow:"hidden",padding:"2px 2px 4px 2px",justifyContent:"flex-start"})},placeholder:function(){return{color:"#c0c0c0",fontWeight:100,paddingLeft:"4px",position:"absolute"}},clearIndicator:function(){return{color:"#c0c0c0",display:"inline-flex",marginRight:"4px"}},dropdownIndicator:function(){return{display:"none"}},indicatorSeparator:function(){return{display:"none"}},multiValue:function(e,n){return d({},e,{backgroundColor:n.data.isException?s.errorColor:r,color:s.white,borderRadius:s.borderRadius/2+"px",height:"22px",display:"flex",alignItems:"center",margin:"2px 0 0 2px"})},multiValueLabel:function(e){return d({},e,{color:s.white,padding:"0 0 0 5px",fontSize:"12px",borderRadius:0,display:"inline-flex",lineHeight:"1"})},multiValueRemove:function(e,n){var t=n.data;return d({},e,{padding:0,margin:"0 4px 0 2px",backgroundColor:t.isException?s.errorColor:r,cursor:"pointer",":hover":{backgroundColor:t.isException?s.errorColor:r,color:"white"}})},menu:function(e){return d({},e,{margin:0,borderRadius:0,zIndex:10})},menuList:function(e){return d({},e,{"::-webkit-scrollbar":{width:"7px"},"::-webkit-scrollbar-thumb":{borderRadius:"4px",backgroundColor:"rgba(0, 0, 0, .5)",boxShadow:"0 0 1px rgba(255, 255, 255, .5)"}})},option:function(e,n){var t=n.isFocused;return{backgroundColor:t?r:null,padding:"5px 10px",fontSize:"14px",color:t?s.white:s.black}},input:function(e){return d({},e,{height:"16px"})}}},x=[/(?:\b|\B)\n+\b/,/(?:\b|\B),\s\b/,/(?:\b|\B),+\b/],y=function(e){var r=e.elementId,t=e.getStyles,o=e.innerProps,i=o.ref,l=function(e,r){if(null==e)return{};var n,t,o={},i=Object.keys(e);for(t=0;t<i.length;t++)r.indexOf(n=i[t])>=0||(o[n]=e[n]);return o}(o,["ref"]);return n.createElement("div",Object.assign({},l,{ref:i,style:t("clearIndicator",e),id:r+"-clear"}),n.createElement(u.Close,{color:u.COLOR.GRAY_DARK,size:u.SIZE.MEDIUM_SMALL}))};Object.defineProperty(exports,"components",{enumerable:!0,get:function(){return t.components}}),exports.default=function(e){var t=r.useRef(null),u=r.useState(!1),c=u[0],s=u[1],p=e.components,b=void 0===p?{}:p,g=e.customStyles,C=void 0===g?{}:g,w=e.elementId,O=e.errors,I=void 0===O?[]:O,S=e.isAsync,E=void 0!==S&&S,j=e.isErrorLabelVisible,R=void 0!==j&&j,L=e.onChange,A=e.onInputChange,k=void 0===A?null:A,q=e.filterOption,H=void 0===q?null:q,M=e.options,P=void 0===M?[]:M,D=e.promiseOptions,z=void 0===D?function(){return Promise.resolve()}:D,B=e.searchableKeys,V=void 0===B?["label"]:B,_=e.value,F=e.actionColor,K=void 0===F?"":F,T=e.loadingMessage,U=void 0===T?function(){return"Loading..."}:T,W=e.minHeightInput,G=void 0===W?36:W,Y=void 0===_?[]:_,Z=d({},m(K),C,{control:function(e,r){var n=C.control&&i(C.control)?C.control(e,r):{};return d({},m(K).control(e,r),n,{border:I.length?"1px solid #ed3030":m(K).control(e,r).border,minHeight:G})}}),$=d({},e,{id:w,onChange:L},k&&{onInputChange:k},H&&{filterOption:H},{styles:Z,loadingMessage:c?function(){return"Enter two or more characters"}:U,components:d({ClearIndicator:function(e){return n.createElement(y,Object.assign({},e,{elementId:w}))}},b)}),J=n.createElement(l,Object.assign({},$,{loadOptions:function(e){return function(e){return!e.length||e.length<2?(s(!0),null):(c||s(!1),z(e))}(e)}})),N=n.createElement("div",{onPaste:function(e){var r=function(e,r,n){var t=function(e){for(var r,n=[],t=!1,o=function(e,r){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,r){if(e){if("string"==typeof e)return f(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,void 0):void 0}}(e))){n&&(e=n);var t=0;return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}(x);!((r=o()).done||(n=e.split(r.value)).length>1););return 1===n.length&&(t=(n=e.split(/\b\s+\b/)).length>1),{splits:n,specialHandle:t}}(e),o=t.splits;if(t.specialHandle){var i=o.join(" ").toLowerCase();return r.sort((function(e,r){return e.label.length>r.label.length?-1:e.label.length<r.label.length?1:0})).filter((function(e){return n.reduce((function(r,n){var t=String(e[n]).toLowerCase(),o=-1!==i.search(t);return o&&(i=i.replace(t,"")),r||o}),!1)}))}return o.map((function(e){return r.find((function(r){var t=e.trim().toLowerCase();return n.reduce((function(e,n){var o=String(r[n]).toLowerCase();return e||o===t}),!1)}))})).filter(Boolean)}(e.clipboardData.getData("text/plain"),P,V),n=r.reduce((function(e,r){return e.find((function(e){return e.value===r.value}))||e.push(r),e}),Y);0!==r.length&&(L(n),setTimeout((function(){t.current.select.blur()}),0))}},n.createElement(o,Object.assign({},$,{ref:t,options:P})));return n.createElement(v,null,E?J:N,I&&I.length>0&&R&&n.createElement(h,null,n.createElement(a,{elementId:w,errors:I})))};
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r=require("react"),n=e(r),t=require("react-select"),o=e(t),i=e(require("lodash.isfunction")),l=e(require("react-select/lib/Async")),a=e(require("@propellerads/error-label")),u=e(require("react-select/lib/Creatable")),c=require("@propellerads/icon"),s=e(require("styled-components")),d=require("@propellerads/stylevariables");function p(){return(p=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e}).apply(this,arguments)}function f(e,r){return r||(r=e.slice(0)),e.raw=r,e}function b(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function g(){var e=f(["\n position: absolute;\n display: flex;\n flex-direction: row;\n right: 1px;\n top: 0;\n height: ","px;\n align-items: center;\n"]);return g=function(){return e},e}function v(){var e=f(["\n position: relative;\n"]);return v=function(){return e},e}var h=s.div(v()),m=s.div(g(),d.lineHeight),x=function(e){var r=e||d.actionColor;return{control:function(e,n){return p({},e,{borderRadius:d.borderRadius,backgroundColor:n.isDisabled?"#ededed":"#fff",minHeight:d.lineHeight+"px",borderWidth:1,boxShadow:"none",borderColor:n.isFocused?r:d.gray80})},valueContainer:function(e){return p({},e,{overflow:"hidden",padding:"2px 2px 4px 2px",justifyContent:"flex-start"})},placeholder:function(){return{color:"#c0c0c0",fontWeight:100,paddingLeft:"4px",position:"absolute"}},clearIndicator:function(){return{color:"#c0c0c0",display:"inline-flex",marginRight:"4px"}},dropdownIndicator:function(){return{display:"none"}},indicatorSeparator:function(){return{display:"none"}},multiValue:function(e,n){return p({},e,{backgroundColor:n.data.isException?d.errorColor:r,color:d.white,borderRadius:d.borderRadius/2+"px",height:"22px",display:"flex",alignItems:"center",margin:"2px 0 0 2px"})},multiValueLabel:function(e){return p({},e,{color:d.white,padding:"0 0 0 5px",fontSize:"12px",borderRadius:0,display:"inline-flex",lineHeight:"1"})},multiValueRemove:function(e,n){var t=n.data;return p({},e,{padding:0,margin:"0 4px 0 2px",backgroundColor:t.isException?d.errorColor:r,cursor:"pointer",":hover":{backgroundColor:t.isException?d.errorColor:r,color:"white"}})},menu:function(e){return p({},e,{margin:0,borderRadius:0,zIndex:10})},menuList:function(e){return p({},e,{"::-webkit-scrollbar":{width:"7px"},"::-webkit-scrollbar-thumb":{borderRadius:"4px",backgroundColor:"rgba(0, 0, 0, .5)",boxShadow:"0 0 1px rgba(255, 255, 255, .5)"}})},option:function(e,n){var t=n.isFocused;return{backgroundColor:t?r:null,padding:"5px 10px",fontSize:"14px",color:t?d.white:d.black}},input:function(e){return p({},e,{height:"16px"})}}},y=[/(?:\b|\B)\n+\b/,/(?:\b|\B),\s\b/,/(?:\b|\B),+\b/],C=function(e){var r=e.elementId,t=e.getStyles,o=e.innerProps,i=o.ref,l=function(e,r){if(null==e)return{};var n,t,o={},i=Object.keys(e);for(t=0;t<i.length;t++)r.indexOf(n=i[t])>=0||(o[n]=e[n]);return o}(o,["ref"]);return n.createElement("div",Object.assign({},l,{ref:i,style:t("clearIndicator",e),id:r+"-clear"}),n.createElement(c.Close,{color:c.COLOR.GRAY_DARK,size:c.SIZE.MEDIUM_SMALL}))};Object.defineProperty(exports,"components",{enumerable:!0,get:function(){return t.components}}),exports.default=function(e){var t=r.useRef(null),c=r.useState(!1),s=c[0],d=c[1],f=e.components,g=void 0===f?{}:f,v=e.customStyles,O=void 0===v?{}:v,w=e.elementId,E=e.errors,I=void 0===E?[]:E,S=e.isAsync,j=void 0!==S&&S,L=e.isErrorLabelVisible,R=void 0!==L&&L,A=e.onChange,k=e.onInputChange,q=void 0===k?null:k,H=e.filterOption,M=void 0===H?null:H,P=e.options,D=void 0===P?[]:P,z=e.promiseOptions,B=void 0===z?function(){return Promise.resolve()}:z,V=e.searchableKeys,_=void 0===V?["label"]:V,F=e.value,K=e.actionColor,T=void 0===K?"":K,U=e.isCreatable,W=void 0!==U&&U,G=e.isLoading,Y=void 0!==G&&G,Z=e.loadingMessage,$=void 0===Z?function(){return"Loading..."}:Z,J=e.minHeightInput,N=void 0===J?36:J,Q=e.createOptionPlaceholder,X=void 0===Q?"Create ":Q,ee=e.onCreateOption,re=void 0===ee?function(){return null}:ee,ne=void 0===F?[]:F,te=p({},x(T),O,{control:function(e,r){var n=O.control&&i(O.control)?O.control(e,r):{};return p({},x(T).control(e,r),n,{border:I.length?"1px solid #ed3030":x(T).control(e,r).border,minHeight:N})}}),oe=p({},e,{id:w,onChange:A},q&&{onInputChange:q},M&&{filterOption:M},{styles:te,loadingMessage:s?function(){return"Enter two or more characters"}:$,components:p({ClearIndicator:function(e){return n.createElement(C,Object.assign({},e,{elementId:w}))}},g)}),ie=j?n.createElement(l,Object.assign({},oe,{loadOptions:function(e){return function(e){return!e.length||e.length<2?(d(!0),null):(s||d(!1),B(e))}(e)}})):n.createElement("div",{onPaste:function(e){var r=function(e,r,n){var t=function(e){for(var r,n=[],t=!1,o=function(e,r){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,r){if(e){if("string"==typeof e)return b(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,void 0):void 0}}(e))){n&&(e=n);var t=0;return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}(y);!((r=o()).done||(n=e.split(r.value)).length>1););return 1===n.length&&(t=(n=e.split(/\b\s+\b/)).length>1),{splits:n,specialHandle:t}}(e),o=t.splits;if(t.specialHandle){var i=o.join(" ").toLowerCase();return r.sort((function(e,r){return e.label.length>r.label.length?-1:e.label.length<r.label.length?1:0})).filter((function(e){return n.reduce((function(r,n){var t=String(e[n]).toLowerCase(),o=-1!==i.search(t);return o&&(i=i.replace(t,"")),r||o}),!1)}))}return o.map((function(e){return r.find((function(r){var t=e.trim().toLowerCase();return n.reduce((function(e,n){var o=String(r[n]).toLowerCase();return e||o===t}),!1)}))})).filter(Boolean)}(e.clipboardData.getData("text/plain"),D,_),n=r.reduce((function(e,r){return e.find((function(e){return e.value===r.value}))||e.push(r),e}),ne);0!==r.length&&(A(n),setTimeout((function(){t.current.select.blur()}),0))}},n.createElement(o,Object.assign({},oe,{ref:t,options:D}))),le=W?n.createElement(u,Object.assign({formatCreateLabel:function(e){return X+'"'+e+'"'},isLoading:Y,onCreateOption:function(e){return re(e)}},oe,{ref:t,options:D})):ie;return n.createElement(h,null,le,I&&I.length>0&&R&&n.createElement(m,null,n.createElement(a,{elementId:w,errors:I})))};
2
2
  //# sourceMappingURL=tags-input.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tags-input.cjs.production.min.js","sources":["../src/style.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport {\n lineHeight, actionColor, borderRadius, gray80, errorColor, black, white,\n} from '@propellerads/stylevariables';\n\nconst StyledTagsInput = styled.div`\n position: relative;\n`;\n\nconst TagsInputErrors = styled.div`\n position: absolute;\n display: flex;\n flex-direction: row;\n right: 1px;\n top: 0;\n height: ${lineHeight}px;\n align-items: center;\n`;\n\nconst prepareStyles = (customActionColor: string) => {\n const mainColor = customActionColor || actionColor;\n return {\n control: (styles, {isFocused, isDisabled}) => ({\n ...styles,\n borderRadius,\n backgroundColor: isDisabled ? '#ededed' : '#fff',\n minHeight: `${lineHeight}px`,\n borderWidth: 1,\n boxShadow: 'none',\n borderColor: isFocused ? mainColor : gray80,\n }),\n valueContainer: (styles) => ({\n ...styles,\n overflow: 'hidden',\n padding: '2px 2px 4px 2px',\n justifyContent: 'flex-start',\n }),\n placeholder: () => ({\n color: '#c0c0c0',\n fontWeight: 100,\n paddingLeft: '4px',\n position: 'absolute',\n }),\n clearIndicator: () => ({\n color: '#c0c0c0',\n display: 'inline-flex',\n marginRight: '4px',\n }),\n dropdownIndicator: () => ({\n display: 'none',\n }),\n indicatorSeparator: () => ({\n display: 'none',\n }),\n multiValue: (styles, {data}) => ({\n ...styles,\n backgroundColor: data.isException ? errorColor : mainColor,\n color: white,\n borderRadius: `${borderRadius / 2}px`,\n height: '22px',\n display: 'flex',\n alignItems: 'center',\n margin: '2px 0 0 2px',\n }),\n multiValueLabel: (styles) => ({\n ...styles,\n color: white,\n padding: '0 0 0 5px',\n fontSize: '12px',\n borderRadius: 0,\n display: 'inline-flex',\n lineHeight: '1',\n }),\n multiValueRemove: (styles, {data}) => ({\n ...styles,\n padding: 0,\n margin: '0 4px 0 2px',\n backgroundColor: data.isException ? errorColor : mainColor,\n cursor: 'pointer',\n ':hover': {\n backgroundColor: data.isException ? errorColor : mainColor,\n color: 'white',\n },\n }),\n menu: (styles) => ({\n ...styles,\n margin: 0,\n borderRadius: 0,\n zIndex: 10,\n }),\n menuList: (styles) => ({\n ...styles,\n '::-webkit-scrollbar': {\n width: '7px',\n },\n '::-webkit-scrollbar-thumb': {\n borderRadius: '4px',\n backgroundColor: 'rgba(0, 0, 0, .5)',\n boxShadow: '0 0 1px rgba(255, 255, 255, .5)',\n },\n }),\n option: (styles, {isFocused}) => ({\n backgroundColor: isFocused ? mainColor : null,\n padding: '5px 10px',\n fontSize: '14px',\n color: isFocused ? white : black,\n }),\n input: (styles) => ({\n ...styles,\n height: '16px',\n }),\n };\n};\n\nexport {prepareStyles, StyledTagsInput, TagsInputErrors};\n","import React, {useRef, useState} from 'react';\nimport ReactSelect, {components as reactSelectComponents} from 'react-select';\nimport isFunction from 'lodash.isfunction';\nimport ReactAsyncSelect from 'react-select/lib/Async';\nimport ErrorLabel from '@propellerads/error-label';\nimport {Close, SIZE, COLOR} from '@propellerads/icon';\n\nimport {TagsInputProps} from './types';\nimport {prepareStyles, StyledTagsInput, TagsInputErrors} from './style';\n\n// regexps by priority\nconst REGEXPS = [\n /(?:\\b|\\B)\\n+\\b/,\n /(?:\\b|\\B),\\s\\b/,\n /(?:\\b|\\B),+\\b/,\n];\n\ninterface SplitStringReturnValue {\n splits: string[]\n specialHandle: boolean\n}\n\nfunction splitString(value: string): SplitStringReturnValue {\n let splits: string[] = [];\n\n let specialHandle = false;\n // eslint-disable-next-line no-restricted-syntax\n for (const regex of REGEXPS) {\n splits = value.split(regex);\n if (splits.length > 1) {\n break;\n }\n }\n\n // special case. Need handle in special way\n if (splits.length === 1) {\n splits = value.split(/\\b\\s+\\b/);\n specialHandle = splits.length > 1;\n }\n\n return {\n splits,\n specialHandle,\n };\n}\n\nfunction searchSuitableOptions(pastedValue, availableOptions, searchableKeys) {\n const {splits, specialHandle} = splitString(pastedValue);\n\n if (specialHandle) {\n let rawPastedString = splits.join(' ')\n .toLowerCase();\n\n return availableOptions\n .sort((firstEl, secondEl) => {\n if (firstEl.label.length > secondEl.label.length) {\n return -1;\n }\n if (firstEl.label.length < secondEl.label.length) {\n return 1;\n }\n\n return 0;\n })\n .filter((option) => searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const position = rawPastedString.search(optionValue);\n const condition = position !== -1;\n if (condition) {\n rawPastedString = rawPastedString.replace(optionValue, '');\n }\n\n return prevValue || condition;\n }, false));\n }\n\n return splits.map((splitValue) => availableOptions.find((option) => {\n const comparableValue = splitValue.trim().toLowerCase();\n\n return searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const condition = optionValue === comparableValue;\n\n return prevValue || condition;\n }, false);\n }))\n .filter(Boolean);\n}\n\ninterface ClearIndicatorProps {\n // eslint-disable-next-line @typescript-eslint/ban-types\n getStyles: (clearIndicator: string, props: any) => {},\n innerProps: {\n ref: React.Ref<HTMLDivElement>\n },\n elementId: string,\n}\n\nconst ClearIndicator = (props: ClearIndicatorProps) => {\n const {\n elementId,\n getStyles,\n innerProps: {\n ref,\n ...restInnerProps\n },\n } = props;\n\n return (\n <div\n {...restInnerProps}\n ref={ref}\n style={getStyles('clearIndicator', props)}\n id={`${elementId}-clear`}\n >\n <Close\n color={COLOR.GRAY_DARK}\n size={SIZE.MEDIUM_SMALL}\n />\n </div>\n );\n};\n\nconst TagsInput = (props: TagsInputProps) => {\n const reactSelectElement = useRef<any>(null);\n const [showMinLenTip, setShowMinLenTip] = useState(false);\n\n const {\n components = {},\n customStyles = {},\n elementId,\n errors = [],\n isAsync = false,\n isErrorLabelVisible = false,\n onChange,\n onInputChange = null,\n filterOption = null,\n options = [],\n promiseOptions = () => Promise.resolve(),\n searchableKeys = [\n 'label',\n ],\n value = [],\n actionColor = '',\n isClearable = true,\n isDisabled = false,\n isLoading = false,\n isRtl = false,\n isMulti = true,\n isSearchable = true,\n cacheOptions = false,\n placeholder = 'Start typing...',\n noOptionsMessage = () => 'No options...',\n loadingMessage = () => 'Loading...',\n minHeightInput = 36,\n } = props;\n\n const currentValue = value;\n\n const preparedStyled = {\n ...prepareStyles(actionColor),\n ...customStyles,\n control: (base, state) => {\n const styles = (customStyles.control && isFunction(customStyles.control))\n ? customStyles.control(base, state)\n : {};\n\n return {\n ...prepareStyles(actionColor).control(base, state),\n ...styles,\n border: errors.length ? '1px solid #ed3030' : prepareStyles(actionColor).control(base, state).border,\n minHeight: minHeightInput,\n };\n },\n };\n\n const config = {\n ...props,\n id: elementId,\n onChange,\n ...(onInputChange && {onInputChange}),\n ...(filterOption && {filterOption}),\n styles: preparedStyled,\n loadingMessage: showMinLenTip ? () => 'Enter two or more characters' : loadingMessage,\n components: {\n ClearIndicator: (clearIndicatorProps) => (\n <ClearIndicator\n {...clearIndicatorProps}\n elementId={elementId}\n />\n ),\n ...components,\n },\n };\n\n const handleAsyncRequest = (newValue: any) => {\n if (!newValue.length || newValue.length < 2) {\n setShowMinLenTip(true);\n\n return null;\n }\n\n if (!showMinLenTip) {\n setShowMinLenTip(false);\n }\n\n return promiseOptions(newValue);\n };\n\n const onPaste = (e) => {\n const pasteData = e.clipboardData.getData('text/plain');\n\n const pastedOptions = searchSuitableOptions(pasteData, options, searchableKeys);\n\n const newInputOptions = pastedOptions.reduce((acc, curVal) => {\n if (!acc.find((el) => el.value === curVal.value)) {\n acc.push(curVal);\n }\n\n return acc;\n }, currentValue);\n\n if (pastedOptions.length !== 0) {\n onChange(newInputOptions);\n setTimeout(() => {\n reactSelectElement.current.select.blur();\n }, 0);\n }\n };\n\n const asyncSelect = (\n <ReactAsyncSelect\n {...config}\n loadOptions={(newValue) => handleAsyncRequest(newValue)}\n />\n );\n\n const select = (\n <div onPaste={onPaste}>\n <ReactSelect\n {...config}\n ref={reactSelectElement}\n options={options}\n />\n </div>\n );\n\n return (\n <StyledTagsInput>\n {isAsync ? asyncSelect : select}\n {errors && errors.length > 0 && isErrorLabelVisible && (\n <TagsInputErrors>\n <ErrorLabel\n elementId={elementId}\n errors={errors}\n />\n </TagsInputErrors>\n )}\n </StyledTagsInput>\n );\n};\n\nfunction customChecker(props, propName, component) {\n const {[propName]: propValue} = props;\n if (typeof propValue !== 'function') {\n return new Error(`Invalid prop \"${propName}\" passed to ${component}`);\n }\n\n const value = propValue();\n if (typeof value !== 'string' && !React.isValidElement(value)) {\n // eslint-disable-next-line max-len\n return new Error(`Invalid prop \"${propName}\" passed to ${component}. Function should return \"string\" or \"react.Node\"`);\n }\n\n return null;\n}\n\nexport {reactSelectComponents as components};\n\nexport default TagsInput;\n"],"names":["StyledTagsInput","styled","div","TagsInputErrors","lineHeight","prepareStyles","customActionColor","mainColor","actionColor","control","styles","borderRadius","backgroundColor","isDisabled","minHeight","borderWidth","boxShadow","borderColor","isFocused","gray80","valueContainer","overflow","padding","justifyContent","placeholder","color","fontWeight","paddingLeft","position","clearIndicator","display","marginRight","dropdownIndicator","indicatorSeparator","multiValue","data","isException","errorColor","white","height","alignItems","margin","multiValueLabel","fontSize","multiValueRemove","cursor","menu","zIndex","menuList","width","option","black","input","REGEXPS","ClearIndicator","props","elementId","getStyles","innerProps","ref","restInnerProps","React","style","id","Close","COLOR","GRAY_DARK","size","SIZE","MEDIUM_SMALL","reactSelectElement","useRef","useState","showMinLenTip","setShowMinLenTip","components","customStyles","errors","isAsync","isErrorLabelVisible","onChange","onInputChange","filterOption","options","promiseOptions","Promise","resolve","searchableKeys","value","loadingMessage","minHeightInput","currentValue","preparedStyled","base","state","isFunction","border","length","config","clearIndicatorProps","asyncSelect","ReactAsyncSelect","loadOptions","newValue","handleAsyncRequest","select","onPaste","e","pastedOptions","pastedValue","availableOptions","splits","specialHandle","split","splitString","rawPastedString","join","toLowerCase","sort","firstEl","secondEl","label","filter","reduce","prevValue","currValue","optionValue","String","condition","search","replace","map","splitValue","find","comparableValue","trim","Boolean","searchSuitableOptions","clipboardData","getData","newInputOptions","acc","curVal","el","push","setTimeout","current","blur","ReactSelect","ErrorLabel"],"mappings":"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"}
1
+ {"version":3,"file":"tags-input.cjs.production.min.js","sources":["../src/style.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport {\n lineHeight, actionColor, borderRadius, gray80, errorColor, black, white,\n} from '@propellerads/stylevariables';\n\nconst StyledTagsInput = styled.div`\n position: relative;\n`;\n\nconst TagsInputErrors = styled.div`\n position: absolute;\n display: flex;\n flex-direction: row;\n right: 1px;\n top: 0;\n height: ${lineHeight}px;\n align-items: center;\n`;\n\nconst prepareStyles = (customActionColor: string) => {\n const mainColor = customActionColor || actionColor;\n return {\n control: (styles, {isFocused, isDisabled}) => ({\n ...styles,\n borderRadius,\n backgroundColor: isDisabled ? '#ededed' : '#fff',\n minHeight: `${lineHeight}px`,\n borderWidth: 1,\n boxShadow: 'none',\n borderColor: isFocused ? mainColor : gray80,\n }),\n valueContainer: (styles) => ({\n ...styles,\n overflow: 'hidden',\n padding: '2px 2px 4px 2px',\n justifyContent: 'flex-start',\n }),\n placeholder: () => ({\n color: '#c0c0c0',\n fontWeight: 100,\n paddingLeft: '4px',\n position: 'absolute',\n }),\n clearIndicator: () => ({\n color: '#c0c0c0',\n display: 'inline-flex',\n marginRight: '4px',\n }),\n dropdownIndicator: () => ({\n display: 'none',\n }),\n indicatorSeparator: () => ({\n display: 'none',\n }),\n multiValue: (styles, {data}) => ({\n ...styles,\n backgroundColor: data.isException ? errorColor : mainColor,\n color: white,\n borderRadius: `${borderRadius / 2}px`,\n height: '22px',\n display: 'flex',\n alignItems: 'center',\n margin: '2px 0 0 2px',\n }),\n multiValueLabel: (styles) => ({\n ...styles,\n color: white,\n padding: '0 0 0 5px',\n fontSize: '12px',\n borderRadius: 0,\n display: 'inline-flex',\n lineHeight: '1',\n }),\n multiValueRemove: (styles, {data}) => ({\n ...styles,\n padding: 0,\n margin: '0 4px 0 2px',\n backgroundColor: data.isException ? errorColor : mainColor,\n cursor: 'pointer',\n ':hover': {\n backgroundColor: data.isException ? errorColor : mainColor,\n color: 'white',\n },\n }),\n menu: (styles) => ({\n ...styles,\n margin: 0,\n borderRadius: 0,\n zIndex: 10,\n }),\n menuList: (styles) => ({\n ...styles,\n '::-webkit-scrollbar': {\n width: '7px',\n },\n '::-webkit-scrollbar-thumb': {\n borderRadius: '4px',\n backgroundColor: 'rgba(0, 0, 0, .5)',\n boxShadow: '0 0 1px rgba(255, 255, 255, .5)',\n },\n }),\n option: (styles, {isFocused}) => ({\n backgroundColor: isFocused ? mainColor : null,\n padding: '5px 10px',\n fontSize: '14px',\n color: isFocused ? white : black,\n }),\n input: (styles) => ({\n ...styles,\n height: '16px',\n }),\n };\n};\n\nexport {prepareStyles, StyledTagsInput, TagsInputErrors};\n","import React, {useRef, useState} from 'react';\nimport ReactSelect, {components as reactSelectComponents} from 'react-select';\nimport isFunction from 'lodash.isfunction';\nimport ReactAsyncSelect from 'react-select/lib/Async';\nimport ErrorLabel from '@propellerads/error-label';\nimport CreatableSelect from 'react-select/lib/Creatable';\nimport {Close, SIZE, COLOR} from '@propellerads/icon';\n\nimport {TagsInputProps} from './types';\nimport {prepareStyles, StyledTagsInput, TagsInputErrors} from './style';\n\n// regexps by priority\nconst REGEXPS = [\n /(?:\\b|\\B)\\n+\\b/,\n /(?:\\b|\\B),\\s\\b/,\n /(?:\\b|\\B),+\\b/,\n];\n\ninterface SplitStringReturnValue {\n splits: string[]\n specialHandle: boolean\n}\n\nfunction splitString(value: string): SplitStringReturnValue {\n let splits: string[] = [];\n\n let specialHandle = false;\n // eslint-disable-next-line no-restricted-syntax\n for (const regex of REGEXPS) {\n splits = value.split(regex);\n if (splits.length > 1) {\n break;\n }\n }\n\n // special case. Need handle in special way\n if (splits.length === 1) {\n splits = value.split(/\\b\\s+\\b/);\n specialHandle = splits.length > 1;\n }\n\n return {\n splits,\n specialHandle,\n };\n}\n\nfunction searchSuitableOptions(pastedValue, availableOptions, searchableKeys) {\n const {splits, specialHandle} = splitString(pastedValue);\n\n if (specialHandle) {\n let rawPastedString = splits.join(' ')\n .toLowerCase();\n\n return availableOptions\n .sort((firstEl, secondEl) => {\n if (firstEl.label.length > secondEl.label.length) {\n return -1;\n }\n if (firstEl.label.length < secondEl.label.length) {\n return 1;\n }\n\n return 0;\n })\n .filter((option) => searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const position = rawPastedString.search(optionValue);\n const condition = position !== -1;\n if (condition) {\n rawPastedString = rawPastedString.replace(optionValue, '');\n }\n\n return prevValue || condition;\n }, false));\n }\n\n return splits.map((splitValue) => availableOptions.find((option) => {\n const comparableValue = splitValue.trim().toLowerCase();\n\n return searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const condition = optionValue === comparableValue;\n\n return prevValue || condition;\n }, false);\n }))\n .filter(Boolean);\n}\n\ninterface ClearIndicatorProps {\n // eslint-disable-next-line @typescript-eslint/ban-types\n getStyles: (clearIndicator: string, props: any) => {},\n innerProps: {\n ref: React.Ref<HTMLDivElement>\n },\n elementId: string,\n}\n\nconst ClearIndicator = (props: ClearIndicatorProps) => {\n const {\n elementId,\n getStyles,\n innerProps: {\n ref,\n ...restInnerProps\n },\n } = props;\n\n return (\n <div\n {...restInnerProps}\n ref={ref}\n style={getStyles('clearIndicator', props)}\n id={`${elementId}-clear`}\n >\n <Close\n color={COLOR.GRAY_DARK}\n size={SIZE.MEDIUM_SMALL}\n />\n </div>\n );\n};\n\nconst TagsInput = (props: TagsInputProps) => {\n const reactSelectElement = useRef<any>(null);\n const [showMinLenTip, setShowMinLenTip] = useState(false);\n\n const {\n components = {},\n customStyles = {},\n elementId,\n errors = [],\n isAsync = false,\n isErrorLabelVisible = false,\n onChange,\n onInputChange = null,\n filterOption = null,\n options = [],\n promiseOptions = () => Promise.resolve(),\n searchableKeys = [\n 'label',\n ],\n value = [],\n actionColor = '',\n isClearable = true,\n isCreatable = false,\n isDisabled = false,\n isLoading = false,\n isRtl = false,\n isMulti = true,\n isSearchable = true,\n cacheOptions = false,\n placeholder = 'Start typing...',\n noOptionsMessage = () => 'No options...',\n loadingMessage = () => 'Loading...',\n minHeightInput = 36,\n createOptionPlaceholder = 'Create ',\n onCreateOption = () => null,\n } = props;\n\n const currentValue = value;\n\n const preparedStyled = {\n ...prepareStyles(actionColor),\n ...customStyles,\n control: (base, state) => {\n const styles = (customStyles.control && isFunction(customStyles.control))\n ? customStyles.control(base, state)\n : {};\n\n return {\n ...prepareStyles(actionColor).control(base, state),\n ...styles,\n border: errors.length ? '1px solid #ed3030' : prepareStyles(actionColor).control(base, state).border,\n minHeight: minHeightInput,\n };\n },\n };\n\n const config = {\n ...props,\n id: elementId,\n onChange,\n ...(onInputChange && {onInputChange}),\n ...(filterOption && {filterOption}),\n styles: preparedStyled,\n loadingMessage: showMinLenTip ? () => 'Enter two or more characters' : loadingMessage,\n components: {\n ClearIndicator: (clearIndicatorProps) => (\n <ClearIndicator\n {...clearIndicatorProps}\n elementId={elementId}\n />\n ),\n ...components,\n },\n };\n\n const handleAsyncRequest = (newValue: any) => {\n if (!newValue.length || newValue.length < 2) {\n setShowMinLenTip(true);\n\n return null;\n }\n\n if (!showMinLenTip) {\n setShowMinLenTip(false);\n }\n\n return promiseOptions(newValue);\n };\n\n const onPaste = (e) => {\n const pasteData = e.clipboardData.getData('text/plain');\n\n const pastedOptions = searchSuitableOptions(pasteData, options, searchableKeys);\n\n const newInputOptions = pastedOptions.reduce((acc, curVal) => {\n if (!acc.find((el) => el.value === curVal.value)) {\n acc.push(curVal);\n }\n\n return acc;\n }, currentValue);\n\n if (pastedOptions.length !== 0) {\n onChange(newInputOptions);\n setTimeout(() => {\n reactSelectElement.current.select.blur();\n }, 0);\n }\n };\n\n const regularSelect = isAsync\n ? (\n <ReactAsyncSelect\n {...config}\n loadOptions={(newValue) => handleAsyncRequest(newValue)}\n />\n )\n : (\n <div onPaste={onPaste}>\n <ReactSelect\n {...config}\n ref={reactSelectElement}\n options={options}\n />\n </div>\n );\n\n const select = isCreatable\n ? (\n <CreatableSelect\n formatCreateLabel={(newValue) => `${createOptionPlaceholder}\"${newValue}\"`}\n isLoading={isLoading}\n onCreateOption={(newOption) => onCreateOption(newOption)}\n {...config}\n ref={reactSelectElement}\n options={options}\n />\n ) : regularSelect;\n\n return (\n <StyledTagsInput>\n {select}\n {errors && errors.length > 0 && isErrorLabelVisible && (\n <TagsInputErrors>\n <ErrorLabel\n elementId={elementId}\n errors={errors}\n />\n </TagsInputErrors>\n )}\n </StyledTagsInput>\n );\n};\n\nexport {reactSelectComponents as components};\n\nexport default TagsInput;\n"],"names":["StyledTagsInput","styled","div","TagsInputErrors","lineHeight","prepareStyles","customActionColor","mainColor","actionColor","control","styles","borderRadius","backgroundColor","isDisabled","minHeight","borderWidth","boxShadow","borderColor","isFocused","gray80","valueContainer","overflow","padding","justifyContent","placeholder","color","fontWeight","paddingLeft","position","clearIndicator","display","marginRight","dropdownIndicator","indicatorSeparator","multiValue","data","isException","errorColor","white","height","alignItems","margin","multiValueLabel","fontSize","multiValueRemove","cursor","menu","zIndex","menuList","width","option","black","input","REGEXPS","ClearIndicator","props","elementId","getStyles","innerProps","ref","restInnerProps","React","style","id","Close","COLOR","GRAY_DARK","size","SIZE","MEDIUM_SMALL","reactSelectElement","useRef","useState","showMinLenTip","setShowMinLenTip","components","customStyles","errors","isAsync","isErrorLabelVisible","onChange","onInputChange","filterOption","options","promiseOptions","Promise","resolve","searchableKeys","value","isCreatable","isLoading","loadingMessage","minHeightInput","createOptionPlaceholder","onCreateOption","currentValue","preparedStyled","base","state","isFunction","border","length","config","clearIndicatorProps","regularSelect","ReactAsyncSelect","loadOptions","newValue","handleAsyncRequest","onPaste","e","pastedOptions","pastedValue","availableOptions","splits","specialHandle","split","splitString","rawPastedString","join","toLowerCase","sort","firstEl","secondEl","label","filter","reduce","prevValue","currValue","optionValue","String","condition","search","replace","map","splitValue","find","comparableValue","trim","Boolean","searchSuitableOptions","clipboardData","getData","newInputOptions","acc","curVal","el","push","setTimeout","current","select","blur","ReactSelect","CreatableSelect","formatCreateLabel","newOption","ErrorLabel"],"mappings":"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"}
@@ -4,6 +4,7 @@ export { components } from 'react-select';
4
4
  import isFunction from 'lodash.isfunction';
5
5
  import ReactAsyncSelect from 'react-select/lib/Async';
6
6
  import ErrorLabel from '@propellerads/error-label';
7
+ import CreatableSelect from 'react-select/lib/Creatable';
7
8
  import { Close, COLOR, SIZE } from '@propellerads/icon';
8
9
  import styled from 'styled-components';
9
10
  import { borderRadius, lineHeight, gray80, errorColor, white, black, actionColor } from '@propellerads/stylevariables';
@@ -355,12 +356,23 @@ var TagsInput = function TagsInput(props) {
355
356
  value = _props$value === void 0 ? [] : _props$value,
356
357
  _props$actionColor = props.actionColor,
357
358
  actionColor = _props$actionColor === void 0 ? '' : _props$actionColor,
359
+ _props$isCreatable = props.isCreatable,
360
+ isCreatable = _props$isCreatable === void 0 ? false : _props$isCreatable,
361
+ _props$isLoading = props.isLoading,
362
+ isLoading = _props$isLoading === void 0 ? false : _props$isLoading,
358
363
  _props$loadingMessage = props.loadingMessage,
359
364
  loadingMessage = _props$loadingMessage === void 0 ? function () {
360
365
  return 'Loading...';
361
366
  } : _props$loadingMessage,
362
367
  _props$minHeightInput = props.minHeightInput,
363
- minHeightInput = _props$minHeightInput === void 0 ? 36 : _props$minHeightInput;
368
+ minHeightInput = _props$minHeightInput === void 0 ? 36 : _props$minHeightInput,
369
+ _props$createOptionPl = props.createOptionPlaceholder,
370
+ createOptionPlaceholder = _props$createOptionPl === void 0 ? 'Create ' : _props$createOptionPl,
371
+ _props$onCreateOption = props.onCreateOption,
372
+ _onCreateOption = _props$onCreateOption === void 0 ? function () {
373
+ return null;
374
+ } : _props$onCreateOption;
375
+
364
376
  var currentValue = value;
365
377
 
366
378
  var preparedStyled = _extends({}, prepareStyles(actionColor), customStyles, {
@@ -428,18 +440,29 @@ var TagsInput = function TagsInput(props) {
428
440
  }
429
441
  };
430
442
 
431
- var asyncSelect = React.createElement(ReactAsyncSelect, Object.assign({}, config, {
443
+ var regularSelect = isAsync ? React.createElement(ReactAsyncSelect, Object.assign({}, config, {
432
444
  loadOptions: function loadOptions(newValue) {
433
445
  return handleAsyncRequest(newValue);
434
446
  }
435
- }));
436
- var select = React.createElement("div", {
447
+ })) : React.createElement("div", {
437
448
  onPaste: onPaste
438
449
  }, React.createElement(ReactSelect, Object.assign({}, config, {
439
450
  ref: reactSelectElement,
440
451
  options: options
441
452
  })));
442
- return React.createElement(StyledTagsInput, null, isAsync ? asyncSelect : select, errors && errors.length > 0 && isErrorLabelVisible && React.createElement(TagsInputErrors, null, React.createElement(ErrorLabel, {
453
+ var select = isCreatable ? React.createElement(CreatableSelect, Object.assign({
454
+ formatCreateLabel: function formatCreateLabel(newValue) {
455
+ return createOptionPlaceholder + "\"" + newValue + "\"";
456
+ },
457
+ isLoading: isLoading,
458
+ onCreateOption: function onCreateOption(newOption) {
459
+ return _onCreateOption(newOption);
460
+ }
461
+ }, config, {
462
+ ref: reactSelectElement,
463
+ options: options
464
+ })) : regularSelect;
465
+ return React.createElement(StyledTagsInput, null, select, errors && errors.length > 0 && isErrorLabelVisible && React.createElement(TagsInputErrors, null, React.createElement(ErrorLabel, {
443
466
  elementId: elementId,
444
467
  errors: errors
445
468
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"tags-input.esm.js","sources":["../src/style.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport {\n lineHeight, actionColor, borderRadius, gray80, errorColor, black, white,\n} from '@propellerads/stylevariables';\n\nconst StyledTagsInput = styled.div`\n position: relative;\n`;\n\nconst TagsInputErrors = styled.div`\n position: absolute;\n display: flex;\n flex-direction: row;\n right: 1px;\n top: 0;\n height: ${lineHeight}px;\n align-items: center;\n`;\n\nconst prepareStyles = (customActionColor: string) => {\n const mainColor = customActionColor || actionColor;\n return {\n control: (styles, {isFocused, isDisabled}) => ({\n ...styles,\n borderRadius,\n backgroundColor: isDisabled ? '#ededed' : '#fff',\n minHeight: `${lineHeight}px`,\n borderWidth: 1,\n boxShadow: 'none',\n borderColor: isFocused ? mainColor : gray80,\n }),\n valueContainer: (styles) => ({\n ...styles,\n overflow: 'hidden',\n padding: '2px 2px 4px 2px',\n justifyContent: 'flex-start',\n }),\n placeholder: () => ({\n color: '#c0c0c0',\n fontWeight: 100,\n paddingLeft: '4px',\n position: 'absolute',\n }),\n clearIndicator: () => ({\n color: '#c0c0c0',\n display: 'inline-flex',\n marginRight: '4px',\n }),\n dropdownIndicator: () => ({\n display: 'none',\n }),\n indicatorSeparator: () => ({\n display: 'none',\n }),\n multiValue: (styles, {data}) => ({\n ...styles,\n backgroundColor: data.isException ? errorColor : mainColor,\n color: white,\n borderRadius: `${borderRadius / 2}px`,\n height: '22px',\n display: 'flex',\n alignItems: 'center',\n margin: '2px 0 0 2px',\n }),\n multiValueLabel: (styles) => ({\n ...styles,\n color: white,\n padding: '0 0 0 5px',\n fontSize: '12px',\n borderRadius: 0,\n display: 'inline-flex',\n lineHeight: '1',\n }),\n multiValueRemove: (styles, {data}) => ({\n ...styles,\n padding: 0,\n margin: '0 4px 0 2px',\n backgroundColor: data.isException ? errorColor : mainColor,\n cursor: 'pointer',\n ':hover': {\n backgroundColor: data.isException ? errorColor : mainColor,\n color: 'white',\n },\n }),\n menu: (styles) => ({\n ...styles,\n margin: 0,\n borderRadius: 0,\n zIndex: 10,\n }),\n menuList: (styles) => ({\n ...styles,\n '::-webkit-scrollbar': {\n width: '7px',\n },\n '::-webkit-scrollbar-thumb': {\n borderRadius: '4px',\n backgroundColor: 'rgba(0, 0, 0, .5)',\n boxShadow: '0 0 1px rgba(255, 255, 255, .5)',\n },\n }),\n option: (styles, {isFocused}) => ({\n backgroundColor: isFocused ? mainColor : null,\n padding: '5px 10px',\n fontSize: '14px',\n color: isFocused ? white : black,\n }),\n input: (styles) => ({\n ...styles,\n height: '16px',\n }),\n };\n};\n\nexport {prepareStyles, StyledTagsInput, TagsInputErrors};\n","import React, {useRef, useState} from 'react';\nimport ReactSelect, {components as reactSelectComponents} from 'react-select';\nimport isFunction from 'lodash.isfunction';\nimport ReactAsyncSelect from 'react-select/lib/Async';\nimport ErrorLabel from '@propellerads/error-label';\nimport {Close, SIZE, COLOR} from '@propellerads/icon';\n\nimport {TagsInputProps} from './types';\nimport {prepareStyles, StyledTagsInput, TagsInputErrors} from './style';\n\n// regexps by priority\nconst REGEXPS = [\n /(?:\\b|\\B)\\n+\\b/,\n /(?:\\b|\\B),\\s\\b/,\n /(?:\\b|\\B),+\\b/,\n];\n\ninterface SplitStringReturnValue {\n splits: string[]\n specialHandle: boolean\n}\n\nfunction splitString(value: string): SplitStringReturnValue {\n let splits: string[] = [];\n\n let specialHandle = false;\n // eslint-disable-next-line no-restricted-syntax\n for (const regex of REGEXPS) {\n splits = value.split(regex);\n if (splits.length > 1) {\n break;\n }\n }\n\n // special case. Need handle in special way\n if (splits.length === 1) {\n splits = value.split(/\\b\\s+\\b/);\n specialHandle = splits.length > 1;\n }\n\n return {\n splits,\n specialHandle,\n };\n}\n\nfunction searchSuitableOptions(pastedValue, availableOptions, searchableKeys) {\n const {splits, specialHandle} = splitString(pastedValue);\n\n if (specialHandle) {\n let rawPastedString = splits.join(' ')\n .toLowerCase();\n\n return availableOptions\n .sort((firstEl, secondEl) => {\n if (firstEl.label.length > secondEl.label.length) {\n return -1;\n }\n if (firstEl.label.length < secondEl.label.length) {\n return 1;\n }\n\n return 0;\n })\n .filter((option) => searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const position = rawPastedString.search(optionValue);\n const condition = position !== -1;\n if (condition) {\n rawPastedString = rawPastedString.replace(optionValue, '');\n }\n\n return prevValue || condition;\n }, false));\n }\n\n return splits.map((splitValue) => availableOptions.find((option) => {\n const comparableValue = splitValue.trim().toLowerCase();\n\n return searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const condition = optionValue === comparableValue;\n\n return prevValue || condition;\n }, false);\n }))\n .filter(Boolean);\n}\n\ninterface ClearIndicatorProps {\n // eslint-disable-next-line @typescript-eslint/ban-types\n getStyles: (clearIndicator: string, props: any) => {},\n innerProps: {\n ref: React.Ref<HTMLDivElement>\n },\n elementId: string,\n}\n\nconst ClearIndicator = (props: ClearIndicatorProps) => {\n const {\n elementId,\n getStyles,\n innerProps: {\n ref,\n ...restInnerProps\n },\n } = props;\n\n return (\n <div\n {...restInnerProps}\n ref={ref}\n style={getStyles('clearIndicator', props)}\n id={`${elementId}-clear`}\n >\n <Close\n color={COLOR.GRAY_DARK}\n size={SIZE.MEDIUM_SMALL}\n />\n </div>\n );\n};\n\nconst TagsInput = (props: TagsInputProps) => {\n const reactSelectElement = useRef<any>(null);\n const [showMinLenTip, setShowMinLenTip] = useState(false);\n\n const {\n components = {},\n customStyles = {},\n elementId,\n errors = [],\n isAsync = false,\n isErrorLabelVisible = false,\n onChange,\n onInputChange = null,\n filterOption = null,\n options = [],\n promiseOptions = () => Promise.resolve(),\n searchableKeys = [\n 'label',\n ],\n value = [],\n actionColor = '',\n isClearable = true,\n isDisabled = false,\n isLoading = false,\n isRtl = false,\n isMulti = true,\n isSearchable = true,\n cacheOptions = false,\n placeholder = 'Start typing...',\n noOptionsMessage = () => 'No options...',\n loadingMessage = () => 'Loading...',\n minHeightInput = 36,\n } = props;\n\n const currentValue = value;\n\n const preparedStyled = {\n ...prepareStyles(actionColor),\n ...customStyles,\n control: (base, state) => {\n const styles = (customStyles.control && isFunction(customStyles.control))\n ? customStyles.control(base, state)\n : {};\n\n return {\n ...prepareStyles(actionColor).control(base, state),\n ...styles,\n border: errors.length ? '1px solid #ed3030' : prepareStyles(actionColor).control(base, state).border,\n minHeight: minHeightInput,\n };\n },\n };\n\n const config = {\n ...props,\n id: elementId,\n onChange,\n ...(onInputChange && {onInputChange}),\n ...(filterOption && {filterOption}),\n styles: preparedStyled,\n loadingMessage: showMinLenTip ? () => 'Enter two or more characters' : loadingMessage,\n components: {\n ClearIndicator: (clearIndicatorProps) => (\n <ClearIndicator\n {...clearIndicatorProps}\n elementId={elementId}\n />\n ),\n ...components,\n },\n };\n\n const handleAsyncRequest = (newValue: any) => {\n if (!newValue.length || newValue.length < 2) {\n setShowMinLenTip(true);\n\n return null;\n }\n\n if (!showMinLenTip) {\n setShowMinLenTip(false);\n }\n\n return promiseOptions(newValue);\n };\n\n const onPaste = (e) => {\n const pasteData = e.clipboardData.getData('text/plain');\n\n const pastedOptions = searchSuitableOptions(pasteData, options, searchableKeys);\n\n const newInputOptions = pastedOptions.reduce((acc, curVal) => {\n if (!acc.find((el) => el.value === curVal.value)) {\n acc.push(curVal);\n }\n\n return acc;\n }, currentValue);\n\n if (pastedOptions.length !== 0) {\n onChange(newInputOptions);\n setTimeout(() => {\n reactSelectElement.current.select.blur();\n }, 0);\n }\n };\n\n const asyncSelect = (\n <ReactAsyncSelect\n {...config}\n loadOptions={(newValue) => handleAsyncRequest(newValue)}\n />\n );\n\n const select = (\n <div onPaste={onPaste}>\n <ReactSelect\n {...config}\n ref={reactSelectElement}\n options={options}\n />\n </div>\n );\n\n return (\n <StyledTagsInput>\n {isAsync ? asyncSelect : select}\n {errors && errors.length > 0 && isErrorLabelVisible && (\n <TagsInputErrors>\n <ErrorLabel\n elementId={elementId}\n errors={errors}\n />\n </TagsInputErrors>\n )}\n </StyledTagsInput>\n );\n};\n\nfunction customChecker(props, propName, component) {\n const {[propName]: propValue} = props;\n if (typeof propValue !== 'function') {\n return new Error(`Invalid prop \"${propName}\" passed to ${component}`);\n }\n\n const value = propValue();\n if (typeof value !== 'string' && !React.isValidElement(value)) {\n // eslint-disable-next-line max-len\n return new Error(`Invalid prop \"${propName}\" passed to ${component}. Function should return \"string\" or \"react.Node\"`);\n }\n\n return null;\n}\n\nexport {reactSelectComponents as components};\n\nexport default TagsInput;\n"],"names":["StyledTagsInput","styled","div","TagsInputErrors","lineHeight","prepareStyles","customActionColor","mainColor","actionColor","control","styles","isFocused","isDisabled","borderRadius","backgroundColor","minHeight","borderWidth","boxShadow","borderColor","gray80","valueContainer","overflow","padding","justifyContent","placeholder","color","fontWeight","paddingLeft","position","clearIndicator","display","marginRight","dropdownIndicator","indicatorSeparator","multiValue","data","isException","errorColor","white","height","alignItems","margin","multiValueLabel","fontSize","multiValueRemove","cursor","menu","zIndex","menuList","width","option","black","input","REGEXPS","splitString","value","splits","specialHandle","regex","split","length","searchSuitableOptions","pastedValue","availableOptions","searchableKeys","rawPastedString","join","toLowerCase","sort","firstEl","secondEl","label","filter","reduce","prevValue","currValue","optionValue","String","search","condition","replace","map","splitValue","find","comparableValue","trim","Boolean","ClearIndicator","props","elementId","getStyles","innerProps","ref","restInnerProps","React","style","id","Close","COLOR","GRAY_DARK","size","SIZE","MEDIUM_SMALL","TagsInput","reactSelectElement","useRef","useState","showMinLenTip","setShowMinLenTip","components","customStyles","errors","isAsync","isErrorLabelVisible","onChange","onInputChange","filterOption","options","promiseOptions","Promise","resolve","loadingMessage","minHeightInput","currentValue","preparedStyled","base","state","isFunction","border","config","clearIndicatorProps","handleAsyncRequest","newValue","onPaste","e","pasteData","clipboardData","getData","pastedOptions","newInputOptions","acc","curVal","el","push","setTimeout","current","select","blur","asyncSelect","ReactAsyncSelect","loadOptions","ReactSelect","ErrorLabel"],"mappings":"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"}
1
+ {"version":3,"file":"tags-input.esm.js","sources":["../src/style.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport {\n lineHeight, actionColor, borderRadius, gray80, errorColor, black, white,\n} from '@propellerads/stylevariables';\n\nconst StyledTagsInput = styled.div`\n position: relative;\n`;\n\nconst TagsInputErrors = styled.div`\n position: absolute;\n display: flex;\n flex-direction: row;\n right: 1px;\n top: 0;\n height: ${lineHeight}px;\n align-items: center;\n`;\n\nconst prepareStyles = (customActionColor: string) => {\n const mainColor = customActionColor || actionColor;\n return {\n control: (styles, {isFocused, isDisabled}) => ({\n ...styles,\n borderRadius,\n backgroundColor: isDisabled ? '#ededed' : '#fff',\n minHeight: `${lineHeight}px`,\n borderWidth: 1,\n boxShadow: 'none',\n borderColor: isFocused ? mainColor : gray80,\n }),\n valueContainer: (styles) => ({\n ...styles,\n overflow: 'hidden',\n padding: '2px 2px 4px 2px',\n justifyContent: 'flex-start',\n }),\n placeholder: () => ({\n color: '#c0c0c0',\n fontWeight: 100,\n paddingLeft: '4px',\n position: 'absolute',\n }),\n clearIndicator: () => ({\n color: '#c0c0c0',\n display: 'inline-flex',\n marginRight: '4px',\n }),\n dropdownIndicator: () => ({\n display: 'none',\n }),\n indicatorSeparator: () => ({\n display: 'none',\n }),\n multiValue: (styles, {data}) => ({\n ...styles,\n backgroundColor: data.isException ? errorColor : mainColor,\n color: white,\n borderRadius: `${borderRadius / 2}px`,\n height: '22px',\n display: 'flex',\n alignItems: 'center',\n margin: '2px 0 0 2px',\n }),\n multiValueLabel: (styles) => ({\n ...styles,\n color: white,\n padding: '0 0 0 5px',\n fontSize: '12px',\n borderRadius: 0,\n display: 'inline-flex',\n lineHeight: '1',\n }),\n multiValueRemove: (styles, {data}) => ({\n ...styles,\n padding: 0,\n margin: '0 4px 0 2px',\n backgroundColor: data.isException ? errorColor : mainColor,\n cursor: 'pointer',\n ':hover': {\n backgroundColor: data.isException ? errorColor : mainColor,\n color: 'white',\n },\n }),\n menu: (styles) => ({\n ...styles,\n margin: 0,\n borderRadius: 0,\n zIndex: 10,\n }),\n menuList: (styles) => ({\n ...styles,\n '::-webkit-scrollbar': {\n width: '7px',\n },\n '::-webkit-scrollbar-thumb': {\n borderRadius: '4px',\n backgroundColor: 'rgba(0, 0, 0, .5)',\n boxShadow: '0 0 1px rgba(255, 255, 255, .5)',\n },\n }),\n option: (styles, {isFocused}) => ({\n backgroundColor: isFocused ? mainColor : null,\n padding: '5px 10px',\n fontSize: '14px',\n color: isFocused ? white : black,\n }),\n input: (styles) => ({\n ...styles,\n height: '16px',\n }),\n };\n};\n\nexport {prepareStyles, StyledTagsInput, TagsInputErrors};\n","import React, {useRef, useState} from 'react';\nimport ReactSelect, {components as reactSelectComponents} from 'react-select';\nimport isFunction from 'lodash.isfunction';\nimport ReactAsyncSelect from 'react-select/lib/Async';\nimport ErrorLabel from '@propellerads/error-label';\nimport CreatableSelect from 'react-select/lib/Creatable';\nimport {Close, SIZE, COLOR} from '@propellerads/icon';\n\nimport {TagsInputProps} from './types';\nimport {prepareStyles, StyledTagsInput, TagsInputErrors} from './style';\n\n// regexps by priority\nconst REGEXPS = [\n /(?:\\b|\\B)\\n+\\b/,\n /(?:\\b|\\B),\\s\\b/,\n /(?:\\b|\\B),+\\b/,\n];\n\ninterface SplitStringReturnValue {\n splits: string[]\n specialHandle: boolean\n}\n\nfunction splitString(value: string): SplitStringReturnValue {\n let splits: string[] = [];\n\n let specialHandle = false;\n // eslint-disable-next-line no-restricted-syntax\n for (const regex of REGEXPS) {\n splits = value.split(regex);\n if (splits.length > 1) {\n break;\n }\n }\n\n // special case. Need handle in special way\n if (splits.length === 1) {\n splits = value.split(/\\b\\s+\\b/);\n specialHandle = splits.length > 1;\n }\n\n return {\n splits,\n specialHandle,\n };\n}\n\nfunction searchSuitableOptions(pastedValue, availableOptions, searchableKeys) {\n const {splits, specialHandle} = splitString(pastedValue);\n\n if (specialHandle) {\n let rawPastedString = splits.join(' ')\n .toLowerCase();\n\n return availableOptions\n .sort((firstEl, secondEl) => {\n if (firstEl.label.length > secondEl.label.length) {\n return -1;\n }\n if (firstEl.label.length < secondEl.label.length) {\n return 1;\n }\n\n return 0;\n })\n .filter((option) => searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const position = rawPastedString.search(optionValue);\n const condition = position !== -1;\n if (condition) {\n rawPastedString = rawPastedString.replace(optionValue, '');\n }\n\n return prevValue || condition;\n }, false));\n }\n\n return splits.map((splitValue) => availableOptions.find((option) => {\n const comparableValue = splitValue.trim().toLowerCase();\n\n return searchableKeys.reduce((prevValue, currValue) => {\n const optionValue = String(option[currValue])\n .toLowerCase();\n const condition = optionValue === comparableValue;\n\n return prevValue || condition;\n }, false);\n }))\n .filter(Boolean);\n}\n\ninterface ClearIndicatorProps {\n // eslint-disable-next-line @typescript-eslint/ban-types\n getStyles: (clearIndicator: string, props: any) => {},\n innerProps: {\n ref: React.Ref<HTMLDivElement>\n },\n elementId: string,\n}\n\nconst ClearIndicator = (props: ClearIndicatorProps) => {\n const {\n elementId,\n getStyles,\n innerProps: {\n ref,\n ...restInnerProps\n },\n } = props;\n\n return (\n <div\n {...restInnerProps}\n ref={ref}\n style={getStyles('clearIndicator', props)}\n id={`${elementId}-clear`}\n >\n <Close\n color={COLOR.GRAY_DARK}\n size={SIZE.MEDIUM_SMALL}\n />\n </div>\n );\n};\n\nconst TagsInput = (props: TagsInputProps) => {\n const reactSelectElement = useRef<any>(null);\n const [showMinLenTip, setShowMinLenTip] = useState(false);\n\n const {\n components = {},\n customStyles = {},\n elementId,\n errors = [],\n isAsync = false,\n isErrorLabelVisible = false,\n onChange,\n onInputChange = null,\n filterOption = null,\n options = [],\n promiseOptions = () => Promise.resolve(),\n searchableKeys = [\n 'label',\n ],\n value = [],\n actionColor = '',\n isClearable = true,\n isCreatable = false,\n isDisabled = false,\n isLoading = false,\n isRtl = false,\n isMulti = true,\n isSearchable = true,\n cacheOptions = false,\n placeholder = 'Start typing...',\n noOptionsMessage = () => 'No options...',\n loadingMessage = () => 'Loading...',\n minHeightInput = 36,\n createOptionPlaceholder = 'Create ',\n onCreateOption = () => null,\n } = props;\n\n const currentValue = value;\n\n const preparedStyled = {\n ...prepareStyles(actionColor),\n ...customStyles,\n control: (base, state) => {\n const styles = (customStyles.control && isFunction(customStyles.control))\n ? customStyles.control(base, state)\n : {};\n\n return {\n ...prepareStyles(actionColor).control(base, state),\n ...styles,\n border: errors.length ? '1px solid #ed3030' : prepareStyles(actionColor).control(base, state).border,\n minHeight: minHeightInput,\n };\n },\n };\n\n const config = {\n ...props,\n id: elementId,\n onChange,\n ...(onInputChange && {onInputChange}),\n ...(filterOption && {filterOption}),\n styles: preparedStyled,\n loadingMessage: showMinLenTip ? () => 'Enter two or more characters' : loadingMessage,\n components: {\n ClearIndicator: (clearIndicatorProps) => (\n <ClearIndicator\n {...clearIndicatorProps}\n elementId={elementId}\n />\n ),\n ...components,\n },\n };\n\n const handleAsyncRequest = (newValue: any) => {\n if (!newValue.length || newValue.length < 2) {\n setShowMinLenTip(true);\n\n return null;\n }\n\n if (!showMinLenTip) {\n setShowMinLenTip(false);\n }\n\n return promiseOptions(newValue);\n };\n\n const onPaste = (e) => {\n const pasteData = e.clipboardData.getData('text/plain');\n\n const pastedOptions = searchSuitableOptions(pasteData, options, searchableKeys);\n\n const newInputOptions = pastedOptions.reduce((acc, curVal) => {\n if (!acc.find((el) => el.value === curVal.value)) {\n acc.push(curVal);\n }\n\n return acc;\n }, currentValue);\n\n if (pastedOptions.length !== 0) {\n onChange(newInputOptions);\n setTimeout(() => {\n reactSelectElement.current.select.blur();\n }, 0);\n }\n };\n\n const regularSelect = isAsync\n ? (\n <ReactAsyncSelect\n {...config}\n loadOptions={(newValue) => handleAsyncRequest(newValue)}\n />\n )\n : (\n <div onPaste={onPaste}>\n <ReactSelect\n {...config}\n ref={reactSelectElement}\n options={options}\n />\n </div>\n );\n\n const select = isCreatable\n ? (\n <CreatableSelect\n formatCreateLabel={(newValue) => `${createOptionPlaceholder}\"${newValue}\"`}\n isLoading={isLoading}\n onCreateOption={(newOption) => onCreateOption(newOption)}\n {...config}\n ref={reactSelectElement}\n options={options}\n />\n ) : regularSelect;\n\n return (\n <StyledTagsInput>\n {select}\n {errors && errors.length > 0 && isErrorLabelVisible && (\n <TagsInputErrors>\n <ErrorLabel\n elementId={elementId}\n errors={errors}\n />\n </TagsInputErrors>\n )}\n </StyledTagsInput>\n );\n};\n\nexport {reactSelectComponents as components};\n\nexport default TagsInput;\n"],"names":["StyledTagsInput","styled","div","TagsInputErrors","lineHeight","prepareStyles","customActionColor","mainColor","actionColor","control","styles","isFocused","isDisabled","borderRadius","backgroundColor","minHeight","borderWidth","boxShadow","borderColor","gray80","valueContainer","overflow","padding","justifyContent","placeholder","color","fontWeight","paddingLeft","position","clearIndicator","display","marginRight","dropdownIndicator","indicatorSeparator","multiValue","data","isException","errorColor","white","height","alignItems","margin","multiValueLabel","fontSize","multiValueRemove","cursor","menu","zIndex","menuList","width","option","black","input","REGEXPS","splitString","value","splits","specialHandle","regex","split","length","searchSuitableOptions","pastedValue","availableOptions","searchableKeys","rawPastedString","join","toLowerCase","sort","firstEl","secondEl","label","filter","reduce","prevValue","currValue","optionValue","String","search","condition","replace","map","splitValue","find","comparableValue","trim","Boolean","ClearIndicator","props","elementId","getStyles","innerProps","ref","restInnerProps","React","style","id","Close","COLOR","GRAY_DARK","size","SIZE","MEDIUM_SMALL","TagsInput","reactSelectElement","useRef","useState","showMinLenTip","setShowMinLenTip","components","customStyles","errors","isAsync","isErrorLabelVisible","onChange","onInputChange","filterOption","options","promiseOptions","Promise","resolve","isCreatable","isLoading","loadingMessage","minHeightInput","createOptionPlaceholder","onCreateOption","currentValue","preparedStyled","base","state","isFunction","border","config","clearIndicatorProps","handleAsyncRequest","newValue","onPaste","e","pasteData","clipboardData","getData","pastedOptions","newInputOptions","acc","curVal","el","push","setTimeout","current","select","blur","regularSelect","ReactAsyncSelect","loadOptions","ReactSelect","CreatableSelect","formatCreateLabel","newOption","ErrorLabel"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -22,6 +22,7 @@ export interface TagsInputProps {
22
22
  searchableKeys?: string[];
23
23
  value?: Option[];
24
24
  isClearable?: boolean;
25
+ isCreatable?: boolean;
25
26
  isDisabled?: boolean;
26
27
  isLoading?: boolean;
27
28
  isRtl?: boolean;
@@ -32,6 +33,8 @@ export interface TagsInputProps {
32
33
  noOptionsMessage?: () => string;
33
34
  loadingMessage?: () => string;
34
35
  minHeightInput?: number;
36
+ createOptionPlaceholder?: string;
37
+ onCreateOption?: (newValue: string) => void;
35
38
  }
36
39
  export default class TagsInput extends React.Component<TagsInputProps> {
37
40
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@propellerads/tags-input",
3
- "version": "3.7.0",
3
+ "version": "4.0.0",
4
4
  "main": "dist/index.js",
5
5
  "repository": "https://github.com/propellerads/ui-components",
6
6
  "author": "i.pasyuk@propellerads.net",
@@ -39,5 +39,5 @@
39
39
  "tslib": "^2.0.1",
40
40
  "typescript": "^3.9.7"
41
41
  },
42
- "gitHead": "59653b7a061e56c65e966052ec21e5e23a92f3cb"
42
+ "gitHead": "179bd51f376626c402808885f857d0ba917c8d06"
43
43
  }