@vchasno/ui-kit 0.4.32 → 0.4.34

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
@@ -7,7 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ## [0.4.31] - 2024-12-26
10
+ ## [0.4.34] - 2024-12-31
11
+
12
+ ## Changed
13
+
14
+ - `Select`, `SelectCreatable` change SelectRef type + export
15
+
16
+ ## [0.4.33] - 2024-12-31
17
+
18
+ ## Changed
19
+
20
+ - `Select`, `SelectCreatable` wrap in forwardRef
21
+
22
+ ## [0.4.32] - 2024-12-26
11
23
 
12
24
  ## Fixed
13
25
 
@@ -6,12 +6,12 @@ import * as react_select from 'react-select';
6
6
  import { Props, GroupBase } from 'react-select';
7
7
  import React from 'react';
8
8
  import { WithLabel, WithHint, LoadingFeedback, ErrorFeedback, DataQa, HideEmptyMeta, WithPulseAnimation } from '../types.js';
9
- import { Option } from './types.js';
9
+ import { Option, SelectRef } from './types.js';
10
10
 
11
11
  interface SelectProps extends Props<Option, false | true, GroupBase<Option>>, Partial<WithLabel & WithHint & LoadingFeedback & ErrorFeedback & DataQa & HideEmptyMeta & WithPulseAnimation> {
12
12
  wide?: boolean;
13
13
  }
14
- declare const Select: React.FC<SelectProps>;
14
+ declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<SelectRef>>;
15
15
  declare const SelectComponents: {
16
16
  ClearIndicator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: react_select.ClearIndicatorProps<Option, IsMulti, Group>) => _emotion_react.jsx.JSX.Element;
17
17
  Control: <Option_1, IsMulti_1 extends boolean, Group_1 extends GroupBase<Option_1>>(props: react_select.ControlProps<Option_1, IsMulti_1, Group_1>) => _emotion_react.jsx.JSX.Element;
