@os-design/core 1.0.183 → 1.0.184

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
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/DatePicker/index.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAIjB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C,OAAO,KAON,MAAM,OAAO,CAAC;AAiBf,KAAK,WAAW,GAAG,IAAI,CACrB,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC5B,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,KAAK,CAC9C,CAAC;AACF,UAAU,mBAAmB,CAAC,CAAC,CAAE,SAAQ,WAAW,EAAE,QAAQ;IAK5D,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAMvB,cAAc,CAAC,EAAE,OAAO,CAAC;IAKzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAMxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAK1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IAK9B,cAAc,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAKrC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAK1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,YAAY,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAKrC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAKjB,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAKxB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAKrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AACD,UAAU,uBAAwB,SAAQ,mBAAmB,CAAC,IAAI,CAAC;IAKjE,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AACD,UAAU,oBAAqB,SAAQ,mBAAmB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAKtE,KAAK,EAAE,IAAI,CAAC;CACb;AACD,MAAM,MAAM,eAAe,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;AAyC7E,QAAA,MAAM,UAAU,wFAgXf,CAAC;AAIF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/DatePicker/index.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAIjB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C,OAAO,KAON,MAAM,OAAO,CAAC;AAiBf,KAAK,WAAW,GAAG,IAAI,CACrB,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC5B,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,KAAK,CAC9C,CAAC;AACF,UAAU,mBAAmB,CAAC,CAAC,CAAE,SAAQ,WAAW,EAAE,QAAQ;IAK5D,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAMvB,cAAc,CAAC,EAAE,OAAO,CAAC;IAKzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAMxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAK1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IAK9B,cAAc,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAKrC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAK1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,YAAY,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAKrC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAKjB,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAKxB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAKrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AACD,UAAU,uBAAwB,SAAQ,mBAAmB,CAAC,IAAI,CAAC;IAKjE,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AACD,UAAU,oBAAqB,SAAQ,mBAAmB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAKtE,KAAK,EAAE,IAAI,CAAC;CACb;AACD,MAAM,MAAM,eAAe,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;AAyC7E,QAAA,MAAM,UAAU,wFAsXf,CAAC;AAIF,eAAe,UAAU,CAAC"}
@@ -1,12 +1,19 @@
1
1
  import React from 'react';
