@skbkontur/react-ui 4.4.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/cjs/components/FileUploader/FileUploader.d.ts +2 -1
  3. package/cjs/components/FileUploader/FileUploader.js +15 -2
  4. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  5. package/cjs/components/Input/Input.js +2 -1
  6. package/cjs/components/Input/Input.js.map +1 -1
  7. package/cjs/components/Input/Input.styles.d.ts +1 -0
  8. package/cjs/components/Input/Input.styles.js +17 -10
  9. package/cjs/components/Input/Input.styles.js.map +1 -1
  10. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  11. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +5 -9
  12. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  13. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  14. package/cjs/components/ResponsiveLayout/decorator.d.ts +1 -1
  15. package/cjs/components/ResponsiveLayout/types.d.ts +9 -1
  16. package/cjs/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  17. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +31 -15
  18. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  19. package/cjs/components/Token/Token.styles.js +2 -1
  20. package/cjs/components/Token/Token.styles.js.map +1 -1
  21. package/cjs/components/TokenInput/TokenInput.d.ts +3 -0
  22. package/cjs/components/TokenInput/TokenInput.js +56 -13
  23. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  24. package/cjs/components/TokenInput/TokenInput.md +26 -0
  25. package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
  26. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  27. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  28. package/cjs/internal/themes/DefaultTheme.d.ts +2 -0
  29. package/cjs/internal/themes/DefaultTheme.js +7 -1
  30. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  31. package/components/FileUploader/FileUploader/FileUploader.js +8 -3
  32. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  33. package/components/FileUploader/FileUploader.d.ts +2 -1
  34. package/components/Input/Input/Input.js +1 -1
  35. package/components/Input/Input/Input.js.map +1 -1
  36. package/components/Input/Input.styles/Input.styles.js +13 -10
  37. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  38. package/components/Input/Input.styles.d.ts +1 -0
  39. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -8
  40. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  41. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  42. package/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  43. package/components/ResponsiveLayout/decorator.d.ts +1 -1
  44. package/components/ResponsiveLayout/types.d.ts +9 -1
  45. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +42 -17
  46. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  47. package/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  48. package/components/Token/Token.styles/Token.styles.js +1 -1
  49. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  50. package/components/TokenInput/TokenInput/TokenInput.js +82 -19
  51. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  52. package/components/TokenInput/TokenInput.d.ts +3 -0
  53. package/components/TokenInput/TokenInput.md +26 -0
  54. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  55. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  56. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  57. package/internal/themes/DefaultTheme/DefaultTheme.js +10 -0
  58. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  59. package/internal/themes/DefaultTheme.d.ts +2 -0
  60. package/package.json +3 -20
