@activecollab/components 1.0.142 → 1.0.145
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Select/Select.js +26 -11
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/Tooltip/Styles.js +1 -3
- package/dist/cjs/components/Tooltip/Styles.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +2 -5
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +1 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +26 -11
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Tooltip/Styles.d.ts +0 -1
- package/dist/esm/components/Tooltip/Styles.d.ts.map +1 -1
- package/dist/esm/components/Tooltip/Styles.js +1 -3
- package/dist/esm/components/Tooltip/Styles.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.d.ts +0 -1
- package/dist/esm/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +2 -5
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/index.js +29 -19
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -23,7 +23,7 @@ var _Styles = require("./Styles");
|
|
|
23
23
|
|
|
24
24
|
var _OptionContent = require("./OptionContent/OptionContent");
|
|
25
25
|
|
|
26
|
-
var _excluded = ["type", "mode", "target", "options", "selected", "position", "onChange", "actionIcon", "actionLabel", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose", "renderOption"];
|
|
26
|
+
var _excluded = ["type", "mode", "target", "options", "selected", "position", "onChange", "actionIcon", "actionLabel", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose", "renderOption", "handleDefaultOptionChange", "preselectDefaultValue"];
|
|
27
27
|
|
|
28
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
29
|
|
|
@@ -87,6 +87,9 @@ var Select = function Select(_ref) {
|
|
|
87
87
|
onSelectOpen = _ref.onSelectOpen,
|
|
88
88
|
onSelectClose = _ref.onSelectClose,
|
|
89
89
|
renderOption = _ref.renderOption,
|
|
90
|
+
handleDefaultOptionChange = _ref.handleDefaultOptionChange,
|
|
91
|
+
_ref$preselectDefault = _ref.preselectDefaultValue,
|
|
92
|
+
preselectDefaultValue = _ref$preselectDefault === void 0 ? type === "single" : _ref$preselectDefault,
|
|
90
93
|
prop = _objectWithoutProperties(_ref, _excluded);
|
|
91
94
|
|
|
92
95
|
var _useState = (0, _react.useState)(),
|
|
@@ -187,21 +190,33 @@ var Select = function Select(_ref) {
|
|
|
187
190
|
|
|
188
191
|
(_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.reset();
|
|
189
192
|
}, [emptyAction, forceCloseMenu]);
|
|
190
|
-
var
|
|
193
|
+
var handleDefaultOptionChangeCallback = (0, _react.useCallback)(function () {
|
|
191
194
|
if (type === "multiple") {
|
|
192
195
|
if (selectedOptions.length === allOptionValues.length) {
|
|
193
|
-
|
|
196
|
+
if (typeof handleDefaultOptionChange === "function") {
|
|
197
|
+
handleDefaultOptionChange();
|
|
198
|
+
} else {
|
|
199
|
+
onChange([]);
|
|
200
|
+
}
|
|
194
201
|
} else {
|
|
195
|
-
|
|
202
|
+
if (typeof handleDefaultOptionChange === "function") {
|
|
203
|
+
handleDefaultOptionChange();
|
|
204
|
+
} else {
|
|
205
|
+
onChange(allOptionValues);
|
|
206
|
+
}
|
|
196
207
|
}
|
|
197
208
|
} else {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
209
|
+
if (typeof handleDefaultOptionChange === "function") {
|
|
210
|
+
handleDefaultOptionChange();
|
|
211
|
+
} else {
|
|
212
|
+
onChange("");
|
|
202
213
|
}
|
|
203
214
|
}
|
|
204
|
-
|
|
215
|
+
|
|
216
|
+
if (forceCloseMenu) {
|
|
217
|
+
setOpen(false);
|
|
218
|
+
}
|
|
219
|
+
}, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues, handleDefaultOptionChange]);
|
|
205
220
|
var handleRenderOption = (0, _react.useCallback)(function (option, props) {
|
|
206
221
|
if (typeof renderOption === "function") {
|
|
207
222
|
return renderOption(option, props);
|
|
@@ -237,9 +252,9 @@ var Select = function Select(_ref) {
|
|
|
237
252
|
handleChange: handleChange,
|
|
238
253
|
renderOption: handleRenderOption,
|
|
239
254
|
options: options,
|
|
240
|
-
handleDefaultOptionChange:
|
|
255
|
+
handleDefaultOptionChange: handleDefaultOptionChangeCallback,
|
|
241
256
|
type: type,
|
|
242
|
-
preselectDefaultValue:
|
|
257
|
+
preselectDefaultValue: preselectDefaultValue,
|
|
243
258
|
keepSameOptionsOrder: keepSameOptionsOrder
|
|
244
259
|
}))));
|
|
245
260
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","prop","childNode","setChildNode","elementRef","handleRef","Tag","Menu","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","onClose","onOpen","props","menuClassName","className","handleEmptyAction","value","current","reset","handleDefaultOptionChange","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"preselectDefaultValue\" | \"handleDefaultOptionChange\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = () => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n setOpen(false);\n }\n onChange(selectedValue);\n },\n [onChange, forceCloseMenu]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChange = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n onChange([]);\n } else {\n onChange(allOptionValues);\n }\n } else {\n onChange(\"\");\n if (forceCloseMenu) {\n setOpen(false);\n }\n }\n }, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, renderOption, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChange}\n type={type}\n preselectDefaultValue={type === \"single\"}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","prop","childNode","setChildNode","elementRef","handleRef","Tag","Menu","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","onClose","onOpen","props","menuClassName","className","handleEmptyAction","value","current","reset","handleDefaultOptionChangeCallback","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<IAutocompleteProps, \"handleChange\" | \"inputEl\"> {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = () => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n setOpen(false);\n }\n onChange(selectedValue);\n },\n [onChange, forceCloseMenu]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, renderOption, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
|
|
@@ -20,10 +20,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
20
20
|
var StyledTooltip = _styledComponents.default.div.withConfig({
|
|
21
21
|
displayName: "Styles__StyledTooltip",
|
|
22
22
|
componentId: "sc-rur9b5-0"
|
|
23
|
-
})(["", " ", " border-radius:8px;padding:4px 10px;text-align:center;background-color:rgba(0,0,0,0.9);font-size:12px;font-weight:500;line-height:normal;color:#fff;margin:4px;", "
|
|
23
|
+
})(["", " ", " max-width:200px;border-radius:8px;padding:4px 10px;text-align:center;background-color:rgba(0,0,0,0.9);font-size:12px;font-weight:500;line-height:normal;color:#fff;margin:4px;", ""], _BoxSizingStyle.BoxSizingStyle, _FontStyle.FontStyle, function (props) {
|
|
24
24
|
return props.$isLight && (0, _styledComponents.css)(["background-color:var(--page-paper-main);box-shadow:var(--shadow-secondary);color:var(--color-theme-700);"]);
|
|
25
|
-
}, function (props) {
|
|
26
|
-
return props.$width && (0, _styledComponents.css)(["width:", "px;"], props.$width);
|
|
27
25
|
});
|
|
28
26
|
|
|
29
27
|
exports.StyledTooltip = StyledTooltip;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Tooltip/Styles.ts"],"names":["StyledTooltip","styled","div","BoxSizingStyle","FontStyle","props","$isLight","css"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Tooltip/Styles.ts"],"names":["StyledTooltip","styled","div","BoxSizingStyle","FontStyle","props","$isLight","css"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEO,IAAMA,aAAa,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,qMACtBC,8BADsB,EAEtBC,oBAFsB,EAetB,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,QAAN,QACAC,qBADA,+GADA;AAAA,CAfsB,CAAnB","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\nexport const StyledTooltip = styled.div<{ $isLight: boolean }>`\n ${BoxSizingStyle}\n ${FontStyle}\n\n max-width: 200px;\n border-radius: 8px;\n padding: 4px 10px;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.9);\n font-size: 12px;\n font-weight: 500;\n line-height: normal;\n color: #fff;\n margin: 4px;\n\n ${(props) =>\n props.$isLight &&\n css`\n background-color: var(--page-paper-main);\n box-shadow: var(--shadow-secondary);\n color: var(--color-theme-700);\n `}\n`;\n"],"file":"Styles.js"}
|
|
@@ -77,9 +77,7 @@ var Tooltip = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
|
|
|
77
77
|
TransitionComponent = _ref2$TransitionCompo === void 0 ? TooltipAnimation : _ref2$TransitionCompo,
|
|
78
78
|
popperTooltipStyle = _ref2.popperTooltipStyle,
|
|
79
79
|
popperTooltipClassName = _ref2.popperTooltipClassName,
|
|
80
|
-
disable = _ref2.disable
|
|
81
|
-
_ref2$width = _ref2.width,
|
|
82
|
-
width = _ref2$width === void 0 ? 200 : _ref2$width;
|
|
80
|
+
disable = _ref2.disable;
|
|
83
81
|
|
|
84
82
|
var _useLayerContext = (0, _helpers.useLayerContext)(),
|
|
85
83
|
_useLayerContext$zInd = _useLayerContext.zIndex,
|
|
@@ -140,8 +138,7 @@ var Tooltip = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
|
|
|
140
138
|
style: style
|
|
141
139
|
}), /*#__PURE__*/_react.default.createElement(_Styles.StyledTooltip, {
|
|
142
140
|
className: (0, _classnames.default)("c-tooltip-ds", className),
|
|
143
|
-
$isLight: isLight
|
|
144
|
-
$width: width
|
|
141
|
+
$isLight: isLight
|
|
145
142
|
}, title));
|
|
146
143
|
})));
|
|
147
144
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":["TooltipAnimation","children","props","Tooltip","ref","title","className","style","isLight","placement","TransitionComponent","popperTooltipStyle","popperTooltipClassName","disable","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":["TooltipAnimation","children","props","Tooltip","ref","title","className","style","isLight","placement","TransitionComponent","popperTooltipStyle","popperTooltipClassName","disable","zIndex","layers","skyscraper","open","setOpen","childNode","setChildNode","handleEnter","event","childrenProps","type","onMouseOver","removeAttribute","handleLeave","onMouseLeave","currentTarget","handleOwnRef","handleRef","React","cloneElement","transitionProps","displayName"],"mappings":"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","sourcesContent":["import React, {\n ReactElement,\n useState,\n CSSProperties,\n MouseEvent,\n forwardRef,\n Ref,\n FC,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { Popper, Placement } from \"../Popper\";\nimport { FromElement } from \"../Transitions/FromElement\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { TransitionProps } from \"../Transitions\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport { StyledTooltip } from \"./Styles\";\nimport { layers } from \"../../utils\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ITooltipProps {\n /** Children element. */\n children: ElementWithRef<HTMLElement>;\n /** Title element. */\n title: ReactElement | string;\n /** Applies passed styles */\n style?: CSSProperties;\n /** Applies passed classes */\n className?: string;\n /** Open */\n open?: boolean;\n /** Placement */\n placement?: Placement;\n /** Transition component */\n TransitionComponent?: React.FC<TransitionProps>;\n /** Light tooltip */\n isLight?: boolean;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n /** Remove tooltip */\n disable?: boolean;\n}\n\ninterface ITooltipAnimation extends TransitionProps {\n children: ReactElement;\n}\n\nconst TooltipAnimation: FC<ITooltipAnimation> = ({ children, ...props }) => {\n return (\n <FromElement timeout={0} {...props}>\n {children}\n </FromElement>\n );\n};\n\nexport const Tooltip = forwardRef<HTMLElement, ITooltipProps>(\n (\n {\n children,\n title,\n className,\n style,\n isLight = false,\n placement = \"top\",\n TransitionComponent = TooltipAnimation,\n popperTooltipStyle,\n popperTooltipClassName,\n disable,\n },\n ref\n ) => {\n const { zIndex = layers.skyscraper } = useLayerContext();\n const [open, setOpen] = useState(false);\n const [childNode, setChildNode] = useState<HTMLElement | null>();\n\n const handleEnter = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (event.type === \"mouseover\" && childrenProps.onMouseOver) {\n childrenProps.onMouseOver(event);\n }\n\n childNode && childNode.removeAttribute(\"title\");\n\n setOpen(true);\n };\n\n const handleLeave = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (\n event.type === \"mouseleave\" &&\n childrenProps.onMouseLeave &&\n event.currentTarget === childNode\n ) {\n childrenProps.onMouseLeave(event);\n }\n\n setOpen(false);\n };\n\n const handleOwnRef = useForkRef(children.ref, ref);\n const handleRef = useForkRef(setChildNode, handleOwnRef);\n\n const childrenProps = {\n onMouseOver: handleEnter,\n onMouseLeave: handleLeave,\n ref: handleRef,\n };\n\n return (\n <>\n {React.cloneElement(children, childrenProps)}\n {!disable && (\n <Portal>\n <Popper\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={placement}\n transition\n className={popperTooltipClassName}\n style={{ zIndex, ...popperTooltipStyle }}\n role=\"tooltip\"\n >\n {({ transitionProps = {} }): ReactElement => (\n <TransitionComponent {...transitionProps} style={style}>\n <StyledTooltip\n className={classnames(\"c-tooltip-ds\", className)}\n $isLight={isLight}\n >\n {title}\n </StyledTooltip>\n </TransitionComponent>\n )}\n </Popper>\n </Portal>\n )}\n </>\n );\n }\n);\n\nTooltip.displayName = \"Tooltip\";\n"],"file":"Tooltip.js"}
|
|
@@ -4,7 +4,7 @@ import { IAutocompleteProps } from "../Autocomplete/Autocomplete";
|
|
|
4
4
|
interface ElementWithRef<T> extends ReactElement {
|
|
5
5
|
ref?: Ref<T>;
|
|
6
6
|
}
|
|
7
|
-
export interface ISelectProps extends Omit<IAutocompleteProps, "handleChange" | "
|
|
7
|
+
export interface ISelectProps extends Omit<IAutocompleteProps, "handleChange" | "inputEl"> {
|
|
8
8
|
mode?: "normal" | "wider" | "tiny";
|
|
9
9
|
target?: ElementWithRef<Element>;
|
|
10
10
|
position?: Placement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,SAAS,CAAC;IAE5D,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAEnC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAEjC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAE9D,UAAU,CAAC,EAAE,YAAY,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAE9C,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,CAuOnC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
var _excluded = ["type", "mode", "target", "options", "selected", "position", "onChange", "actionIcon", "actionLabel", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose", "renderOption"];
|
|
3
|
+
var _excluded = ["type", "mode", "target", "options", "selected", "position", "onChange", "actionIcon", "actionLabel", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose", "renderOption", "handleDefaultOptionChange", "preselectDefaultValue"];
|
|
4
4
|
import React, { useCallback, useState, useMemo, useEffect, useRef } from "react";
|
|
5
5
|
import { Autocomplete } from "../Autocomplete";
|
|
6
6
|
import { Tooltip } from "../Tooltip";
|
|
@@ -39,6 +39,9 @@ export var Select = function Select(_ref) {
|
|
|
39
39
|
onSelectOpen = _ref.onSelectOpen,
|
|
40
40
|
onSelectClose = _ref.onSelectClose,
|
|
41
41
|
renderOption = _ref.renderOption,
|
|
42
|
+
handleDefaultOptionChange = _ref.handleDefaultOptionChange,
|
|
43
|
+
_ref$preselectDefault = _ref.preselectDefaultValue,
|
|
44
|
+
preselectDefaultValue = _ref$preselectDefault === void 0 ? type === "single" : _ref$preselectDefault,
|
|
42
45
|
prop = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
43
46
|
|
|
44
47
|
var _useState = useState(),
|
|
@@ -137,21 +140,33 @@ export var Select = function Select(_ref) {
|
|
|
137
140
|
|
|
138
141
|
(_formRef$current = formRef.current) == null ? void 0 : _formRef$current.reset();
|
|
139
142
|
}, [emptyAction, forceCloseMenu]);
|
|
140
|
-
var
|
|
143
|
+
var handleDefaultOptionChangeCallback = useCallback(function () {
|
|
141
144
|
if (type === "multiple") {
|
|
142
145
|
if (selectedOptions.length === allOptionValues.length) {
|
|
143
|
-
|
|
146
|
+
if (typeof handleDefaultOptionChange === "function") {
|
|
147
|
+
handleDefaultOptionChange();
|
|
148
|
+
} else {
|
|
149
|
+
onChange([]);
|
|
150
|
+
}
|
|
144
151
|
} else {
|
|
145
|
-
|
|
152
|
+
if (typeof handleDefaultOptionChange === "function") {
|
|
153
|
+
handleDefaultOptionChange();
|
|
154
|
+
} else {
|
|
155
|
+
onChange(allOptionValues);
|
|
156
|
+
}
|
|
146
157
|
}
|
|
147
158
|
} else {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
159
|
+
if (typeof handleDefaultOptionChange === "function") {
|
|
160
|
+
handleDefaultOptionChange();
|
|
161
|
+
} else {
|
|
162
|
+
onChange("");
|
|
152
163
|
}
|
|
153
164
|
}
|
|
154
|
-
|
|
165
|
+
|
|
166
|
+
if (forceCloseMenu) {
|
|
167
|
+
setOpen(false);
|
|
168
|
+
}
|
|
169
|
+
}, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues, handleDefaultOptionChange]);
|
|
155
170
|
var handleRenderOption = useCallback(function (option, props) {
|
|
156
171
|
if (typeof renderOption === "function") {
|
|
157
172
|
return renderOption(option, props);
|
|
@@ -187,9 +202,9 @@ export var Select = function Select(_ref) {
|
|
|
187
202
|
handleChange: handleChange,
|
|
188
203
|
renderOption: handleRenderOption,
|
|
189
204
|
options: options,
|
|
190
|
-
handleDefaultOptionChange:
|
|
205
|
+
handleDefaultOptionChange: handleDefaultOptionChangeCallback,
|
|
191
206
|
type: type,
|
|
192
|
-
preselectDefaultValue:
|
|
207
|
+
preselectDefaultValue: preselectDefaultValue,
|
|
193
208
|
keepSameOptionsOrder: keepSameOptionsOrder
|
|
194
209
|
}))));
|
|
195
210
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Autocomplete","Tooltip","Menu","classNames","useForkRef","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","OptionContent","Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","prop","childNode","setChildNode","elementRef","handleRef","Tag","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","onClose","onOpen","props","menuClassName","className","handleEmptyAction","value","current","reset","handleDefaultOptionChange","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"preselectDefaultValue\" | \"handleDefaultOptionChange\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = () => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n setOpen(false);\n }\n onChange(selectedValue);\n },\n [onChange, forceCloseMenu]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChange = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n onChange([]);\n } else {\n onChange(allOptionValues);\n }\n } else {\n onChange(\"\");\n if (forceCloseMenu) {\n setOpen(false);\n }\n }\n }, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, renderOption, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChange}\n type={type}\n preselectDefaultValue={type === \"single\"}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Autocomplete","Tooltip","Menu","classNames","useForkRef","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","OptionContent","Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","prop","childNode","setChildNode","elementRef","handleRef","Tag","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","onClose","onOpen","props","menuClassName","className","handleEmptyAction","value","current","reset","handleDefaultOptionChangeCallback","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<IAutocompleteProps, \"handleChange\" | \"inputEl\"> {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = () => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n setOpen(false);\n }\n onChange(selectedValue);\n },\n [onChange, forceCloseMenu]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, renderOption, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Tooltip/Styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;cAA0B,OAAO;
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Tooltip/Styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;cAA0B,OAAO;SAsB1D,CAAC"}
|
|
@@ -4,9 +4,7 @@ import { FontStyle } from "../FontStyle";
|
|
|
4
4
|
export var StyledTooltip = styled.div.withConfig({
|
|
5
5
|
displayName: "Styles__StyledTooltip",
|
|
6
6
|
componentId: "sc-rur9b5-0"
|
|
7
|
-
})(["", " ", " border-radius:8px;padding:4px 10px;text-align:center;background-color:rgba(0,0,0,0.9);font-size:12px;font-weight:500;line-height:normal;color:#fff;margin:4px;", "
|
|
7
|
+
})(["", " ", " max-width:200px;border-radius:8px;padding:4px 10px;text-align:center;background-color:rgba(0,0,0,0.9);font-size:12px;font-weight:500;line-height:normal;color:#fff;margin:4px;", ""], BoxSizingStyle, FontStyle, function (props) {
|
|
8
8
|
return props.$isLight && css(["background-color:var(--page-paper-main);box-shadow:var(--shadow-secondary);color:var(--color-theme-700);"]);
|
|
9
|
-
}, function (props) {
|
|
10
|
-
return props.$width && css(["width:", "px;"], props.$width);
|
|
11
9
|
});
|
|
12
10
|
//# sourceMappingURL=Styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Tooltip/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledTooltip","div","props","$isLight"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Tooltip/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledTooltip","div","props","$isLight"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AACA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AAEA,OAAO,IAAMC,aAAa,GAAGJ,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,qMACtBH,cADsB,EAEtBC,SAFsB,EAetB,UAACG,KAAD;AAAA,SACAA,KAAK,CAACC,QAAN,IACAN,GADA,8GADA;AAAA,CAfsB,CAAnB","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\nexport const StyledTooltip = styled.div<{ $isLight: boolean }>`\n ${BoxSizingStyle}\n ${FontStyle}\n\n max-width: 200px;\n border-radius: 8px;\n padding: 4px 10px;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.9);\n font-size: 12px;\n font-weight: 500;\n line-height: normal;\n color: #fff;\n margin: 4px;\n\n ${(props) =>\n props.$isLight &&\n css`\n background-color: var(--page-paper-main);\n box-shadow: var(--shadow-secondary);\n color: var(--color-theme-700);\n `}\n`;\n"],"file":"Styles.js"}
|
|
@@ -16,7 +16,6 @@ export interface ITooltipProps {
|
|
|
16
16
|
popperTooltipStyle?: CSSProperties;
|
|
17
17
|
popperTooltipClassName?: string;
|
|
18
18
|
disable?: boolean;
|
|
19
|
-
width?: number;
|
|
20
19
|
}
|
|
21
20
|
export declare const Tooltip: React.ForwardRefExoticComponent<ITooltipProps & React.RefAttributes<HTMLElement>>;
|
|
22
21
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,YAAY,EAEZ,aAAa,EAGb,GAAG,EAEJ,MAAM,OAAO,CAAC;AAEf,OAAO,EAAU,SAAS,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKjD,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAEtC,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC;IAE7B,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IAEhD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,kBAAkB,CAAC,EAAE,aAAa,CAAC;IAEnC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,YAAY,EAEZ,aAAa,EAGb,GAAG,EAEJ,MAAM,OAAO,CAAC;AAEf,OAAO,EAAU,SAAS,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKjD,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAEtC,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC;IAE7B,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IAEhD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,kBAAkB,CAAC,EAAE,aAAa,CAAC;IAEnC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAcD,eAAO,MAAM,OAAO,mFAqFnB,CAAC"}
|
|
@@ -32,9 +32,7 @@ export var Tooltip = /*#__PURE__*/forwardRef(function (_ref2, ref) {
|
|
|
32
32
|
TransitionComponent = _ref2$TransitionCompo === void 0 ? TooltipAnimation : _ref2$TransitionCompo,
|
|
33
33
|
popperTooltipStyle = _ref2.popperTooltipStyle,
|
|
34
34
|
popperTooltipClassName = _ref2.popperTooltipClassName,
|
|
35
|
-
disable = _ref2.disable
|
|
36
|
-
_ref2$width = _ref2.width,
|
|
37
|
-
width = _ref2$width === void 0 ? 200 : _ref2$width;
|
|
35
|
+
disable = _ref2.disable;
|
|
38
36
|
|
|
39
37
|
var _useLayerContext = useLayerContext(),
|
|
40
38
|
_useLayerContext$zInd = _useLayerContext.zIndex,
|
|
@@ -93,8 +91,7 @@ export var Tooltip = /*#__PURE__*/forwardRef(function (_ref2, ref) {
|
|
|
93
91
|
style: style
|
|
94
92
|
}), /*#__PURE__*/React.createElement(StyledTooltip, {
|
|
95
93
|
className: classnames("c-tooltip-ds", className),
|
|
96
|
-
$isLight: isLight
|
|
97
|
-
$width: width
|
|
94
|
+
$isLight: isLight
|
|
98
95
|
}, title));
|
|
99
96
|
})));
|
|
100
97
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":["React","useState","forwardRef","classnames","Popper","FromElement","useForkRef","Portal","useLayerContext","StyledTooltip","layers","TooltipAnimation","children","props","Tooltip","ref","title","className","style","isLight","placement","TransitionComponent","popperTooltipStyle","popperTooltipClassName","disable","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":["React","useState","forwardRef","classnames","Popper","FromElement","useForkRef","Portal","useLayerContext","StyledTooltip","layers","TooltipAnimation","children","props","Tooltip","ref","title","className","style","isLight","placement","TransitionComponent","popperTooltipStyle","popperTooltipClassName","disable","zIndex","skyscraper","open","setOpen","childNode","setChildNode","handleEnter","event","childrenProps","type","onMouseOver","removeAttribute","handleLeave","onMouseLeave","currentTarget","handleOwnRef","handleRef","cloneElement","transitionProps","displayName"],"mappings":"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","sourcesContent":["import React, {\n ReactElement,\n useState,\n CSSProperties,\n MouseEvent,\n forwardRef,\n Ref,\n FC,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { Popper, Placement } from \"../Popper\";\nimport { FromElement } from \"../Transitions/FromElement\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { TransitionProps } from \"../Transitions\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport { StyledTooltip } from \"./Styles\";\nimport { layers } from \"../../utils\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ITooltipProps {\n /** Children element. */\n children: ElementWithRef<HTMLElement>;\n /** Title element. */\n title: ReactElement | string;\n /** Applies passed styles */\n style?: CSSProperties;\n /** Applies passed classes */\n className?: string;\n /** Open */\n open?: boolean;\n /** Placement */\n placement?: Placement;\n /** Transition component */\n TransitionComponent?: React.FC<TransitionProps>;\n /** Light tooltip */\n isLight?: boolean;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n /** Remove tooltip */\n disable?: boolean;\n}\n\ninterface ITooltipAnimation extends TransitionProps {\n children: ReactElement;\n}\n\nconst TooltipAnimation: FC<ITooltipAnimation> = ({ children, ...props }) => {\n return (\n <FromElement timeout={0} {...props}>\n {children}\n </FromElement>\n );\n};\n\nexport const Tooltip = forwardRef<HTMLElement, ITooltipProps>(\n (\n {\n children,\n title,\n className,\n style,\n isLight = false,\n placement = \"top\",\n TransitionComponent = TooltipAnimation,\n popperTooltipStyle,\n popperTooltipClassName,\n disable,\n },\n ref\n ) => {\n const { zIndex = layers.skyscraper } = useLayerContext();\n const [open, setOpen] = useState(false);\n const [childNode, setChildNode] = useState<HTMLElement | null>();\n\n const handleEnter = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (event.type === \"mouseover\" && childrenProps.onMouseOver) {\n childrenProps.onMouseOver(event);\n }\n\n childNode && childNode.removeAttribute(\"title\");\n\n setOpen(true);\n };\n\n const handleLeave = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (\n event.type === \"mouseleave\" &&\n childrenProps.onMouseLeave &&\n event.currentTarget === childNode\n ) {\n childrenProps.onMouseLeave(event);\n }\n\n setOpen(false);\n };\n\n const handleOwnRef = useForkRef(children.ref, ref);\n const handleRef = useForkRef(setChildNode, handleOwnRef);\n\n const childrenProps = {\n onMouseOver: handleEnter,\n onMouseLeave: handleLeave,\n ref: handleRef,\n };\n\n return (\n <>\n {React.cloneElement(children, childrenProps)}\n {!disable && (\n <Portal>\n <Popper\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={placement}\n transition\n className={popperTooltipClassName}\n style={{ zIndex, ...popperTooltipStyle }}\n role=\"tooltip\"\n >\n {({ transitionProps = {} }): ReactElement => (\n <TransitionComponent {...transitionProps} style={style}>\n <StyledTooltip\n className={classnames(\"c-tooltip-ds\", className)}\n $isLight={isLight}\n >\n {title}\n </StyledTooltip>\n </TransitionComponent>\n )}\n </Popper>\n </Portal>\n )}\n </>\n );\n }\n);\n\nTooltip.displayName = \"Tooltip\";\n"],"file":"Tooltip.js"}
|