@transferwise/components 43.13.47-beta-0c6b362d59b.6 → 43.13.48

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,9 +1,9 @@
1
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{useTheme}from"@wise/components-theming";import classNames from"classnames";import PropTypes from"prop-types";import{useState,useEffect,useRef,useMemo}from"react";import{useIntl}from"react-intl";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=1e3,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}function clamp(a,b,c){return Math.max(Math.min(b,c),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!=W){var a=oa().filter(isActionableOption);0<a.length&&e(a[W])}}function c(a){var b,c=oa().filter(isActionableOption),d=c.reduce(function(a,b,c){return null==a?k(v,b)?c:null:a},null),e=null!==(b=Z.current)&&void 0!==b?b:-1,f=e;-1===e&&(null==d?X(0):f=d);var g=f+a,h=clamp(0,c.length-1,g);X(h)}function d(a){return function(b){stopPropagation(b),e(a)}}function e(a){x(isPlaceholderOption(a)?DEFAULT_SELECTED_OPTION:a),qa()}function f(){var a,b=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},c=b.className,d=classNames(M("np-dropdown-menu"),(a={},_defineProperty(a,M("np-dropdown-menu-desktop"),!na),_defineProperty(a,M("np-dropdown-menu-".concat(r)),!na&&!ha),a),M(c)),e=oa();return/*#__PURE__*/_jsxs("ul",_objectSpread(_objectSpread({ref:fa,id:ka,role:"listbox",tabIndex:"-1",className:d},G),{},{children:[!o&&!ga&&!!m&&/*#__PURE__*/_jsx(h,{}),ga&&/*#__PURE__*/_jsx(SearchBox,{ref:ca,id:la,classNames:E,value:C||S,placeholder:D||J(messages.searchPlaceholder),onChange:pa,onClick:stopPropagation}),e.slice(0,aa).map(ra),aa<e.length&&/*#__PURE__*/_jsx(g,{})]}))}function g(){function a(a){stopPropagation(a),ba(aa+DEFAULT_OPTIONS_PAGE_SIZE)}return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(M("clickable"),M("border-bottom"),M("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(M("clickable"),M("border-bottom")),onClick:d(a),onKeyPress:d(a),children:/*#__PURE__*/_jsx("a",{children:m})}))}// eslint-disable-next-line react/prop-types
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!=W){var a=oa().filter(isActionableOption);0<a.length&&e(a[W])}}function c(a){var b,c=oa().filter(isActionableOption),d=c.reduce(function(a,b,c){return null==a?k(v,b)?c:null:a},null),e=null!==(b=Z.current)&&void 0!==b?b:-1,f=e;-1===e&&(null==d?X(0):f=d);var g=f+a,h=clamp(0,c.length-1,g);X(h)}function d(a){return function(b){stopPropagation(b),e(a)}}function e(a){x(isPlaceholderOption(a)?DEFAULT_SELECTED_OPTION:a),qa()}function f(){var a,b=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},c=b.className,d=classNames(M("np-dropdown-menu"),(a={},_defineProperty(a,M("np-dropdown-menu-desktop"),!na),_defineProperty(a,M("np-dropdown-menu-".concat(r)),!na&&!ha),a),M(c)),e=oa();return/*#__PURE__*/_jsxs("ul",_objectSpread(_objectSpread({ref:fa,id:ka,role:"listbox",tabIndex:"-1",className:d},G),{},{children:[!o&&!ga&&!!m&&/*#__PURE__*/_jsx(h,{}),ga&&/*#__PURE__*/_jsx(SearchBox,{ref:ca,id:la,classNames:E,value:C||S,placeholder:D||J(messages.searchPlaceholder),keyboardFocusedOptionIndex:W,onChange:pa,onClick:stopPropagation}),e.slice(0,aa).map(ra),aa<e.length&&/*#__PURE__*/_jsx(g,{})]}))}function g(){function a(a){stopPropagation(a),ba(aa+DEFAULT_OPTIONS_PAGE_SIZE)}return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(M("clickable"),M("border-bottom"),M("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(M("clickable"),M("border-bottom")),onClick:d(a),onKeyPress:d(a),children:/*#__PURE__*/_jsx("a",{children:m})}))}// eslint-disable-next-line react/prop-types
4
4
  function i(){return/*#__PURE__*/_jsx("li",{className:M("np-separator"),"aria-hidden":!0})}// eslint-disable-next-line react/prop-types
5
5
  function j(a){var b=a.children;return/*#__PURE__*/_jsx("li",{// eslint-disable-line jsx-a11y/no-noninteractive-element-interactions
6
- className:classNames(M("np-dropdown-header"),M("np-text-title-group")),onClick:stopPropagation,onKeyPress:stopPropagation,children: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 oa().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=useTheme(),L=K.isModern,M=function(a){return E[a]||a},s=useState(!1),N=_slicedToArray(s,2),O=N[0],P=N[1],Q=useState(DEFAULT_SEARCH_VALUE),R=_slicedToArray(Q,2),S=R[0],T=R[1],U=useState(null),V=_slicedToArray(U,2),W=V[0],X=V[1],Y=useRef(),Z=useRef(),$=useState(DEFAULT_OPTIONS_PAGE_SIZE),_=_slicedToArray($,2),aa=_[0],ba=_[1],ca=useRef(null),da=useRef(null),ea=useRef(null),fa=useRef(null),ga=!!B||!!w,ha=null==r,ia=useMemo(function(){return getSimpleRandomId("np-select-")},[]),ja=n||ia,ka="".concat(ja,"-listbox"),la="".concat(ja,"-searchbox"),ma=useLayout(),na=ma.isMobile;useEffect(function(){var a;if(0<=W)return requestAnimationFrame(function(){if(!a)if(ga){var b,c;null===(b=Y.current)||void 0===b||null===(c=b.scrollIntoView)||void 0===c?void 0:c.call(b,{block:"center"})}else{var d;null===(d=Y.current)||void 0===d?void 0:d.focus()}}),function(){a=!0}},[W,ga]);var oa=function(){return w&&S?A.filter(function(a){return isActionableOption(a)&&!isPlaceholderOption(a)}).filter(function(a){return"function"==typeof w?w(a,S):defaultFilterFunction(a,S)}):A},pa=function(a){ba(DEFAULT_OPTIONS_PAGE_SIZE),T(a.target.value),B&&B(a.target.value)};useEffect(function(){O?((!na||S)&&(ga&&!!ca.current&&ca.current.focus(),!ga&&fa.current&&(null==Z.current||Number.isNaN(Z.current))&&fa.current.focus()),Z.current=W):Z.current=null},[O,S,ga,na,W]);var qa=function(){P(!1),X(null),ea.current&&ea.current.focus()},ra=function(a,b){var c,e=a;if(isSparatorOption(e)&&null!==e&&void 0!==e&&e.separator)return/*#__PURE__*/_jsx(i,{},b);var f=a;if(isHeaderOption(f)&&f.header)return/*#__PURE__*/_jsx(j,{children:f.header},b);var g=k(v,a),h=a,m=!h.disabled&&W===l(b),n=classNames(M("np-dropdown-item"),h.disabled?[M("disabled")]:M("clickable"),(c={},_defineProperty(c,M("active"),g),_defineProperty(c,M("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",{ref:m?Y:void 0,"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))},sa=!!A.length;return O&&(C||S)&&(sa&&null==W&&X(0),!sa&&null!=W&&X(null)),/*#__PURE__*/_jsxs("div",{// eslint-disable-line jsx-a11y/no-static-element-interactions
6
+ className:classNames(M("np-dropdown-header"),M("np-text-title-group")),onClick:stopPropagation,onKeyPress:stopPropagation,children: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 oa().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=useTheme(),L=K.isModern,M=function(a){return E[a]||a},s=useState(!1),N=_slicedToArray(s,2),O=N[0],P=N[1],Q=useState(DEFAULT_SEARCH_VALUE),R=_slicedToArray(Q,2),S=R[0],T=R[1],U=useState(null),V=_slicedToArray(U,2),W=V[0],X=V[1],Y=useRef(),Z=useRef(),$=useState(DEFAULT_OPTIONS_PAGE_SIZE),_=_slicedToArray($,2),aa=_[0],ba=_[1],ca=useRef(null),da=useRef(null),ea=useRef(null),fa=useRef(null),ga=!!B||!!w,ha=null==r,ia=useMemo(function(){return getSimpleRandomId("np-select-")},[]),ja=n||ia,ka="".concat(ja,"-listbox"),la="".concat(ja,"-searchbox"),ma=useLayout(),na=ma.isMobile;useEffect(function(){var a;if(0<=W)return requestAnimationFrame(function(){if(!a)if(ga){var b,c;null===(b=Y.current)||void 0===b||null===(c=b.scrollIntoView)||void 0===c?void 0:c.call(b,{block:"center"})}else{var d;null===(d=Y.current)||void 0===d?void 0:d.focus()}}),function(){a=!0}},[W,ga]);var oa=function(){return w&&S?A.filter(function(a){return isActionableOption(a)&&!isPlaceholderOption(a)}).filter(function(a){return"function"==typeof w?w(a,S):defaultFilterFunction(a,S)}):A},pa=function(a){ba(DEFAULT_OPTIONS_PAGE_SIZE),T(a.target.value),B&&B(a.target.value)};useEffect(function(){O?((!na||S)&&(ga&&!!ca.current&&ca.current.focus(),!ga&&fa.current&&(null==Z.current||Number.isNaN(Z.current))&&fa.current.focus()),Z.current=W):Z.current=null},[O,S,ga,na,W]);var qa=function(){P(!1),X(null),ea.current&&ea.current.focus()},ra=function(a,b){var c,e=a;if(isSparatorOption(e)&&null!==e&&void 0!==e&&e.separator)return/*#__PURE__*/_jsx(i,{},b);var f=a;if(isHeaderOption(f)&&f.header)return/*#__PURE__*/_jsx(j,{children:f.header},b);var g=k(v,a),h=a,m=!h.disabled&&W===l(b),n=classNames(M("np-dropdown-item"),h.disabled?[M("disabled")]:M("clickable"),(c={},_defineProperty(c,M("active"),g),_defineProperty(c,M("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",{ref:m?Y:void 0,id:b,"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))},sa=!!A.length;return O&&(C||S)&&(sa&&null==W&&X(0),!sa&&null!=W&&X(null)),/*#__PURE__*/_jsxs("div",{// eslint-disable-line jsx-a11y/no-static-element-interactions
7
7
  ref:da,className:classNames(M("np-select"),u?M("btn-block"):null,M("btn-group")),onKeyDown:function handleKeyDown(a){switch(a.keyCode){case KeyCodes.UP:case KeyCodes.DOWN:O?c(a.keyCode===KeyCodes.UP?-1:1):P(!0),stopPropagation(a);break;case KeyCodes.SPACE:a.target!==ca.current&&(O?b():P(!0),stopPropagation(a));break;case KeyCodes.ENTER:O?b():P(!0),stopPropagation(a);break;case KeyCodes.ESCAPE:qa(),stopPropagation(a);break;case KeyCodes.TAB:O&&b();break;default:}},onTouchMove:function handleTouchStart(a){a.currentTarget===a.target&&O&&qa()},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:ea,id:ja,block:u,size:t,htmlType:"button",className:classNames(M("np-dropdown-toggle"),M("np-text-body-large"),q?M("np-dropdown-toggle-navy"):null)// reset Button's styles
8
8
  ,type:null,priority:null,disabled:p,role:"combobox","aria-controls":ka,"aria-expanded":O,"aria-autocomplete":"none",onClick:function handleOnClick(){P(!0)}},H),{},{children:[v?/*#__PURE__*/_jsx(Option,_objectSpread(_objectSpread({},v),{},{classNames:E,selected:!0})):/*#__PURE__*/_jsx("span",{className:M("form-control-placeholder"),children:m}),/*#__PURE__*/_jsx(Chevron// disabled={disabled}
9
9
  ,{className:classNames(M("tw-icon"),M("tw-chevron-up-icon"),M("tw-chevron"),M("bottom"),M("np-select-chevron"))})]})),na?ga?/*#__PURE__*/_jsx(Drawer,{open:O,headerTitle:D||J(messages.searchPlaceholder),onClose:qa,children:f()}):/*#__PURE__*/_jsx(BottomSheet,{open:O,onClose:qa,children:f({className:L?"":"p-a-1"})}):/*#__PURE__*/_jsx(Panel,{open:O,flip:!1,altAxis:!0,anchorRef:da,anchorWidth:ha,position:F?Position.TOP:Position.BOTTOM,onClose:qa,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}),/**
@@ -1 +1 @@
1
- import{Search as SearchIcon}from"@transferwise/icons";import classnames from"classnames";import{forwardRef}from"react";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var SearchBox=/*#__PURE__*/forwardRef(function(a,b){var c=a.id,d=a.classNames,e=void 0===d?{}:d,f=a.onChange,g=a.onClick,h=a.placeholder,i=void 0===h?void 0:h,j=a.value,k=void 0===j?"":j,l=function(a){return e[a]||a};return/*#__PURE__*/_jsx("li",{className:l("border-bottom"),children:/*#__PURE__*/_jsx("a",{className:"".concat(l("np-select-filter-link")," ").concat(l("p-a-0")),children:/*#__PURE__*/_jsxs("div",{className:l("input-group"),children:[/*#__PURE__*/_jsx("span",{className:classnames("input-group-addon","input-group-addon--search"),children:/*#__PURE__*/_jsx(SearchIcon,{className:classnames(l("tw-icon"),l("tw-icon-search")),size:24})}),/*#__PURE__*/_jsx("input",{ref:b,id:c,type:"text",className:classnames(l("np-select-filter"),l("form-control")),placeholder:i,value:k,spellCheck:"false",onChange:f,onClick:g})]})})})});export default SearchBox;
1
+ import{Search as SearchIcon}from"@transferwise/icons";import classnames from"classnames";import{forwardRef}from"react";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var SearchBox=/*#__PURE__*/forwardRef(function(a,b){var c=a.id,d=a.classNames,e=void 0===d?{}:d,f=a.keyboardFocusedOptionIndex,g=a.onChange,h=a.onClick,i=a.placeholder,j=void 0===i?void 0:i,k=a.value,l=void 0===k?"":k,m=function(a){return e[a]||a};return/*#__PURE__*/_jsx("li",{className:m("border-bottom"),children:/*#__PURE__*/_jsx("a",{className:"".concat(m("np-select-filter-link")," ").concat(m("p-a-0")),children:/*#__PURE__*/_jsxs("div",{className:m("input-group"),children:[/*#__PURE__*/_jsx("span",{className:classnames("input-group-addon","input-group-addon--search"),children:/*#__PURE__*/_jsx(SearchIcon,{className:classnames(m("tw-icon"),m("tw-icon-search")),size:24})}),/*#__PURE__*/_jsx("input",{ref:b,id:c,type:"text",className:classnames(m("np-select-filter"),m("form-control")),placeholder:j,value:l,spellCheck:"false","aria-activedescendant":null===f||void 0===f?void 0:f.toString(),onChange:g,onClick:h})]})})})});export default SearchBox;
@@ -1,9 +1,9 @@
1
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.number.is-nan.js";import"core-js/modules/es.number.constructor.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{useTheme}from"@wise/components-theming";import classNames from"classnames";import PropTypes from"prop-types";import{useState,useEffect,useRef,useMemo}from"react";import{useIntl}from"react-intl";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=1e3,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}function clamp(a,b,c){return Math.max(Math.min(b,c),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!=W){var a=oa().filter(isActionableOption);0<a.length&&e(a[W])}}function c(a){var b,c=oa().filter(isActionableOption),d=c.reduce(function(a,b,c){return null==a?k(v,b)?c:null:a},null),e=null!==(b=Z.current)&&void 0!==b?b:-1,f=e;-1===e&&(null==d?X(0):f=d);var g=f+a,h=clamp(0,c.length-1,g);X(h)}function d(a){return function(b){stopPropagation(b),e(a)}}function e(a){x(isPlaceholderOption(a)?DEFAULT_SELECTED_OPTION:a),qa()}function f(){var a,b=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},c=b.className,d=classNames(M("np-dropdown-menu"),(a={},_defineProperty(a,M("np-dropdown-menu-desktop"),!na),_defineProperty(a,M("np-dropdown-menu-".concat(r)),!na&&!ha),a),M(c)),e=oa();return/*#__PURE__*/_jsxs("ul",_objectSpread(_objectSpread({ref:fa,id:ka,role:"listbox",tabIndex:"-1",className:d},G),{},{children:[!o&&!ga&&!!m&&/*#__PURE__*/_jsx(h,{}),ga&&/*#__PURE__*/_jsx(SearchBox,{ref:ca,id:la,classNames:E,value:C||S,placeholder:D||J(messages.searchPlaceholder),onChange:pa,onClick:stopPropagation}),e.slice(0,aa).map(ra),aa<e.length&&/*#__PURE__*/_jsx(g,{})]}))}function g(){function a(a){stopPropagation(a),ba(aa+DEFAULT_OPTIONS_PAGE_SIZE)}return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(M("clickable"),M("border-bottom"),M("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(M("clickable"),M("border-bottom")),onClick:d(a),onKeyPress:d(a),children:/*#__PURE__*/_jsx("a",{children:m})}))}// eslint-disable-next-line react/prop-types
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!=W){var a=oa().filter(isActionableOption);0<a.length&&e(a[W])}}function c(a){var b,c=oa().filter(isActionableOption),d=c.reduce(function(a,b,c){return null==a?k(v,b)?c:null:a},null),e=null!==(b=Z.current)&&void 0!==b?b:-1,f=e;-1===e&&(null==d?X(0):f=d);var g=f+a,h=clamp(0,c.length-1,g);X(h)}function d(a){return function(b){stopPropagation(b),e(a)}}function e(a){x(isPlaceholderOption(a)?DEFAULT_SELECTED_OPTION:a),qa()}function f(){var a,b=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},c=b.className,d=classNames(M("np-dropdown-menu"),(a={},_defineProperty(a,M("np-dropdown-menu-desktop"),!na),_defineProperty(a,M("np-dropdown-menu-".concat(r)),!na&&!ha),a),M(c)),e=oa();return/*#__PURE__*/_jsxs("ul",_objectSpread(_objectSpread({ref:fa,id:ka,role:"listbox",tabIndex:"-1",className:d},G),{},{children:[!o&&!ga&&!!m&&/*#__PURE__*/_jsx(h,{}),ga&&/*#__PURE__*/_jsx(SearchBox,{ref:ca,id:la,classNames:E,value:C||S,placeholder:D||J(messages.searchPlaceholder),keyboardFocusedOptionIndex:W,onChange:pa,onClick:stopPropagation}),e.slice(0,aa).map(ra),aa<e.length&&/*#__PURE__*/_jsx(g,{})]}))}function g(){function a(a){stopPropagation(a),ba(aa+DEFAULT_OPTIONS_PAGE_SIZE)}return/*#__PURE__*/ (/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */_jsx("li",{className:classNames(M("clickable"),M("border-bottom"),M("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(M("clickable"),M("border-bottom")),onClick:d(a),onKeyPress:d(a),children:/*#__PURE__*/_jsx("a",{children:m})}))}// eslint-disable-next-line react/prop-types
4
4
  function i(){return/*#__PURE__*/_jsx("li",{className:M("np-separator"),"aria-hidden":!0})}// eslint-disable-next-line react/prop-types
5
5
  function j(a){var b=a.children;return/*#__PURE__*/_jsx("li",{// eslint-disable-line jsx-a11y/no-noninteractive-element-interactions
6
- className:classNames(M("np-dropdown-header"),M("np-text-title-group")),onClick:stopPropagation,onKeyPress:stopPropagation,children: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 oa().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=useTheme(),L=K.isModern,M=function(a){return E[a]||a},s=useState(!1),N=_slicedToArray(s,2),O=N[0],P=N[1],Q=useState(DEFAULT_SEARCH_VALUE),R=_slicedToArray(Q,2),S=R[0],T=R[1],U=useState(null),V=_slicedToArray(U,2),W=V[0],X=V[1],Y=useRef(),Z=useRef(),$=useState(DEFAULT_OPTIONS_PAGE_SIZE),_=_slicedToArray($,2),aa=_[0],ba=_[1],ca=useRef(null),da=useRef(null),ea=useRef(null),fa=useRef(null),ga=!!B||!!w,ha=null==r,ia=useMemo(function(){return getSimpleRandomId("np-select-")},[]),ja=n||ia,ka="".concat(ja,"-listbox"),la="".concat(ja,"-searchbox"),ma=useLayout(),na=ma.isMobile;useEffect(function(){var a;if(0<=W)return requestAnimationFrame(function(){if(!a)if(ga){var b,c;null===(b=Y.current)||void 0===b||null===(c=b.scrollIntoView)||void 0===c?void 0:c.call(b,{block:"center"})}else{var d;null===(d=Y.current)||void 0===d?void 0:d.focus()}}),function(){a=!0}},[W,ga]);var oa=function(){return w&&S?A.filter(function(a){return isActionableOption(a)&&!isPlaceholderOption(a)}).filter(function(a){return"function"==typeof w?w(a,S):defaultFilterFunction(a,S)}):A},pa=function(a){ba(DEFAULT_OPTIONS_PAGE_SIZE),T(a.target.value),B&&B(a.target.value)};useEffect(function(){O?((!na||S)&&(ga&&!!ca.current&&ca.current.focus(),!ga&&fa.current&&(null==Z.current||Number.isNaN(Z.current))&&fa.current.focus()),Z.current=W):Z.current=null},[O,S,ga,na,W]);var qa=function(){P(!1),X(null),ea.current&&ea.current.focus()},ra=function(a,b){var c,e=a;if(isSparatorOption(e)&&null!==e&&void 0!==e&&e.separator)return/*#__PURE__*/_jsx(i,{},b);var f=a;if(isHeaderOption(f)&&f.header)return/*#__PURE__*/_jsx(j,{children:f.header},b);var g=k(v,a),h=a,m=!h.disabled&&W===l(b),n=classNames(M("np-dropdown-item"),h.disabled?[M("disabled")]:M("clickable"),(c={},_defineProperty(c,M("active"),g),_defineProperty(c,M("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",{ref:m?Y:void 0,"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))},sa=!!A.length;return O&&(C||S)&&(sa&&null==W&&X(0),!sa&&null!=W&&X(null)),/*#__PURE__*/_jsxs("div",{// eslint-disable-line jsx-a11y/no-static-element-interactions
6
+ className:classNames(M("np-dropdown-header"),M("np-text-title-group")),onClick:stopPropagation,onKeyPress:stopPropagation,children: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 oa().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=useTheme(),L=K.isModern,M=function(a){return E[a]||a},s=useState(!1),N=_slicedToArray(s,2),O=N[0],P=N[1],Q=useState(DEFAULT_SEARCH_VALUE),R=_slicedToArray(Q,2),S=R[0],T=R[1],U=useState(null),V=_slicedToArray(U,2),W=V[0],X=V[1],Y=useRef(),Z=useRef(),$=useState(DEFAULT_OPTIONS_PAGE_SIZE),_=_slicedToArray($,2),aa=_[0],ba=_[1],ca=useRef(null),da=useRef(null),ea=useRef(null),fa=useRef(null),ga=!!B||!!w,ha=null==r,ia=useMemo(function(){return getSimpleRandomId("np-select-")},[]),ja=n||ia,ka="".concat(ja,"-listbox"),la="".concat(ja,"-searchbox"),ma=useLayout(),na=ma.isMobile;useEffect(function(){var a;if(0<=W)return requestAnimationFrame(function(){if(!a)if(ga){var b,c;null===(b=Y.current)||void 0===b||null===(c=b.scrollIntoView)||void 0===c?void 0:c.call(b,{block:"center"})}else{var d;null===(d=Y.current)||void 0===d?void 0:d.focus()}}),function(){a=!0}},[W,ga]);var oa=function(){return w&&S?A.filter(function(a){return isActionableOption(a)&&!isPlaceholderOption(a)}).filter(function(a){return"function"==typeof w?w(a,S):defaultFilterFunction(a,S)}):A},pa=function(a){ba(DEFAULT_OPTIONS_PAGE_SIZE),T(a.target.value),B&&B(a.target.value)};useEffect(function(){O?((!na||S)&&(ga&&!!ca.current&&ca.current.focus(),!ga&&fa.current&&(null==Z.current||Number.isNaN(Z.current))&&fa.current.focus()),Z.current=W):Z.current=null},[O,S,ga,na,W]);var qa=function(){P(!1),X(null),ea.current&&ea.current.focus()},ra=function(a,b){var c,e=a;if(isSparatorOption(e)&&null!==e&&void 0!==e&&e.separator)return/*#__PURE__*/_jsx(i,{},b);var f=a;if(isHeaderOption(f)&&f.header)return/*#__PURE__*/_jsx(j,{children:f.header},b);var g=k(v,a),h=a,m=!h.disabled&&W===l(b),n=classNames(M("np-dropdown-item"),h.disabled?[M("disabled")]:M("clickable"),(c={},_defineProperty(c,M("active"),g),_defineProperty(c,M("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",{ref:m?Y:void 0,id:b,"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))},sa=!!A.length;return O&&(C||S)&&(sa&&null==W&&X(0),!sa&&null!=W&&X(null)),/*#__PURE__*/_jsxs("div",{// eslint-disable-line jsx-a11y/no-static-element-interactions
7
7
  ref:da,className:classNames(M("np-select"),u?M("btn-block"):null,M("btn-group")),onKeyDown:function handleKeyDown(a){switch(a.keyCode){case KeyCodes.UP:case KeyCodes.DOWN:O?c(a.keyCode===KeyCodes.UP?-1:1):P(!0),stopPropagation(a);break;case KeyCodes.SPACE:a.target!==ca.current&&(O?b():P(!0),stopPropagation(a));break;case KeyCodes.ENTER:O?b():P(!0),stopPropagation(a);break;case KeyCodes.ESCAPE:qa(),stopPropagation(a);break;case KeyCodes.TAB:O&&b();break;default:}},onTouchMove:function handleTouchStart(a){a.currentTarget===a.target&&O&&qa()},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:ea,id:ja,block:u,size:t,htmlType:"button",className:classNames(M("np-dropdown-toggle"),M("np-text-body-large"),q?M("np-dropdown-toggle-navy"):null)// reset Button's styles
8
8
  ,type:null,priority:null,disabled:p,role:"combobox","aria-controls":ka,"aria-expanded":O,"aria-autocomplete":"none",onClick:function handleOnClick(){P(!0)}},H),{},{children:[v?/*#__PURE__*/_jsx(Option,_objectSpread(_objectSpread({},v),{},{classNames:E,selected:!0})):/*#__PURE__*/_jsx("span",{className:M("form-control-placeholder"),children:m}),/*#__PURE__*/_jsx(Chevron// disabled={disabled}
9
9
  ,{className:classNames(M("tw-icon"),M("tw-chevron-up-icon"),M("tw-chevron"),M("bottom"),M("np-select-chevron"))})]})),na?ga?/*#__PURE__*/_jsx(Drawer,{open:O,headerTitle:D||J(messages.searchPlaceholder),onClose:qa,children:f()}):/*#__PURE__*/_jsx(BottomSheet,{open:O,onClose:qa,children:f({className:L?"":"p-a-1"})}):/*#__PURE__*/_jsx(Panel,{open:O,flip:!1,altAxis:!0,anchorRef:da,anchorWidth:ha,position:F?Position.TOP:Position.BOTTOM,onClose:qa,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}),/**
@@ -1 +1 @@
1
- import"core-js/modules/es.array.concat.js";import{Search as SearchIcon}from"@transferwise/icons";import classnames from"classnames";import{forwardRef}from"react";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var SearchBox=/*#__PURE__*/forwardRef(function(a,b){var c=a.id,d=a.classNames,e=void 0===d?{}:d,f=a.onChange,g=a.onClick,h=a.placeholder,i=void 0===h?void 0:h,j=a.value,k=void 0===j?"":j,l=function(a){return e[a]||a};return/*#__PURE__*/_jsx("li",{className:l("border-bottom"),children:/*#__PURE__*/_jsx("a",{className:"".concat(l("np-select-filter-link")," ").concat(l("p-a-0")),children:/*#__PURE__*/_jsxs("div",{className:l("input-group"),children:[/*#__PURE__*/_jsx("span",{className:classnames("input-group-addon","input-group-addon--search"),children:/*#__PURE__*/_jsx(SearchIcon,{className:classnames(l("tw-icon"),l("tw-icon-search")),size:24})}),/*#__PURE__*/_jsx("input",{ref:b,id:c,type:"text",className:classnames(l("np-select-filter"),l("form-control")),placeholder:i,value:k,spellCheck:"false",onChange:f,onClick:g})]})})})});export default SearchBox;
1
+ import"core-js/modules/es.array.concat.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.regexp.to-string.js";import{Search as SearchIcon}from"@transferwise/icons";import classnames from"classnames";import{forwardRef}from"react";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";var SearchBox=/*#__PURE__*/forwardRef(function(a,b){var c=a.id,d=a.classNames,e=void 0===d?{}:d,f=a.keyboardFocusedOptionIndex,g=a.onChange,h=a.onClick,i=a.placeholder,j=void 0===i?void 0:i,k=a.value,l=void 0===k?"":k,m=function(a){return e[a]||a};return/*#__PURE__*/_jsx("li",{className:m("border-bottom"),children:/*#__PURE__*/_jsx("a",{className:"".concat(m("np-select-filter-link")," ").concat(m("p-a-0")),children:/*#__PURE__*/_jsxs("div",{className:m("input-group"),children:[/*#__PURE__*/_jsx("span",{className:classnames("input-group-addon","input-group-addon--search"),children:/*#__PURE__*/_jsx(SearchIcon,{className:classnames(m("tw-icon"),m("tw-icon-search")),size:24})}),/*#__PURE__*/_jsx("input",{ref:b,id:c,type:"text",className:classnames(m("np-select-filter"),m("form-control")),placeholder:j,value:l,spellCheck:"false","aria-activedescendant":null===f||void 0===f?void 0:f.toString(),onChange:g,onClick:h})]})})})});export default SearchBox;
@@ -2,5 +2,6 @@ import { InputHTMLAttributes } from 'react';
2
2
  declare const SearchBox: import("react").ForwardRefExoticComponent<{
3
3
  id?: string | undefined;
4
4
  classNames?: Record<string, string> | undefined;
5
+ keyboardFocusedOptionIndex?: number | null | undefined;
5
6
  } & Pick<InputHTMLAttributes<HTMLInputElement>, "value" | "placeholder" | "onChange" | "onClick"> & import("react").RefAttributes<HTMLInputElement>>;
6
7
  export default SearchBox;