2
- type JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'value' | 'onChange' | 'ref'>;
3
- export interface MenuGroupProps extends JsxDivProps {
2
+ type JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'defaultValue' | 'value' | 'onChange' | 'ref'>;
3
+ interface BaseMenuGroupProps<T> extends JsxDivProps {
4
4
  title?: string;
5
- maxSelectedItems?: number | 'all';
6
- value?: string[];
7
- defaultValue?: string[];
8
- onChange?: (value: string[]) => void;
5
+ maxSelectedItems?: number;
6
+ value?: T;
7
+ defaultValue?: T;
8
+ onChange?: (value: T) => void;
9
9
  }
10
+ interface MenuGroupNotMultipleProps extends BaseMenuGroupProps<string | null> {
11
+ multiple?: false;
12
+ }
13
+ interface MenuGroupMultipleProps extends BaseMenuGroupProps<string[]> {
14
+ multiple: true;
15
+ }
16
+ export type MenuGroupProps = MenuGroupNotMultipleProps | MenuGroupMultipleProps;
10
17
  declare const MenuGroup: React.ForwardRefExoticComponent<MenuGroupProps & React.RefAttributes<HTMLDivElement>>;
11
18
  export default MenuGroup;
12
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/MenuGroup/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,KAAK,WAAW,GAAG,IAAI,CACrB,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC5B,OAAO,GAAG,UAAU,GAAG,KAAK,CAC7B,CAAC;AACF,MAAM,WAAW,cAAe,SAAQ,WAAW;IAKjD,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAKlC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAKjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAKxB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACtC;AAgCD,QAAA,MAAM,SAAS,uFA8Dd,CAAC;AAIF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/MenuGroup/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAG5E,KAAK,WAAW,GAAG,IAAI,CACrB,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC5B,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,CAC9C,CAAC;AACF,UAAU,kBAAkB,CAAC,CAAC,CAAE,SAAQ,WAAW;IAKjD,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAK1B,KAAK,CAAC,EAAE,CAAC,CAAC;IAKV,YAAY,CAAC,EAAE,CAAC,CAAC;IAKjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC/B;AACD,UAAU,yBAA0B,SAAQ,kBAAkB,CAAC,MAAM,GAAG,IAAI,CAAC;IAK3E,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AACD,UAAU,sBAAuB,SAAQ,kBAAkB,CAAC,MAAM,EAAE,CAAC;IAKnE,QAAQ,EAAE,IAAI,CAAC;CAChB;AACD,MAAM,MAAM,cAAc,GAAG,yBAAyB,GAAG,sBAAsB,CAAC;AAgChF,QAAA,MAAM,SAAS,uFAiGd,CAAC;AAIF,eAAe,SAAS,CAAC"}
@@ -1,12 +1,15 @@
1
1
  import { WithSize } from '@os-design/styles';
2
2
  import React from 'react';
3
3
  import { InputSearchProps } from '../InputSearch';
4
+ import { MenuItemProps } from '../MenuItem';
4
5
  import { PopoverProps } from '../Popover';
5
- import { OptionProps } from './SelectList';
6
6
  import { SelectLocale } from './utils/defaultLocale';
7
+ export interface Option extends MenuItemProps {
8
+ title?: string;
9
+ }
7
10
  type JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'value' | 'defaultValue' | 'onChange' | 'ref'>;
8
- export interface SelectProps extends JsxDivProps, WithSize, Pick<PopoverProps, 'placement'> {
9
- options?: OptionProps[];
11
+ interface BaseSelectProps<T> extends JsxDivProps, WithSize, Pick<PopoverProps, 'placement'> {
12
+ options?: Option[];
10
13
  left?: React.ReactNode;
11
14
  leftHasPadding?: boolean;
12
15
  right?: React.ReactNode;
@@ -24,14 +27,21 @@ export interface SelectProps extends JsxDivProps, WithSize, Pick<PopoverProps, '
24
27
  threshold?: number;
25
28
  visibleCount?: number;
26
29
  overscanCount?: number;
27
- maxSelectedItems?: number | 'all';
30
+ maxSelectedItems?: number;
28
31
  locale?: SelectLocale;
29
- value?: string[];
30
- defaultValue?: string[];
31
- onChange?: (value: string[]) => void;
32
+ value?: T;
33
+ defaultValue?: T;
34
+ onChange?: (value: T) => void;
32
35
  onLoadNext?: () => void;
33
36
  onClose?: () => void;
34
37
  }
38
+ interface SelectNotMultipleProps extends BaseSelectProps<string | null> {
39
+ multiple?: false;
40
+ }
41
+ interface SelectMultipleProps extends BaseSelectProps<string[]> {
42
+ multiple: true;
43
+ }
44
+ export type SelectProps = SelectNotMultipleProps | SelectMultipleProps;
35
45
  interface SelectContainerProps {
36
46
  opened: boolean;
37
47
  unbordered?: boolean;
@@ -46,6 +56,54 @@ export declare const SelectContainer: import("@emotion/styled").StyledComponent<
46
56
  } & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
47
57
  theme?: import("@emotion/react").Theme | undefined;
48
58
  } & SelectContainerProps, {}, {}>;
59
+ export declare const ToggleContainer: import("@emotion/styled").StyledComponent<{
60
+ theme?: import("@emotion/react").Theme | undefined;
61
+ as?: React.ElementType<any> | undefined;
62
+ }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
63
+ interface ToggleContentProps {
64
+ hasLeft?: boolean;
65
+ hasRight?: boolean;
66
+ unbordered?: boolean;
67
+ }
68
+ export declare const ToggleContent: import("@emotion/styled").StyledComponent<{
69
+ theme?: import("@emotion/react").Theme | undefined;
70
+ as?: React.ElementType<any> | undefined;
71
+ } & ToggleContentProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
72
+ export declare const Placeholder: import("@emotion/styled").StyledComponent<{
73
+ theme?: import("@emotion/react").Theme | undefined;
74
+ as?: React.ElementType<any> | undefined;
75
+ }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
76
+ type TitleProps = Pick<SelectProps, 'disabled' | 'unbordered'>;
77
+ export declare const Title: import("@emotion/styled").StyledComponent<{
78
+ theme?: import("@emotion/react").Theme | undefined;
79
+ as?: React.ElementType<any> | undefined;
80
+ } & TitleProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
81
+ interface ToggleIconContainerProps {
82
+ unbordered?: boolean;
83
+ disabled?: boolean;
84
+ }
85
+ export declare const ToggleIconContainer: import("@emotion/styled").StyledComponent<{
86
+ theme?: import("@emotion/react").Theme | undefined;
87
+ as?: React.ElementType<any> | undefined;
88
+ } & ToggleIconContainerProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
89
+ export declare const ClearIcon: import("@emotion/styled").StyledComponent<import("@os-design/icons").IconProps & React.RefAttributes<SVGSVGElement> & {
90
+ theme?: import("@emotion/react").Theme | undefined;
91
+ }, {}, {}>;
92
+ interface AddonProps {
93
+ hasPadding: boolean;
94
+ }
95
+ export declare const ToggleLeftAddon: import("@emotion/styled").StyledComponent<{
96
+ theme?: import("@emotion/react").Theme | undefined;
97
+ as?: React.ElementType<any> | undefined;
98
+ } & AddonProps & React.ClassAttributes<HTMLSpanElement> & React.HTMLAttributes<HTMLSpanElement> & {
99
+ theme?: import("@emotion/react").Theme | undefined;
100
+ }, {}, {}>;
101
+ export declare const ToggleRightAddon: import("@emotion/styled").StyledComponent<{
102
+ theme?: import("@emotion/react").Theme | undefined;
103
+ as?: React.ElementType<any> | undefined;
104
+ } & AddonProps & React.ClassAttributes<HTMLSpanElement> & React.HTMLAttributes<HTMLSpanElement> & {
105
+ theme?: import("@emotion/react").Theme | undefined;
106
+ }, {}, {}>;
49
107
  declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLDivElement>>;
50
108
  export default Select;
51
109
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Select/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAoB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAU/D,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEpE,KAAK,WAAW,GAAG,IAAI,CACrB,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC5B,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,KAAK,CAC9C,CAAC;AACF,MAAM,WAAW,WACf,SAAQ,WAAW,EACjB,QAAQ,EACR,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC;IAKjC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IAKxB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAMvB,cAAc,CAAC,EAAE,OAAO,CAAC;IAKzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAMxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAK1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,aAAa,CAAC,EAAE,OAAO,CAAC;IAKxB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAK/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,UAAU,CAAC,EAAE,OAAO,CAAC;IAKrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAKlB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,YAAY,CAAC,EAAE,OAAO,CAAC;IAKvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAKlC,MAAM,CAAC,EAAE,YAAY,CAAC;IAKtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAKjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAKxB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAKrC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAKxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAuCD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,eAAO,MAAM,eAAe;;;;;;;;iCAiB3B,CAAC;AAgCF,QAAA,MAAM,MAAM,oFA2MX,CAAC;AAIF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Select/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@os-design/core",
3
- "version": "1.0.183",
3
+ "version": "1.0.184",
4
4
  "license": "UNLICENSED",
5
5
  "repository": "git@gitlab.com:os-team/libs/os-design.git",
6
6
  "main": "dist/cjs/index.js",
@@ -33,7 +33,7 @@
33
33
  "@os-design/icons": "^1.0.44",
34
34
  "@os-design/input-number-utils": "^1.0.18",
35
35
  "@os-design/media": "^1.0.16",
36
- "@os-design/menu-utils": "^1.0.11",
36
+ "@os-design/menu-utils": "^1.0.12",
37
37
  "@os-design/portal": "^1.0.7",
38
38
  "@os-design/styles": "^1.0.41",
39
39
  "@os-design/theming": "^1.0.39",
@@ -58,5 +58,5 @@
58
58
  "react": ">=18",
59
59
  "react-dom": ">=18"
60
60
  },
