@skbkontur/react-ui 4.8.0 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/cjs/components/DatePicker/DatePicker.d.ts +11 -12
- package/cjs/components/DatePicker/DatePicker.js +0 -2
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +1 -0
- package/cjs/components/Group/Group.js +7 -11
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.d.ts +14 -0
- package/cjs/components/Modal/ModalFooter.js +22 -1
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +0 -14
- package/cjs/components/RadioGroup/RadioGroup.js +1 -16
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +1 -24
- package/cjs/components/Select/Select.js +2 -25
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +9 -1
- package/cjs/components/SidePage/SidePageFooter.js +16 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +1 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +1 -1
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +7 -0
- package/cjs/components/Switcher/Switcher.js +34 -10
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Switcher/Switcher.md +97 -0
- package/cjs/components/Tabs/Tab.d.ts +0 -8
- package/cjs/components/Tabs/Tab.js +1 -10
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +0 -8
- package/cjs/components/Tabs/Tabs.js +1 -9
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +54 -54
- package/cjs/index.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +1 -1
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +1 -1
- package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.md +18 -12
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +11 -12
- package/components/Group/Group/Group.js +5 -5
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +1 -0
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js +7 -1
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalFooter.d.ts +14 -0
- package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -14
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +0 -14
- package/components/Select/Select/Select.js +1 -23
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +1 -24
- package/components/SidePage/SidePageFooter/SidePageFooter.js +6 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +9 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +1 -1
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +1 -1
- package/components/Switcher/Switcher/Switcher.js +30 -11
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +7 -0
- package/components/Switcher/Switcher.md +97 -0
- package/components/Tabs/Tab/Tab.js +1 -8
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +0 -8
- package/components/Tabs/Tabs/Tabs.js +1 -8
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +0 -8
- package/index.d.ts +2 -0
- package/index.js +3 -1
- package/index.js.map +1 -1
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +1 -1
- package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
- package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +1 -1
- package/lib/theming/ThemeContext.md +18 -12
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Tabs.tsx"],"names":["TabsDataTids","root","indicatorRoot","Tabs","rootNode","getProps","defaultProps","tabs","tabUpdates","on","cb","index","listeners","push","splice","shiftFocus","fromTab","delta","findIndex","x","id","newIndex","Math","max","min","length","tab","tabNode","getNode","htmlNode","HTMLElement","focus","notifyUpdate","forEach","switchTab","props","onValueChange","value","getTab","find","addTab","concat","removeTab","filter","render","width","children","indicatorClassName","vertical","theme","setRootNode","styles","activeTab","React","Component","__KONTUR_REACT_UI__","
|
|
1
|
+
{"version":3,"sources":["Tabs.tsx"],"names":["TabsDataTids","root","indicatorRoot","Tabs","rootNode","getProps","defaultProps","tabs","tabUpdates","on","cb","index","listeners","push","splice","shiftFocus","fromTab","delta","findIndex","x","id","newIndex","Math","max","min","length","tab","tabNode","getNode","htmlNode","HTMLElement","focus","notifyUpdate","forEach","switchTab","props","onValueChange","value","getTab","find","addTab","concat","removeTab","filter","render","width","children","indicatorClassName","vertical","theme","setRootNode","styles","activeTab","React","Component","__KONTUR_REACT_UI__","Tab"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { emptyHandler } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode } from '../../lib/rootNode/getRootNode';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { Indicator } from './Indicator';\nimport { styles } from './Tabs.styles';\nimport { TabsContext, TabsContextType } from './TabsContext';\nimport { Tab } from './Tab';\n\ntype ValueBaseType = string;\ninterface TabType<T extends ValueBaseType> {\n getNode: () => Tab<T> | null;\n id: T;\n}\n\nexport interface TabsProps<T extends ValueBaseType = string> extends CommonProps {\n /**\n * Tab component should be child of Tabs component\n */\n children?: React.ReactNode;\n\n /**\n * Classname of indicator\n */\n indicatorClassName?: string;\n\n /**\n * Tabs change event\n */\n onValueChange?: (value: T) => void;\n\n /**\n * Active tab identifier\n */\n value: T;\n\n /**\n * Vertical indicator\n * @default false\n */\n vertical?: boolean;\n\n /**\n * Width of tabs container\n */\n width?: number | string;\n}\n\nexport const TabsDataTids = {\n root: 'Tabs__root',\n indicatorRoot: 'Indicator__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TabsProps, 'vertical'>>;\n\n/**\n * Tabs wrapper\n *\n * contains static property `Tab`\n */\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n\n public static defaultProps: DefaultProps = {\n vertical: false,\n };\n\n private getProps = createPropsGetter(Tabs.defaultProps);\n\n public static Tab = Tab;\n\n private theme!: Theme;\n\n private tabs: Array<TabType<T>> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<typeof emptyHandler> = [];\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { value, width, children, indicatorClassName } = this.props;\n const vertical = this.getProps().vertical;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={TabsDataTids.root}\n className={cx(styles.root(this.theme), vertical && styles.vertical())}\n style={{ width }}\n >\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator\n className={indicatorClassName}\n tabUpdates={this.tabUpdates}\n vertical={this.getProps().vertical}\n />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n const htmlNode = getRootNode(tabNode);\n\n if (htmlNode && htmlNode instanceof HTMLElement && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"]}
|
package/cjs/index.d.ts
CHANGED
|
@@ -52,3 +52,5 @@ export * from './lib/theming/themes/FlatTheme8pxOld';
|
|
|
52
52
|
export * from './lib/theming/themes/Theme2022';
|
|
53
53
|
export * from './lib/theming/themes/Theme2022Dark';
|
|
54
54
|
export * from './internal/Popup/types';
|
|
55
|
+
export * as ColorFunctions from './lib/styles/ColorFunctions';
|
|
56
|
+
export * as DimensionFunctions from './lib/styles/DimensionFunctions';
|
package/cjs/index.js
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;var _Autocomplete = require("./components/Autocomplete");Object.keys(_Autocomplete).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Autocomplete[key]) return;exports[key] = _Autocomplete[key];});
|
|
2
|
-
var _Button = require("./components/Button");Object.keys(_Button).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Button[key]) return;exports[key] = _Button[key];});
|
|
3
|
-
var _Center = require("./components/Center");Object.keys(_Center).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Center[key]) return;exports[key] = _Center[key];});
|
|
4
|
-
var _Checkbox = require("./components/Checkbox");Object.keys(_Checkbox).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Checkbox[key]) return;exports[key] = _Checkbox[key];});
|
|
5
|
-
var _ComboBox = require("./components/ComboBox");Object.keys(_ComboBox).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _ComboBox[key]) return;exports[key] = _ComboBox[key];});
|
|
6
|
-
var _CurrencyInput = require("./components/CurrencyInput");Object.keys(_CurrencyInput).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _CurrencyInput[key]) return;exports[key] = _CurrencyInput[key];});
|
|
7
|
-
var _CurrencyLabel = require("./components/CurrencyLabel");Object.keys(_CurrencyLabel).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _CurrencyLabel[key]) return;exports[key] = _CurrencyLabel[key];});
|
|
8
|
-
var _DateInput = require("./components/DateInput");Object.keys(_DateInput).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _DateInput[key]) return;exports[key] = _DateInput[key];});
|
|
9
|
-
var _DatePicker = require("./components/DatePicker");Object.keys(_DatePicker).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _DatePicker[key]) return;exports[key] = _DatePicker[key];});
|
|
10
|
-
var _Dropdown = require("./components/Dropdown");Object.keys(_Dropdown).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Dropdown[key]) return;exports[key] = _Dropdown[key];});
|
|
11
|
-
var _DropdownMenu = require("./components/DropdownMenu");Object.keys(_DropdownMenu).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _DropdownMenu[key]) return;exports[key] = _DropdownMenu[key];});
|
|
12
|
-
var _FileUploader = require("./components/FileUploader");Object.keys(_FileUploader).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _FileUploader[key]) return;exports[key] = _FileUploader[key];});
|
|
13
|
-
var _FxInput = require("./components/FxInput");Object.keys(_FxInput).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _FxInput[key]) return;exports[key] = _FxInput[key];});
|
|
14
|
-
var _Gapped = require("./components/Gapped");Object.keys(_Gapped).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Gapped[key]) return;exports[key] = _Gapped[key];});
|
|
15
|
-
var _GlobalLoader = require("./components/GlobalLoader");Object.keys(_GlobalLoader).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _GlobalLoader[key]) return;exports[key] = _GlobalLoader[key];});
|
|
16
|
-
var _Group = require("./components/Group");Object.keys(_Group).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Group[key]) return;exports[key] = _Group[key];});
|
|
17
|
-
var _Hint = require("./components/Hint");Object.keys(_Hint).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Hint[key]) return;exports[key] = _Hint[key];});
|
|
18
|
-
var _Input = require("./components/Input");Object.keys(_Input).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Input[key]) return;exports[key] = _Input[key];});
|
|
19
|
-
var _Kebab = require("./components/Kebab");Object.keys(_Kebab).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Kebab[key]) return;exports[key] = _Kebab[key];});
|
|
20
|
-
var _Link = require("./components/Link");Object.keys(_Link).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Link[key]) return;exports[key] = _Link[key];});
|
|
21
|
-
var _Loader = require("./components/Loader");Object.keys(_Loader).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Loader[key]) return;exports[key] = _Loader[key];});
|
|
22
|
-
var _MenuHeader = require("./components/MenuHeader");Object.keys(_MenuHeader).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _MenuHeader[key]) return;exports[key] = _MenuHeader[key];});
|
|
23
|
-
var _MenuItem = require("./components/MenuItem");Object.keys(_MenuItem).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _MenuItem[key]) return;exports[key] = _MenuItem[key];});
|
|
24
|
-
var _MenuSeparator = require("./components/MenuSeparator");Object.keys(_MenuSeparator).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _MenuSeparator[key]) return;exports[key] = _MenuSeparator[key];});
|
|
25
|
-
var _Modal = require("./components/Modal");Object.keys(_Modal).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Modal[key]) return;exports[key] = _Modal[key];});
|
|
26
|
-
var _Paging = require("./components/Paging");Object.keys(_Paging).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Paging[key]) return;exports[key] = _Paging[key];});
|
|
27
|
-
var _PasswordInput = require("./components/PasswordInput");Object.keys(_PasswordInput).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _PasswordInput[key]) return;exports[key] = _PasswordInput[key];});
|
|
28
|
-
var _Radio = require("./components/Radio");Object.keys(_Radio).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Radio[key]) return;exports[key] = _Radio[key];});
|
|
29
|
-
var _RadioGroup = require("./components/RadioGroup");Object.keys(_RadioGroup).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _RadioGroup[key]) return;exports[key] = _RadioGroup[key];});
|
|
30
|
-
var _ScrollContainer = require("./components/ScrollContainer");Object.keys(_ScrollContainer).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _ScrollContainer[key]) return;exports[key] = _ScrollContainer[key];});
|
|
31
|
-
var _Select = require("./components/Select");Object.keys(_Select).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Select[key]) return;exports[key] = _Select[key];});
|
|
32
|
-
var _SidePage = require("./components/SidePage");Object.keys(_SidePage).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _SidePage[key]) return;exports[key] = _SidePage[key];});
|
|
33
|
-
var _Spinner = require("./components/Spinner");Object.keys(_Spinner).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Spinner[key]) return;exports[key] = _Spinner[key];});
|
|
34
|
-
var _Sticky = require("./components/Sticky");Object.keys(_Sticky).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Sticky[key]) return;exports[key] = _Sticky[key];});
|
|
35
|
-
var _Switcher = require("./components/Switcher");Object.keys(_Switcher).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Switcher[key]) return;exports[key] = _Switcher[key];});
|
|
36
|
-
var _Tabs = require("./components/Tabs");Object.keys(_Tabs).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Tabs[key]) return;exports[key] = _Tabs[key];});
|
|
37
|
-
var _Textarea = require("./components/Textarea");Object.keys(_Textarea).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Textarea[key]) return;exports[key] = _Textarea[key];});
|
|
38
|
-
var _Toast = require("./components/Toast");Object.keys(_Toast).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Toast[key]) return;exports[key] = _Toast[key];});
|
|
39
|
-
var _Toggle = require("./components/Toggle");Object.keys(_Toggle).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Toggle[key]) return;exports[key] = _Toggle[key];});
|
|
40
|
-
var _Token = require("./components/Token");Object.keys(_Token).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Token[key]) return;exports[key] = _Token[key];});
|
|
41
|
-
var _TokenInput = require("./components/TokenInput");Object.keys(_TokenInput).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _TokenInput[key]) return;exports[key] = _TokenInput[key];});
|
|
42
|
-
var _Tooltip = require("./components/Tooltip");Object.keys(_Tooltip).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Tooltip[key]) return;exports[key] = _Tooltip[key];});
|
|
43
|
-
var _TooltipMenu = require("./components/TooltipMenu");Object.keys(_TooltipMenu).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _TooltipMenu[key]) return;exports[key] = _TooltipMenu[key];});
|
|
44
|
-
var _ResponsiveLayout = require("./components/ResponsiveLayout");Object.keys(_ResponsiveLayout).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _ResponsiveLayout[key]) return;exports[key] = _ResponsiveLayout[key];});
|
|
45
|
-
var _locale = require("./lib/locale");Object.keys(_locale).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _locale[key]) return;exports[key] = _locale[key];});
|
|
46
|
-
var _ThemeContext = require("./lib/theming/ThemeContext");Object.keys(_ThemeContext).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _ThemeContext[key]) return;exports[key] = _ThemeContext[key];});
|
|
47
|
-
var _ThemeFactory = require("./lib/theming/ThemeFactory");Object.keys(_ThemeFactory).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _ThemeFactory[key]) return;exports[key] = _ThemeFactory[key];});
|
|
48
|
-
var _DefaultTheme = require("./lib/theming/themes/DefaultTheme");Object.keys(_DefaultTheme).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _DefaultTheme[key]) return;exports[key] = _DefaultTheme[key];});
|
|
49
|
-
var _DarkTheme = require("./lib/theming/themes/DarkTheme");Object.keys(_DarkTheme).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _DarkTheme[key]) return;exports[key] = _DarkTheme[key];});
|
|
50
|
-
var _DefaultTheme8pxOld = require("./lib/theming/themes/DefaultTheme8pxOld");Object.keys(_DefaultTheme8pxOld).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _DefaultTheme8pxOld[key]) return;exports[key] = _DefaultTheme8pxOld[key];});
|
|
51
|
-
var _FlatTheme8pxOld = require("./lib/theming/themes/FlatTheme8pxOld");Object.keys(_FlatTheme8pxOld).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _FlatTheme8pxOld[key]) return;exports[key] = _FlatTheme8pxOld[key];});
|
|
52
|
-
var _Theme = require("./lib/theming/themes/Theme2022");Object.keys(_Theme).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Theme[key]) return;exports[key] = _Theme[key];});
|
|
53
|
-
var _Theme2022Dark = require("./lib/theming/themes/Theme2022Dark");Object.keys(_Theme2022Dark).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Theme2022Dark[key]) return;exports[key] = _Theme2022Dark[key];});
|
|
54
|
-
var _types = require("./internal/Popup/types");Object.keys(_types).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _types[key]) return;exports[key] = _types[key];});
|
|
1
|
+
"use strict";exports.__esModule = true;var _exportNames = { ColorFunctions: true, DimensionFunctions: true };exports.DimensionFunctions = exports.ColorFunctions = void 0;var _Autocomplete = require("./components/Autocomplete");Object.keys(_Autocomplete).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Autocomplete[key]) return;exports[key] = _Autocomplete[key];});
|
|
2
|
+
var _Button = require("./components/Button");Object.keys(_Button).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Button[key]) return;exports[key] = _Button[key];});
|
|
3
|
+
var _Center = require("./components/Center");Object.keys(_Center).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Center[key]) return;exports[key] = _Center[key];});
|
|
4
|
+
var _Checkbox = require("./components/Checkbox");Object.keys(_Checkbox).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Checkbox[key]) return;exports[key] = _Checkbox[key];});
|
|
5
|
+
var _ComboBox = require("./components/ComboBox");Object.keys(_ComboBox).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _ComboBox[key]) return;exports[key] = _ComboBox[key];});
|
|
6
|
+
var _CurrencyInput = require("./components/CurrencyInput");Object.keys(_CurrencyInput).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _CurrencyInput[key]) return;exports[key] = _CurrencyInput[key];});
|
|
7
|
+
var _CurrencyLabel = require("./components/CurrencyLabel");Object.keys(_CurrencyLabel).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _CurrencyLabel[key]) return;exports[key] = _CurrencyLabel[key];});
|
|
8
|
+
var _DateInput = require("./components/DateInput");Object.keys(_DateInput).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _DateInput[key]) return;exports[key] = _DateInput[key];});
|
|
9
|
+
var _DatePicker = require("./components/DatePicker");Object.keys(_DatePicker).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _DatePicker[key]) return;exports[key] = _DatePicker[key];});
|
|
10
|
+
var _Dropdown = require("./components/Dropdown");Object.keys(_Dropdown).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Dropdown[key]) return;exports[key] = _Dropdown[key];});
|
|
11
|
+
var _DropdownMenu = require("./components/DropdownMenu");Object.keys(_DropdownMenu).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _DropdownMenu[key]) return;exports[key] = _DropdownMenu[key];});
|
|
12
|
+
var _FileUploader = require("./components/FileUploader");Object.keys(_FileUploader).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _FileUploader[key]) return;exports[key] = _FileUploader[key];});
|
|
13
|
+
var _FxInput = require("./components/FxInput");Object.keys(_FxInput).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _FxInput[key]) return;exports[key] = _FxInput[key];});
|
|
14
|
+
var _Gapped = require("./components/Gapped");Object.keys(_Gapped).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Gapped[key]) return;exports[key] = _Gapped[key];});
|
|
15
|
+
var _GlobalLoader = require("./components/GlobalLoader");Object.keys(_GlobalLoader).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _GlobalLoader[key]) return;exports[key] = _GlobalLoader[key];});
|
|
16
|
+
var _Group = require("./components/Group");Object.keys(_Group).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Group[key]) return;exports[key] = _Group[key];});
|
|
17
|
+
var _Hint = require("./components/Hint");Object.keys(_Hint).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Hint[key]) return;exports[key] = _Hint[key];});
|
|
18
|
+
var _Input = require("./components/Input");Object.keys(_Input).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Input[key]) return;exports[key] = _Input[key];});
|
|
19
|
+
var _Kebab = require("./components/Kebab");Object.keys(_Kebab).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Kebab[key]) return;exports[key] = _Kebab[key];});
|
|
20
|
+
var _Link = require("./components/Link");Object.keys(_Link).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Link[key]) return;exports[key] = _Link[key];});
|
|
21
|
+
var _Loader = require("./components/Loader");Object.keys(_Loader).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Loader[key]) return;exports[key] = _Loader[key];});
|
|
22
|
+
var _MenuHeader = require("./components/MenuHeader");Object.keys(_MenuHeader).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _MenuHeader[key]) return;exports[key] = _MenuHeader[key];});
|
|
23
|
+
var _MenuItem = require("./components/MenuItem");Object.keys(_MenuItem).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _MenuItem[key]) return;exports[key] = _MenuItem[key];});
|
|
24
|
+
var _MenuSeparator = require("./components/MenuSeparator");Object.keys(_MenuSeparator).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _MenuSeparator[key]) return;exports[key] = _MenuSeparator[key];});
|
|
25
|
+
var _Modal = require("./components/Modal");Object.keys(_Modal).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Modal[key]) return;exports[key] = _Modal[key];});
|
|
26
|
+
var _Paging = require("./components/Paging");Object.keys(_Paging).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Paging[key]) return;exports[key] = _Paging[key];});
|
|
27
|
+
var _PasswordInput = require("./components/PasswordInput");Object.keys(_PasswordInput).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _PasswordInput[key]) return;exports[key] = _PasswordInput[key];});
|
|
28
|
+
var _Radio = require("./components/Radio");Object.keys(_Radio).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Radio[key]) return;exports[key] = _Radio[key];});
|
|
29
|
+
var _RadioGroup = require("./components/RadioGroup");Object.keys(_RadioGroup).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _RadioGroup[key]) return;exports[key] = _RadioGroup[key];});
|
|
30
|
+
var _ScrollContainer = require("./components/ScrollContainer");Object.keys(_ScrollContainer).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _ScrollContainer[key]) return;exports[key] = _ScrollContainer[key];});
|
|
31
|
+
var _Select = require("./components/Select");Object.keys(_Select).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Select[key]) return;exports[key] = _Select[key];});
|
|
32
|
+
var _SidePage = require("./components/SidePage");Object.keys(_SidePage).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _SidePage[key]) return;exports[key] = _SidePage[key];});
|
|
33
|
+
var _Spinner = require("./components/Spinner");Object.keys(_Spinner).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Spinner[key]) return;exports[key] = _Spinner[key];});
|
|
34
|
+
var _Sticky = require("./components/Sticky");Object.keys(_Sticky).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Sticky[key]) return;exports[key] = _Sticky[key];});
|
|
35
|
+
var _Switcher = require("./components/Switcher");Object.keys(_Switcher).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Switcher[key]) return;exports[key] = _Switcher[key];});
|
|
36
|
+
var _Tabs = require("./components/Tabs");Object.keys(_Tabs).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Tabs[key]) return;exports[key] = _Tabs[key];});
|
|
37
|
+
var _Textarea = require("./components/Textarea");Object.keys(_Textarea).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Textarea[key]) return;exports[key] = _Textarea[key];});
|
|
38
|
+
var _Toast = require("./components/Toast");Object.keys(_Toast).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Toast[key]) return;exports[key] = _Toast[key];});
|
|
39
|
+
var _Toggle = require("./components/Toggle");Object.keys(_Toggle).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Toggle[key]) return;exports[key] = _Toggle[key];});
|
|
40
|
+
var _Token = require("./components/Token");Object.keys(_Token).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Token[key]) return;exports[key] = _Token[key];});
|
|
41
|
+
var _TokenInput = require("./components/TokenInput");Object.keys(_TokenInput).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _TokenInput[key]) return;exports[key] = _TokenInput[key];});
|
|
42
|
+
var _Tooltip = require("./components/Tooltip");Object.keys(_Tooltip).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Tooltip[key]) return;exports[key] = _Tooltip[key];});
|
|
43
|
+
var _TooltipMenu = require("./components/TooltipMenu");Object.keys(_TooltipMenu).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _TooltipMenu[key]) return;exports[key] = _TooltipMenu[key];});
|
|
44
|
+
var _ResponsiveLayout = require("./components/ResponsiveLayout");Object.keys(_ResponsiveLayout).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _ResponsiveLayout[key]) return;exports[key] = _ResponsiveLayout[key];});
|
|
45
|
+
var _locale = require("./lib/locale");Object.keys(_locale).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _locale[key]) return;exports[key] = _locale[key];});
|
|
46
|
+
var _ThemeContext = require("./lib/theming/ThemeContext");Object.keys(_ThemeContext).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _ThemeContext[key]) return;exports[key] = _ThemeContext[key];});
|
|
47
|
+
var _ThemeFactory = require("./lib/theming/ThemeFactory");Object.keys(_ThemeFactory).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _ThemeFactory[key]) return;exports[key] = _ThemeFactory[key];});
|
|
48
|
+
var _DefaultTheme = require("./lib/theming/themes/DefaultTheme");Object.keys(_DefaultTheme).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _DefaultTheme[key]) return;exports[key] = _DefaultTheme[key];});
|
|
49
|
+
var _DarkTheme = require("./lib/theming/themes/DarkTheme");Object.keys(_DarkTheme).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _DarkTheme[key]) return;exports[key] = _DarkTheme[key];});
|
|
50
|
+
var _DefaultTheme8pxOld = require("./lib/theming/themes/DefaultTheme8pxOld");Object.keys(_DefaultTheme8pxOld).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _DefaultTheme8pxOld[key]) return;exports[key] = _DefaultTheme8pxOld[key];});
|
|
51
|
+
var _FlatTheme8pxOld = require("./lib/theming/themes/FlatTheme8pxOld");Object.keys(_FlatTheme8pxOld).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _FlatTheme8pxOld[key]) return;exports[key] = _FlatTheme8pxOld[key];});
|
|
52
|
+
var _Theme = require("./lib/theming/themes/Theme2022");Object.keys(_Theme).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Theme[key]) return;exports[key] = _Theme[key];});
|
|
53
|
+
var _Theme2022Dark = require("./lib/theming/themes/Theme2022Dark");Object.keys(_Theme2022Dark).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Theme2022Dark[key]) return;exports[key] = _Theme2022Dark[key];});
|
|
54
|
+
var _types = require("./internal/Popup/types");Object.keys(_types).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _types[key]) return;exports[key] = _types[key];});var _ColorFunctions = _interopRequireWildcard(require("./lib/styles/ColorFunctions"));exports.ColorFunctions = _ColorFunctions;var _DimensionFunctions = _interopRequireWildcard(require("./lib/styles/DimensionFunctions"));exports.DimensionFunctions = _DimensionFunctions;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);}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;}
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":"0KAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8S","sourcesContent":["export * from './components/Autocomplete';\nexport * from './components/Button';\nexport * from './components/Center';\nexport * from './components/Checkbox';\nexport * from './components/ComboBox';\nexport * from './components/CurrencyInput';\nexport * from './components/CurrencyLabel';\nexport * from './components/DateInput';\nexport * from './components/DatePicker';\nexport * from './components/Dropdown';\nexport * from './components/DropdownMenu';\nexport * from './components/FileUploader';\nexport * from './components/FxInput';\nexport * from './components/Gapped';\nexport * from './components/GlobalLoader';\nexport * from './components/Group';\nexport * from './components/Hint';\nexport * from './components/Input';\nexport * from './components/Kebab';\nexport * from './components/Link';\nexport * from './components/Loader';\nexport * from './components/MenuHeader';\nexport * from './components/MenuItem';\nexport * from './components/MenuSeparator';\nexport * from './components/Modal';\nexport * from './components/Paging';\nexport * from './components/PasswordInput';\nexport * from './components/Radio';\nexport * from './components/RadioGroup';\nexport * from './components/ScrollContainer';\nexport * from './components/Select';\nexport * from './components/SidePage';\nexport * from './components/Spinner';\nexport * from './components/Sticky';\nexport * from './components/Switcher';\nexport * from './components/Tabs';\nexport * from './components/Textarea';\nexport * from './components/Toast';\nexport * from './components/Toggle';\nexport * from './components/Token';\nexport * from './components/TokenInput';\nexport * from './components/Tooltip';\nexport * from './components/TooltipMenu';\nexport * from './components/ResponsiveLayout';\nexport * from './lib/locale';\nexport * from './lib/theming/ThemeContext';\nexport * from './lib/theming/ThemeFactory';\nexport * from './lib/theming/themes/DefaultTheme';\nexport * from './lib/theming/themes/DarkTheme';\nexport * from './lib/theming/themes/DefaultTheme8pxOld';\nexport * from './lib/theming/themes/FlatTheme8pxOld';\nexport * from './lib/theming/themes/Theme2022';\nexport * from './lib/theming/themes/Theme2022Dark';\nexport * from './internal/Popup/types';\nexport * as ColorFunctions from './lib/styles/ColorFunctions';\nexport * as DimensionFunctions from './lib/styles/DimensionFunctions';\n"]}
|
|
@@ -16,7 +16,7 @@ export interface PopupHandlerProps {
|
|
|
16
16
|
onOpen?: () => void;
|
|
17
17
|
onClose?: () => void;
|
|
18
18
|
}
|
|
19
|
-
export interface PopupProps extends CommonProps, PopupHandlerProps {
|
|
19
|
+
export interface PopupProps extends Omit<CommonProps, 'children'>, PopupHandlerProps {
|
|
20
20
|
anchorElement: React.ReactNode | HTMLElement;
|
|
21
21
|
backgroundColor?: React.CSSProperties['backgroundColor'];
|
|
22
22
|
borderColor?: React.CSSProperties['borderColor'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Popup.tsx"],"names":["POPUP_BORDER_DEFAULT_COLOR","TRANSITION_TIMEOUT","enter","exit","PopupPositions","DefaultPosition","DUMMY_LOCATION","position","coordinates","top","left","PopupDataTids","content","contentInner","popupPin","Popup","responsiveLayout","rootNode","getProps","defaultProps","state","location","props","opened","locationUpdateId","refForTransition","React","createRef","anchorElement","updateAnchorElement","instance","childDomNode","getAnchorElement","removeEventListeners","addEventListeners","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","anchorWidth","Math","floor","parseFloat","children","backgroundColor","styles","theme","resetLocation","cancelDelayedUpdateLocation","setState","refPopupElement","element","lastPopupElement","handleLayoutEvent","updateLocation","popupElement","getLocation","onPositionChange","locationEquals","componentDidMount","layoutEventsToken","LayoutEvents","addListener","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","wasClosed","isMobileLayout","onOpen","onClose","delayUpdateLocation","componentWillUnmount","remove","render","renderMain","renderMobile","renderChildren","mobileOnCloseRequest","useWrapper","anchor","isValidElement","anchorWithRef","cloneElement","ref","originalRef","canGetAnchorNode","withoutMobile","renderContent","addEventListener","removeEventListener","maxWidth","hasShadow","disableAnimations","ignoreHover","PopupHelper","getPositionObject","direction","rootStyle","shouldFallbackShadow","isIE11","isEdge","isSafari","Boolean","setRootNode","popup","shadow","shadowFallback","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","renderPin","positionName","isDefaultBorderColor","popupBorderColor","pinBorder","pinSize","borderColor","hasPin","parseInt","popupPinSize","getPinOffset","align","popupBackground","raf","cancel","x","y","abs","positions","tryPreserveFirstRenderedPosition","anchorRect","getElementAbsoluteRect","popupRect","getCoordinates","isFullyVisible","canBecomeVisible","canBecomeFullyVisible","getPinnedPopupOffset","test","anchorSize","height","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","getHorizontalPosition","getVerticalPosition","Error","pinOffset","popupPinOffset","popupPinOffsetY","popupPinOffsetX","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","oneOfType","HTMLElement","node","isRequired","string","func","bool","number","array","isTestEnv","defaultRootNode"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport raf from 'raf';\nimport warning from 'warning';\n\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { isFunction, isNonNullable, isNullable, isRefableElement } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isElement, safePropTypesInstanceOf } from '../../lib/SSRSafe';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { MobilePopup } from '../MobilePopup';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { isInstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { PopupPin } from './PopupPin';\nimport { Offset, PopupHelper, PositionObject, Rect } from './PopupHelper';\nimport { styles } from './Popup.styles';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nexport const PopupPositions = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom right',\n 'bottom center',\n 'bottom left',\n 'left bottom',\n 'left middle',\n 'left top',\n] as const;\nexport const DefaultPosition = PopupPositions[0];\n\nexport type PopupPositionsType = typeof PopupPositions[number];\n\nexport const DUMMY_LOCATION: PopupLocation = {\n position: DefaultPosition,\n coordinates: {\n top: -9999,\n left: -9999,\n },\n};\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps extends CommonProps, PopupHandlerProps {\n anchorElement: React.ReactNode | HTMLElement;\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n hasPin?: boolean;\n hasShadow?: boolean;\n disableAnimations?: boolean;\n margin?: number;\n maxWidth?: number | string;\n opened: boolean;\n pinOffset?: number;\n pinSize?: number;\n popupOffset?: number;\n positions: Readonly<PopupPositionsType[]>;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n ignoreHover?: boolean;\n width?: React.CSSProperties['width'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n withoutMobile?: boolean;\n mobileOnCloseRequest?: () => void;\n /**\n * Возвращает текущую позицию попапа\n */\n onPositionChange?: (pos: PopupPositionsType) => void;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPositionsType;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport const PopupDataTids = {\n content: 'PopupContent',\n contentInner: 'PopupContentInner',\n popupPin: 'PopupPin__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n PopupProps,\n 'popupOffset' | 'hasPin' | 'hasShadow' | 'disableAnimations' | 'useWrapper' | 'ignoreHover' | 'width'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n\n public static propTypes = {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: PropTypes.oneOfType([safePropTypesInstanceOf(() => HTMLElement), PropTypes.node]).isRequired,\n\n /**\n * Фон попапа и пина\n */\n backgroundColor: PropTypes.string,\n\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * Показывать ли пин\n */\n hasPin: PropTypes.bool,\n\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow: PropTypes.bool,\n\n /**\n * Отступ попапа от элемента\n */\n margin: PropTypes.number,\n\n /**\n * Показан или скрыт попап\n */\n opened: PropTypes.bool,\n\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset: PropTypes.number,\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize: PropTypes.number,\n\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset: PropTypes.number,\n\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions: PropTypes.array,\n\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n width: 'auto',\n };\n\n private getProps = createPropsGetter(Popup.defaultProps);\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupElement: Nullable<Element>;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n private refForTransition = React.createRef<HTMLDivElement>();\n\n public anchorElement: Nullable<Element> = null;\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\n }\n\n public static getDerivedStateFromProps(props: Readonly<PopupProps>, state: PopupState) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (props.opened) {\n if (!state.location) {\n return { location: DUMMY_LOCATION };\n }\n } else if (state.location) {\n return { location: DUMMY_LOCATION };\n }\n return state;\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n const wasClosed = prevProps.opened && !this.props.opened;\n\n if (this.isMobileLayout && prevState.location === null && this.state.location === null) {\n this.setState({ location: DUMMY_LOCATION });\n }\n\n if (this.props.opened && hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (wasClosed && !hasLocation && this.props.onClose) {\n this.props.onClose();\n }\n if (this.props.opened) {\n this.delayUpdateLocation();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n this.removeEventListeners(this.anchorElement);\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMobile() {\n const { opened } = this.props;\n const children = this.renderChildren();\n\n return children ? (\n <MobilePopup opened={opened} withoutRenderContainer onCloseRequest={this.props.mobileOnCloseRequest}>\n {this.content(children)}\n </MobilePopup>\n ) : null;\n }\n\n private renderMain() {\n const { location } = this.state;\n const { anchorElement } = this.props;\n const useWrapper = this.getProps().useWrapper;\n\n let anchor: Nullable<React.ReactNode> = null;\n if (isElement(anchorElement)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n anchor = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n anchor = <span>{anchorElement}</span>;\n }\n\n const anchorWithRef =\n anchor && React.isValidElement(anchor) && isRefableElement(anchor)\n ? React.cloneElement(anchor, {\n ref: (instance: Nullable<React.ReactInstance>) => {\n this.updateAnchorElement(instance);\n const originalRef = (anchor as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n },\n })\n : null;\n\n // we need to get anchor's DOM node\n // so we either set our own ref on it via cloning\n // or relay on findDOMNode (inside getRootNode)\n // which should be called within updateAnchorElement\n // in the case when the anchor is not refable\n\n const canGetAnchorNode = !!anchorWithRef || isElement(anchorElement);\n\n return (\n <RenderContainer anchor={anchorWithRef || anchor} ref={canGetAnchorNode ? null : this.updateAnchorElement}>\n {this.isMobileLayout && !this.props.withoutMobile\n ? this.renderMobile()\n : location && this.renderContent(location)}\n </RenderContainer>\n );\n }\n\n private updateAnchorElement = (instance: Nullable<React.ReactInstance>) => {\n const childDomNode = isInstanceWithAnchorElement(instance) ? instance.getAnchorElement() : getRootNode(instance);\n const anchorElement = this.anchorElement;\n\n if (childDomNode !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = childDomNode;\n this.addEventListeners(childDomNode);\n }\n };\n\n private addEventListeners(element: Nullable<Element>) {\n if (element && isElement(element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.addEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.addEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private removeEventListeners(element: Nullable<Element>) {\n if (element && isElement(element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n const anchorWidth = Math.floor(getDOMRect(this.anchorElement).width);\n return this.anchorElement ? (anchorWidth * parseFloat(width)) / 100 : 0;\n }\n return width;\n };\n\n private content = (children: React.ReactNode) => {\n const { backgroundColor } = this.props;\n const width = this.getProps().width;\n\n return (\n <div className={styles.content(this.theme)} data-tid={PopupDataTids.content} ref={this.refForTransition}>\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width) }}\n data-tid={PopupDataTids.contentInner}\n >\n {children}\n </div>\n </div>\n );\n };\n\n private renderContent(location: PopupLocation) {\n const { maxWidth, opened } = this.props;\n const { hasShadow, disableAnimations, ignoreHover } = this.getProps();\n const children = this.renderChildren();\n\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = { ...location.coordinates, maxWidth };\n\n const shouldFallbackShadow = isIE11 || isEdge || isSafari;\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n nodeRef={this.refForTransition}\n >\n {(state: string) => (\n <CommonWrapper {...this.props} rootNodeRef={this.setRootNode}>\n <ZIndex\n data-tid={'Popup__root'}\n wrapperRef={this.refPopupElement}\n priority={'Popup'}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow && !shouldFallbackShadow,\n [styles.shadowFallback(this.theme)]: hasShadow && shouldFallbackShadow,\n [styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [styles[`transition-enter-${direction}` as keyof typeof styles](this.theme)]: true,\n [styles.transitionEnter()]: state === 'entering',\n [styles.transitionEnterActive()]: state === 'entered',\n [styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n {this.content(children)}\n {!this.isMobileLayout && this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.state.location !== null && this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupElement = (element: Nullable<Element>) => {\n this.lastPopupElement = element;\n };\n\n private renderPin(positionName: string): React.ReactNode {\n /**\n * Box-shadow does not appear under the pin. Borders are used instead.\n * In non-ie browsers drop-shadow filter is used. It is applying\n * shadow to the pin too.\n */\n const isDefaultBorderColor = this.theme.popupBorderColor === POPUP_BORDER_DEFAULT_COLOR;\n const pinBorder = isIE11 && isDefaultBorderColor ? 'rgba(0, 0, 0, 0.09)' : this.theme.popupBorderColor;\n\n const { pinSize, backgroundColor, borderColor } = this.props;\n const { hasShadow, hasPin } = this.getProps();\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n hasPin && (\n <PopupPin\n popupElement={this.lastPopupElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n borderWidth={hasShadow ? 1 : 0}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n borderColor={borderColor || pinBorder}\n />\n )\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = raf(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n raf.cancel(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupElement = this.lastPopupElement;\n\n if (!popupElement) {\n return;\n }\n\n const location = this.getLocation(popupElement, this.state.location);\n if (location) {\n this.props.onPositionChange?.(location?.position);\n }\n\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (isNullable(x) || isNullable(y)) {\n return false;\n }\n\n if (!isIE11 && !isEdge) {\n return (\n x.coordinates.left === y.coordinates.left &&\n x.coordinates.top === y.coordinates.top &&\n x.position === y.position\n );\n }\n\n // Для ie/edge обновляем позицию только при разнице минимум в 1. Иначе есть вероятность\n // уйти в бесконечный ререндер\n\n return (\n x.position === y.position &&\n Math.abs(x.coordinates.top - y.coordinates.top) <= 1 &&\n Math.abs(x.coordinates.left - y.coordinates.left) <= 1\n );\n }\n\n private getLocation(popupElement: Element, location?: Nullable<PopupLocation>) {\n const { positions, tryPreserveFirstRenderedPosition } = this.props;\n const anchorElement = this.anchorElement;\n\n warning(anchorElement && isElement(anchorElement), 'Anchor element is not defined or not instance of Element');\n\n if (!(anchorElement && isElement(anchorElement))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPositionsType;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect);\n const canBecomeVisible = !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect)) {\n return { coordinates, position };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n return { coordinates, position };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.getProps().hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.getProps().popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n switch (position.direction) {\n case 'top':\n return {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n throw new Error(`Unexpected direction '${position.direction}'`);\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n\n switch (align) {\n case 'top':\n case 'bottom':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'top':\n return anchorRect.top - popupOffset;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Popup.tsx"],"names":["POPUP_BORDER_DEFAULT_COLOR","TRANSITION_TIMEOUT","enter","exit","PopupPositions","DefaultPosition","DUMMY_LOCATION","position","coordinates","top","left","PopupDataTids","content","contentInner","popupPin","Popup","responsiveLayout","rootNode","getProps","defaultProps","state","location","props","opened","locationUpdateId","refForTransition","React","createRef","anchorElement","updateAnchorElement","instance","childDomNode","getAnchorElement","removeEventListeners","addEventListeners","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","anchorWidth","Math","floor","parseFloat","children","backgroundColor","styles","theme","resetLocation","cancelDelayedUpdateLocation","setState","refPopupElement","element","lastPopupElement","handleLayoutEvent","updateLocation","popupElement","getLocation","onPositionChange","locationEquals","componentDidMount","layoutEventsToken","LayoutEvents","addListener","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","wasClosed","isMobileLayout","onOpen","onClose","delayUpdateLocation","componentWillUnmount","remove","render","renderMain","renderMobile","renderChildren","mobileOnCloseRequest","useWrapper","anchor","isValidElement","anchorWithRef","cloneElement","ref","originalRef","canGetAnchorNode","withoutMobile","renderContent","addEventListener","removeEventListener","maxWidth","hasShadow","disableAnimations","ignoreHover","PopupHelper","getPositionObject","direction","rootStyle","shouldFallbackShadow","isIE11","isEdge","isSafari","Boolean","setRootNode","popup","shadow","shadowFallback","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","renderPin","positionName","isDefaultBorderColor","popupBorderColor","pinBorder","pinSize","borderColor","hasPin","parseInt","popupPinSize","getPinOffset","align","popupBackground","raf","cancel","x","y","abs","positions","tryPreserveFirstRenderedPosition","anchorRect","getElementAbsoluteRect","popupRect","getCoordinates","isFullyVisible","canBecomeVisible","canBecomeFullyVisible","getPinnedPopupOffset","test","anchorSize","height","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","getHorizontalPosition","getVerticalPosition","Error","pinOffset","popupPinOffset","popupPinOffsetY","popupPinOffsetX","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","oneOfType","HTMLElement","node","isRequired","string","func","bool","number","array","isTestEnv","defaultRootNode"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport raf from 'raf';\nimport warning from 'warning';\n\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { isFunction, isNonNullable, isNullable, isRefableElement } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isElement, safePropTypesInstanceOf } from '../../lib/SSRSafe';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { MobilePopup } from '../MobilePopup';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { isInstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { PopupPin } from './PopupPin';\nimport { Offset, PopupHelper, PositionObject, Rect } from './PopupHelper';\nimport { styles } from './Popup.styles';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nexport const PopupPositions = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom right',\n 'bottom center',\n 'bottom left',\n 'left bottom',\n 'left middle',\n 'left top',\n] as const;\nexport const DefaultPosition = PopupPositions[0];\n\nexport type PopupPositionsType = typeof PopupPositions[number];\n\nexport const DUMMY_LOCATION: PopupLocation = {\n position: DefaultPosition,\n coordinates: {\n top: -9999,\n left: -9999,\n },\n};\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps extends Omit<CommonProps, 'children'>, PopupHandlerProps {\n anchorElement: React.ReactNode | HTMLElement;\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n hasPin?: boolean;\n hasShadow?: boolean;\n disableAnimations?: boolean;\n margin?: number;\n maxWidth?: number | string;\n opened: boolean;\n pinOffset?: number;\n pinSize?: number;\n popupOffset?: number;\n positions: Readonly<PopupPositionsType[]>;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n ignoreHover?: boolean;\n width?: React.CSSProperties['width'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n withoutMobile?: boolean;\n mobileOnCloseRequest?: () => void;\n /**\n * Возвращает текущую позицию попапа\n */\n onPositionChange?: (pos: PopupPositionsType) => void;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPositionsType;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport const PopupDataTids = {\n content: 'PopupContent',\n contentInner: 'PopupContentInner',\n popupPin: 'PopupPin__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n PopupProps,\n 'popupOffset' | 'hasPin' | 'hasShadow' | 'disableAnimations' | 'useWrapper' | 'ignoreHover' | 'width'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n\n public static propTypes = {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: PropTypes.oneOfType([safePropTypesInstanceOf(() => HTMLElement), PropTypes.node]).isRequired,\n\n /**\n * Фон попапа и пина\n */\n backgroundColor: PropTypes.string,\n\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * Показывать ли пин\n */\n hasPin: PropTypes.bool,\n\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow: PropTypes.bool,\n\n /**\n * Отступ попапа от элемента\n */\n margin: PropTypes.number,\n\n /**\n * Показан или скрыт попап\n */\n opened: PropTypes.bool,\n\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset: PropTypes.number,\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize: PropTypes.number,\n\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset: PropTypes.number,\n\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions: PropTypes.array,\n\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n width: 'auto',\n };\n\n private getProps = createPropsGetter(Popup.defaultProps);\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupElement: Nullable<Element>;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n private refForTransition = React.createRef<HTMLDivElement>();\n\n public anchorElement: Nullable<Element> = null;\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\n }\n\n public static getDerivedStateFromProps(props: Readonly<PopupProps>, state: PopupState) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (props.opened) {\n if (!state.location) {\n return { location: DUMMY_LOCATION };\n }\n } else if (state.location) {\n return { location: DUMMY_LOCATION };\n }\n return state;\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n const wasClosed = prevProps.opened && !this.props.opened;\n\n if (this.isMobileLayout && prevState.location === null && this.state.location === null) {\n this.setState({ location: DUMMY_LOCATION });\n }\n\n if (this.props.opened && hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (wasClosed && !hasLocation && this.props.onClose) {\n this.props.onClose();\n }\n if (this.props.opened) {\n this.delayUpdateLocation();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n this.removeEventListeners(this.anchorElement);\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMobile() {\n const { opened } = this.props;\n const children = this.renderChildren();\n\n return children ? (\n <MobilePopup opened={opened} withoutRenderContainer onCloseRequest={this.props.mobileOnCloseRequest}>\n {this.content(children)}\n </MobilePopup>\n ) : null;\n }\n\n private renderMain() {\n const { location } = this.state;\n const { anchorElement } = this.props;\n const useWrapper = this.getProps().useWrapper;\n\n let anchor: Nullable<React.ReactNode> = null;\n if (isElement(anchorElement)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n anchor = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n anchor = <span>{anchorElement}</span>;\n }\n\n const anchorWithRef =\n anchor && React.isValidElement(anchor) && isRefableElement(anchor)\n ? React.cloneElement(anchor, {\n ref: (instance: Nullable<React.ReactInstance>) => {\n this.updateAnchorElement(instance);\n const originalRef = (anchor as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n },\n })\n : null;\n\n // we need to get anchor's DOM node\n // so we either set our own ref on it via cloning\n // or relay on findDOMNode (inside getRootNode)\n // which should be called within updateAnchorElement\n // in the case when the anchor is not refable\n\n const canGetAnchorNode = !!anchorWithRef || isElement(anchorElement);\n\n return (\n <RenderContainer anchor={anchorWithRef || anchor} ref={canGetAnchorNode ? null : this.updateAnchorElement}>\n {this.isMobileLayout && !this.props.withoutMobile\n ? this.renderMobile()\n : location && this.renderContent(location)}\n </RenderContainer>\n );\n }\n\n private updateAnchorElement = (instance: Nullable<React.ReactInstance>) => {\n const childDomNode = isInstanceWithAnchorElement(instance) ? instance.getAnchorElement() : getRootNode(instance);\n const anchorElement = this.anchorElement;\n\n if (childDomNode !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = childDomNode;\n this.addEventListeners(childDomNode);\n }\n };\n\n private addEventListeners(element: Nullable<Element>) {\n if (element && isElement(element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.addEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.addEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private removeEventListeners(element: Nullable<Element>) {\n if (element && isElement(element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n const anchorWidth = Math.floor(getDOMRect(this.anchorElement).width);\n return this.anchorElement ? (anchorWidth * parseFloat(width)) / 100 : 0;\n }\n return width;\n };\n\n private content = (children: React.ReactNode) => {\n const { backgroundColor } = this.props;\n const width = this.getProps().width;\n\n return (\n <div className={styles.content(this.theme)} data-tid={PopupDataTids.content} ref={this.refForTransition}>\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width) }}\n data-tid={PopupDataTids.contentInner}\n >\n {children}\n </div>\n </div>\n );\n };\n\n private renderContent(location: PopupLocation) {\n const { maxWidth, opened } = this.props;\n const { hasShadow, disableAnimations, ignoreHover } = this.getProps();\n const children = this.renderChildren();\n\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = { ...location.coordinates, maxWidth };\n\n const shouldFallbackShadow = isIE11 || isEdge || isSafari;\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n nodeRef={this.refForTransition}\n >\n {(state: string) => (\n <CommonWrapper {...this.props} rootNodeRef={this.setRootNode}>\n <ZIndex\n data-tid={'Popup__root'}\n wrapperRef={this.refPopupElement}\n priority={'Popup'}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow && !shouldFallbackShadow,\n [styles.shadowFallback(this.theme)]: hasShadow && shouldFallbackShadow,\n [styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [styles[`transition-enter-${direction}` as keyof typeof styles](this.theme)]: true,\n [styles.transitionEnter()]: state === 'entering',\n [styles.transitionEnterActive()]: state === 'entered',\n [styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n {this.content(children)}\n {!this.isMobileLayout && this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.state.location !== null && this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupElement = (element: Nullable<Element>) => {\n this.lastPopupElement = element;\n };\n\n private renderPin(positionName: string): React.ReactNode {\n /**\n * Box-shadow does not appear under the pin. Borders are used instead.\n * In non-ie browsers drop-shadow filter is used. It is applying\n * shadow to the pin too.\n */\n const isDefaultBorderColor = this.theme.popupBorderColor === POPUP_BORDER_DEFAULT_COLOR;\n const pinBorder = isIE11 && isDefaultBorderColor ? 'rgba(0, 0, 0, 0.09)' : this.theme.popupBorderColor;\n\n const { pinSize, backgroundColor, borderColor } = this.props;\n const { hasShadow, hasPin } = this.getProps();\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n hasPin && (\n <PopupPin\n popupElement={this.lastPopupElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n borderWidth={hasShadow ? 1 : 0}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n borderColor={borderColor || pinBorder}\n />\n )\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = raf(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n raf.cancel(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupElement = this.lastPopupElement;\n\n if (!popupElement) {\n return;\n }\n\n const location = this.getLocation(popupElement, this.state.location);\n if (location) {\n this.props.onPositionChange?.(location?.position);\n }\n\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (isNullable(x) || isNullable(y)) {\n return false;\n }\n\n if (!isIE11 && !isEdge) {\n return (\n x.coordinates.left === y.coordinates.left &&\n x.coordinates.top === y.coordinates.top &&\n x.position === y.position\n );\n }\n\n // Для ie/edge обновляем позицию только при разнице минимум в 1. Иначе есть вероятность\n // уйти в бесконечный ререндер\n\n return (\n x.position === y.position &&\n Math.abs(x.coordinates.top - y.coordinates.top) <= 1 &&\n Math.abs(x.coordinates.left - y.coordinates.left) <= 1\n );\n }\n\n private getLocation(popupElement: Element, location?: Nullable<PopupLocation>) {\n const { positions, tryPreserveFirstRenderedPosition } = this.props;\n const anchorElement = this.anchorElement;\n\n warning(anchorElement && isElement(anchorElement), 'Anchor element is not defined or not instance of Element');\n\n if (!(anchorElement && isElement(anchorElement))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPositionsType;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect);\n const canBecomeVisible = !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect)) {\n return { coordinates, position };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n return { coordinates, position };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.getProps().hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.getProps().popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n switch (position.direction) {\n case 'top':\n return {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n throw new Error(`Unexpected direction '${position.direction}'`);\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n\n switch (align) {\n case 'top':\n case 'bottom':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'top':\n return anchorRect.top - popupOffset;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n"]}
|
|
@@ -6,7 +6,7 @@ interface DatePickerPlaygroundState {
|
|
|
6
6
|
error: boolean;
|
|
7
7
|
tooltip: boolean;
|
|
8
8
|
}
|
|
9
|
-
declare type DatePickerPlaygroundProps = Partial<DatePickerProps
|
|
9
|
+
declare type DatePickerPlaygroundProps = Partial<DatePickerProps>;
|
|
10
10
|
export declare class DatePickerPlayground extends React.Component<DatePickerPlaygroundProps> {
|
|
11
11
|
state: DatePickerPlaygroundState;
|
|
12
12
|
render(): JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AnotherInputsPlayground.tsx"],"names":["DatePickerPlayground","state","value","error","tooltip","handleChange","setState","invalidate","validate","currentValue","DatePicker","removeTooltip","render","props","disabled","size","React","Component"],"mappings":"kVAAA;;;AAGA;AACA,yD;;;;;;;;AAQaA,oB;AACJC,IAAAA,K,GAAmC;AACxCC,MAAAA,KAAK,EAAE,YADiC;AAExCC,MAAAA,KAAK,EAAE,KAFiC;AAGxCC,MAAAA,OAAO,EAAE,KAH+B,E;;;;;;;;;;;;;;;;;;;;;;;;;AA4BlCC,IAAAA,Y,GAAe,UAACH,KAAD,EAAmB;AACxC,YAAKI,QAAL,CAAc;AACZJ,QAAAA,KAAK,EAALA,KADY,EAAd;;AAGD,K;;AAEOK,IAAAA,U,GAAa,YAAM;AACzB,YAAKD,QAAL,CAAc,EAAEH,KAAK,EAAE,KAAT,EAAgBC,OAAO,EAAE,KAAzB,EAAd;AACD,K;;AAEOI,IAAAA,Q,GAAW,YAAM;AACvB,UAAMC,YAAY,GAAG,MAAKR,KAAL,CAAWC,KAAhC;AACA,YAAKI,QAAL,CAAc,YAAM;AAClB,YAAMH,KAAK,GAAG,CAAC,CAACM,YAAF,IAAkB,CAACC,uBAAWF,QAAX,CAAoBC,YAApB,CAAjC;AACA,eAAO;AACLN,UAAAA,KAAK,EAALA,KADK;AAELC,UAAAA,OAAO,EAAED,KAFJ,EAAP;;AAID,OAND;AAOD,K;;AAEOQ,IAAAA,a,GAAgB,YAAM;AAC5B,YAAKL,QAAL,CAAc;AACZF,QAAAA,OAAO,EAAE,KADG,EAAd;;AAGD,K,kEA/CMQ,M,GAAP,kBAAgB,CACd,oBACE,6BAAC,gBAAD,IACE,OAAO,EAAE,KAAKX,KAAL,CAAWG,OAAX,GAAqB,QAArB,GAAgC,QAD3C,EAEE,MAAM,EAAE,0BAAM,0BAAN,EAFV,EAGE,YAAY,EAAE,KAAKO,aAHrB,iBAKE,6BAAC,sBAAD,6BACM,KAAKE,KADX,IAEE,QAAQ,EAAE,KAAKA,KAAL,CAAWC,QAFvB,EAGE,IAAI,EAAE,KAAKD,KAAL,CAAWE,IAHnB,EAIE,KAAK,EAAE,KAAKd,KAAL,CAAWE,KAJpB,EAKE,KAAK,EAAE,KAAKF,KAAL,CAAWC,KALpB,EAME,aAAa,EAAE,KAAKG,YANtB,EAOE,OAAO,EAAE,KAAKE,UAPhB,EAQE,MAAM,EAAE,KAAKC,QARf,EASE,eAAe,MATjB,IALF,CADF,CAmBD,C,+BA3BuCQ,eAAMC,S","sourcesContent":["import React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Tooltip } from '../../components/Tooltip';\nimport { DatePicker, DatePickerProps } from '../../components/DatePicker';\n\ninterface DatePickerPlaygroundState {\n value: Nullable<string>;\n error: boolean;\n tooltip: boolean;\n}\ntype DatePickerPlaygroundProps = Partial<DatePickerProps
|
|
1
|
+
{"version":3,"sources":["AnotherInputsPlayground.tsx"],"names":["DatePickerPlayground","state","value","error","tooltip","handleChange","setState","invalidate","validate","currentValue","DatePicker","removeTooltip","render","props","disabled","size","React","Component"],"mappings":"kVAAA;;;AAGA;AACA,yD;;;;;;;;AAQaA,oB;AACJC,IAAAA,K,GAAmC;AACxCC,MAAAA,KAAK,EAAE,YADiC;AAExCC,MAAAA,KAAK,EAAE,KAFiC;AAGxCC,MAAAA,OAAO,EAAE,KAH+B,E;;;;;;;;;;;;;;;;;;;;;;;;;AA4BlCC,IAAAA,Y,GAAe,UAACH,KAAD,EAAmB;AACxC,YAAKI,QAAL,CAAc;AACZJ,QAAAA,KAAK,EAALA,KADY,EAAd;;AAGD,K;;AAEOK,IAAAA,U,GAAa,YAAM;AACzB,YAAKD,QAAL,CAAc,EAAEH,KAAK,EAAE,KAAT,EAAgBC,OAAO,EAAE,KAAzB,EAAd;AACD,K;;AAEOI,IAAAA,Q,GAAW,YAAM;AACvB,UAAMC,YAAY,GAAG,MAAKR,KAAL,CAAWC,KAAhC;AACA,YAAKI,QAAL,CAAc,YAAM;AAClB,YAAMH,KAAK,GAAG,CAAC,CAACM,YAAF,IAAkB,CAACC,uBAAWF,QAAX,CAAoBC,YAApB,CAAjC;AACA,eAAO;AACLN,UAAAA,KAAK,EAALA,KADK;AAELC,UAAAA,OAAO,EAAED,KAFJ,EAAP;;AAID,OAND;AAOD,K;;AAEOQ,IAAAA,a,GAAgB,YAAM;AAC5B,YAAKL,QAAL,CAAc;AACZF,QAAAA,OAAO,EAAE,KADG,EAAd;;AAGD,K,kEA/CMQ,M,GAAP,kBAAgB,CACd,oBACE,6BAAC,gBAAD,IACE,OAAO,EAAE,KAAKX,KAAL,CAAWG,OAAX,GAAqB,QAArB,GAAgC,QAD3C,EAEE,MAAM,EAAE,0BAAM,0BAAN,EAFV,EAGE,YAAY,EAAE,KAAKO,aAHrB,iBAKE,6BAAC,sBAAD,6BACM,KAAKE,KADX,IAEE,QAAQ,EAAE,KAAKA,KAAL,CAAWC,QAFvB,EAGE,IAAI,EAAE,KAAKD,KAAL,CAAWE,IAHnB,EAIE,KAAK,EAAE,KAAKd,KAAL,CAAWE,KAJpB,EAKE,KAAK,EAAE,KAAKF,KAAL,CAAWC,KALpB,EAME,aAAa,EAAE,KAAKG,YANtB,EAOE,OAAO,EAAE,KAAKE,UAPhB,EAQE,MAAM,EAAE,KAAKC,QARf,EASE,eAAe,MATjB,IALF,CADF,CAmBD,C,+BA3BuCQ,eAAMC,S","sourcesContent":["import React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Tooltip } from '../../components/Tooltip';\nimport { DatePicker, DatePickerProps } from '../../components/DatePicker';\n\ninterface DatePickerPlaygroundState {\n value: Nullable<string>;\n error: boolean;\n tooltip: boolean;\n}\ntype DatePickerPlaygroundProps = Partial<DatePickerProps>;\nexport class DatePickerPlayground extends React.Component<DatePickerPlaygroundProps> {\n public state: DatePickerPlaygroundState = {\n value: '17.06.2019',\n error: false,\n tooltip: false,\n };\n\n public render() {\n return (\n <Tooltip\n trigger={this.state.tooltip ? 'opened' : 'closed'}\n render={() => 'Такой даты не существует'}\n onCloseClick={this.removeTooltip}\n >\n <DatePicker\n {...this.props}\n disabled={this.props.disabled}\n size={this.props.size}\n error={this.state.error}\n value={this.state.value}\n onValueChange={this.handleChange}\n onFocus={this.invalidate}\n onBlur={this.validate}\n enableTodayLink\n />\n </Tooltip>\n );\n }\n\n private handleChange = (value: string) => {\n this.setState({\n value,\n });\n };\n\n private invalidate = () => {\n this.setState({ error: false, tooltip: false });\n };\n\n private validate = () => {\n const currentValue = this.state.value;\n this.setState(() => {\n const error = !!currentValue && !DatePicker.validate(currentValue);\n return {\n error,\n tooltip: error,\n };\n });\n };\n\n private removeTooltip = () => {\n this.setState({\n tooltip: false,\n });\n };\n}\n"]}
|
|
@@ -230,14 +230,16 @@ const myTheme = ThemeFactory.create<AddonsThemeIn>({
|
|
|
230
230
|
Несколько функций по работе с цветом вынесены из less в js, их можно использовать в своих темах (_ColorFunctions.ts_):
|
|
231
231
|
|
|
232
232
|
```typescript static
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
233
|
+
import { ColorFunctions } from '@skbkontur/react-ui'
|
|
234
|
+
|
|
235
|
+
ColorFunctions.lighten(colorString: string, amount: number | string, method?: 'absolute' | 'relative'): string
|
|
236
|
+
ColorFunctions.darken(colorString: string, amount: number | string, method?: 'absolute' | 'relative'): string
|
|
237
|
+
ColorFunctions.contrast(colorString: string, darkString?: string, lightString?: string, threshold: number = 0.43): string
|
|
238
|
+
ColorFunctions.red(colorString: string): string
|
|
239
|
+
ColorFunctions.green(colorString: string): string
|
|
240
|
+
ColorFunctions.blue(colorString: string): string
|
|
241
|
+
ColorFunctions.alpha(colorString: string): string
|
|
242
|
+
ColorFunctions.isValid(colorString: string): boolean // проверяет, можно ли распарсить строку в цвет
|
|
241
243
|
```
|
|
242
244
|
|
|
243
245
|
Документацию по их работе можно найти на сайте [less](http://lesscss.org/functions/#color-operations).
|
|
@@ -248,10 +250,12 @@ isValid(colorString: string): boolean // проверяет, можно ли р
|
|
|
248
250
|
Если это возможно, результат возвращается в том же виде, что и входная строка:
|
|
249
251
|
|
|
250
252
|
```typescript static
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
lighten('
|
|
254
|
-
lighten('
|
|
253
|
+
import { ColorFunctions } from '@skbkontur/react-ui'
|
|
254
|
+
|
|
255
|
+
ColorFunctions.lighten('hsl(90, 0.8, 0.2)', '20%') === 'hsl(90, 0.8, 0.4)';
|
|
256
|
+
ColorFunctions.lighten('rgba(50, 50, 50, 0.2)', '20%') === 'rgba(102, 102, 102, 0.2)';
|
|
257
|
+
ColorFunctions.lighten('#80e619', 0.2) === '#b3f075';
|
|
258
|
+
ColorFunctions.lighten('crimson', '20%') === '#f16581';
|
|
255
259
|
```
|
|
256
260
|
|
|
257
261
|
Для работы с размерами предусмотрена одна функция (_DimensionFunctions.ts_):
|
|
@@ -260,6 +264,8 @@ lighten('crimson', '20%') === '#f16581';
|
|
|
260
264
|
shift(value: string, shift: string): string
|
|
261
265
|
|
|
262
266
|
// пример
|
|
267
|
+
import { DimensionFunctions } from '@skbkontur/react-ui'
|
|
268
|
+
|
|
263
269
|
DimensionFunctions.shift('100%', '-20') === '80%'
|
|
264
270
|
DimensionFunctions.shift('2em', '+2') === '4em'
|
|
265
271
|
DimensionFunctions.shift('12', '+1') === '13px' //если единица измерения не указана - используется px
|