@transferwise/components 41.5.2-next-d715c73bb8.32 → 41.5.2-next-e17ebb966d.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{useContext,useMemo}from"react";import{ThemeContext}from"../../../provider/theme/ThemeProvider";import{modernThemes}from"../../theme";export var useTheme=function(){var a=useContext(ThemeContext);return{theme:a,isThemeModern:useMemo(function(){return modernThemes.has(a)},[a])}};
1
+ import{useContext,useMemo}from"react";import{ThemeContext}from"../../../provider/theme/ThemeProvider";import{getThemeClassName,modernThemes}from"../../theme";export var useTheme=function(){var a=useContext(ThemeContext);return{theme:a,isThemeModern:useMemo(function(){return modernThemes.has(a)},[a]),className:useMemo(function(){return getThemeClassName(a)},[a])}};
@@ -1 +1 @@
1
- import{forwardRef}from"react";import{Position}from"..";import BottomSheet from"../bottomSheet";import{useLayout}from"../hooks";import Panel from"../panel";import{jsx as _jsx}from"react/jsx-runtime";var ResponsivePanel=/*#__PURE__*/forwardRef(function(a,b){var c=a.anchorRef,d=a.arrow,e=a.flip,f=a.children,g=a.className,h=void 0===g?void 0:g,i=a.onClose,j=a.open,k=void 0!==j&&j,l=a.position,m=void 0===l?Position.BOTTOM:l,n=useLayout(),o=n.isMobile;return o?/*#__PURE__*/_jsx(BottomSheet,{open:k,className:h,onClose:i,children:f},"bottomSheet"):/*#__PURE__*/_jsx(Panel,{ref:b,flip:!(void 0!==e)||e,arrow:void 0!==d&&d,open:k,position:m,anchorRef:c,className:h,onClose:i,children:f},"panel")});export default ResponsivePanel;
1
+ import classNames from"classnames";import{forwardRef}from"react";import{Position}from"..";import BottomSheet from"../bottomSheet";import{useLayout,useTheme}from"../hooks";import Panel from"../panel";import{jsx as _jsx}from"react/jsx-runtime";var ResponsivePanel=/*#__PURE__*/forwardRef(function(a,b){var c=a.anchorRef,d=a.arrow,e=a.flip,f=a.children,g=a.className,h=void 0===g?void 0:g,i=a.onClose,j=a.open,k=void 0!==j&&j,l=a.position,m=void 0===l?Position.BOTTOM:l,n=useTheme(),o=n.className,p=useLayout(),q=p.isMobile;return q?/*#__PURE__*/_jsx(BottomSheet,{open:k,className:h,onClose:i,children:f},"bottomSheet"):/*#__PURE__*/_jsx(Panel,{ref:b,flip:!(void 0!==e)||e,arrow:void 0!==d&&d,open:k,position:m,anchorRef:c,className:classNames(o,h),onClose:i,children:f},"panel")});export default ResponsivePanel;
@@ -1 +1 @@
1
- export var Theme;(function(a){a.LIGHT="light",a.DARK="dark",a.NAVY="navy",a.PERSONAL="personal"})(Theme||(Theme={}));export var modernThemes=new Set(["personal"]);
1
+ export var Theme;(function(a){a.LIGHT="light",a.DARK="dark",a.NAVY="navy",a.PERSONAL="personal"})(Theme||(Theme={}));export var modernThemes=new Set(["personal"]);export var getThemeClassName=function(a){return"np-theme-".concat(a)};
@@ -1,4 +1,4 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import classNames from"classnames";import ActionButton from"../actionButton/ActionButton";import Button from"../button";import{Typography}from"../common";import{useTheme}from"../common/hooks";import Link from"../link";import Title from"../title";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var HeaderAction=function(a){var b=a.action,c=useTheme(),d=c.isThemeModern,e={"aria-label":b["aria-label"]};return"href"in b?/*#__PURE__*/_jsx(Link,_objectSpread(_objectSpread({href:b.href,target:b.target},e),{},{children:b.text})):d?/*#__PURE__*/_jsx(Button,_objectSpread(_objectSpread({className:"np-header__button",priority:"tertiary",size:"sm",onClick:b.onClick},e),{},{children:b.text})):/*#__PURE__*/_jsx(ActionButton,_objectSpread(_objectSpread({onClick:b.onClick},e),{},{children:b.text}))};/**
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import classNames from"classnames";import ActionButton from"../actionButton/ActionButton";import Button from"../button";import{Typography}from"../common";import{useTheme}from"../common/hooks";import Link from"../link";import Title from"../title";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var HeaderAction=function(a){var b=a.action,c=useTheme(),d=c.isThemeModern,e={"aria-label":b["aria-label"]};return"href"in b?/*#__PURE__*/_jsx(Link,_objectSpread(_objectSpread({href:b.href,target:b.target},e),{},{children:b.text})):d?/*#__PURE__*/_jsx(Button,_objectSpread(_objectSpread({priority:"tertiary",onClick:b.onClick},e),{},{children:b.text})):/*#__PURE__*/_jsx(ActionButton,_objectSpread(_objectSpread({onClick:b.onClick},e),{},{children:b.text}))};/**
2
2
  *
3
3
  * Neptune Web: https://transferwise.github.io/neptune-web/components/content/Header
4
4
  *
@@ -1,3 +1,3 @@
1
- import React from"react";import{Children,cloneElement,createContext,isValidElement}from"react";import{Theme}from"../../common/theme";import{jsx as _jsx}from"react/jsx-runtime";export var ThemeContext=/*#__PURE__*/createContext(Theme.LIGHT);export var ThemeProvider=function(a){var b=a.theme,c=a.children,d=Children.map(c,function(a){var c;if(!/*#__PURE__*/isValidElement(a))return"production"!==process.env.NODE_ENV&&console.warn("[ThemeProvider] Trying to inject `className` to an invalid React element, this will be skipped!"),a;// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2
- var d=["np-theme-".concat(b),null===a||void 0===a||null===(c=a.props)||void 0===c?void 0:c.className].filter(Boolean).join(" ");if(/*#__PURE__*/isValidElement(a))// eslint-disable-next-line @typescript-eslint/no-explicit-any
1
+ import React from"react";import{Children,cloneElement,createContext,isValidElement}from"react";import{getThemeClassName,Theme}from"../../common/theme";import{jsx as _jsx}from"react/jsx-runtime";export var ThemeContext=/*#__PURE__*/createContext(Theme.LIGHT);export var ThemeProvider=function(a){var b=a.theme,c=a.children,d=Children.map(c,function(a){var c;if(!/*#__PURE__*/isValidElement(a))return"production"!==process.env.NODE_ENV&&console.warn("[ThemeProvider] Trying to inject `className` to an invalid React element, this will be skipped!"),a;// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2
+ var d=[getThemeClassName(b),null===a||void 0===a||null===(c=a.props)||void 0===c?void 0:c.className].filter(Boolean).join(" ");if(/*#__PURE__*/isValidElement(a))// eslint-disable-next-line @typescript-eslint/no-explicit-any
3
3
  return/*#__PURE__*/cloneElement(a,{className:d})});return/*#__PURE__*/_jsx(ThemeContext.Provider,{value:b,children:d})};
@@ -1,11 +1,11 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import classNames from"classnames";import PropTypes from"prop-types";import{useState,useEffect,useRef,useMemo}from"react";import{useIntl}from"react-intl";import Body from"../body";import Button from"../button";import Chevron from"../chevron";import{Position,getSimpleRandomId}from"../common";import BottomSheet from"../common/bottomSheet";import{stopPropagation}from"../common/domHelpers";import{useLayout}from"../common/hooks";import KeyCodes from"../common/keyCodes";import Panel from"../common/panel";import Drawer from"../drawer";import messages from"./Select.messages";import Option from"./option";import SearchBox from"./searchBox";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_SEARCH_VALUE="",DEFAULT_OPTIONS_PAGE_SIZE=100,includesString=function(a,b){return a.toLowerCase().includes(b.toLowerCase())};function defaultFilterFunction(a,b){if(isPlaceholderOption(a))return!0;var c=a.label,d=a.note,e=a.secondary,f=a.currency,g=a.searchStrings;return!!c&&includesString(c,b)||!!d&&includesString(d,b)||!!e&&includesString(e,b)||!!f&&includesString(f,b)||!!g&&g.some(function(a){return includesString(a,b)})}function isActionableOption(a){return!a.header&&!a.separator&&!a.disabled}function isHeaderOption(a){return null!==a&&"header"in a}function isSparatorOption(a){return null!==a&&"separator"in a}/**
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import classNames from"classnames";import PropTypes from"prop-types";import{useState,useEffect,useRef,useMemo}from"react";import{useIntl}from"react-intl";import Body from"../body";import Button from"../button";import Chevron from"../chevron";import{Position,getSimpleRandomId}from"../common";import BottomSheet from"../common/bottomSheet";import{stopPropagation}from"../common/domHelpers";import{useLayout,useTheme}from"../common/hooks";import KeyCodes from"../common/keyCodes";import Panel from"../common/panel";import Drawer from"../drawer";import messages from"./Select.messages";import Option from"./option";import SearchBox from"./searchBox";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_SEARCH_VALUE="",DEFAULT_OPTIONS_PAGE_SIZE=100,includesString=function(a,b){return a.toLowerCase().includes(b.toLowerCase())};function defaultFilterFunction(a,b){if(isPlaceholderOption(a))return!0;var c=a.label,d=a.note,e=a.secondary,f=a.currency,g=a.searchStrings;return!!c&&includesString(c,b)||!!d&&includesString(d,b)||!!e&&includesString(e,b)||!!f&&includesString(f,b)||!!g&&g.some(function(a){return includesString(a,b)})}function isActionableOption(a){return!a.header&&!a.separator&&!a.disabled}function isHeaderOption(a){return null!==a&&"header"in a}function isSparatorOption(a){return null!==a&&"separator"in a}/**
2
2
  * No option or placeholder option is selected
3
- */var DEFAULT_SELECTED_OPTION=null;function isPlaceholderOption(a){return a===DEFAULT_SELECTED_OPTION||"placeholder"in a}export default function Select(a){function b(){if(null!==U){var a=ka().filter(isActionableOption);0<a.length&&e(a[U])}}function c(a){var b=ka().filter(isActionableOption),c=b.reduce(function(a,b,c){return null===a?k(v,b)?c:null:a},null),d=null===W.current||void 0===W.current?-1:W.current,e=d;null===d&&null===c&&V(0),null===d&&null!==c&&(e=c);var f=e+a,g=Math.max(Math.min(0,b.length-1),f);V(g)}function d(a){return function(b){stopPropagation(b),e(a)}}function e(a){x(isPlaceholderOption(a)?DEFAULT_SELECTED_OPTION:a),ma()}function f(){var a,b=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},c=b.className,d=classNames(K("np-dropdown-menu"),(a={},_defineProperty(a,K("np-dropdown-menu-desktop"),!ja),_defineProperty(a,K("np-dropdown-menu-".concat(r)),!ja&&!ea),a),K(c)),e=ka();return/*#__PURE__*/_jsxs("ul",_objectSpread(_objectSpread({ref:ca,id:ha,role:"listbox",tabIndex:"-1",className:d},G),{},{children:[!o&&!da&&null!==m&&/*#__PURE__*/_jsx(h,{}),da&&/*#__PURE__*/_jsx(SearchBox,{ref:_,classNames:E,value:C||Q,placeholder:D||J(messages.searchPlaceholder),onChange:la,onClick:stopPropagation}),e.slice(0,Z).map(na),Z<e.length&&/*#__PURE__*/_jsx(g,{})]}))}function g(){function a(a){stopPropagation(a),$(Z+DEFAULT_OPTIONS_PAGE_SIZE)}return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(K("clickable"),K("border-bottom"),K("show-more")),onClick:a,onKeyPress:a,children:/*#__PURE__*/_jsx("a",{children:"..."})}))}function h(){var a={placeholder:m};return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(K("clickable"),K("border-bottom")),onClick:d(a),onKeyPress:d(a),children:/*#__PURE__*/_jsx("a",{children:m})}))}// eslint-disable-next-line react/prop-types
4
- function i(a){var b=a.index;return/*#__PURE__*/_jsx("li",{className:K("np-separator"),"aria-hidden":!0},b)}// eslint-disable-next-line react/prop-types
5
- function j(a){var b=a.index,c=a.children;return/*#__PURE__*/_jsx("li",{className:classNames(K("np-dropdown-header"),K("np-text-title-group")),onClick:stopPropagation,onKeyPress:stopPropagation,children:c},b)}function k(a,b){return(null===a||void 0===a?void 0:a.value)===(null===b||void 0===b?void 0:b.value)}function l(a){return ka().reduce(function(b,c,d){return d<a&&isActionableOption(c)?b+1:b},0)}var m=a.placeholder,n=a.id,o=a.required,p=a.disabled,q=a.inverse,r=a.dropdownWidth,t=a.size,u=a.block,v=a.selected,w=a.search,x=a.onChange,y=a.onFocus,z=a.onBlur,A=a.options,B=a.onSearchChange,C=a.searchValue,D=a.searchPlaceholder,E=a.classNames,F=a.dropdownUp,G=a.dropdownProps,H=a.buttonProps,I=useIntl(),J=I.formatMessage,K=function(a){return E[a]||a},s=useState(!1),L=_slicedToArray(s,2),M=L[0],N=L[1],O=useState(DEFAULT_SEARCH_VALUE),P=_slicedToArray(O,2),Q=P[0],R=P[1],S=useState(null),T=_slicedToArray(S,2),U=T[0],V=T[1],W=useRef(),X=useState(DEFAULT_OPTIONS_PAGE_SIZE),Y=_slicedToArray(X,2),Z=Y[0],$=Y[1],_=useRef(null),aa=useRef(null),ba=useRef(null),ca=useRef(null),da=!!B||!!w,ea=null===r,fa=useMemo(function(){return getSimpleRandomId("np-select-")},[]),ga=n||fa,ha="".concat(ga,"-listbox"),ia=useLayout(),ja=ia.isMobile,ka=function(){return w&&Q?A.filter(function(a){return isActionableOption(a)&&!isPlaceholderOption(a)}).filter(function(a){return"function"==typeof w?w(a,Q):defaultFilterFunction(a,Q)}):A},la=function(a){$(DEFAULT_OPTIONS_PAGE_SIZE),R(a.target.value),B&&B(a.target.value)};useEffect(function(){W.current=U,M&&(!ja||""!==Q)&&(da&&!!_.current&&_.current.focus(),!da&&ca.current&&ca.current.focus())},[M,Q,da,ja,U]);var ma=function(){N(!1),V(null),ba.current&&ba.current.focus()},na=function(a,b){var c,e=a;if(isSparatorOption(e)&&null!==e&&void 0!==e&&e.separator)return/*#__PURE__*/_jsx(i,{index:b});var f=a;if(isHeaderOption(f)&&f.header)return/*#__PURE__*/_jsx(j,{index:b,children:f.header});var g=k(v,a),h=a,m=!h.disabled&&U===l(b),n=classNames(K("np-dropdown-item"),h.disabled?[K("disabled")]:K("clickable"),(c={},_defineProperty(c,K("active"),g),_defineProperty(c,K("np-dropdown-item--focused"),m),c)),o=h.disabled?stopPropagation:d(h);return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{"aria-selected":g,"aria-disabled":a.disabled,role:"option",tabIndex:"-1",className:n,onClick:o,onKeyPress:o,children:/*#__PURE__*/_jsx("a",{disabled:h.disabled,children:/*#__PURE__*/_jsx(Option,_objectSpread(_objectSpread({},h),{},{classNames:E}))})},b))},oa=!!A.length;return M&&(""!==C||""!==Q)&&(oa&&null===U&&V(0),!oa&&null!==U&&V(null)),/*#__PURE__*/_jsxs("div",{// eslint-disable-line jsx-a11y/no-static-element-interactions
6
- ref:aa,className:classNames(K("np-select"),u?K("btn-block"):null,K("btn-group")),onKeyDown:function handleKeyDown(a){switch(a.keyCode){case KeyCodes.UP:case KeyCodes.DOWN:M?c(a.keyCode===KeyCodes.UP?-1:1):N(!0),stopPropagation(a);break;case KeyCodes.SPACE:a.target!==_.current&&(M?b():N(!0),stopPropagation(a));break;case KeyCodes.ENTER:M?b():N(!0),stopPropagation(a);break;case KeyCodes.ESCAPE:ma(),stopPropagation(a);break;case KeyCodes.TAB:M&&b();break;default:}},onTouchMove:function handleTouchStart(a){a.currentTarget===a.target&&M&&ma()},onFocus:function handleOnFocus(a){y&&y(a)},onBlur:function handleOnBlur(a){var b=a.nativeEvent;if(b){var c=b.relatedTarget,d=a.currentTarget;if(d&&c&&d.contains(c))return}z&&z(a)},children:[/*#__PURE__*/_jsxs(Button,_objectSpread(_objectSpread({ref:ba,id:ga,block:u,size:t,htmlType:"button",className:classNames(K("np-dropdown-toggle"),K("np-text-body-large"),"string"==typeof E&&-1!==E.search("form-control")?K("form-control"):null,q?K("np-dropdown-toggle-navy"):null)// reset Button's styles
7
- ,type:null,priority:null,disabled:p,role:"combobox","aria-controls":ha,"aria-expanded":M,"aria-autocomplete":"none",onClick:function handleOnClick(){N(!0)}},H),{},{children:[v?/*#__PURE__*/_jsx(Option,_objectSpread(_objectSpread({},v),{},{classNames:E,selected:!0})):/*#__PURE__*/_jsx(Body,{className:K("form-control-placeholder"),children:m}),/*#__PURE__*/_jsx(Chevron// disabled={disabled}
8
- ,{className:classNames(K("tw-icon"),K("tw-chevron-up-icon"),K("tw-chevron"),K("bottom"),K("np-select-chevron"))})]})),ja?da?/*#__PURE__*/_jsx(Drawer,{open:M,headerTitle:D||J(messages.searchPlaceholder),onClose:ma,children:f()}):/*#__PURE__*/_jsx(BottomSheet,{open:M,onClose:ma,children:f({className:"p-a-1"})}):/*#__PURE__*/_jsx(Panel,{open:M,flip:!1,altAxis:!0,anchorRef:aa,anchorWidth:ea,position:F?Position.TOP:Position.BOTTOM,onClose:ma,children:f({className:"p-a-1"})})]})}Select.propTypes={placeholder:PropTypes.string,id:PropTypes.string,required:PropTypes.bool,disabled:PropTypes.bool,inverse:PropTypes.bool,dropdownRight:PropTypes.oneOf(["xs","sm","md","lg","xl"]),dropdownWidth:PropTypes.oneOf(["sm","md","lg"]),size:PropTypes.oneOf(["sm","md","lg"]),block:PropTypes.bool,selected:PropTypes.shape({value:PropTypes.any.isRequired,label:PropTypes.node,icon:PropTypes.node,currency:PropTypes.string,note:PropTypes.node,secondary:PropTypes.node}),/**
3
+ */var DEFAULT_SELECTED_OPTION=null;function isPlaceholderOption(a){return a===DEFAULT_SELECTED_OPTION||"placeholder"in a}export default function Select(a){function b(){if(null!==V){var a=la().filter(isActionableOption);0<a.length&&e(a[V])}}function c(a){var b=la().filter(isActionableOption),c=b.reduce(function(a,b,c){return null===a?k(v,b)?c:null:a},null),d=null===X.current||void 0===X.current?-1:X.current,e=d;null===d&&null===c&&W(0),null===d&&null!==c&&(e=c);var f=e+a,g=Math.max(Math.min(0,b.length-1),f);W(g)}function d(a){return function(b){stopPropagation(b),e(a)}}function e(a){x(isPlaceholderOption(a)?DEFAULT_SELECTED_OPTION:a),na()}function f(){var a,b=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},c=b.className,d=classNames(L("np-dropdown-menu"),(a={},_defineProperty(a,L("np-dropdown-menu-desktop"),!ka),_defineProperty(a,L("np-dropdown-menu-".concat(r)),!ka&&!fa),a),L(c)),e=la();return/*#__PURE__*/_jsxs("ul",_objectSpread(_objectSpread({ref:da,id:ia,role:"listbox",tabIndex:"-1",className:d},G),{},{children:[!o&&!ea&&null!==m&&/*#__PURE__*/_jsx(h,{}),ea&&/*#__PURE__*/_jsx(SearchBox,{ref:aa,classNames:E,value:C||R,placeholder:D||K(messages.searchPlaceholder),onChange:ma,onClick:stopPropagation}),e.slice(0,$).map(oa),$<e.length&&/*#__PURE__*/_jsx(g,{})]}))}function g(){function a(a){stopPropagation(a),_($+DEFAULT_OPTIONS_PAGE_SIZE)}return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(L("clickable"),L("border-bottom"),L("show-more")),onClick:a,onKeyPress:a,children:/*#__PURE__*/_jsx("a",{children:"..."})}))}function h(){var a={placeholder:m};return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(L("clickable"),L("border-bottom")),onClick:d(a),onKeyPress:d(a),children:/*#__PURE__*/_jsx("a",{children:m})}))}// eslint-disable-next-line react/prop-types
4
+ function i(a){var b=a.index;return/*#__PURE__*/_jsx("li",{className:L("np-separator"),"aria-hidden":!0},b)}// eslint-disable-next-line react/prop-types
5
+ function j(a){var b=a.index,c=a.children;return/*#__PURE__*/_jsx("li",{className:classNames(L("np-dropdown-header"),L("np-text-title-group")),onClick:stopPropagation,onKeyPress:stopPropagation,children:c},b)}function k(a,b){return(null===a||void 0===a?void 0:a.value)===(null===b||void 0===b?void 0:b.value)}function l(a){return la().reduce(function(b,c,d){return d<a&&isActionableOption(c)?b+1:b},0)}var m=a.placeholder,n=a.id,o=a.required,p=a.disabled,q=a.inverse,r=a.dropdownWidth,t=a.size,u=a.block,v=a.selected,w=a.search,x=a.onChange,y=a.onFocus,z=a.onBlur,A=a.options,B=a.onSearchChange,C=a.searchValue,D=a.searchPlaceholder,E=a.classNames,F=a.dropdownUp,G=a.dropdownProps,H=a.buttonProps,I=useTheme(),J=useIntl(),K=J.formatMessage,L=function(a){return E[a]||a},s=useState(!1),M=_slicedToArray(s,2),N=M[0],O=M[1],P=useState(DEFAULT_SEARCH_VALUE),Q=_slicedToArray(P,2),R=Q[0],S=Q[1],T=useState(null),U=_slicedToArray(T,2),V=U[0],W=U[1],X=useRef(),Y=useState(DEFAULT_OPTIONS_PAGE_SIZE),Z=_slicedToArray(Y,2),$=Z[0],_=Z[1],aa=useRef(null),ba=useRef(null),ca=useRef(null),da=useRef(null),ea=!!B||!!w,fa=null===r,ga=useMemo(function(){return getSimpleRandomId("np-select-")},[]),ha=n||ga,ia="".concat(ha,"-listbox"),ja=useLayout(),ka=ja.isMobile,la=function(){return w&&R?A.filter(function(a){return isActionableOption(a)&&!isPlaceholderOption(a)}).filter(function(a){return"function"==typeof w?w(a,R):defaultFilterFunction(a,R)}):A},ma=function(a){_(DEFAULT_OPTIONS_PAGE_SIZE),S(a.target.value),B&&B(a.target.value)};useEffect(function(){X.current=V,N&&(!ka||""!==R)&&(ea&&!!aa.current&&aa.current.focus(),!ea&&da.current&&da.current.focus())},[N,R,ea,ka,V]);var na=function(){O(!1),W(null),ca.current&&ca.current.focus()},oa=function(a,b){var c,e=a;if(isSparatorOption(e)&&null!==e&&void 0!==e&&e.separator)return/*#__PURE__*/_jsx(i,{index:b});var f=a;if(isHeaderOption(f)&&f.header)return/*#__PURE__*/_jsx(j,{index:b,children:f.header});var g=k(v,a),h=a,m=!h.disabled&&V===l(b),n=classNames(L("np-dropdown-item"),h.disabled?[L("disabled")]:L("clickable"),(c={},_defineProperty(c,L("active"),g),_defineProperty(c,L("np-dropdown-item--focused"),m),c)),o=h.disabled?stopPropagation:d(h);return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{"aria-selected":g,"aria-disabled":a.disabled,role:"option",tabIndex:"-1",className:n,onClick:o,onKeyPress:o,children:/*#__PURE__*/_jsx("a",{disabled:h.disabled,children:/*#__PURE__*/_jsx(Option,_objectSpread(_objectSpread({},h),{},{classNames:E}))})},b))},pa=!!A.length;return N&&(""!==C||""!==R)&&(pa&&null===V&&W(0),!pa&&null!==V&&W(null)),/*#__PURE__*/_jsxs("div",{// eslint-disable-line jsx-a11y/no-static-element-interactions
6
+ ref:ba,className:classNames(L("np-select"),u?L("btn-block"):null,L("btn-group")),onKeyDown:function handleKeyDown(a){switch(a.keyCode){case KeyCodes.UP:case KeyCodes.DOWN:N?c(a.keyCode===KeyCodes.UP?-1:1):O(!0),stopPropagation(a);break;case KeyCodes.SPACE:a.target!==aa.current&&(N?b():O(!0),stopPropagation(a));break;case KeyCodes.ENTER:N?b():O(!0),stopPropagation(a);break;case KeyCodes.ESCAPE:na(),stopPropagation(a);break;case KeyCodes.TAB:N&&b();break;default:}},onTouchMove:function handleTouchStart(a){a.currentTarget===a.target&&N&&na()},onFocus:function handleOnFocus(a){y&&y(a)},onBlur:function handleOnBlur(a){var b=a.nativeEvent;if(b){var c=b.relatedTarget,d=a.currentTarget;if(d&&c&&d.contains(c))return}z&&z(a)},children:[/*#__PURE__*/_jsxs(Button,_objectSpread(_objectSpread({ref:ca,id:ha,block:u,size:t,htmlType:"button",className:classNames(L("np-dropdown-toggle"),L("np-text-body-large"),"string"==typeof E&&-1!==E.search("form-control")?L("form-control"):null,q?L("np-dropdown-toggle-navy"):null)// reset Button's styles
7
+ ,type:null,priority:null,disabled:p,role:"combobox","aria-controls":ia,"aria-expanded":N,"aria-autocomplete":"none",onClick:function handleOnClick(){O(!0)}},H),{},{children:[v?/*#__PURE__*/_jsx(Option,_objectSpread(_objectSpread({},v),{},{classNames:E,selected:!0})):/*#__PURE__*/_jsx(Body,{className:L("form-control-placeholder"),children:m}),/*#__PURE__*/_jsx(Chevron// disabled={disabled}
8
+ ,{className:classNames(L("tw-icon"),L("tw-chevron-up-icon"),L("tw-chevron"),L("bottom"),L("np-select-chevron"))})]})),ka?ea?/*#__PURE__*/_jsx(Drawer,{className:I.className,open:N,headerTitle:D||K(messages.searchPlaceholder),onClose:na,children:f()}):/*#__PURE__*/_jsx(BottomSheet,{open:N,onClose:na,children:f({className:"p-a-1"})}):/*#__PURE__*/_jsx(Panel,{className:I.className,open:N,flip:!1,altAxis:!0,anchorRef:ba,anchorWidth:fa,position:F?Position.TOP:Position.BOTTOM,onClose:na,children:f({className:"p-a-1"})})]})}Select.propTypes={placeholder:PropTypes.string,id:PropTypes.string,required:PropTypes.bool,disabled:PropTypes.bool,inverse:PropTypes.bool,dropdownRight:PropTypes.oneOf(["xs","sm","md","lg","xl"]),dropdownWidth:PropTypes.oneOf(["sm","md","lg"]),size:PropTypes.oneOf(["sm","md","lg"]),block:PropTypes.bool,selected:PropTypes.shape({value:PropTypes.any.isRequired,label:PropTypes.node,icon:PropTypes.node,currency:PropTypes.string,note:PropTypes.node,secondary:PropTypes.node}),/**
9
9
  * Search toggle
10
10
  * if `true` default search functionality being enabled (not case sensitive search in option labels & currency props)
11
11
  * if `function` you can define your own search function to implement custom search experience. This search function used while filtering the options array. The custom search function takes two parameters. First is the option the second is the keyword.
@@ -1 +1 @@
1
- import{useContext,useMemo}from"react";import{ThemeContext}from"../../../provider/theme/ThemeProvider";import{modernThemes}from"../../theme";export var useTheme=function(){var a=useContext(ThemeContext);return{theme:a,isThemeModern:useMemo(function(){return modernThemes.has(a)},[a])}};
1
+ import{useContext,useMemo}from"react";import{ThemeContext}from"../../../provider/theme/ThemeProvider";import{getThemeClassName,modernThemes}from"../../theme";export var useTheme=function(){var a=useContext(ThemeContext);return{theme:a,isThemeModern:useMemo(function(){return modernThemes.has(a)},[a]),className:useMemo(function(){return getThemeClassName(a)},[a])}};
@@ -1 +1 @@
1
- import{forwardRef}from"react";import{Position}from"..";import BottomSheet from"../bottomSheet";import{useLayout}from"../hooks";import Panel from"../panel";import{jsx as _jsx}from"react/jsx-runtime";var ResponsivePanel=/*#__PURE__*/forwardRef(function(a,b){var c=a.anchorRef,d=a.arrow,e=a.flip,f=a.children,g=a.className,h=void 0===g?void 0:g,i=a.onClose,j=a.open,k=void 0!==j&&j,l=a.position,m=void 0===l?Position.BOTTOM:l,n=useLayout(),o=n.isMobile;return o?/*#__PURE__*/_jsx(BottomSheet,{open:k,className:h,onClose:i,children:f},"bottomSheet"):/*#__PURE__*/_jsx(Panel,{ref:b,flip:!(void 0!==e)||e,arrow:void 0!==d&&d,open:k,position:m,anchorRef:c,className:h,onClose:i,children:f},"panel")});export default ResponsivePanel;
1
+ import classNames from"classnames";import{forwardRef}from"react";import{Position}from"..";import BottomSheet from"../bottomSheet";import{useLayout,useTheme}from"../hooks";import Panel from"../panel";import{jsx as _jsx}from"react/jsx-runtime";var ResponsivePanel=/*#__PURE__*/forwardRef(function(a,b){var c=a.anchorRef,d=a.arrow,e=a.flip,f=a.children,g=a.className,h=void 0===g?void 0:g,i=a.onClose,j=a.open,k=void 0!==j&&j,l=a.position,m=void 0===l?Position.BOTTOM:l,n=useTheme(),o=n.className,p=useLayout(),q=p.isMobile;return q?/*#__PURE__*/_jsx(BottomSheet,{open:k,className:h,onClose:i,children:f},"bottomSheet"):/*#__PURE__*/_jsx(Panel,{ref:b,flip:!(void 0!==e)||e,arrow:void 0!==d&&d,open:k,position:m,anchorRef:c,className:classNames(o,h),onClose:i,children:f},"panel")});export default ResponsivePanel;
@@ -1 +1 @@
1
- import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.set.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";export var Theme;(function(a){a.LIGHT="light",a.DARK="dark",a.NAVY="navy",a.PERSONAL="personal"})(Theme||(Theme={}));export var modernThemes=new Set(["personal"]);
1
+ import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.set.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";export var Theme;(function(a){a.LIGHT="light",a.DARK="dark",a.NAVY="navy",a.PERSONAL="personal"})(Theme||(Theme={}));export var modernThemes=new Set(["personal"]);export var getThemeClassName=function(a){return"np-theme-".concat(a)};
@@ -1,4 +1,4 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import classNames from"classnames";import ActionButton from"../actionButton/ActionButton";import Button from"../button";import{Typography}from"../common";import{useTheme}from"../common/hooks";import Link from"../link";import Title from"../title";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var HeaderAction=function(a){var b=a.action,c=useTheme(),d=c.isThemeModern,e={"aria-label":b["aria-label"]};return"href"in b?/*#__PURE__*/_jsx(Link,_objectSpread(_objectSpread({href:b.href,target:b.target},e),{},{children:b.text})):d?/*#__PURE__*/_jsx(Button,_objectSpread(_objectSpread({className:"np-header__button",priority:"tertiary",size:"sm",onClick:b.onClick},e),{},{children:b.text})):/*#__PURE__*/_jsx(ActionButton,_objectSpread(_objectSpread({onClick:b.onClick},e),{},{children:b.text}))};/**
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import classNames from"classnames";import ActionButton from"../actionButton/ActionButton";import Button from"../button";import{Typography}from"../common";import{useTheme}from"../common/hooks";import Link from"../link";import Title from"../title";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var HeaderAction=function(a){var b=a.action,c=useTheme(),d=c.isThemeModern,e={"aria-label":b["aria-label"]};return"href"in b?/*#__PURE__*/_jsx(Link,_objectSpread(_objectSpread({href:b.href,target:b.target},e),{},{children:b.text})):d?/*#__PURE__*/_jsx(Button,_objectSpread(_objectSpread({priority:"tertiary",onClick:b.onClick},e),{},{children:b.text})):/*#__PURE__*/_jsx(ActionButton,_objectSpread(_objectSpread({onClick:b.onClick},e),{},{children:b.text}))};/**
2
2
  *
3
3
  * Neptune Web: https://transferwise.github.io/neptune-web/components/content/Header
4
4
  *
@@ -1,3 +1,3 @@
1
- import"core-js/modules/es.array.map.js";import"core-js/modules/es.array.join.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/es.object.to-string.js";import React from"react";import{Children,cloneElement,createContext,isValidElement}from"react";import{Theme}from"../../common/theme";import{jsx as _jsx}from"react/jsx-runtime";export var ThemeContext=/*#__PURE__*/createContext(Theme.LIGHT);export var ThemeProvider=function(a){var b=a.theme,c=a.children,d=Children.map(c,function(a){var c;if(!/*#__PURE__*/isValidElement(a))return"production"!==process.env.NODE_ENV&&console.warn("[ThemeProvider] Trying to inject `className` to an invalid React element, this will be skipped!"),a;// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2
- var d=["np-theme-".concat(b),null===a||void 0===a||null===(c=a.props)||void 0===c?void 0:c.className].filter(Boolean).join(" ");if(/*#__PURE__*/isValidElement(a))// eslint-disable-next-line @typescript-eslint/no-explicit-any
1
+ import"core-js/modules/es.array.map.js";import"core-js/modules/es.array.join.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/es.object.to-string.js";import React from"react";import{Children,cloneElement,createContext,isValidElement}from"react";import{getThemeClassName,Theme}from"../../common/theme";import{jsx as _jsx}from"react/jsx-runtime";export var ThemeContext=/*#__PURE__*/createContext(Theme.LIGHT);export var ThemeProvider=function(a){var b=a.theme,c=a.children,d=Children.map(c,function(a){var c;if(!/*#__PURE__*/isValidElement(a))return"production"!==process.env.NODE_ENV&&console.warn("[ThemeProvider] Trying to inject `className` to an invalid React element, this will be skipped!"),a;// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2
+ var d=[getThemeClassName(b),null===a||void 0===a||null===(c=a.props)||void 0===c?void 0:c.className].filter(Boolean).join(" ");if(/*#__PURE__*/isValidElement(a))// eslint-disable-next-line @typescript-eslint/no-explicit-any
3
3
  return/*#__PURE__*/cloneElement(a,{className:d})});return/*#__PURE__*/_jsx(ThemeContext.Provider,{value:b,children:d})};
@@ -1,11 +1,11 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"core-js/modules/es.array.includes.js";import"core-js/modules/es.string.includes.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.regexp.exec.js";import"core-js/modules/es.string.search.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/es.array.reduce.js";import"core-js/modules/es.array.map.js";import"core-js/modules/es.array.slice.js";import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";import classNames from"classnames";import PropTypes from"prop-types";import{useState,useEffect,useRef,useMemo}from"react";import{useIntl}from"react-intl";import Body from"../body";import Button from"../button";import Chevron from"../chevron";import{Position,getSimpleRandomId}from"../common";import BottomSheet from"../common/bottomSheet";import{stopPropagation}from"../common/domHelpers";import{useLayout}from"../common/hooks";import KeyCodes from"../common/keyCodes";import Panel from"../common/panel";import Drawer from"../drawer";import messages from"./Select.messages";import Option from"./option";import SearchBox from"./searchBox";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_SEARCH_VALUE="",DEFAULT_OPTIONS_PAGE_SIZE=100,includesString=function(a,b){return a.toLowerCase().includes(b.toLowerCase())};function defaultFilterFunction(a,b){if(isPlaceholderOption(a))return!0;var c=a.label,d=a.note,e=a.secondary,f=a.currency,g=a.searchStrings;return!!c&&includesString(c,b)||!!d&&includesString(d,b)||!!e&&includesString(e,b)||!!f&&includesString(f,b)||!!g&&g.some(function(a){return includesString(a,b)})}function isActionableOption(a){return!a.header&&!a.separator&&!a.disabled}function isHeaderOption(a){return null!==a&&"header"in a}function isSparatorOption(a){return null!==a&&"separator"in a}/**
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"core-js/modules/es.array.includes.js";import"core-js/modules/es.string.includes.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.regexp.exec.js";import"core-js/modules/es.string.search.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/es.array.reduce.js";import"core-js/modules/es.array.map.js";import"core-js/modules/es.array.slice.js";import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";import classNames from"classnames";import PropTypes from"prop-types";import{useState,useEffect,useRef,useMemo}from"react";import{useIntl}from"react-intl";import Body from"../body";import Button from"../button";import Chevron from"../chevron";import{Position,getSimpleRandomId}from"../common";import BottomSheet from"../common/bottomSheet";import{stopPropagation}from"../common/domHelpers";import{useLayout,useTheme}from"../common/hooks";import KeyCodes from"../common/keyCodes";import Panel from"../common/panel";import Drawer from"../drawer";import messages from"./Select.messages";import Option from"./option";import SearchBox from"./searchBox";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_SEARCH_VALUE="",DEFAULT_OPTIONS_PAGE_SIZE=100,includesString=function(a,b){return a.toLowerCase().includes(b.toLowerCase())};function defaultFilterFunction(a,b){if(isPlaceholderOption(a))return!0;var c=a.label,d=a.note,e=a.secondary,f=a.currency,g=a.searchStrings;return!!c&&includesString(c,b)||!!d&&includesString(d,b)||!!e&&includesString(e,b)||!!f&&includesString(f,b)||!!g&&g.some(function(a){return includesString(a,b)})}function isActionableOption(a){return!a.header&&!a.separator&&!a.disabled}function isHeaderOption(a){return null!==a&&"header"in a}function isSparatorOption(a){return null!==a&&"separator"in a}/**
2
2
  * No option or placeholder option is selected
3
- */var DEFAULT_SELECTED_OPTION=null;function isPlaceholderOption(a){return a===DEFAULT_SELECTED_OPTION||"placeholder"in a}export default function Select(a){function b(){if(null!==U){var a=ka().filter(isActionableOption);0<a.length&&e(a[U])}}function c(a){var b=ka().filter(isActionableOption),c=b.reduce(function(a,b,c){return null===a?k(v,b)?c:null:a},null),d=null===W.current||void 0===W.current?-1:W.current,e=d;null===d&&null===c&&V(0),null===d&&null!==c&&(e=c);var f=e+a,g=Math.max(Math.min(0,b.length-1),f);V(g)}function d(a){return function(b){stopPropagation(b),e(a)}}function e(a){x(isPlaceholderOption(a)?DEFAULT_SELECTED_OPTION:a),ma()}function f(){var a,b=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},c=b.className,d=classNames(K("np-dropdown-menu"),(a={},_defineProperty(a,K("np-dropdown-menu-desktop"),!ja),_defineProperty(a,K("np-dropdown-menu-".concat(r)),!ja&&!ea),a),K(c)),e=ka();return/*#__PURE__*/_jsxs("ul",_objectSpread(_objectSpread({ref:ca,id:ha,role:"listbox",tabIndex:"-1",className:d},G),{},{children:[!o&&!da&&null!==m&&/*#__PURE__*/_jsx(h,{}),da&&/*#__PURE__*/_jsx(SearchBox,{ref:_,classNames:E,value:C||Q,placeholder:D||J(messages.searchPlaceholder),onChange:la,onClick:stopPropagation}),e.slice(0,Z).map(na),Z<e.length&&/*#__PURE__*/_jsx(g,{})]}))}function g(){function a(a){stopPropagation(a),$(Z+DEFAULT_OPTIONS_PAGE_SIZE)}return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(K("clickable"),K("border-bottom"),K("show-more")),onClick:a,onKeyPress:a,children:/*#__PURE__*/_jsx("a",{children:"..."})}))}function h(){var a={placeholder:m};return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(K("clickable"),K("border-bottom")),onClick:d(a),onKeyPress:d(a),children:/*#__PURE__*/_jsx("a",{children:m})}))}// eslint-disable-next-line react/prop-types
4
- function i(a){var b=a.index;return/*#__PURE__*/_jsx("li",{className:K("np-separator"),"aria-hidden":!0},b)}// eslint-disable-next-line react/prop-types
5
- function j(a){var b=a.index,c=a.children;return/*#__PURE__*/_jsx("li",{className:classNames(K("np-dropdown-header"),K("np-text-title-group")),onClick:stopPropagation,onKeyPress:stopPropagation,children:c},b)}function k(a,b){return(null===a||void 0===a?void 0:a.value)===(null===b||void 0===b?void 0:b.value)}function l(a){return ka().reduce(function(b,c,d){return d<a&&isActionableOption(c)?b+1:b},0)}var m=a.placeholder,n=a.id,o=a.required,p=a.disabled,q=a.inverse,r=a.dropdownWidth,t=a.size,u=a.block,v=a.selected,w=a.search,x=a.onChange,y=a.onFocus,z=a.onBlur,A=a.options,B=a.onSearchChange,C=a.searchValue,D=a.searchPlaceholder,E=a.classNames,F=a.dropdownUp,G=a.dropdownProps,H=a.buttonProps,I=useIntl(),J=I.formatMessage,K=function(a){return E[a]||a},s=useState(!1),L=_slicedToArray(s,2),M=L[0],N=L[1],O=useState(DEFAULT_SEARCH_VALUE),P=_slicedToArray(O,2),Q=P[0],R=P[1],S=useState(null),T=_slicedToArray(S,2),U=T[0],V=T[1],W=useRef(),X=useState(DEFAULT_OPTIONS_PAGE_SIZE),Y=_slicedToArray(X,2),Z=Y[0],$=Y[1],_=useRef(null),aa=useRef(null),ba=useRef(null),ca=useRef(null),da=!!B||!!w,ea=null===r,fa=useMemo(function(){return getSimpleRandomId("np-select-")},[]),ga=n||fa,ha="".concat(ga,"-listbox"),ia=useLayout(),ja=ia.isMobile,ka=function(){return w&&Q?A.filter(function(a){return isActionableOption(a)&&!isPlaceholderOption(a)}).filter(function(a){return"function"==typeof w?w(a,Q):defaultFilterFunction(a,Q)}):A},la=function(a){$(DEFAULT_OPTIONS_PAGE_SIZE),R(a.target.value),B&&B(a.target.value)};useEffect(function(){W.current=U,M&&(!ja||""!==Q)&&(da&&!!_.current&&_.current.focus(),!da&&ca.current&&ca.current.focus())},[M,Q,da,ja,U]);var ma=function(){N(!1),V(null),ba.current&&ba.current.focus()},na=function(a,b){var c,e=a;if(isSparatorOption(e)&&null!==e&&void 0!==e&&e.separator)return/*#__PURE__*/_jsx(i,{index:b});var f=a;if(isHeaderOption(f)&&f.header)return/*#__PURE__*/_jsx(j,{index:b,children:f.header});var g=k(v,a),h=a,m=!h.disabled&&U===l(b),n=classNames(K("np-dropdown-item"),h.disabled?[K("disabled")]:K("clickable"),(c={},_defineProperty(c,K("active"),g),_defineProperty(c,K("np-dropdown-item--focused"),m),c)),o=h.disabled?stopPropagation:d(h);return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{"aria-selected":g,"aria-disabled":a.disabled,role:"option",tabIndex:"-1",className:n,onClick:o,onKeyPress:o,children:/*#__PURE__*/_jsx("a",{disabled:h.disabled,children:/*#__PURE__*/_jsx(Option,_objectSpread(_objectSpread({},h),{},{classNames:E}))})},b))},oa=!!A.length;return M&&(""!==C||""!==Q)&&(oa&&null===U&&V(0),!oa&&null!==U&&V(null)),/*#__PURE__*/_jsxs("div",{// eslint-disable-line jsx-a11y/no-static-element-interactions
6
- ref:aa,className:classNames(K("np-select"),u?K("btn-block"):null,K("btn-group")),onKeyDown:function handleKeyDown(a){switch(a.keyCode){case KeyCodes.UP:case KeyCodes.DOWN:M?c(a.keyCode===KeyCodes.UP?-1:1):N(!0),stopPropagation(a);break;case KeyCodes.SPACE:a.target!==_.current&&(M?b():N(!0),stopPropagation(a));break;case KeyCodes.ENTER:M?b():N(!0),stopPropagation(a);break;case KeyCodes.ESCAPE:ma(),stopPropagation(a);break;case KeyCodes.TAB:M&&b();break;default:}},onTouchMove:function handleTouchStart(a){a.currentTarget===a.target&&M&&ma()},onFocus:function handleOnFocus(a){y&&y(a)},onBlur:function handleOnBlur(a){var b=a.nativeEvent;if(b){var c=b.relatedTarget,d=a.currentTarget;if(d&&c&&d.contains(c))return}z&&z(a)},children:[/*#__PURE__*/_jsxs(Button,_objectSpread(_objectSpread({ref:ba,id:ga,block:u,size:t,htmlType:"button",className:classNames(K("np-dropdown-toggle"),K("np-text-body-large"),"string"==typeof E&&-1!==E.search("form-control")?K("form-control"):null,q?K("np-dropdown-toggle-navy"):null)// reset Button's styles
7
- ,type:null,priority:null,disabled:p,role:"combobox","aria-controls":ha,"aria-expanded":M,"aria-autocomplete":"none",onClick:function handleOnClick(){N(!0)}},H),{},{children:[v?/*#__PURE__*/_jsx(Option,_objectSpread(_objectSpread({},v),{},{classNames:E,selected:!0})):/*#__PURE__*/_jsx(Body,{className:K("form-control-placeholder"),children:m}),/*#__PURE__*/_jsx(Chevron// disabled={disabled}
8
- ,{className:classNames(K("tw-icon"),K("tw-chevron-up-icon"),K("tw-chevron"),K("bottom"),K("np-select-chevron"))})]})),ja?da?/*#__PURE__*/_jsx(Drawer,{open:M,headerTitle:D||J(messages.searchPlaceholder),onClose:ma,children:f()}):/*#__PURE__*/_jsx(BottomSheet,{open:M,onClose:ma,children:f({className:"p-a-1"})}):/*#__PURE__*/_jsx(Panel,{open:M,flip:!1,altAxis:!0,anchorRef:aa,anchorWidth:ea,position:F?Position.TOP:Position.BOTTOM,onClose:ma,children:f({className:"p-a-1"})})]})}Select.propTypes={placeholder:PropTypes.string,id:PropTypes.string,required:PropTypes.bool,disabled:PropTypes.bool,inverse:PropTypes.bool,dropdownRight:PropTypes.oneOf(["xs","sm","md","lg","xl"]),dropdownWidth:PropTypes.oneOf(["sm","md","lg"]),size:PropTypes.oneOf(["sm","md","lg"]),block:PropTypes.bool,selected:PropTypes.shape({value:PropTypes.any.isRequired,label:PropTypes.node,icon:PropTypes.node,currency:PropTypes.string,note:PropTypes.node,secondary:PropTypes.node}),/**
3
+ */var DEFAULT_SELECTED_OPTION=null;function isPlaceholderOption(a){return a===DEFAULT_SELECTED_OPTION||"placeholder"in a}export default function Select(a){function b(){if(null!==V){var a=la().filter(isActionableOption);0<a.length&&e(a[V])}}function c(a){var b=la().filter(isActionableOption),c=b.reduce(function(a,b,c){return null===a?k(v,b)?c:null:a},null),d=null===X.current||void 0===X.current?-1:X.current,e=d;null===d&&null===c&&W(0),null===d&&null!==c&&(e=c);var f=e+a,g=Math.max(Math.min(0,b.length-1),f);W(g)}function d(a){return function(b){stopPropagation(b),e(a)}}function e(a){x(isPlaceholderOption(a)?DEFAULT_SELECTED_OPTION:a),na()}function f(){var a,b=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},c=b.className,d=classNames(L("np-dropdown-menu"),(a={},_defineProperty(a,L("np-dropdown-menu-desktop"),!ka),_defineProperty(a,L("np-dropdown-menu-".concat(r)),!ka&&!fa),a),L(c)),e=la();return/*#__PURE__*/_jsxs("ul",_objectSpread(_objectSpread({ref:da,id:ia,role:"listbox",tabIndex:"-1",className:d},G),{},{children:[!o&&!ea&&null!==m&&/*#__PURE__*/_jsx(h,{}),ea&&/*#__PURE__*/_jsx(SearchBox,{ref:aa,classNames:E,value:C||R,placeholder:D||K(messages.searchPlaceholder),onChange:ma,onClick:stopPropagation}),e.slice(0,$).map(oa),$<e.length&&/*#__PURE__*/_jsx(g,{})]}))}function g(){function a(a){stopPropagation(a),_($+DEFAULT_OPTIONS_PAGE_SIZE)}return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(L("clickable"),L("border-bottom"),L("show-more")),onClick:a,onKeyPress:a,children:/*#__PURE__*/_jsx("a",{children:"..."})}))}function h(){var a={placeholder:m};return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(L("clickable"),L("border-bottom")),onClick:d(a),onKeyPress:d(a),children:/*#__PURE__*/_jsx("a",{children:m})}))}// eslint-disable-next-line react/prop-types
4
+ function i(a){var b=a.index;return/*#__PURE__*/_jsx("li",{className:L("np-separator"),"aria-hidden":!0},b)}// eslint-disable-next-line react/prop-types
5
+ function j(a){var b=a.index,c=a.children;return/*#__PURE__*/_jsx("li",{className:classNames(L("np-dropdown-header"),L("np-text-title-group")),onClick:stopPropagation,onKeyPress:stopPropagation,children:c},b)}function k(a,b){return(null===a||void 0===a?void 0:a.value)===(null===b||void 0===b?void 0:b.value)}function l(a){return la().reduce(function(b,c,d){return d<a&&isActionableOption(c)?b+1:b},0)}var m=a.placeholder,n=a.id,o=a.required,p=a.disabled,q=a.inverse,r=a.dropdownWidth,t=a.size,u=a.block,v=a.selected,w=a.search,x=a.onChange,y=a.onFocus,z=a.onBlur,A=a.options,B=a.onSearchChange,C=a.searchValue,D=a.searchPlaceholder,E=a.classNames,F=a.dropdownUp,G=a.dropdownProps,H=a.buttonProps,I=useTheme(),J=useIntl(),K=J.formatMessage,L=function(a){return E[a]||a},s=useState(!1),M=_slicedToArray(s,2),N=M[0],O=M[1],P=useState(DEFAULT_SEARCH_VALUE),Q=_slicedToArray(P,2),R=Q[0],S=Q[1],T=useState(null),U=_slicedToArray(T,2),V=U[0],W=U[1],X=useRef(),Y=useState(DEFAULT_OPTIONS_PAGE_SIZE),Z=_slicedToArray(Y,2),$=Z[0],_=Z[1],aa=useRef(null),ba=useRef(null),ca=useRef(null),da=useRef(null),ea=!!B||!!w,fa=null===r,ga=useMemo(function(){return getSimpleRandomId("np-select-")},[]),ha=n||ga,ia="".concat(ha,"-listbox"),ja=useLayout(),ka=ja.isMobile,la=function(){return w&&R?A.filter(function(a){return isActionableOption(a)&&!isPlaceholderOption(a)}).filter(function(a){return"function"==typeof w?w(a,R):defaultFilterFunction(a,R)}):A},ma=function(a){_(DEFAULT_OPTIONS_PAGE_SIZE),S(a.target.value),B&&B(a.target.value)};useEffect(function(){X.current=V,N&&(!ka||""!==R)&&(ea&&!!aa.current&&aa.current.focus(),!ea&&da.current&&da.current.focus())},[N,R,ea,ka,V]);var na=function(){O(!1),W(null),ca.current&&ca.current.focus()},oa=function(a,b){var c,e=a;if(isSparatorOption(e)&&null!==e&&void 0!==e&&e.separator)return/*#__PURE__*/_jsx(i,{index:b});var f=a;if(isHeaderOption(f)&&f.header)return/*#__PURE__*/_jsx(j,{index:b,children:f.header});var g=k(v,a),h=a,m=!h.disabled&&V===l(b),n=classNames(L("np-dropdown-item"),h.disabled?[L("disabled")]:L("clickable"),(c={},_defineProperty(c,L("active"),g),_defineProperty(c,L("np-dropdown-item--focused"),m),c)),o=h.disabled?stopPropagation:d(h);return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{"aria-selected":g,"aria-disabled":a.disabled,role:"option",tabIndex:"-1",className:n,onClick:o,onKeyPress:o,children:/*#__PURE__*/_jsx("a",{disabled:h.disabled,children:/*#__PURE__*/_jsx(Option,_objectSpread(_objectSpread({},h),{},{classNames:E}))})},b))},pa=!!A.length;return N&&(""!==C||""!==R)&&(pa&&null===V&&W(0),!pa&&null!==V&&W(null)),/*#__PURE__*/_jsxs("div",{// eslint-disable-line jsx-a11y/no-static-element-interactions
6
+ ref:ba,className:classNames(L("np-select"),u?L("btn-block"):null,L("btn-group")),onKeyDown:function handleKeyDown(a){switch(a.keyCode){case KeyCodes.UP:case KeyCodes.DOWN:N?c(a.keyCode===KeyCodes.UP?-1:1):O(!0),stopPropagation(a);break;case KeyCodes.SPACE:a.target!==aa.current&&(N?b():O(!0),stopPropagation(a));break;case KeyCodes.ENTER:N?b():O(!0),stopPropagation(a);break;case KeyCodes.ESCAPE:na(),stopPropagation(a);break;case KeyCodes.TAB:N&&b();break;default:}},onTouchMove:function handleTouchStart(a){a.currentTarget===a.target&&N&&na()},onFocus:function handleOnFocus(a){y&&y(a)},onBlur:function handleOnBlur(a){var b=a.nativeEvent;if(b){var c=b.relatedTarget,d=a.currentTarget;if(d&&c&&d.contains(c))return}z&&z(a)},children:[/*#__PURE__*/_jsxs(Button,_objectSpread(_objectSpread({ref:ca,id:ha,block:u,size:t,htmlType:"button",className:classNames(L("np-dropdown-toggle"),L("np-text-body-large"),"string"==typeof E&&-1!==E.search("form-control")?L("form-control"):null,q?L("np-dropdown-toggle-navy"):null)// reset Button's styles
7
+ ,type:null,priority:null,disabled:p,role:"combobox","aria-controls":ia,"aria-expanded":N,"aria-autocomplete":"none",onClick:function handleOnClick(){O(!0)}},H),{},{children:[v?/*#__PURE__*/_jsx(Option,_objectSpread(_objectSpread({},v),{},{classNames:E,selected:!0})):/*#__PURE__*/_jsx(Body,{className:L("form-control-placeholder"),children:m}),/*#__PURE__*/_jsx(Chevron// disabled={disabled}
8
+ ,{className:classNames(L("tw-icon"),L("tw-chevron-up-icon"),L("tw-chevron"),L("bottom"),L("np-select-chevron"))})]})),ka?ea?/*#__PURE__*/_jsx(Drawer,{className:I.className,open:N,headerTitle:D||K(messages.searchPlaceholder),onClose:na,children:f()}):/*#__PURE__*/_jsx(BottomSheet,{open:N,onClose:na,children:f({className:"p-a-1"})}):/*#__PURE__*/_jsx(Panel,{className:I.className,open:N,flip:!1,altAxis:!0,anchorRef:ba,anchorWidth:fa,position:F?Position.TOP:Position.BOTTOM,onClose:na,children:f({className:"p-a-1"})})]})}Select.propTypes={placeholder:PropTypes.string,id:PropTypes.string,required:PropTypes.bool,disabled:PropTypes.bool,inverse:PropTypes.bool,dropdownRight:PropTypes.oneOf(["xs","sm","md","lg","xl"]),dropdownWidth:PropTypes.oneOf(["sm","md","lg"]),size:PropTypes.oneOf(["sm","md","lg"]),block:PropTypes.bool,selected:PropTypes.shape({value:PropTypes.any.isRequired,label:PropTypes.node,icon:PropTypes.node,currency:PropTypes.string,note:PropTypes.node,secondary:PropTypes.node}),/**
9
9
  * Search toggle
10
10
  * if `true` default search functionality being enabled (not case sensitive search in option labels & currency props)
11
11
  * if `function` you can define your own search function to implement custom search experience. This search function used while filtering the options array. The custom search function takes two parameters. First is the option the second is the keyword.