61
- "gitHead": "d79bb6e7349dac0f1061b6b8c9c4c8d1802bb6a9"
61
+ "gitHead": "730cd0ce99694fcd980133a4b47e04fe7700d574"
62
62
  }
@@ -1,146 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = void 0;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _reactWindow = require("react-window");
10
- var _utils = require("@os-design/utils");
11
- var _theming = require("@os-design/theming");
12
- var _media = require("@os-design/media");
13
- var _menuUtils = require("@os-design/menu-utils");
14
- var _MenuItem = _interopRequireDefault(require("../MenuItem"));
15
- var _useRWLoadNext = _interopRequireDefault(require("../List/utils/useRWLoadNext"));
16
- var _excluded = ["style"],
17
- _excluded2 = ["title", "value", "onClick"];
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
26
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
27
- var SelectList = function SelectList(_ref) {
28
- var searchVisible = _ref.searchVisible,
29
- options = _ref.options,
30
- visibleCount = _ref.visibleCount,
31
- overscanCount = _ref.overscanCount,
32
- threshold = _ref.threshold,
33
- onLoadNext = _ref.onLoadNext,
34
- maxSelectedItems = _ref.maxSelectedItems,
35
- containerRef = _ref.containerRef,
36
- value = _ref.value,
37
- _ref$onChange = _ref.onChange,
38
- onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
39
- id = _ref.id,
40
- size = _ref.size;
41
- var windowSize = (0, _utils.useSize)();
42
- var isMinXs = (0, _media.useIsMinWidth)('xs');
43
- var fontSize = (0, _utils.useFontSize)(document.body);
44
- var _useTheme = (0, _theming.useTheme)(),
45
- theme = _useTheme.theme;
46
- var scaleFactor = (0, _react.useMemo)(function () {
47
- var s = size || 'medium';
48
- return ['small', 'medium', 'large'].includes(s) ? theme.sizes[s] : Number(s.replace(/^([0-9]+(\.[0-9]+)?).*/, '$1')) || 1; // Extract the number
49
- }, [size, theme.sizes]);
50
- var paddingBottom = (0, _react.useMemo)(function () {
51
- var paddingEm = isMinXs ? theme.menuPaddingVertical : theme.modalBodyPaddingVertical[0];
52
- return paddingEm * fontSize * scaleFactor;
53
- }, [isMinXs, theme.menuPaddingVertical, theme.modalBodyPaddingVertical, fontSize, scaleFactor]);
54
- var paddingTop = (0, _react.useMemo)(function () {
55
- return searchVisible ? 5 * scaleFactor : paddingBottom;
56
- }, [searchVisible, scaleFactor, paddingBottom]);
57
- var searchInputHeight = (0, _react.useMemo)(function () {
58
- return searchVisible ? (theme.baseHeight + theme.menuPaddingVertical) * fontSize * scaleFactor : 0;
59
- }, [searchVisible, theme.baseHeight, theme.menuPaddingVertical, fontSize, scaleFactor]);
60
- var itemSize = (0, _react.useMemo)(function () {
61
- return theme.menuItemHeight * fontSize * scaleFactor;
62
- }, [theme.menuItemHeight, fontSize, scaleFactor]);
63
- var height = (0, _react.useMemo)(function () {
64
- // Modal
65
- if (!isMinXs) {
66
- var maxHeight = windowSize.height - theme.modalHeaderHeight * fontSize * scaleFactor - searchInputHeight;
67
- var curHeight = options.length * itemSize + paddingTop + paddingBottom;
68
- return curHeight < maxHeight ? curHeight : maxHeight;
69
- }
70
- // Popover
71
- var count = options.length < visibleCount ? options.length : visibleCount;
72
- return count * itemSize + paddingTop + paddingBottom;
73
- }, [isMinXs, options.length, visibleCount, itemSize, windowSize.height, theme.modalHeaderHeight, fontSize, scaleFactor, searchInputHeight, paddingTop, paddingBottom]);
74
- var scrollHandler = (0, _useRWLoadNext["default"])({
75
- itemCount: options.length,
76
- threshold: threshold,
77
- itemSize: itemSize,
78
- paddingTop: paddingTop,
79
- height: height,
80
- onLoadNext: onLoadNext
81
- });
82
- var onSelect = (0, _menuUtils.useSelectHandler)({
83
- value: value || [],
84
- onChange: onChange,
85
- maxSelectedItems: maxSelectedItems
86
- });
87
-
88
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
- var InnerElement = (0, _react.useCallback)(function (_ref2) {
90
- var style = _ref2.style,
91
- innerElementRest = _objectWithoutProperties(_ref2, _excluded);
92
- return /*#__PURE__*/_react["default"].createElement("div", _extends({
93
- style: _objectSpread(_objectSpread({}, style), {}, {
94
- height: "".concat(parseFloat(style.height) + paddingTop + paddingBottom, "px")
95
- }),
96
- role: "listbox",
97
- id: id
98
- }, innerElementRest));
99
- }, [id, paddingBottom, paddingTop]);
100
- var listItemFn = (0, _react.useCallback)(function (_ref3) {
101
- var index = _ref3.index,
102
- style = _ref3.style;
103
- var _options$index = options[index],
104
- optionTitle = _options$index.title,
105
- optionValue = _options$index.value,
106
- optionOnClick = _options$index.onClick,
107
- restOption = _objectWithoutProperties(_options$index, _excluded2);
108
- return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], _extends({
109
- style: _objectSpread(_objectSpread({}, style), {}, {
110
- top: "".concat(parseFloat(style.top ? style.top.toString() : '0') + paddingTop, "px")
111
- }),
112
- selected: (value || []).includes(optionValue || ''),
113
- onClick: function onClick(e) {
114
- if (!optionValue) return;
115
- onSelect(optionValue);
116
-
117
- // Focus the input.
118
- // Otherwise, if the max number of selected items equals 1
119
- // and the user presses enter to select an item,
120
- // the input will lose focus.
121
- if (containerRef.current && maxSelectedItems === 1) {
122
- containerRef.current.focus();
123
- }
124
- if (optionOnClick) optionOnClick(e);
125
- },
126
- role: "option",
127
- "aria-selected": (value || []).includes(optionValue || '')
128
- }, restOption), optionTitle);
129
- }, [containerRef, maxSelectedItems, onSelect, options, paddingTop, value]);
130
- return /*#__PURE__*/_react["default"].createElement(_reactWindow.FixedSizeList, {
131
- width: "100%",
132
- height: height,
133
- itemSize: itemSize,
134
- itemCount: options.length,
135
- overscanCount: overscanCount,
136
- onScroll: function onScroll(_ref4) {
137
- var scrollOffset = _ref4.scrollOffset;
138
- return scrollHandler(scrollOffset);
139
- },
140
- innerElementType: InnerElement
141
- }, listItemFn);
142
- };
143
- SelectList.displayName = 'SelectList';
144
- var _default = SelectList;
145
- exports["default"] = _default;
146
- //# sourceMappingURL=SelectList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectList.js","names":["SelectList","searchVisible","options","visibleCount","overscanCount","threshold","onLoadNext","maxSelectedItems","containerRef","value","onChange","id","size","windowSize","useSize","isMinXs","useIsMinWidth","fontSize","useFontSize","document","body","useTheme","theme","scaleFactor","useMemo","s","includes","sizes","Number","replace","paddingBottom","paddingEm","menuPaddingVertical","modalBodyPaddingVertical","paddingTop","searchInputHeight","baseHeight","itemSize","menuItemHeight","height","maxHeight","modalHeaderHeight","curHeight","length","count","scrollHandler","useRWLoadNext","itemCount","onSelect","useSelectHandler","InnerElement","useCallback","style","innerElementRest","parseFloat","listItemFn","index","optionTitle","title","optionValue","optionOnClick","onClick","restOption","top","toString","e","current","focus","scrollOffset","displayName"],"sources":["../../../src/Select/SelectList.tsx"],"sourcesContent":["import React, { RefObject, useCallback, useMemo } from 'react';\nimport { FixedSizeList } from 'react-window';\nimport { useFontSize, useSize } from '@os-design/utils';\nimport { useTheme } from '@os-design/theming';\nimport { useIsMinWidth } from '@os-design/media';\nimport { WithSize } from '@os-design/styles';\nimport { useSelectHandler } from '@os-design/menu-utils';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\n\nexport interface OptionProps extends MenuItemProps {\n title?: string;\n}\n\ninterface SelectListProps extends WithSize {\n searchVisible: boolean;\n options: OptionProps[];\n visibleCount: number;\n overscanCount: number;\n threshold: number;\n onLoadNext: () => void;\n maxSelectedItems: number | 'all';\n containerRef: RefObject<HTMLDivElement>;\n value?: string[];\n onChange?: (value: string[]) => void;\n id?: string;\n}\n\nconst SelectList: React.FC<SelectListProps> = ({\n searchVisible,\n options,\n visibleCount,\n overscanCount,\n threshold,\n onLoadNext,\n maxSelectedItems,\n containerRef,\n value,\n onChange = () => {},\n id,\n size,\n}) => {\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight = options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count = options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n const onSelect = useSelectHandler({\n value: value || [],\n onChange,\n maxSelectedItems,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${parseFloat(style.height) + paddingTop + paddingBottom}px`,\n }}\n role='listbox'\n id={id}\n {...innerElementRest}\n />\n ),\n [id, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={(value || []).includes(optionValue || '')}\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if the max number of selected items equals 1\n // and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && maxSelectedItems === 1) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={(value || []).includes(optionValue || '')}\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, maxSelectedItems, onSelect, options, paddingTop, value]\n );\n\n return (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n );\n};\n\nSelectList.displayName = 'SelectList';\n\nexport default SelectList;\n"],"mappings":"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"}
@@ -1,195 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = exports.Title = exports.RightAddon = exports.Placeholder = exports.LeftAddon = exports.IconContainer = exports.Content = exports.Container = exports.ClearIcon = void 0;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _styled = _interopRequireDefault(require("@emotion/styled"));
10
- var _icons = require("@os-design/icons");
11
- var _styles = require("@os-design/styles");
12
- var _utils = require("@os-design/utils");
13
- var _theming = require("@os-design/theming");
14
- var _react2 = require("@emotion/react");
15
- var _Tag = _interopRequireDefault(require("../Tag"));
16
- var _Button = _interopRequireDefault(require("../Button"));
17
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19;
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
22
- var Container = _styled["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n"])));
23
- exports.Container = Container;
24
- var notHasLeftStyles = function notHasLeftStyles(p) {
25
- return !p.hasLeft && (0, _react2.css)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n padding-left: ", "em;\n "])), p.theme.inputPaddingHorizontal);
26
- };
27
- var notHasRightStyles = function notHasRightStyles(p) {
28
- return !p.hasRight && !p.unbordered && (0, _react2.css)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding-right: ", "em;\n "])), p.theme.inputPaddingHorizontal);
29
- };
30
- var Content = (0, _styled["default"])('div', (0, _utils.omitEmotionProps)('hasLeft', 'hasRight', 'unbordered'))(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n flex: 1;\n ", ";\n ", ";\n ", ";\n"])), notHasLeftStyles, notHasRightStyles, _styles.ellipsisStyles);
31
- exports.Content = Content;
32
- var Placeholder = _styled["default"].span(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n color: ", ";\n ", ";\n"])), function (p) {
33
- return (0, _theming.clr)(p.theme.inputColorPlaceholder);
34
- }, _styles.ellipsisStyles);
35
- exports.Placeholder = Placeholder;
36
- var unborderedTitleStyles = function unborderedTitleStyles(p) {
37
- return p.unbordered && (0, _react2.css)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n font-weight: 500;\n ", "\n "])), !p.disabled && "color: ".concat((0, _theming.clr)(p.theme.colorPrimary), ";"));
38
- };
39
- var disabledStyles = function disabledStyles(p) {
40
- return p.disabled && (0, _react2.css)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n color: ", ";\n "])), (0, _theming.clr)(p.theme.inputDisabledColorText));
41
- };
42
- var Title = (0, _styled["default"])('span', (0, _utils.omitEmotionProps)('disabled', 'unbordered'))(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n color: ", ";\n ", ";\n ", ";\n ", ";\n"])), function (p) {
43
- return (0, _theming.clr)(p.theme.colorText);
44
- }, unborderedTitleStyles, disabledStyles, _styles.ellipsisStyles);
45
- exports.Title = Title;
46
- var ListItem = (0, _styled["default"])(_Tag["default"], (0, _utils.omitEmotionProps)('disabled'))(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ", "em;\n ", ";\n"])), function (p) {
47
- return p.theme.selectToggleListItemHeight;
48
- }, disabledStyles);
49
- var List = _styled["default"].div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ", "em\n ", "em 0;\n\n & > div {\n margin: 0 ", "em\n ", "em 0;\n }\n"])), function (p) {
50
- return p.theme.selectToggleListItemGap;
51
- }, function (p) {
52
- return -p.theme.selectToggleListItemGap;
53
- }, function (p) {
54
- return p.theme.selectToggleListItemGap;
55
- }, function (p) {
56
- return p.theme.selectToggleListItemGap;
57
- });
58
- var DeleteButton = _styled["default"].button(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n ", ";\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ", ";\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ", ";\n }\n }\n\n ", ";\n"])), _styles.resetButtonStyles, function (p) {
59
- return (0, _theming.clr)(p.theme.selectToggleDeleteButtonColorIcon);
60
- }, function (p) {
61
- return (0, _theming.clr)(p.theme.selectToggleDeleteButtonColorIconHover);
62
- }, (0, _styles.transitionStyles)('color'));
63
- var unborderedIconContainerStyles = function unborderedIconContainerStyles(p) {
64
- return p.unbordered && (0, _react2.css)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n padding-top: 0.2em;\n font-size: 0.8em;\n ", "\n "])), !p.disabled && "color: ".concat((0, _theming.clr)(p.theme.colorPrimary), ";"));
65
- };
66
- var IconContainer = (0, _styled["default"])('span', (0, _utils.omitEmotionProps)('unbordered', 'disabled'))(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n color: ", ";\n line-height: 1;\n ", ";\n"])), function (p) {
67
- return (0, _theming.clr)(p.theme.selectColorIcon);
68
- }, unborderedIconContainerStyles);
69
- exports.IconContainer = IconContainer;
70
- var ClearIcon = (0, _styled["default"])(_icons.CloseCircle)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n transform: scale(1.2) !important;\n"])));
71
- exports.ClearIcon = ClearIcon;
72
- var Addon = (0, _styled["default"])('span', (0, _utils.omitEmotionProps)('hasPadding'))(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n user-select: none;\n color: ", ";\n\n svg {\n transform: scale(1.2);\n }\n"])), function (p) {
73
- return (0, _theming.clr)(p.theme.inputColorPlaceholder);
74
- });
75
- var LeftAddon = (0, _styled["default"])(Addon)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n padding-right: ", "em;\n ", "\n"])), function (p) {
76
- return p.theme.inputAddonPaddingHorizontal;
77
- }, function (p) {
78
- return p.hasPadding && (0, _react2.css)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n padding-left: ", "em;\n "])), p.theme.inputPaddingHorizontal);
79
- });
80
- exports.LeftAddon = LeftAddon;
81
- var RightAddon = (0, _styled["default"])(Addon)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n padding-left: ", "em;\n ", "\n"])), function (p) {
82
- return p.theme.inputAddonPaddingHorizontal;
83
- }, function (p) {
84
- return p.hasPadding && (0, _react2.css)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n padding-right: ", "em;\n "])), p.theme.inputPaddingHorizontal);
85
- });
86
- exports.RightAddon = RightAddon;
87
- var SelectToggle = function SelectToggle(_ref) {
88
- var selectedItems = _ref.selectedItems,
89
- onDelete = _ref.onDelete,
90
- onClear = _ref.onClear,
91
- opened = _ref.opened,
92
- multiple = _ref.multiple,
93
- left = _ref.left,
94
- _ref$leftHasPadding = _ref.leftHasPadding,
95
- leftHasPadding = _ref$leftHasPadding === void 0 ? false : _ref$leftHasPadding,
96
- right = _ref.right,
97
- _ref$rightHasPadding = _ref.rightHasPadding,
98
- rightHasPadding = _ref$rightHasPadding === void 0 ? false : _ref$rightHasPadding,
99
- placeholder = _ref.placeholder,
100
- unbordered = _ref.unbordered,
101
- loading = _ref.loading,
102
- disabled = _ref.disabled,
103
- clearVisible = _ref.clearVisible,
104
- locale = _ref.locale;
105
- var renderContent = (0, _react.useCallback)(function () {
106
- if (selectedItems.length === 0) {
107
- return /*#__PURE__*/_react["default"].createElement(Placeholder, null, placeholder);
108
- }
109
- if (multiple) {
110
- return /*#__PURE__*/_react["default"].createElement(List, null, selectedItems.map(function (_ref2) {
111
- var title = _ref2.title,
112
- value = _ref2.value;
113
- return /*#__PURE__*/_react["default"].createElement(ListItem, {
114
- key: value,
115
- disabled: disabled,
116
- right: !disabled ? /*#__PURE__*/_react["default"].createElement(DeleteButton, {
117
- onClick: function onClick(e) {
118
- onDelete(value);
119
- e.stopPropagation();
120
- },
121
- onKeyDown: function onKeyDown(e) {
122
- return e.stopPropagation();
123
- },
124
- "aria-label": "".concat(locale.deleteLabel, " ").concat(title),
125
- "aria-hidden": true
126
- }, /*#__PURE__*/_react["default"].createElement(_icons.Close, null)) : undefined,
127
- "aria-hidden": true
128
- }, title);
129
- }));
130
- }
131
- return /*#__PURE__*/_react["default"].createElement(Title, {
132
- disabled: disabled,
133
- unbordered: unbordered
134
- }, selectedItems[0].title);
135
- }, [selectedItems, multiple, disabled, unbordered, placeholder, locale.deleteLabel, onDelete]);
136
- var showClearButton = (0, _react.useMemo)(function () {
137
- return clearVisible && selectedItems.length > 0;
138
- }, [clearVisible, selectedItems.length]);
139
- var rightValue = (0, _react.useMemo)(function () {
140
- if (loading) return /*#__PURE__*/_react["default"].createElement(_icons.Loading, null);
141
- if (showClearButton) {
142
- return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
143
- type: "ghost",
144
- wide: "never",
145
- size: "small",
146
- disabled: disabled,
147
- onClick: function onClick(e) {
148
- onClear();
149
- e.stopPropagation();
150
- },
151
- onKeyDown: function onKeyDown(e) {
152
- if (e.key === 'Enter') onClear();
153
- e.stopPropagation();
154
- },
155
- "aria-label": locale.clearLabel
156
- }, /*#__PURE__*/_react["default"].createElement(ClearIcon, null));
157
- }
158
- return right || /*#__PURE__*/_react["default"].createElement(IconContainer, {
159
- unbordered: unbordered,
160
- disabled: disabled
161
- }, opened ? /*#__PURE__*/_react["default"].createElement(_icons.Up, null) : /*#__PURE__*/_react["default"].createElement(_icons.Down, null));
162
- }, [disabled, loading, locale.clearLabel, onClear, opened, right, showClearButton, unbordered]);
163
- var rightHasPaddingValue = (0, _react.useMemo)(function () {
164
- if (loading) return true;
165
- if (showClearButton) return false;
166
- return right ? rightHasPadding : true;
167
- }, [loading, right, rightHasPadding, showClearButton]);
168
- return /*#__PURE__*/_react["default"].createElement(Container, null, left && /*#__PURE__*/_react["default"].createElement(_theming.ThemeOverrider, {
169
- overrides: function overrides(t) {
170
- return {
171
- buttonPaddingHorizontal: 0.8,
172
- baseHeight: t.selectToggleListItemHeight / t.sizes.small
173
- };
174
- }
175
- }, /*#__PURE__*/_react["default"].createElement(LeftAddon, {
176
- hasPadding: leftHasPadding
177
- }, left)), /*#__PURE__*/_react["default"].createElement(Content, {
178
- hasLeft: !!left,
179
- hasRight: !!right,
180
- unbordered: unbordered
181
- }, renderContent()), rightValue && /*#__PURE__*/_react["default"].createElement(_theming.ThemeOverrider, {
182
- overrides: function overrides(t) {
183
- return {
184
- buttonPaddingHorizontal: 0.8,
185
- baseHeight: t.selectToggleListItemHeight / t.sizes.small
186
- };
187
- }
188
- }, /*#__PURE__*/_react["default"].createElement(RightAddon, {
189
- hasPadding: rightHasPaddingValue
190
- }, rightValue)));
191
- };
192
- SelectToggle.displayName = 'SelectToggle';
193
- var _default = SelectToggle;
194
- exports["default"] = _default;
195
- //# sourceMappingURL=SelectToggle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectToggle.js","names":["Container","styled","div","notHasLeftStyles","p","hasLeft","css","theme","inputPaddingHorizontal","notHasRightStyles","hasRight","unbordered","Content","omitEmotionProps","ellipsisStyles","Placeholder","span","clr","inputColorPlaceholder","unborderedTitleStyles","disabled","colorPrimary","disabledStyles","inputDisabledColorText","Title","colorText","ListItem","Tag","selectToggleListItemHeight","List","selectToggleListItemGap","DeleteButton","button","resetButtonStyles","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","transitionStyles","unborderedIconContainerStyles","IconContainer","selectColorIcon","ClearIcon","CloseCircle","Addon","LeftAddon","inputAddonPaddingHorizontal","hasPadding","RightAddon","SelectToggle","selectedItems","onDelete","onClear","opened","multiple","left","leftHasPadding","right","rightHasPadding","placeholder","loading","clearVisible","locale","renderContent","useCallback","length","map","title","value","e","stopPropagation","deleteLabel","undefined","showClearButton","useMemo","rightValue","key","clearLabel","rightHasPaddingValue","t","buttonPaddingHorizontal","baseHeight","sizes","small","displayName"],"sources":["../../../src/Select/SelectToggle.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport styled from '@emotion/styled';\nimport { Up, Down, Loading, Close, CloseCircle } from '@os-design/icons';\nimport {\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { css } from '@emotion/react';\nimport Tag from '../Tag';\nimport Button from '../Button';\nimport { SelectLocale } from './utils/defaultLocale';\n\ninterface SelectToggleProps {\n selectedItems: Array<{ title: string; value: string }>;\n onDelete: (value: string) => void;\n onClear: () => void;\n opened: boolean;\n multiple: boolean;\n left?: React.ReactNode;\n leftHasPadding?: boolean;\n right?: React.ReactNode;\n rightHasPadding?: boolean;\n placeholder?: string;\n unbordered?: boolean;\n loading?: boolean;\n disabled?: boolean;\n clearVisible?: boolean;\n locale: SelectLocale;\n}\n\nexport const Container = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst notHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst notHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const Content = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ContentProps>`\n flex: 1;\n ${notHasLeftStyles};\n ${notHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst unborderedTitleStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectToggleProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${unborderedTitleStyles};\n ${disabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ListItemProps = Pick<SelectToggleProps, 'disabled'>;\nconst ListItem = styled(Tag, omitEmotionProps('disabled'))<ListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${disabledStyles};\n`;\n\nconst List = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst unborderedIconContainerStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface IconContainerProps {\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const IconContainer = styled(\n 'span',\n omitEmotionProps('unbordered', 'disabled')\n)<IconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${unborderedIconContainerStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nconst SelectToggle: React.FC<SelectToggleProps> = ({\n selectedItems,\n onDelete,\n onClear,\n opened,\n multiple,\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n unbordered,\n loading,\n disabled,\n clearVisible,\n locale,\n}) => {\n const renderContent = useCallback(() => {\n if (selectedItems.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n if (multiple) {\n return (\n <List>\n {selectedItems.map(({ title, value }) => (\n <ListItem\n key={value}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(value);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ListItem>\n ))}\n </List>\n );\n }\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {selectedItems[0].title}\n </Title>\n );\n }, [\n selectedItems,\n multiple,\n disabled,\n unbordered,\n placeholder,\n locale.deleteLabel,\n onDelete,\n ]);\n\n const showClearButton = useMemo(\n () => clearVisible && selectedItems.length > 0,\n [clearVisible, selectedItems.length]\n );\n\n const rightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (showClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n onClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') onClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <IconContainer unbordered={unbordered} disabled={disabled}>\n {opened ? <Up /> : <Down />}\n </IconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n onClear,\n opened,\n right,\n showClearButton,\n unbordered,\n ]);\n\n const rightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (showClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, showClearButton]);\n\n return (\n <Container>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <LeftAddon hasPadding={leftHasPadding}>{left}</LeftAddon>\n </ThemeOverrider>\n )}\n\n <Content hasLeft={!!left} hasRight={!!right} unbordered={unbordered}>\n {renderContent()}\n </Content>\n\n {rightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <RightAddon hasPadding={rightHasPaddingValue}>\n {rightValue}\n </RightAddon>\n </ThemeOverrider>\n )}\n </Container>\n );\n};\n\nSelectToggle.displayName = 'SelectToggle';\n\nexport default SelectToggle;\n"],"mappings":"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"}