@@ -1,2 +1,2 @@
1
- import e from"react";import t,{components as r}from"react-select";import o from"classnames";import n from"../InputMeta/InputMeta.js";import a from"./Label.js";import s from"./customComponents.js";import l from"./defaultProps.js";import{composeStyles as i}from"./utils.js";function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){var o;o=r[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}var p=function(r){var p,u,m=r.className,d=r.label,f=r.hint,b=r.wide,O=r.required,g=r.loading,y=r.isDisabled,j=r.menuPlacement,v=r.noOptionsMessage,P=void 0===v?l.noOptionsMessageDefault:v,h=r.loadingMessage,M=void 0===h?l.loadingMessageDefault:h,w=r.placeholder,S=r.components,D=r.error,E=void 0===D?"":D,q=r.dataQa,x=r.closeMenuOnSelect,N=r.hideEmptyMeta,k=r.pulse,I=function(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}(r,["className","label","hint","wide","required","loading","isDisabled","menuPlacement","noOptionsMessage","loadingMessage","placeholder","components","error","dataQa","closeMenuOnSelect","hideEmptyMeta","pulse"]);return /*#__PURE__*/e.createElement("label",{"data-qa":q,className:o("vchasno-ui-select",{"--pulse":k&&!y,"--required":O,"--disabled":y,"--wide":b,"--error":E},m)},d&&/*#__PURE__*/e.createElement(a,{label:d}),/*#__PURE__*/e.createElement(t,(p=c({required:O,isLoading:g,components:c({},s,void 0===S?{}:S),closeMenuOnSelect:void 0===x||x,classNamePrefix:"vchasno-ui-select",menuPlacement:void 0===j?"auto":j,isDisabled:y,noOptionsMessage:P,loadingMessage:M,placeholder:void 0===w?" ":w},I),u=u={styles:c({},i,I.styles)},Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(u)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r.push.apply(r,o)}return r})(Object(u)).forEach(function(e){Object.defineProperty(p,e,Object.getOwnPropertyDescriptor(u,e))}),p)),!(void 0!==N&&N)||E||f?/*#__PURE__*/e.createElement(n,{hint:f,error:E}):null)},u=r;export{u as SelectComponents,p as default};
1
+ import e,{forwardRef as t}from"react";import r,{components as o}from"react-select";import n from"classnames";import a from"../InputMeta/InputMeta.js";import l from"./Label.js";import s from"./customComponents.js";import i from"./defaultProps.js";import{composeStyles as c}from"./utils.js";function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){var o;o=r[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}var u=/*#__PURE__*/t(function(t,o){var u,m,d=t.className,f=t.label,b=t.hint,O=t.wide,y=t.required,g=t.loading,j=t.isDisabled,v=t.menuPlacement,P=t.noOptionsMessage,h=void 0===P?i.noOptionsMessageDefault:P,M=t.loadingMessage,w=void 0===M?i.loadingMessageDefault:M,S=t.placeholder,D=t.components,E=t.error,q=void 0===E?"":E,N=t.dataQa,x=t.closeMenuOnSelect,k=t.hideEmptyMeta,I=t.pulse,C=function(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}(t,["className","label","hint","wide","required","loading","isDisabled","menuPlacement","noOptionsMessage","loadingMessage","placeholder","components","error","dataQa","closeMenuOnSelect","hideEmptyMeta","pulse"]);return /*#__PURE__*/e.createElement("label",{"data-qa":N,className:n("vchasno-ui-select",{"--pulse":I&&!j,"--required":y,"--disabled":j,"--wide":O,"--error":q},d)},f&&/*#__PURE__*/e.createElement(l,{label:f}),/*#__PURE__*/e.createElement(r,(u=p({ref:o,required:y,isLoading:g,components:p({},s,void 0===D?{}:D),closeMenuOnSelect:void 0===x||x,classNamePrefix:"vchasno-ui-select",menuPlacement:void 0===v?"auto":v,isDisabled:j,noOptionsMessage:h,loadingMessage:w,placeholder:void 0===S?" ":S},C),m=m={styles:p({},c,C.styles)},Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(m)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r.push.apply(r,o)}return r})(Object(m)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(m,e))}),u)),!(void 0!==k&&k)||q||b?/*#__PURE__*/e.createElement(a,{hint:b,error:q}):null)});u.displayName="Select";var m=o;export{m as SelectComponents,u as default};
2
2
  //# sourceMappingURL=Select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React from 'react';\nimport ReactSelect, { GroupBase, Props as ReactSelectProps, components } from 'react-select';\n\nimport cn from 'classnames';\n\nimport InputMeta from '../InputMeta';\nimport {\n DataQa,\n ErrorFeedback,\n HideEmptyMeta,\n LoadingFeedback,\n WithHint,\n WithLabel,\n WithPulseAnimation,\n} from '../types';\nimport Label from './Label';\nimport { SelectCreatableProps } from './SelectCreatable';\nimport CustomComponents from './customComponents';\nimport defaultProps from './defaultProps';\nimport { Option } from './types';\nimport { composeStyles } from './utils';\n\nimport './Select.global.css';\n\nexport interface SelectProps\n extends ReactSelectProps<Option, false | true, GroupBase<Option>>,\n Partial<\n WithLabel &\n WithHint &\n LoadingFeedback &\n ErrorFeedback &\n DataQa &\n HideEmptyMeta &\n WithPulseAnimation\n > {\n wide?: boolean;\n}\n\nconst Select: React.FC<SelectProps> = ({\n className,\n label,\n hint,\n wide,\n required,\n loading,\n isDisabled,\n menuPlacement = 'auto',\n noOptionsMessage = defaultProps.noOptionsMessageDefault,\n loadingMessage = defaultProps.loadingMessageDefault,\n placeholder = ' ', //need \"space\" for correct label working\n components = {},\n error = '',\n dataQa,\n closeMenuOnSelect = true,\n hideEmptyMeta = false,\n pulse,\n ...rest\n}) => {\n return (\n <label\n data-qa={dataQa}\n className={cn(\n 'vchasno-ui-select',\n {\n '--pulse': pulse && !isDisabled,\n '--required': required,\n '--disabled': isDisabled,\n '--wide': wide,\n '--error': error,\n },\n className,\n )}\n >\n {label && <Label label={label} />}\n <ReactSelect\n required={required}\n isLoading={loading}\n components={{\n ...(CustomComponents as SelectCreatableProps['components']),\n ...components,\n }}\n closeMenuOnSelect={closeMenuOnSelect}\n classNamePrefix=\"vchasno-ui-select\"\n menuPlacement={menuPlacement}\n isDisabled={isDisabled}\n noOptionsMessage={noOptionsMessage}\n loadingMessage={loadingMessage}\n placeholder={placeholder}\n {...rest}\n styles={\n {\n ...composeStyles,\n ...rest.styles,\n } as never\n }\n />\n {hideEmptyMeta && !error && !hint ? null : <InputMeta hint={hint} error={error} />}\n </label>\n );\n};\n\nexport const SelectComponents = components;\n\nexport default Select;\n"],"names":["Select","_param","className","label","hint","wide","required","loading","isDisabled","menuPlacement","_param_noOptionsMessage","noOptionsMessage","defaultProps","noOptionsMessageDefault","loadingMessage","loadingMessageDefault","placeholder","components","error","dataQa","closeMenuOnSelect","hideEmptyMeta","pulse","rest","React","data-qa","cn","Label","ReactSelect","isLoading","_object_spread","CustomComponents","classNamePrefix","_param_menuPlacement","styles","composeStyles","InputMeta","SelectComponents"],"mappings":"krBAsCA,IAAMA,EAAgC,SAAAC,CAAA,UAClCC,EAAAA,EAAAA,SAAAA,CACAC,IAAAA,KACAC,CAAAA,EAAAA,EAAAA,KACAC,EAAAA,EAAAA,IAAAA,CACAC,IAAAA,QACAC,CAAAA,EAAAA,EAAAA,QACAC,EAAAA,EAAAA,UAAAA,CAAAA,EAAAA,EACAC,cAAgBC,EAAAT,EAChBU,iBAAAA,EAAmBC,AAAAA,KAAAA,IAAAA,EAAAA,EAAaC,uBAAuB,CACvDC,EAAAA,EAAAA,EAAAA,cAAAA,CAAAA,aAAiBF,EAAaG,qBAAqB,OACnDC,WAAAA,KACAC,UAAAA,CACAC,EAAAA,EAAAA,KAAAA,CAAAA,aAAQ,GACRC,EAAAA,EAAAA,EAAAA,WACAC,iBAAAA,KACAC,aAAAA,CACAC,EAAAA,EAAAA,KACGC,CAAAA,EAAAA,sXAAAA,EAAAA,CAjBHrB,YACAC,QACAC,OACAC,OACAC,WACAC,UACAC,aACAC,gBACAE,mBACAG,iBACAE,cACAC,aACAC,QACAC,SACAC,oBACAC,gBACAC,UAGA,oBACIE,EAACrB,aAAAA,CAAAA,QAAAA,CACGsB,UAASN,EACTjB,UAAWwB,EACP,oBACA,CACI,UAAWJ,GAAS,CAACd,EACrB,aAAcF,EACd,aAAcE,EACd,SAAUH,EACV,UAAWa,CAEfhB,EAAAA,EAGHC,EAAAA,GAAS,WAAA,EAAAqB,EAACG,aAAAA,CAAAA,EAAAA,CAAMxB,MAAOA,IACxB,WAAA,EAAAqB,EAACI,aAAAA,CAAAA,KAAAA,EAAAA,CACGtB,SAAUA,EACVuB,UAAWtB,EACXU,WAAYa,KACJC,EA5BpBd,AAAAA,KAAAA,IAAAA,EAAa,GACbC,GA8BYE,kBA5BZA,AAAAA,KAAAA,IAAAA,KA6BYY,gBAAgB,oBAChBvB,cArCIwB,AAAA,KAAA,IAAAA,EAAA,OAAAA,EAsCJzB,WAAYA,EACZG,iBAAkBA,EAClBG,eAAgBA,EAChBE,YAtCZA,AAAAA,KAAAA,IAAAA,EAAc,KAuCEO,EAAAA,OAAAA,CACJW,OACIJ,EAAA,CAAA,EACOK,EACAZ,EAAKW,MAAM,CAIzBb,+UAAAA,CA1CTA,CAAAA,AAAAA,KAAAA,IAAAA,GACAC,CAAAA,GAyC2BJ,GAAUd,EAAc,WAAA,EAAAoB,EAACY,aAAAA,CAAAA,EAAAA,CAAUhC,KAAMA,EAAMc,MAAOA,IAArC,KAGhD,EAEamB,EAAmBpB"}