@@ -3,7 +3,7 @@ import { ResponsiveLayoutFlags } from './types';
3
3
  export declare function responsiveLayout<T extends new (...args: any[]) => React.Component>(WrappedComp: T): {
4
4
  new (...args: any[]): {
5
5
  layout: ResponsiveLayoutFlags;
6
- currentLayout: ResponsiveLayoutFlags;
6
+ currentLayout: ResponsiveLayoutFlags<import("./types").EmptyObject>;
7
7
  isMobileLayout: boolean;
8
8
  renderWithLayout: (currentLayout: ResponsiveLayoutFlags) => React.ReactNode;
9
9
  render(): JSX.Element;
@@ -1,3 +1,11 @@
1
- export interface ResponsiveLayoutFlags {
1
+ export declare type MediaQueriesType = Record<string, string>;
2
+ export declare type EmptyObject = Record<never, never>;
3
+ export interface ResponsiveLayoutOptions<MQ extends MediaQueriesType> {
4
+ customMediaQueries?: MQ;
5
+ }
6
+ export declare type ResponsiveLayoutFlags<T extends MediaQueriesType = EmptyObject> = {
7
+ [K in keyof T]?: boolean;
8
+ } & ResponsiveLayoutFlagsInternal;
9
+ export interface ResponsiveLayoutFlagsInternal {
2
10
  isMobile: boolean;
3
11
  }
@@ -1,32 +1,53 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { useCallback, useContext, useEffect, useRef, useState } from 'react';
2
+ import { createRef, useCallback, useContext, useEffect, useState } from 'react';
3
3
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
4
4
  import { addResponsiveLayoutListener, checkMatches } from "../ResponsiveLayoutEvents";
5
- export function useResponsiveLayout() {
6
- var theme = useContext(ThemeContext);
5
+ export function useResponsiveLayout(_temp) {
6
+ var _ref = _temp === void 0 ? {} : _temp,
7
+ customMediaQueries = _ref.customMediaQueries;
7
8
 
8
- var getLayoutFromGlobal = function getLayoutFromGlobal() {
9
- var isMobile = checkMatches(theme.mobileMediaQuery);
9
+ var theme = useContext(ThemeContext);
10
+ var allMediaQueries = Object.entries(_extends({
11
+ isMobile: theme.mobileMediaQuery
12
+ }, customMediaQueries)).map(function (_ref2) {
13
+ var key = _ref2[0],
14
+ value = _ref2[1];
10
15
  return {
11
- isMobile: !!isMobile
16
+ flag: key,
17
+ query: value,
18
+ ref: /*#__PURE__*/createRef()
12
19
  };
20
+ });
21
+
22
+ var getLayoutFromGlobal = function getLayoutFromGlobal() {
23
+ return allMediaQueries.reduce(function (result, mediaQuery) {
24
+ var _Object$assign;
25
+
26
+ return Object.assign(result, (_Object$assign = {}, _Object$assign[mediaQuery.flag] = checkMatches(mediaQuery.query), _Object$assign));
27
+ }, {});
13
28
  };
14
29
 
15
30
  var _useState = useState(getLayoutFromGlobal()),
16
31
  state = _useState[0],
17
32
  setState = _useState[1];
18
33
 
19
- var mobileListener = useRef(null);
20
34
  var prepareMediaQueries = useCallback(function () {
21
35
  if (!theme) {
22
36
  return;
23
37
  }
24
38
 
25
- mobileListener.current = addResponsiveLayoutListener(theme.mobileMediaQuery, checkLayoutsMediaQueries); // Checking for SSR use case
39
+ allMediaQueries.forEach(function (mediaQuery) {
40
+ return mediaQuery.ref.current = addResponsiveLayoutListener(mediaQuery.query, checkLayoutsMediaQueries);
41
+ }); // Checking for SSR use case
26
42
 
27
43
  var globalLayout = getLayoutFromGlobal();
44
+ var hasChangedQuery = Object.entries(globalLayout).find(function (_ref3) {
45
+ var key = _ref3[0],
46
+ value = _ref3[1];
47
+ return state[key] !== value;
48
+ });
28
49
 
29
- if (globalLayout.isMobile !== state.isMobile) {
50
+ if (hasChangedQuery) {
30
51
  setState(globalLayout);
31
52
  }
32
53
  }, [theme]);
@@ -35,20 +56,24 @@ export function useResponsiveLayout() {
35
56
  return;
36
57
  }
37
58
 
38
- if (e.media === theme.mobileMediaQuery) {
39
- setState(function (prevState) {
40
- return _extends({}, prevState, {
41
- isMobile: e.matches
59
+ allMediaQueries.forEach(function (mediaQuery) {
60
+ if (e.media === mediaQuery.query) {
61
+ setState(function (prevState) {
62
+ var _extends2;
63
+
64
+ return _extends({}, prevState, (_extends2 = {}, _extends2[mediaQuery.flag] = e.matches, _extends2));
42
65
  });
43
- });
44
- }
66
+ }
67
+ });
45
68
  }, [theme]);
46
69
  useEffect(function () {
47
70
  prepareMediaQueries();
48
71
  return function () {
49
- var _mobileListener$curre;
72
+ allMediaQueries.forEach(function (mediaQuery) {
73
+ var _mediaQuery$ref$curre;
50
74
 
51
- (_mobileListener$curre = mobileListener.current) == null ? void 0 : _mobileListener$curre.remove();
75
+ return (_mediaQuery$ref$curre = mediaQuery.ref.current) == null ? void 0 : _mediaQuery$ref$curre.remove();
76
+ });
52
77
  };
53
78
  }, []);
54
79
  return state;
@@ -1 +1 @@
1
- {"version":3,"sources":["useResponsiveLayout.ts"],"names":["useCallback","useContext","useEffect","useRef","useState","ThemeContext","addResponsiveLayoutListener","checkMatches","useResponsiveLayout","theme","getLayoutFromGlobal","isMobile","mobileMediaQuery","state","setState","mobileListener","prepareMediaQueries","current","checkLayoutsMediaQueries","globalLayout","e","media","prevState","matches","remove"],"mappings":"0DAAA,SAAgBA,WAAhB,EAA6BC,UAA7B,EAAyCC,SAAzC,EAAoDC,MAApD,EAA4DC,QAA5D,QAA4E,OAA5E;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;;AAGA,SAASC,2BAAT,EAAsCC,YAAtC,QAA0D,0BAA1D;;AAEA,OAAO,SAASC,mBAAT,GAA+B;AACpC,MAAMC,KAAK,GAAGR,UAAU,CAACI,YAAD,CAAxB;;AAEA,MAAMK,mBAAmB,GAAG,SAAtBA,mBAAsB,GAA6B;AACvD,QAAMC,QAAQ,GAAGJ,YAAY,CAACE,KAAK,CAACG,gBAAP,CAA7B;;AAEA,WAAO,EAAED,QAAQ,EAAE,CAAC,CAACA,QAAd,EAAP;AACD,GAJD;;AAMA,kBAA0BP,QAAQ,CAACM,mBAAmB,EAApB,CAAlC,CAAOG,KAAP,gBAAcC,QAAd;;AAEA,MAAMC,cAAqE,GAAGZ,MAAM,CAAC,IAAD,CAApF;;AAEA,MAAMa,mBAAmB,GAAGhB,WAAW,CAAC,YAAM;AAC5C,QAAI,CAACS,KAAL,EAAY;AACV;AACD;;AAEDM,IAAAA,cAAc,CAACE,OAAf,GAAyBX,2BAA2B,CAACG,KAAK,CAACG,gBAAP,EAAyBM,wBAAzB,CAApD;;AAEA;AACA,QAAMC,YAAY,GAAGT,mBAAmB,EAAxC;;AAEA,QAAIS,YAAY,CAACR,QAAb,KAA0BE,KAAK,CAACF,QAApC,EAA8C;AAC5CG,MAAAA,QAAQ,CAACK,YAAD,CAAR;AACD;AACF,GAbsC,EAapC,CAACV,KAAD,CAboC,CAAvC;;AAeA,MAAMS,wBAAwB,GAAGlB,WAAW;AAC1C,YAACoB,CAAD,EAA4B;AAC1B,QAAI,CAACX,KAAL,EAAY;AACV;AACD;;AAED,QAAIW,CAAC,CAACC,KAAF,KAAYZ,KAAK,CAACG,gBAAtB,EAAwC;AACtCE,MAAAA,QAAQ,CAAC,UAACQ,SAAD;AACJA,QAAAA,SADI;AAEPX,UAAAA,QAAQ,EAAES,CAAC,CAACG,OAFL,KAAD,CAAR;;AAID;AACF,GAZyC;AAa1C,GAACd,KAAD,CAb0C,CAA5C;;;AAgBAP,EAAAA,SAAS,CAAC,YAAM;AACdc,IAAAA,mBAAmB;;AAEnB,WAAO,YAAM;AACX,+BAAAD,cAAc,CAACE,OAAf,2CAAwBO,MAAxB;AACD,KAFD;AAGD,GANQ,EAMN,EANM,CAAT;;AAQA,SAAOX,KAAP;AACD","sourcesContent":["import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { addResponsiveLayoutListener, checkMatches } from './ResponsiveLayoutEvents';\n\nexport function useResponsiveLayout() {\n const theme = useContext(ThemeContext);\n\n const getLayoutFromGlobal = (): ResponsiveLayoutFlags => {\n const isMobile = checkMatches(theme.mobileMediaQuery);\n\n return { isMobile: !!isMobile };\n };\n\n const [state, setState] = useState(getLayoutFromGlobal());\n\n const mobileListener: React.MutableRefObject<{ remove: () => void } | null> = useRef(null);\n\n const prepareMediaQueries = useCallback(() => {\n if (!theme) {\n return;\n }\n\n mobileListener.current = addResponsiveLayoutListener(theme.mobileMediaQuery, checkLayoutsMediaQueries);\n\n // Checking for SSR use case\n const globalLayout = getLayoutFromGlobal();\n\n if (globalLayout.isMobile !== state.isMobile) {\n setState(globalLayout);\n }\n }, [theme]);\n\n const checkLayoutsMediaQueries = useCallback(\n (e: MediaQueryListEvent) => {\n if (!theme) {\n return;\n }\n\n if (e.media === theme.mobileMediaQuery) {\n setState((prevState: ResponsiveLayoutFlags) => ({\n ...prevState,\n isMobile: e.matches,\n }));\n }\n },\n [theme],\n );\n\n useEffect(() => {\n prepareMediaQueries();\n\n return () => {\n mobileListener.current?.remove();\n };\n }, []);\n\n return state;\n}\n"]}
1
+ {"version":3,"sources":["useResponsiveLayout.ts"],"names":["createRef","useCallback","useContext","useEffect","useState","ThemeContext","addResponsiveLayoutListener","checkMatches","useResponsiveLayout","customMediaQueries","theme","allMediaQueries","Object","entries","isMobile","mobileMediaQuery","map","key","value","flag","query","ref","getLayoutFromGlobal","reduce","result","mediaQuery","assign","state","setState","prepareMediaQueries","forEach","current","checkLayoutsMediaQueries","globalLayout","hasChangedQuery","find","e","media","prevState","matches","remove"],"mappings":"0DAAA,SAAgBA,SAAhB,EAA2BC,WAA3B,EAAwCC,UAAxC,EAAoDC,SAApD,EAA+DC,QAA/D,QAA+E,OAA/E;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;;AAGA,SAASC,2BAAT,EAAsCC,YAAtC,QAA0D,0BAA1D;;AAEA,OAAO,SAASC,mBAAT;;AAE6B,+BAAJ,EAAI,SADlCC,kBACkC,QADlCA,kBACkC;AAClC,MAAMC,KAAK,GAAGR,UAAU,CAACG,YAAD,CAAxB;;AAEA,MAAMM,eAAe,GAAGC,MAAM,CAACC,OAAP;AACtBC,IAAAA,QAAQ,EAAEJ,KAAK,CAACK,gBADM;AAEnBN,EAAAA,kBAFmB;AAGrBO,EAAAA,GAHqB,CAGjB,sBAAEC,GAAF,YAAOC,KAAP,mBAAmB;AACxBC,MAAAA,IAAI,EAAEF,GADkB;AAExBG,MAAAA,KAAK,EAAEF,KAFiB;AAGxBG,MAAAA,GAAG,eAAErB,SAAS,EAHU,EAAnB,EAHiB,CAAxB;;;AASA,MAAMsB,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAgC;AAC1D,WAAOX,eAAe,CAACY,MAAhB;AACL,cAACC,MAAD,EAASC,UAAT,6BAAwBb,MAAM,CAACc,MAAP,CAAcF,MAAd,uCAAyBC,UAAU,CAACN,IAApC,IAA2CZ,YAAY,CAACkB,UAAU,CAACL,KAAZ,CAAvD,kBAAxB,EADK;AAEL,MAFK,CAAP;;AAID,GALD;;AAOA,kBAA0BhB,QAAQ,CAACkB,mBAAmB,EAApB,CAAlC,CAAOK,KAAP,gBAAcC,QAAd;;AAEA,MAAMC,mBAAmB,GAAG5B,WAAW,CAAC,YAAM;AAC5C,QAAI,CAACS,KAAL,EAAY;AACV;AACD;;AAEDC,IAAAA,eAAe,CAACmB,OAAhB;AACE,cAACL,UAAD;AACGA,QAAAA,UAAU,CAACJ,GAAX,CAAeU,OAAf,GAAyBzB,2BAA2B,CAACmB,UAAU,CAACL,KAAZ,EAAmBY,wBAAnB,CADvD,GADF;;;AAKA;AACA,QAAMC,YAAY,GAAGX,mBAAmB,EAAxC;AACA,QAAMY,eAAe,GAAGtB,MAAM,CAACC,OAAP,CAAeoB,YAAf,EAA6BE,IAA7B,CAAkC,sBAAElB,GAAF,YAAOC,KAAP,mBAAkBS,KAAK,CAACV,GAAD,CAAL,KAAeC,KAAjC,EAAlC,CAAxB;;AAEA,QAAIgB,eAAJ,EAAqB;AACnBN,MAAAA,QAAQ,CAACK,YAAD,CAAR;AACD;AACF,GAjBsC,EAiBpC,CAACvB,KAAD,CAjBoC,CAAvC;;AAmBA,MAAMsB,wBAAwB,GAAG/B,WAAW;AAC1C,YAACmC,CAAD,EAA4B;AAC1B,QAAI,CAAC1B,KAAL,EAAY;AACV;AACD;;AAEDC,IAAAA,eAAe,CAACmB,OAAhB,CAAwB,UAACL,UAAD,EAAgB;AACtC,UAAIW,CAAC,CAACC,KAAF,KAAYZ,UAAU,CAACL,KAA3B,EAAkC;AAChCQ,QAAAA,QAAQ,CAAC,UAACU,SAAD;AACJA,UAAAA,SADI;AAENb,UAAAA,UAAU,CAACN,IAFL,IAEYiB,CAAC,CAACG,OAFd,eAAD,CAAR;;AAID;AACF,KAPD;AAQD,GAdyC;AAe1C,GAAC7B,KAAD,CAf0C,CAA5C;;;AAkBAP,EAAAA,SAAS,CAAC,YAAM;AACd0B,IAAAA,mBAAmB;;AAEnB,WAAO,YAAM;AACXlB,MAAAA,eAAe,CAACmB,OAAhB,CAAwB,UAACL,UAAD,6DAAgBA,UAAU,CAACJ,GAAX,CAAeU,OAA/B,qBAAgB,sBAAwBS,MAAxB,EAAhB,EAAxB;AACD,KAFD;AAGD,GANQ,EAMN,EANM,CAAT;;AAQA,SAAOb,KAAP;AACD","sourcesContent":["import React, { createRef, useCallback, useContext, useEffect, useState } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags, ResponsiveLayoutOptions } from './types';\nimport { addResponsiveLayoutListener, checkMatches } from './ResponsiveLayoutEvents';\n\nexport function useResponsiveLayout<T extends MediaQueriesType = EmptyObject>({\n customMediaQueries,\n}: ResponsiveLayoutOptions<T> = {}) {\n const theme = useContext(ThemeContext);\n\n const allMediaQueries = Object.entries({\n isMobile: theme.mobileMediaQuery,\n ...customMediaQueries,\n }).map(([key, value]) => ({\n flag: key,\n query: value,\n ref: createRef() as React.MutableRefObject<{ remove: () => void } | null>,\n }));\n\n const getLayoutFromGlobal = (): ResponsiveLayoutFlags<T> => {\n return allMediaQueries.reduce(\n (result, mediaQuery) => Object.assign(result, { [mediaQuery.flag]: checkMatches(mediaQuery.query) }),\n {},\n ) as ResponsiveLayoutFlags<T>;\n };\n\n const [state, setState] = useState(getLayoutFromGlobal());\n\n const prepareMediaQueries = useCallback(() => {\n if (!theme) {\n return;\n }\n\n allMediaQueries.forEach(\n (mediaQuery) =>\n (mediaQuery.ref.current = addResponsiveLayoutListener(mediaQuery.query, checkLayoutsMediaQueries)),\n );\n\n // Checking for SSR use case\n const globalLayout = getLayoutFromGlobal();\n const hasChangedQuery = Object.entries(globalLayout).find(([key, value]) => state[key] !== value);\n\n if (hasChangedQuery) {\n setState(globalLayout);\n }\n }, [theme]);\n\n const checkLayoutsMediaQueries = useCallback(\n (e: MediaQueryListEvent) => {\n if (!theme) {\n return;\n }\n\n allMediaQueries.forEach((mediaQuery) => {\n if (e.media === mediaQuery.query) {\n setState((prevState: ResponsiveLayoutFlags<T>) => ({\n ...prevState,\n [mediaQuery.flag]: e.matches,\n }));\n }\n });\n },\n [theme],\n );\n\n useEffect(() => {\n prepareMediaQueries();\n\n return () => {\n allMediaQueries.forEach((mediaQuery) => mediaQuery.ref.current?.remove());\n };\n }, []);\n\n return state;\n}\n"]}
@@ -1,2 +1,2 @@
1
- import { ResponsiveLayoutFlags } from './types';
2
- export declare function useResponsiveLayout(): ResponsiveLayoutFlags;
1
+ import { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags, ResponsiveLayoutOptions } from './types';
2
+ export declare function useResponsiveLayout<T extends MediaQueriesType = EmptyObject>({ customMediaQueries, }?: ResponsiveLayoutOptions<T>): ResponsiveLayoutFlags<T>;
@@ -13,7 +13,7 @@ export var styles = memoizeStyle({
13
13
  return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n border-radius: ", ";\n padding: ", " ", ";\n line-height: ", ";\n font-size: ", ";\n margin: ", " ", ";\n min-width: 0;\n word-break: break-all;\n user-select: none;\n\n &:hover {\n cursor: pointer;\n }\n "])), t.tokenBorderRadius, t.tokenPaddingY, t.tokenPaddingX, t.tokenLineHeight, t.tokenFontSize, t.tokenMarginY, t.tokenMarginX);
14
14
  },
15
15
  disabled: function disabled(t) {
16
- return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n padding: ", " ", ";\n margin: ", " ", ";\n user-select: text;\n cursor: text;\n color: ", ";\n\n .", " {\n visibility: hidden;\n }\n "])), t.tokenPaddingYDisabled, t.tokenPaddingXDisabled, t.tokenMarginYDisabled, t.tokenMarginXDisabled, t.tokenTextColorDisabled, globalClasses.removeIcon);
16
+ return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n padding: ", " ", ";\n margin: ", " ", ";\n user-select: text;\n cursor: text;\n color: ", ";\n pointer-events: none;\n\n .", " {\n visibility: hidden;\n }\n "])), t.tokenPaddingYDisabled, t.tokenPaddingXDisabled, t.tokenMarginYDisabled, t.tokenMarginXDisabled, t.tokenTextColorDisabled, globalClasses.removeIcon);
17
17
  },
18
18
  text: function text(t) {
19
19
  return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n padding-bottom: ", ";\n "])), t.tokenLegacyTextShift);
@@ -1 +1 @@
1
- {"version":3,"sources":["Token.styles.ts"],"names":["css","memoizeStyle","prefix","ColorFunctions","globalClasses","removeIcon","styles","token","t","tokenBorderRadius","tokenPaddingY","tokenPaddingX","tokenLineHeight","tokenFontSize","tokenMarginY","tokenMarginX","disabled","tokenPaddingYDisabled","tokenPaddingXDisabled","tokenMarginYDisabled","tokenMarginXDisabled","tokenTextColorDisabled","text","tokenLegacyTextShift","tokenRemoveIconSize","tokenRemoveIconPaddingY","tokenRemoveIconPaddingX","tokenRemoveIconBoxSizing","tokenRemoveIconGap","colorStyles","name","color","tokenDefaultIdle","tokenDefaultActive","tokenGrayIdle","tokenGrayActive","tokenBlueIdle","tokenBlueActive","tokenGreenIdle","tokenGreenActive","tokenYellowIdle","tokenYellowActive","tokenRedIdle","tokenRedActive","tokenWhite","tokenBlack","reduce","colors","v","getVStyle","tokenOutlineWidth","tokenBorderColorError","tokenBorderColorWarning","contrast","tokenBorderWidth","darken","defaultDisabled","tokenDisabledBg","tokenShadowDisabled","defaultDisabledWarning","defaultDisabledError"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\n\nexport const globalClasses = prefix('token')({\n removeIcon: 'remove-icon',\n});\n\nexport const styles = memoizeStyle({\n token(t: Theme) {\n return css`\n display: inline-flex;\n align-items: center;\n border-radius: ${t.tokenBorderRadius};\n padding: ${t.tokenPaddingY} ${t.tokenPaddingX};\n line-height: ${t.tokenLineHeight};\n font-size: ${t.tokenFontSize};\n margin: ${t.tokenMarginY} ${t.tokenMarginX};\n min-width: 0;\n word-break: break-all;\n user-select: none;\n\n &:hover {\n cursor: pointer;\n }\n `;\n },\n\n disabled(t: Theme) {\n return css`\n padding: ${t.tokenPaddingYDisabled} ${t.tokenPaddingXDisabled};\n margin: ${t.tokenMarginYDisabled} ${t.tokenMarginXDisabled};\n user-select: text;\n cursor: text;\n color: ${t.tokenTextColorDisabled};\n\n .${globalClasses.removeIcon} {\n visibility: hidden;\n }\n `;\n },\n\n text(t: Theme) {\n return css`\n display: inline-block;\n padding-bottom: ${t.tokenLegacyTextShift};\n `;\n },\n\n removeIcon(t: Theme) {\n return css`\n height: ${t.tokenRemoveIconSize};\n width: ${t.tokenRemoveIconSize};\n flex-shrink: 0;\n padding: ${t.tokenRemoveIconPaddingY} ${t.tokenRemoveIconPaddingX};\n box-sizing: ${t.tokenRemoveIconBoxSizing};\n margin-left: ${t.tokenRemoveIconGap};\n transition: none;\n fill: currentColor;\n opacity: 0.5;\n line-height: 0;\n\n &:hover {\n opacity: 1;\n }\n `;\n },\n});\n\ninterface TokenColors {\n defaultIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n defaultActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n defaultDisabled: (t: Theme) => string;\n defaultDisabledWarning: (t: Theme) => string;\n defaultDisabledError: (t: Theme) => string;\n grayIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n grayActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n blueIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n blueActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n greenIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n greenActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n yellowIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n yellowActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n redIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n redActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n white: (t: Theme, v: 'error' | 'warning' | null) => string;\n black: (t: Theme, v: 'error' | 'warning' | null) => string;\n}\n\nexport const colorStyles = [\n { name: 'defaultIdle', color: (t: Theme) => t.tokenDefaultIdle },\n { name: 'defaultActive', color: (t: Theme) => t.tokenDefaultActive },\n { name: 'grayIdle', color: (t: Theme) => t.tokenGrayIdle },\n { name: 'grayActive', color: (t: Theme) => t.tokenGrayActive },\n { name: 'blueIdle', color: (t: Theme) => t.tokenBlueIdle },\n { name: 'blueActive', color: (t: Theme) => t.tokenBlueActive },\n { name: 'greenIdle', color: (t: Theme) => t.tokenGreenIdle },\n { name: 'greenActive', color: (t: Theme) => t.tokenGreenActive },\n { name: 'yellowIdle', color: (t: Theme) => t.tokenYellowIdle },\n { name: 'yellowActive', color: (t: Theme) => t.tokenYellowActive },\n { name: 'redIdle', color: (t: Theme) => t.tokenRedIdle },\n { name: 'redActive', color: (t: Theme) => t.tokenRedActive },\n { name: 'white', color: (t: Theme) => t.tokenWhite },\n { name: 'black', color: (t: Theme) => t.tokenBlack },\n].reduce(\n (colors: TokenColors, { name, color }) => ({\n ...colors,\n [name](t: Theme, v: 'error' | 'warning') {\n const getVStyle = () => {\n if (v === 'error') {\n return css`\n box-shadow: 0 0 0 ${t.tokenOutlineWidth} ${t.tokenBorderColorError}, inset 0 0 0 1px ${color(t)};\n `;\n } else if (v === 'warning') {\n return css`\n box-shadow: 0 0 0 ${t.tokenOutlineWidth} ${t.tokenBorderColorWarning}, inset 0 0 0 1px ${color(t)};\n `;\n }\n\n return '';\n };\n\n return css`\n background-color: ${color(t)};\n color: ${ColorFunctions.contrast(color(t))};\n box-shadow: 0 0 0 ${t.tokenBorderWidth} ${ColorFunctions.darken(color(t), '5%')}, inset 0 0 0 1px ${color(t)};\n\n ${getVStyle()}\n\n .${globalClasses.removeIcon}:hover {\n color: ${ColorFunctions.contrast(color(t))};\n }\n `;\n },\n }),\n {\n defaultDisabled(t: Theme) {\n return css`\n background-color: ${t.tokenDisabledBg};\n box-shadow: ${t.tokenShadowDisabled};\n `;\n },\n defaultDisabledWarning(t: Theme) {\n return css`\n box-shadow: 0 0 0 ${t.tokenOutlineWidth} ${t.tokenBorderColorWarning}, inset 0 0 0 1px ${t.tokenDisabledBg};\n `;\n },\n defaultDisabledError(t: Theme) {\n return css`\n box-shadow: 0 0 0 ${t.tokenOutlineWidth} ${t.tokenBorderColorError}, inset 0 0 0 1px ${t.tokenDisabledBg};\n `;\n },\n } as TokenColors,\n);\n"]}
1
+ {"version":3,"sources":["Token.styles.ts"],"names":["css","memoizeStyle","prefix","ColorFunctions","globalClasses","removeIcon","styles","token","t","tokenBorderRadius","tokenPaddingY","tokenPaddingX","tokenLineHeight","tokenFontSize","tokenMarginY","tokenMarginX","disabled","tokenPaddingYDisabled","tokenPaddingXDisabled","tokenMarginYDisabled","tokenMarginXDisabled","tokenTextColorDisabled","text","tokenLegacyTextShift","tokenRemoveIconSize","tokenRemoveIconPaddingY","tokenRemoveIconPaddingX","tokenRemoveIconBoxSizing","tokenRemoveIconGap","colorStyles","name","color","tokenDefaultIdle","tokenDefaultActive","tokenGrayIdle","tokenGrayActive","tokenBlueIdle","tokenBlueActive","tokenGreenIdle","tokenGreenActive","tokenYellowIdle","tokenYellowActive","tokenRedIdle","tokenRedActive","tokenWhite","tokenBlack","reduce","colors","v","getVStyle","tokenOutlineWidth","tokenBorderColorError","tokenBorderColorWarning","contrast","tokenBorderWidth","darken","defaultDisabled","tokenDisabledBg","tokenShadowDisabled","defaultDisabledWarning","defaultDisabledError"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\n\nexport const globalClasses = prefix('token')({\n removeIcon: 'remove-icon',\n});\n\nexport const styles = memoizeStyle({\n token(t: Theme) {\n return css`\n display: inline-flex;\n align-items: center;\n border-radius: ${t.tokenBorderRadius};\n padding: ${t.tokenPaddingY} ${t.tokenPaddingX};\n line-height: ${t.tokenLineHeight};\n font-size: ${t.tokenFontSize};\n margin: ${t.tokenMarginY} ${t.tokenMarginX};\n min-width: 0;\n word-break: break-all;\n user-select: none;\n\n &:hover {\n cursor: pointer;\n }\n `;\n },\n\n disabled(t: Theme) {\n return css`\n padding: ${t.tokenPaddingYDisabled} ${t.tokenPaddingXDisabled};\n margin: ${t.tokenMarginYDisabled} ${t.tokenMarginXDisabled};\n user-select: text;\n cursor: text;\n color: ${t.tokenTextColorDisabled};\n pointer-events: none;\n\n .${globalClasses.removeIcon} {\n visibility: hidden;\n }\n `;\n },\n\n text(t: Theme) {\n return css`\n display: inline-block;\n padding-bottom: ${t.tokenLegacyTextShift};\n `;\n },\n\n removeIcon(t: Theme) {\n return css`\n height: ${t.tokenRemoveIconSize};\n width: ${t.tokenRemoveIconSize};\n flex-shrink: 0;\n padding: ${t.tokenRemoveIconPaddingY} ${t.tokenRemoveIconPaddingX};\n box-sizing: ${t.tokenRemoveIconBoxSizing};\n margin-left: ${t.tokenRemoveIconGap};\n transition: none;\n fill: currentColor;\n opacity: 0.5;\n line-height: 0;\n\n &:hover {\n opacity: 1;\n }\n `;\n },\n});\n\ninterface TokenColors {\n defaultIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n defaultActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n defaultDisabled: (t: Theme) => string;\n defaultDisabledWarning: (t: Theme) => string;\n defaultDisabledError: (t: Theme) => string;\n grayIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n grayActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n blueIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n blueActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n greenIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n greenActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n yellowIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n yellowActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n redIdle: (t: Theme, v: 'error' | 'warning' | null) => string;\n redActive: (t: Theme, v: 'error' | 'warning' | null) => string;\n white: (t: Theme, v: 'error' | 'warning' | null) => string;\n black: (t: Theme, v: 'error' | 'warning' | null) => string;\n}\n\nexport const colorStyles = [\n { name: 'defaultIdle', color: (t: Theme) => t.tokenDefaultIdle },\n { name: 'defaultActive', color: (t: Theme) => t.tokenDefaultActive },\n { name: 'grayIdle', color: (t: Theme) => t.tokenGrayIdle },\n { name: 'grayActive', color: (t: Theme) => t.tokenGrayActive },\n { name: 'blueIdle', color: (t: Theme) => t.tokenBlueIdle },\n { name: 'blueActive', color: (t: Theme) => t.tokenBlueActive },\n { name: 'greenIdle', color: (t: Theme) => t.tokenGreenIdle },\n { name: 'greenActive', color: (t: Theme) => t.tokenGreenActive },\n { name: 'yellowIdle', color: (t: Theme) => t.tokenYellowIdle },\n { name: 'yellowActive', color: (t: Theme) => t.tokenYellowActive },\n { name: 'redIdle', color: (t: Theme) => t.tokenRedIdle },\n { name: 'redActive', color: (t: Theme) => t.tokenRedActive },\n { name: 'white', color: (t: Theme) => t.tokenWhite },\n { name: 'black', color: (t: Theme) => t.tokenBlack },\n].reduce(\n (colors: TokenColors, { name, color }) => ({\n ...colors,\n [name](t: Theme, v: 'error' | 'warning') {\n const getVStyle = () => {\n if (v === 'error') {\n return css`\n box-shadow: 0 0 0 ${t.tokenOutlineWidth} ${t.tokenBorderColorError}, inset 0 0 0 1px ${color(t)};\n `;\n } else if (v === 'warning') {\n return css`\n box-shadow: 0 0 0 ${t.tokenOutlineWidth} ${t.tokenBorderColorWarning}, inset 0 0 0 1px ${color(t)};\n `;\n }\n\n return '';\n };\n\n return css`\n background-color: ${color(t)};\n color: ${ColorFunctions.contrast(color(t))};\n box-shadow: 0 0 0 ${t.tokenBorderWidth} ${ColorFunctions.darken(color(t), '5%')}, inset 0 0 0 1px ${color(t)};\n\n ${getVStyle()}\n\n .${globalClasses.removeIcon}:hover {\n color: ${ColorFunctions.contrast(color(t))};\n }\n `;\n },\n }),\n {\n defaultDisabled(t: Theme) {\n return css`\n background-color: ${t.tokenDisabledBg};\n box-shadow: ${t.tokenShadowDisabled};\n `;\n },\n defaultDisabledWarning(t: Theme) {\n return css`\n box-shadow: 0 0 0 ${t.tokenOutlineWidth} ${t.tokenBorderColorWarning}, inset 0 0 0 1px ${t.tokenDisabledBg};\n `;\n },\n defaultDisabledError(t: Theme) {\n return css`\n box-shadow: 0 0 0 ${t.tokenOutlineWidth} ${t.tokenBorderColorError}, inset 0 0 0 1px ${t.tokenDisabledBg};\n `;\n },\n } as TokenColors,\n);\n"]}
@@ -131,6 +131,7 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
131
131
  _this.tokensInputMenu = null;
132
132
  _this.textHelper = null;
133
133
  _this.wrapper = null;
134
+ _this.memoizedTokens = new Map();
134
135
 
135
136
  _this.hasValueInItems = function (items, value) {
136
137
  if (typeof value === 'string') {
@@ -466,6 +467,8 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
466
467
  }
467
468
  }
468
469
 
470
+ var isRightmostTokenNotDisabled = !_this.isTokenDisabled(_this.getProps().selectedItems.length - 1);
471
+
469
472
  switch (true) {
470
473
  case isKeyEnter(e):
471
474
  if (_this.menuRef) {
@@ -495,7 +498,7 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
495
498
  break;
496
499
 
497
500
  case isKeyBackspace(e):
498
- if (!_this.isEditingMode) {
501
+ if (!_this.isEditingMode && isRightmostTokenNotDisabled) {
499
502
  _this.moveFocusToLastToken();
500
503
  }
501
504
 
@@ -503,7 +506,16 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
503
506
 
504
507
  case isKeyArrowLeft(e):
505
508
  if (((_this$input4 = _this.input) == null ? void 0 : _this$input4.selectionStart) === 0) {
506
- _this.moveFocusToLastToken();
509
+ var index = _this.getAvailableTokenIndex(_this.getProps().selectedItems.length);
510
+
511
+ var itemNew = _this.getProps().selectedItems[index];
512
+
513
+ if (itemNew) {
514
+ _this.dispatch({
515
+ type: 'SET_ACTIVE_TOKENS',
516
+ payload: [itemNew]
517
+ });
518
+ }
507
519
  }
508
520
 
509
521
  break;
@@ -535,7 +547,9 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
535
547
  case isKeyBackspace(e):
536
548
  case isKeyDelete(e):
537
549
  {
538
- if (!_this.isEditingMode) {
550
+ var indexOfActiveToken = _this.getProps().selectedItems.indexOf(_this.state.activeTokens[_this.state.activeTokens.length - 1]);
551
+
552
+ if (!_this.isEditingMode && !_this.isTokenDisabled(indexOfActiveToken)) {
539
553
  var itemsNew = selectedItems.filter(function (item) {
540
554
  return !_this.hasValueInItems(_this.state.activeTokens, item);
541
555
  });
@@ -577,7 +591,9 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
577
591
 
578
592
  _this.dispatch({
579
593
  type: 'SET_ACTIVE_TOKENS',
580
- payload: selectedItems
594
+ payload: selectedItems.filter(function (item) {
595
+ return !_this.isTokenDisabled(selectedItems.indexOf(item));
596
+ })
581
597
  });
582
598
 
583
599
  break;
@@ -591,9 +607,11 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
591
607
 
592
608
  var activeTokens = _this.state.activeTokens;
593
609
  var activeItemIndex = selectedItems.indexOf(activeTokens[0]);
594
- var newItemIndex = activeItemIndex + (isKeyArrowLeft(e) ? -1 : +1);
610
+
611
+ var newItemIndex = _this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));
612
+
595
613
  var isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);
596
- var isRightEdge = activeItemIndex === selectedItems.length - 1 && isKeyArrowRight(e);
614
+ var isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);
597
615
 
598
616
  if (!e.shiftKey && activeTokens.length === 1) {
599
617
  _this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);
@@ -872,6 +890,8 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
872
890
  };
873
891
 
874
892
  _this.renderToken = function (item) {
893
+ var _this$props$selectedI;
894
+
875
895
  var _this$props = _this.props,
876
896
  _this$props$renderTok = _this$props.renderToken,
877
897
  renderToken = _this$props$renderTok === void 0 ? defaultRenderToken : _this$props$renderTok,
@@ -900,18 +920,22 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
900
920
  var handleTokenDoubleClick = function handleTokenDoubleClick(event) {
901
921
  event.stopPropagation();
902
922
 
903
- if (!_this.isEditingMode) {
923
+ if (!_this.isEditingMode && !disabled) {
904
924
  _this.handleTokenEdit(item);
905
925
  }
906
926
  };
907
927
 
908
- return renderToken(item, {
928
+ var renderedToken = renderToken(item, {
909
929
  isActive: isActive,
910
930
  onClick: handleTokenClick,
911
931
  onDoubleClick: handleTokenDoubleClick,
912
932
  onRemove: handleIconClick,
913
933
  disabled: disabled
914
934
  });
935
+
936
+ _this.memoizedTokens.set((_this$props$selectedI = _this.props.selectedItems) == null ? void 0 : _this$props$selectedI.indexOf(item), renderedToken);
937
+
938
+ return renderedToken;
915
939
  };
916
940
 
917
941
  _this.renderAddButton = function (value) {
@@ -937,6 +961,44 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
937
961
  }, addButtonTitle, " ", value);
938
962
  };
939
963
 
964
+ _this.isTokenDisabled = function (itemIndex) {
965
+ var renderedToken;
966
+
967
+ if (_this.memoizedTokens.has(itemIndex)) {
968
+ renderedToken = _this.memoizedTokens.get(itemIndex);
969
+ } else if (itemIndex < 0 || itemIndex > _this.getProps().selectedItems.length - 1) {
970
+ return false;
971
+ } else {
972
+ renderedToken = _this.renderToken(_this.getProps().selectedItems[itemIndex]);
973
+ }
974
+
975
+ return renderedToken.props.disabled;
976
+ };
977
+
978
+ _this.getAvailableTokenIndex = function (startIndex, isDirectionLeft) {
979
+ if (isDirectionLeft === void 0) {
980
+ isDirectionLeft = true;
981
+ }
982
+
983
+ var _this$getProps7 = _this.getProps(),
984
+ selectedItems = _this$getProps7.selectedItems;
985
+
986
+ var step = isDirectionLeft ? -1 : +1;
987
+ var availableIndex = startIndex + step;
988
+
989
+ while (_this.isTokenDisabled(availableIndex)) {
990
+ availableIndex += step;
991
+
992
+ if (availableIndex === selectedItems.length) {
993
+ return availableIndex;
994
+ } else if (availableIndex === -1) {
995
+ return startIndex;
996
+ }
997
+ }
998
+
999
+ return availableIndex;
1000
+ };
1001
+
940
1002
  return _this;
941
1003
  }
942
1004
 
@@ -965,6 +1027,7 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
965
1027
 
966
1028
  if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {
967
1029
  LayoutEvents.emit();
1030
+ this.memoizedTokens.clear();
968
1031
  }
969
1032
 
970
1033
  if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {
@@ -1024,14 +1087,14 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
1024
1087
  renderTotalCount = _this$props2.renderTotalCount,
1025
1088
  totalCount = _this$props2.totalCount;
1026
1089
 
1027
- var _this$getProps7 = this.getProps(),
1028
- selectedItems = _this$getProps7.selectedItems,
1029
- width = _this$getProps7.width,
1030
- onMouseEnter = _this$getProps7.onMouseEnter,
1031
- onMouseLeave = _this$getProps7.onMouseLeave,
1032
- menuWidth = _this$getProps7.menuWidth,
1033
- menuAlign = _this$getProps7.menuAlign,
1034
- renderItem = _this$getProps7.renderItem;
1090
+ var _this$getProps8 = this.getProps(),
1091
+ selectedItems = _this$getProps8.selectedItems,
1092
+ width = _this$getProps8.width,
1093
+ onMouseEnter = _this$getProps8.onMouseEnter,
1094
+ onMouseLeave = _this$getProps8.onMouseLeave,
1095
+ menuWidth = _this$getProps8.menuWidth,
1096
+ menuAlign = _this$getProps8.menuAlign,
1097
+ renderItem = _this$getProps8.renderItem;
1035
1098
 
1036
1099
  var _this$state3 = this.state,
1037
1100
  activeTokens = _this$state3.activeTokens,
@@ -1214,9 +1277,9 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
1214
1277
  inputValue = _this$state4.inputValue,
1215
1278
  editingTokenIndex = _this$state4.editingTokenIndex;
1216
1279
 
1217
- var _this$getProps8 = this.getProps(),
1218
- valueToString = _this$getProps8.valueToString,
1219
- selectedItems = _this$getProps8.selectedItems;
1280
+ var _this$getProps9 = this.getProps(),
1281
+ valueToString = _this$getProps9.valueToString,
1282
+ selectedItems = _this$getProps9.selectedItems;
1220
1283
 
1221
1284
  if (this.isEditingMode) {
1222
1285
  return valueToString(selectedItems[editingTokenIndex]) !== inputValue;