1
+ {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport ReactSelect, { GroupBase, Props as ReactSelectProps, components } from 'react-select';\n\nimport cn from 'classnames';\n\nimport InputMeta from '../InputMeta';\nimport {\n DataQa,\n ErrorFeedback,\n HideEmptyMeta,\n LoadingFeedback,\n WithHint,\n WithLabel,\n WithPulseAnimation,\n} from '../types';\nimport Label from './Label';\nimport { SelectCreatableProps } from './SelectCreatable';\nimport CustomComponents from './customComponents';\nimport defaultProps from './defaultProps';\nimport { Option, SelectRef } from './types';\nimport { composeStyles } from './utils';\n\nimport './Select.global.css';\n\nexport interface SelectProps\n extends ReactSelectProps<Option, false | true, GroupBase<Option>>,\n Partial<\n WithLabel &\n WithHint &\n LoadingFeedback &\n ErrorFeedback &\n DataQa &\n HideEmptyMeta &\n WithPulseAnimation\n > {\n wide?: boolean;\n}\n\nconst Select = forwardRef<SelectRef, SelectProps>(({\n className,\n label,\n hint,\n wide,\n required,\n loading,\n isDisabled,\n menuPlacement = 'auto',\n noOptionsMessage = defaultProps.noOptionsMessageDefault,\n loadingMessage = defaultProps.loadingMessageDefault,\n placeholder = ' ', //need \"space\" for correct label working\n components = {},\n error = '',\n dataQa,\n closeMenuOnSelect = true,\n hideEmptyMeta = false,\n pulse,\n ...rest\n}, ref) => {\n return (\n <label\n data-qa={dataQa}\n className={cn(\n 'vchasno-ui-select',\n {\n '--pulse': pulse && !isDisabled,\n '--required': required,\n '--disabled': isDisabled,\n '--wide': wide,\n '--error': error,\n }, \n className,\n )}\n >\n {label && <Label label={label} />}\n <ReactSelect\n ref={ref}\n required={required}\n isLoading={loading}\n components={{\n ...(CustomComponents as SelectCreatableProps['components']),\n ...components,\n }}\n closeMenuOnSelect={closeMenuOnSelect}\n classNamePrefix=\"vchasno-ui-select\"\n menuPlacement={menuPlacement}\n isDisabled={isDisabled}\n noOptionsMessage={noOptionsMessage}\n loadingMessage={loadingMessage}\n placeholder={placeholder}\n {...rest}\n styles={\n {\n ...composeStyles,\n ...rest.styles,\n } as never\n }\n />\n {hideEmptyMeta && !error && !hint ? null : <InputMeta hint={hint} error={error} />}\n </label>\n );\n});\n\nSelect.displayName = 'Select';\n\nexport const SelectComponents = components;\n\nexport default Select;\n"],"names":["Select","forwardRef","ref","className","label","hint","wide","required","loading","isDisabled","menuPlacement","_param_noOptionsMessage","_param","noOptionsMessage","defaultProps","noOptionsMessageDefault","loadingMessage","loadingMessageDefault","placeholder","components","error","dataQa","closeMenuOnSelect","hideEmptyMeta","pulse","rest","React","data-qa","cn","Label","ReactSelect","isLoading","_object_spread","CustomComponents","classNamePrefix","_param_menuPlacement","styles","composeStyles","InputMeta","displayName","SelectComponents"],"mappings":"msBAsCMA,IAAAA,eAASC,EAAmC,SAmB/CC,CAAAA,CAAAA,CAAAA,UAlBCC,EAAAA,EAAAA,SAAAA,CACAC,IAAAA,KACAC,CAAAA,EAAAA,EAAAA,KACAC,EAAAA,EAAAA,IAAAA,CACAC,IAAAA,QACAC,CAAAA,EAAAA,EAAAA,QACAC,EAAAA,EAAAA,UAAAA,CAAAA,EAAAA,EACAC,cAAgBC,EAAAC,EAChBC,iBAAAA,EAAmBC,AAAAA,KAAAA,IAAAA,EAAAA,EAAaC,uBAAuB,CACvDC,EAAAA,EAAAA,EAAAA,cAAAA,CAAAA,aAAiBF,EAAaG,qBAAqB,OACnDC,WAAAA,KACAC,UAAAA,CACAC,EAAAA,EAAAA,KAAAA,CAAAA,aAAQ,GACRC,EAAAA,EAAAA,EAAAA,WACAC,iBAAAA,KACAC,aAAAA,CACAC,EAAAA,EAAAA,KACGC,CAAAA,EAAAA,sXAAAA,EAAAA,CAjBHtB,YACAC,QACAC,OACAC,OACAC,WACAC,UACAC,aACAC,gBACAG,mBACAG,iBACAE,cACAC,aACAC,QACAC,SACAC,oBACAC,gBACAC,UAGA,oBACIE,EAACtB,aAAAA,CAAAA,QAAAA,CACGuB,UAASN,EACTlB,UAAWyB,EACP,oBACA,CACI,UAAWJ,GAAS,CAACf,EACrB,aAAcF,EACd,aAAcE,EACd,SAAUH,EACV,UAAWc,CAEfjB,EAAAA,EAGHC,EAAAA,GAAS,WAAA,EAAAsB,EAACG,aAAAA,CAAAA,EAAAA,CAAMzB,MAAOA,IACxB,WAAA,EAAAsB,EAACI,aAAAA,CAAAA,KAAAA,EAAAA,CACG5B,IAAKA,EACLK,SAAUA,EACVwB,UAAWvB,EACXW,WAAYa,KACJC,EA7BpBd,AAAAA,KAAAA,IAAAA,EAAa,GACbC,GA+BYE,kBA7BZA,AAAAA,KAAAA,IAAAA,KA8BYY,gBAAgB,oBAChBxB,cAtCIyB,AAAA,KAAA,IAAAA,EAAA,OAAAA,EAuCJ1B,WAAYA,EACZI,iBAAkBA,EAClBG,eAAgBA,EAChBE,YAvCZA,AAAAA,KAAAA,IAAAA,EAAc,KAwCEO,EAAAA,OAAAA,CACJW,OACIJ,EAAA,CAAA,EACOK,EACAZ,EAAKW,MAAM,CAIzBb,+UAAAA,CA3CTA,CAAAA,AAAAA,KAAAA,IAAAA,GACAC,CAAAA,GA0C2BJ,GAAUf,EAAc,WAAA,EAAAqB,EAACY,aAAAA,CAAAA,EAAAA,CAAUjC,KAAMA,EAAMe,MAAOA,IAArC,KAGhD,EAEApB,CAAAA,EAAOuC,WAAW,CAAG,SAEd,IAAMC,EAAmBrB"}
@@ -2,12 +2,12 @@ import React, { InputHTMLAttributes } from 'react';
2
2
  import { CreatableProps } from 'react-select/creatable';
3
3
  import { GroupBase } from 'react-select/dist/declarations/src/types';
4
4
  import { WithLabel, WithHint, LoadingFeedback, ErrorFeedback, DataQa, HideEmptyMeta, WithPulseAnimation } from '../types.js';
5
- import { Option } from './types.js';
5
+ import { Option, SelectRef } from './types.js';
6
6
 
7
7
  interface SelectCreatableProps extends CreatableProps<Option, false | true, GroupBase<Option>>, Partial<WithLabel & WithHint & LoadingFeedback & ErrorFeedback & DataQa & HideEmptyMeta & WithPulseAnimation> {
8
8
  wide?: boolean;
9
9
  labelProps?: InputHTMLAttributes<HTMLLabelElement>;
10
10
  }
11
- declare const SelectCreatable: React.FC<SelectCreatableProps>;
11
+ declare const SelectCreatable: React.ForwardRefExoticComponent<SelectCreatableProps & React.RefAttributes<SelectRef>>;
12
12
 
13
13
  export { type SelectCreatableProps, SelectCreatable as default };
@@ -1,2 +1,2 @@
1
- import e from"react";import t from"react-select/creatable";import r from"classnames";import o from"../InputMeta/InputMeta.js";import a from"./Label.js";import n from"./customComponents.js";import l from"./defaultProps.js";import{composeStyles as s}from"./utils.js";function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){var o;o=r[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}function c(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r.push.apply(r,o)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}var p=function(p){var u=p.className,m=p.label,b=p.hint,d=p.wide,f=p.required,O=p.loading,g=p.isDisabled,y=p.menuPlacement,j=p.noOptionsMessage,P=void 0===j?l.noOptionsMessageDefault:j,v=p.loadingMessage,h=void 0===v?l.loadingMessageDefault:v,w=p.placeholder,M=p.components,D=p.isClearable,E=p.dataQa,S=p.labelProps,q=p.hideEmptyMeta,C=p.pulse,x=p.error,N=function(e,t){if(null==e)return{};var r,o,a=function(e,t){if(null==e)return{};var r,o,a={},n=Object.keys(e);for(o=0;o<n.length;o++)r=n[o],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(p,["className","label","hint","wide","required","loading","isDisabled","menuPlacement","noOptionsMessage","loadingMessage","placeholder","components","isClearable","dataQa","labelProps","hideEmptyMeta","pulse","error"]);return /*#__PURE__*/e.createElement("label",c(i({},S),{"data-qa":E,className:r("vchasno-ui-select",{"--pulse":C&&!g,"--required":f,"--disabled":g,"--wide":d,"--error":x},u)}),m&&/*#__PURE__*/e.createElement(a,{label:m}),/*#__PURE__*/e.createElement(t,c(i({isClearable:D,required:f,isLoading:O,components:i({},n,void 0===M?{}:M),classNamePrefix:"vchasno-ui-select",menuPlacement:void 0===y?"auto":y,isDisabled:g,noOptionsMessage:P,loadingMessage:h,placeholder:void 0===w?" ":w},N),{styles:i({},s,N.styles)})),!(void 0!==q&&q)||x||b?/*#__PURE__*/e.createElement(o,{hint:b,error:x}):null)};export{p as default};
1
+ import e,{forwardRef as t}from"react";import r from"react-select/creatable";import a from"classnames";import o from"../InputMeta/InputMeta.js";import n from"./Label.js";import l from"./customComponents.js";import s from"./defaultProps.js";import{composeStyles as i}from"./utils.js";function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},a=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),a.forEach(function(t){var a;a=r[t],t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a})}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r.push.apply(r,a)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}var u=/*#__PURE__*/t(function(t,u){var m=t.className,b=t.label,d=t.hint,f=t.wide,O=t.required,y=t.loading,g=t.isDisabled,j=t.menuPlacement,P=t.noOptionsMessage,v=void 0===P?s.noOptionsMessageDefault:P,h=t.loadingMessage,w=void 0===h?s.loadingMessageDefault:h,M=t.placeholder,D=t.components,E=t.isClearable,S=t.dataQa,C=t.labelProps,q=t.hideEmptyMeta,N=t.pulse,x=t.error,k=function(e,t){if(null==e)return{};var r,a,o=function(e,t){if(null==e)return{};var r,a,o={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(t,["className","label","hint","wide","required","loading","isDisabled","menuPlacement","noOptionsMessage","loadingMessage","placeholder","components","isClearable","dataQa","labelProps","hideEmptyMeta","pulse","error"]);return /*#__PURE__*/e.createElement("label",p(c({},C),{"data-qa":S,className:a("vchasno-ui-select",{"--pulse":N&&!g,"--required":O,"--disabled":g,"--wide":f,"--error":x},m)}),b&&/*#__PURE__*/e.createElement(n,{label:b}),/*#__PURE__*/e.createElement(r,p(c({ref:u,isClearable:E,required:O,isLoading:y,components:c({},l,void 0===D?{}:D),classNamePrefix:"vchasno-ui-select",menuPlacement:void 0===j?"auto":j,isDisabled:g,noOptionsMessage:v,loadingMessage:w,placeholder:void 0===M?" ":M},k),{styles:c({},i,k.styles)})),!(void 0!==q&&q)||x||d?/*#__PURE__*/e.createElement(o,{hint:d,error:x}):null)});u.displayName="SelectCreatable";export{u as default};
2
2
  //# sourceMappingURL=SelectCreatable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCreatable.js","sources":["../../../src/components/Select/SelectCreatable.tsx"],"sourcesContent":["import React, { InputHTMLAttributes } from 'react';\nimport ReactSelectCreatable, { CreatableProps } from 'react-select/creatable';\nimport type { GroupBase } from 'react-select/dist/declarations/src/types';\n\nimport cn from 'classnames';\n\nimport InputMeta from '../InputMeta';\nimport {\n DataQa,\n ErrorFeedback,\n HideEmptyMeta,\n LoadingFeedback,\n WithHint,\n WithLabel,\n WithPulseAnimation,\n} from '../types';\nimport Label from './Label';\nimport CustomComponents from './customComponents';\nimport defaultProps from './defaultProps';\nimport { Option } from './types';\nimport { composeStyles } from './utils';\n\nimport './Select.global.css';\n\nexport type SelectOption = Option;\n\nexport interface SelectCreatableProps\n extends CreatableProps<Option, false | true, GroupBase<Option>>,\n Partial<\n WithLabel &\n WithHint &\n LoadingFeedback &\n ErrorFeedback &\n DataQa &\n HideEmptyMeta &\n WithPulseAnimation\n > {\n wide?: boolean;\n labelProps?: InputHTMLAttributes<HTMLLabelElement>;\n}\n\nconst SelectCreatable: React.FC<SelectCreatableProps> = ({\n className,\n label,\n hint,\n wide,\n required,\n loading,\n isDisabled,\n menuPlacement = 'auto',\n noOptionsMessage = defaultProps.noOptionsMessageDefault,\n loadingMessage = defaultProps.loadingMessageDefault,\n placeholder = ' ', //need \"space\" for correct label working\n components = {},\n isClearable,\n dataQa,\n labelProps,\n hideEmptyMeta = false,\n pulse,\n error,\n ...rest\n}) => {\n return (\n <label\n {...labelProps}\n data-qa={dataQa}\n className={cn(\n 'vchasno-ui-select',\n {\n '--pulse': pulse && !isDisabled,\n '--required': required,\n '--disabled': isDisabled,\n '--wide': wide,\n '--error': error,\n },\n className,\n )}\n >\n {label && <Label label={label} />}\n <ReactSelectCreatable\n isClearable={isClearable}\n required={required}\n isLoading={loading}\n components={{\n ...(CustomComponents as SelectCreatableProps['components']),\n ...components,\n }}\n classNamePrefix=\"vchasno-ui-select\"\n menuPlacement={menuPlacement}\n isDisabled={isDisabled}\n noOptionsMessage={noOptionsMessage}\n loadingMessage={loadingMessage}\n placeholder={placeholder}\n {...rest}\n styles={\n {\n ...composeStyles,\n ...rest.styles,\n } as never\n }\n />\n {hideEmptyMeta && !error && !hint ? null : <InputMeta hint={hint} error={error} />}\n </label>\n );\n};\n\nexport default SelectCreatable;\n"],"names":["SelectCreatable","_param","className","label","hint","wide","required","loading","isDisabled","menuPlacement","_param_noOptionsMessage","noOptionsMessage","defaultProps","noOptionsMessageDefault","loadingMessage","loadingMessageDefault","placeholder","components","isClearable","dataQa","labelProps","hideEmptyMeta","pulse","error","rest","React","data-qa","cn","Label","ReactSelectCreatable","isLoading","_object_spread","CustomComponents","classNamePrefix","_param_menuPlacement","styles","composeStyles","InputMeta"],"mappings":"4hCAyCA,IAAMA,EAAkD,SAAAC,CAAA,MACpDC,EAAAA,EAAAA,SAAAA,CACAC,IAAAA,KACAC,CAAAA,EAAAA,EAAAA,KACAC,EAAAA,EAAAA,IAAAA,CACAC,IAAAA,QACAC,CAAAA,EAAAA,EAAAA,QACAC,EAAAA,EAAAA,UAAAA,CAAAA,EAAAA,EACAC,cAAgBC,EAAAT,EAChBU,iBAAAA,EAAmBC,AAAAA,KAAAA,IAAAA,EAAAA,EAAaC,uBAAuB,CACvDC,EAAAA,EAAAA,EAAAA,cAAAA,CAAAA,aAAiBF,EAAaG,qBAAqB,OACnDC,WAAAA,KACAC,UAAAA,CACAC,EAAAA,EAAAA,YACAC,EAAAA,EAAAA,MAAAA,CACAC,IAAAA,UACAC,CAAAA,EAAAA,EAAAA,aAAAA,CACAC,EAAAA,EAAAA,KACAC,CAAAA,EAAAA,EAAAA,KACGC,CAAAA,EAAAA,sXAAAA,EAAAA,CAlBHtB,YACAC,QACAC,OACAC,OACAC,WACAC,UACAC,aACAC,gBACAE,mBACAG,iBACAE,cACAC,aACAC,cACAC,SACAC,aACAC,gBACAC,QACAC,UAGA,OACI,WAAA,EAAAE,gBAACtB,QACOiB,EAAAA,EAAAA,CAAAA,EAAAA,GAAAA,CACJM,UAASP,EACTjB,UAAWyB,EACP,oBACA,CACI,UAAWL,GAAS,CAACd,EACrB,aAAcF,EACd,aAAcE,EACd,SAAUH,EACV,UAAWkB,CAEfrB,EAAAA,EAGHC,GAAAA,GAAAA,WAAAA,EAASsB,EAACG,aAAAA,CAAAA,EAAAA,CAAMzB,MAAOA,IACxB,WAAA,EAAAsB,EAACI,aAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CACGX,YAAaA,EACbZ,SAAUA,EACVwB,UAAWvB,EACXU,WAAYc,KACJC,EA/BpBf,AAAAA,KAAAA,IAAAA,EAAa,CACbC,EAAAA,GAiCYe,gBAAgB,oBAChBxB,cAvCIyB,AAAA,KAAA,IAAAA,EAAA,OAAAA,EAwCJ1B,WAAYA,EACZG,iBAAkBA,EAClBG,eAAgBA,EAChBE,YAxCZA,AAAAA,KAAAA,IAAAA,EAAc,KAyCEQ,EAAAA,GAAAA,CACJW,OACIJ,EAAA,CAAA,EACOK,EACAZ,EAAKW,MAAM,CAIzBd,IAAAA,cA3CTC,IA2C2BC,GAAUnB,EAAc,WAAA,EAAAqB,EAACY,aAAAA,CAAAA,EAAAA,CAAUjC,KAAMA,EAAMmB,MAAOA,IAArC,KAGhD"}
1
+ {"version":3,"file":"SelectCreatable.js","sources":["../../../src/components/Select/SelectCreatable.tsx"],"sourcesContent":["import React, { InputHTMLAttributes, forwardRef } from 'react';\nimport ReactSelectCreatable, { CreatableProps } from 'react-select/creatable';\nimport type { GroupBase } from 'react-select/dist/declarations/src/types';\n\nimport cn from 'classnames';\n\nimport InputMeta from '../InputMeta';\nimport {\n DataQa,\n ErrorFeedback,\n HideEmptyMeta,\n LoadingFeedback,\n WithHint,\n WithLabel,\n WithPulseAnimation,\n} from '../types';\nimport Label from './Label';\nimport CustomComponents from './customComponents';\nimport defaultProps from './defaultProps';\nimport { Option, SelectRef } from './types';\nimport { composeStyles } from './utils';\n\nimport './Select.global.css';\n\nexport type SelectOption = Option;\n\nexport interface SelectCreatableProps\n extends CreatableProps<Option, false | true, GroupBase<Option>>,\n Partial<\n WithLabel &\n WithHint &\n LoadingFeedback &\n ErrorFeedback &\n DataQa &\n HideEmptyMeta &\n WithPulseAnimation\n > {\n wide?: boolean;\n labelProps?: InputHTMLAttributes<HTMLLabelElement>;\n}\n\nconst SelectCreatable = forwardRef<SelectRef, SelectCreatableProps>(({\n className,\n label,\n hint,\n wide,\n required,\n loading,\n isDisabled,\n menuPlacement = 'auto',\n noOptionsMessage = defaultProps.noOptionsMessageDefault,\n loadingMessage = defaultProps.loadingMessageDefault,\n placeholder = ' ', //need \"space\" for correct label working\n components = {},\n isClearable,\n dataQa,\n labelProps,\n hideEmptyMeta = false,\n pulse,\n error,\n ...rest\n}, ref) => {\n return (\n <label\n {...labelProps}\n data-qa={dataQa}\n className={cn(\n 'vchasno-ui-select',\n {\n '--pulse': pulse && !isDisabled,\n '--required': required,\n '--disabled': isDisabled,\n '--wide': wide,\n '--error': error,\n },\n className,\n )}\n >\n {label && <Label label={label} />}\n <ReactSelectCreatable\n ref={ref}\n isClearable={isClearable}\n required={required}\n isLoading={loading}\n components={{\n ...(CustomComponents as SelectCreatableProps['components']),\n ...components,\n }}\n classNamePrefix=\"vchasno-ui-select\"\n menuPlacement={menuPlacement}\n isDisabled={isDisabled}\n noOptionsMessage={noOptionsMessage}\n loadingMessage={loadingMessage}\n placeholder={placeholder}\n {...rest}\n styles={\n {\n ...composeStyles,\n ...rest.styles,\n } as never\n }\n />\n {hideEmptyMeta && !error && !hint ? null : <InputMeta hint={hint} error={error} />}\n </label>\n );\n});\n\nSelectCreatable.displayName = 'SelectCreatable';\n\nexport default SelectCreatable;\n"],"names":["SelectCreatable","forwardRef","ref","className","label","hint","wide","required","loading","isDisabled","menuPlacement","_param_noOptionsMessage","_param","noOptionsMessage","defaultProps","noOptionsMessageDefault","loadingMessage","loadingMessageDefault","placeholder","components","isClearable","dataQa","labelProps","hideEmptyMeta","pulse","error","rest","React","data-qa","cn","Label","ReactSelectCreatable","isLoading","_object_spread","CustomComponents","classNamePrefix","_param_menuPlacement","styles","composeStyles","InputMeta","displayName"],"mappings":"6iCAyCMA,IAAAA,eAAkBC,EAA4C,SAoBjEC,CAAAA,CAAAA,CAAAA,MAnBCC,EAAAA,EAAAA,SAAAA,CACAC,IAAAA,KACAC,CAAAA,EAAAA,EAAAA,KACAC,EAAAA,EAAAA,IAAAA,CACAC,IAAAA,QACAC,CAAAA,EAAAA,EAAAA,QACAC,EAAAA,EAAAA,UAAAA,CAAAA,EAAAA,EACAC,cAAgBC,EAAAC,EAChBC,iBAAAA,EAAmBC,AAAAA,KAAAA,IAAAA,EAAAA,EAAaC,uBAAuB,CACvDC,EAAAA,EAAAA,EAAAA,cAAAA,CAAAA,aAAiBF,EAAaG,qBAAqB,OACnDC,WAAAA,KACAC,UAAAA,CACAC,EAAAA,EAAAA,YACAC,EAAAA,EAAAA,MAAAA,CACAC,IAAAA,UACAC,CAAAA,EAAAA,EAAAA,aAAAA,CACAC,EAAAA,EAAAA,KACAC,CAAAA,EAAAA,EAAAA,KACGC,CAAAA,EAAAA,sXAAAA,EAAAA,CAlBHvB,YACAC,QACAC,OACAC,OACAC,WACAC,UACAC,aACAC,gBACAG,mBACAG,iBACAE,cACAC,aACAC,cACAC,SACAC,aACAC,gBACAC,QACAC,UAGA,OACI,WAAA,EAAAE,gBAACvB,QACOkB,EAAAA,EAAAA,CAAAA,EAAAA,GAAAA,CACJM,UAASP,EACTlB,UAAW0B,EACP,oBACA,CACI,UAAWL,GAAS,CAACf,EACrB,aAAcF,EACd,aAAcE,EACd,SAAUH,EACV,UAAWmB,CAEftB,EAAAA,EAGHC,GAAAA,GAAAA,WAAAA,EAASuB,EAACG,aAAAA,CAAAA,EAAAA,CAAM1B,MAAOA,IACxB,WAAA,EAAAuB,EAACI,aAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CACG7B,IAAKA,EACLkB,YAAaA,EACbb,SAAUA,EACVyB,UAAWxB,EACXW,WAAYc,KACJC,EAhCpBf,AAAAA,KAAAA,IAAAA,EAAa,CACbC,EAAAA,GAkCYe,gBAAgB,oBAChBzB,cAxCI0B,AAAA,KAAA,IAAAA,EAAA,OAAAA,EAyCJ3B,WAAYA,EACZI,iBAAkBA,EAClBG,eAAgBA,EAChBE,YAzCZA,AAAAA,KAAAA,IAAAA,EAAc,KA0CEQ,EAAAA,GAAAA,CACJW,OACIJ,EAAA,CAAA,EACOK,EACAZ,EAAKW,MAAM,CAIzBd,IAAAA,cA5CTC,IA4C2BC,GAAUpB,EAAc,WAAA,EAAAsB,EAACY,aAAAA,CAAAA,EAAAA,CAAUlC,KAAMA,EAAMoB,MAAOA,IAArC,KAGhD,EAEAzB,CAAAA,EAAgBwC,WAAW,CAAG"}
@@ -1,12 +1,14 @@
1
1
  import { ControlProps } from 'react-select';
2
+ import Select from 'react-select/dist/declarations/src/Select';
2
3
  import { GroupBase } from 'react-select/dist/declarations/src/types';
3
4
 
4
5
  interface Option {
5
6
  readonly label: string;
6
7
  readonly value: string;
7
8
  }
9
+ type SelectRef = Select<Option, boolean, GroupBase<Option>>;
8
10
  interface CustomControlProps extends ControlProps<Option, boolean, GroupBase<Option>> {
9
11
  label?: string;
10
12
  }
11
13
 
12
- export type { CustomControlProps, Option };
14
+ export type { CustomControlProps, Option, SelectRef };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vchasno/ui-kit",
3
- "version": "0.4.32",
3
+ "version": "0.4.34",
4
4
  "description": "React UI components for Vchasno applications",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",