@skbkontur/react-ui 4.0.3 → 4.0.6
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 +42 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +0 -1
- package/cjs/components/Autocomplete/Autocomplete.js +2 -9
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +2 -2
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.js +1 -1
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +2 -2
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +3 -3
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.js +3 -3
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +2 -2
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/DateInput.styles.js +2 -2
- package/cjs/components/DateInput/DateInput.styles.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +3 -3
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +2 -2
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +6 -2
- package/cjs/components/Hint/Hint.js +9 -1
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +3 -3
- package/cjs/components/Input/Input.js +1 -1
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Loader/Loader.js +7 -7
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +1 -1
- package/cjs/components/Modal/Modal.js +1 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.js +0 -1
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.js +0 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +2 -2
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js +3 -2
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +10 -8
- package/cjs/components/Select/Select.js +12 -2
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +0 -1
- package/cjs/components/SidePage/SidePage.js +1 -15
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.js +4 -3
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.js +3 -2
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Sticky/Sticky.js +4 -3
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +2 -1
- package/cjs/components/Switcher/Switcher.js +1 -0
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Indicator.js +2 -1
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +2 -2
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +3 -1
- package/cjs/components/Tabs/Tabs.js +8 -4
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +4 -4
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +2 -2
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +2 -2
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TextWidthHelper.js +2 -1
- package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +2 -2
- package/cjs/components/TokenInput/TokenInput.js +1 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +4 -2
- package/cjs/components/Tooltip/Tooltip.js +10 -7
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/internal/BGRuler.js +3 -1
- package/cjs/internal/BGRuler.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js +15 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/ComponentTable.d.ts +4 -2
- package/cjs/internal/ComponentTable.js +1 -0
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.js +2 -1
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js +5 -10
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +3 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.js +3 -2
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +1 -2
- package/cjs/internal/Popup/Popup.js +16 -13
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.js +4 -2
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.js +9 -0
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js +3 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/cjs/internal/ThemePlayground/CheckboxPlayground.js +1 -0
- package/cjs/internal/ThemePlayground/CheckboxPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/RadioPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +3 -12
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeEditor.js +2 -0
- package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +1 -0
- package/cjs/internal/themes/DefaultTheme.js +3 -0
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/ConditionalHandler.d.ts +3 -2
- package/cjs/lib/ConditionalHandler.js +5 -3
- package/cjs/lib/ConditionalHandler.js.map +1 -1
- package/cjs/lib/InstanceWithAnchorElement.d.ts +5 -0
- package/cjs/lib/InstanceWithAnchorElement.js +9 -0
- package/cjs/lib/InstanceWithAnchorElement.js.map +1 -0
- package/cjs/lib/ModalStack.d.ts +1 -1
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/SSRSafe.d.ts +1 -0
- package/cjs/lib/SSRSafe.js +9 -1
- package/cjs/lib/SSRSafe.js.map +1 -1
- package/cjs/lib/dom/getDOMRect.d.ts +5 -2
- package/cjs/lib/dom/getDOMRect.js +30 -18
- package/cjs/lib/dom/getDOMRect.js.map +1 -1
- package/cjs/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
- package/cjs/lib/events/keyboard/KeyboardMapKeys.js +1 -0
- package/cjs/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
- package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
- package/cjs/lib/rootNode/getRootNode.js +12 -9
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +11 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js +32 -4
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
- package/cjs/lib/theming/ThemeFactory.js +4 -3
- package/cjs/lib/theming/ThemeFactory.js.map +1 -1
- package/cjs/lib/theming/ThemeHelpers.d.ts +1 -0
- package/cjs/lib/theming/ThemeHelpers.js +11 -2
- package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +2 -9
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +0 -1
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +2 -2
- package/components/Button/Button.styles/Button.styles.js +1 -1
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +2 -2
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +3 -3
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +3 -3
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +1 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +2 -2
- package/components/DateInput/DateInput.styles/DateInput.styles.js +2 -2
- package/components/DateInput/DateInput.styles/DateInput.styles.js.map +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +3 -3
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -2
- package/components/Hint/Hint/Hint.js +9 -1
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +6 -2
- package/components/Input/Input/Input.js +1 -1
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +3 -3
- package/components/Loader/Loader/Loader.js +11 -12
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Modal/Modal/Modal.js +1 -1
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +2 -2
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +3 -2
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/Select/Select/Select.js +12 -6
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +10 -8
- package/components/SidePage/SidePage/SidePage.js +0 -19
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +0 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js +4 -4
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +3 -3
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/Sticky/Sticky/Sticky.js +9 -8
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +2 -1
- package/components/Tabs/Indicator/Indicator.js +2 -1
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +2 -2
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +3 -1
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +4 -4
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +2 -2
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +2 -2
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +3 -2
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +2 -2
- package/components/Tooltip/Tooltip/Tooltip.js +11 -8
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +4 -2
- package/internal/BGRuler/BGRuler.js +2 -1
- package/internal/BGRuler/BGRuler.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +17 -3
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/ComponentTable.d.ts +4 -2
- package/internal/DateSelect/DateSelect/DateSelect.js +2 -1
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +5 -12
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +3 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +2 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +22 -21
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +1 -2
- package/internal/Popup/PopupHelper/PopupHelper.js +3 -1
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +9 -0
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +3 -4
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/internal/ThemePlayground/CheckboxPlayground/CheckboxPlayground.js.map +1 -1
- package/internal/ThemePlayground/RadioPlayground/RadioPlayground.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +2 -11
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +5 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +1 -0
- package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
- package/lib/ConditionalHandler.d.ts +3 -2
- package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js +3 -0
- package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -0
- package/lib/InstanceWithAnchorElement/package.json +6 -0
- package/lib/InstanceWithAnchorElement.d.ts +5 -0
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/ModalStack.d.ts +1 -1
- package/lib/SSRSafe/SSRSafe.js +7 -0
- package/lib/SSRSafe/SSRSafe.js.map +1 -1
- package/lib/SSRSafe.d.ts +1 -0
- package/lib/dom/getDOMRect/getDOMRect.js +32 -15
- package/lib/dom/getDOMRect/getDOMRect.js.map +1 -1
- package/lib/dom/getDOMRect.d.ts +5 -2
- package/lib/events/keyboard/KeyboardMapKeys/KeyboardMapKeys.js.map +1 -1
- package/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
- package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
- package/lib/rootNode/getRootNode/getRootNode.js +10 -10
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +24 -2
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +11 -0
- package/lib/theming/ThemeFactory/ThemeFactory.js +3 -2
- package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
- package/lib/theming/ThemeFactory.d.ts +1 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js +10 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
- package/lib/theming/ThemeHelpers.d.ts +1 -0
- package/package.json +4 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
declare type
|
|
1
|
+
declare type ArgsBaseType = any[];
|
|
2
|
+
declare type Handler<K extends ArgsBaseType> = (...args: K) => void;
|
|
2
3
|
declare type Condition<T> = T | ((reference: T) => boolean);
|
|
3
|
-
export declare class ConditionalHandler<T, K extends
|
|
4
|
+
export declare class ConditionalHandler<T, K extends ArgsBaseType = any[]> {
|
|
4
5
|
private readonly actions;
|
|
5
6
|
add(condition: Condition<T>, handler: Handler<K>): ConditionalHandler<T, K>;
|
|
6
7
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["InstanceWithAnchorElement.ts"],"names":["isInstanceWithAnchorElement","instance","Boolean","Object","prototype","hasOwnProperty","call"],"mappings":";;;;;;AAMA,OAAO,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACC,QAAD,EAA8D;AACvG,SAAOC,OAAO,CAACD,QAAD,CAAP,IAAqBE,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,QAArC,EAA+C,kBAA/C,CAA5B;AACD,CAFM","sourcesContent":["import { Nullable } from '../typings/utility-types';\n\nexport interface InstanceWithAnchorElement {\n getAnchorElement: () => Nullable<HTMLElement>;\n}\n\nexport const isInstanceWithAnchorElement = (instance: unknown): instance is InstanceWithAnchorElement => {\n return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getAnchorElement');\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ModalStack.ts"],"names":["EventEmitter","ModalStack","add","component","onChange","getStackInfo","emitter","mounted","unshift","changeHandler","_token","addListener","emit","remove","removeListener","index","indexOf","splice","isBlocking","length","wantsToBlock","globalWithStack","global","__ReactUIStackInfo","isModal","isSidePage","deepestSidePages","filter","i","pop","props","blockBackground","isReactUIInstance","componentName","instance","constructor","Object","prototype","hasOwnProperty","call","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { SidePageProps } from '../components/SidePage';\nimport { ModalProps } from '../components/Modal';\n\ninterface StackInfo {\n emitter: EventEmitter;\n mounted: React.Component[];\n}\n\ninterface GlobalWithStackInfo {\n __ReactUIStackInfo?: StackInfo;\n}\n\nexport interface ModalStackSubscription {\n remove: () => void;\n}\n\nexport class ModalStack {\n public static add(\n component: React.Component,\n onChange: (stack:
|
|
1
|
+
{"version":3,"sources":["ModalStack.ts"],"names":["EventEmitter","ModalStack","add","component","onChange","getStackInfo","emitter","mounted","unshift","changeHandler","_token","addListener","emit","remove","removeListener","index","indexOf","splice","isBlocking","length","wantsToBlock","globalWithStack","global","__ReactUIStackInfo","isModal","isSidePage","deepestSidePages","filter","i","pop","props","blockBackground","isReactUIInstance","componentName","instance","constructor","Object","prototype","hasOwnProperty","call","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { SidePageProps } from '../components/SidePage';\nimport { ModalProps } from '../components/Modal';\n\ninterface StackInfo {\n emitter: EventEmitter;\n mounted: React.Component[];\n}\n\ninterface GlobalWithStackInfo {\n __ReactUIStackInfo?: StackInfo;\n}\n\nexport interface ModalStackSubscription {\n remove: () => void;\n}\n\nexport class ModalStack {\n public static add(\n component: React.Component,\n onChange: (stack: readonly React.Component[]) => void,\n ): ModalStackSubscription {\n const { emitter, mounted } = ModalStack.getStackInfo();\n mounted.unshift(component);\n const changeHandler = () => onChange([...mounted]);\n const _token = emitter.addListener('change', changeHandler);\n emitter.emit('change');\n return {\n remove: () => {\n // Backwards compatible with versions 0.x and 1.w which using the fbemitter package\n if ('remove' in _token) {\n // @ts-ignore\n _token.remove();\n return;\n }\n\n emitter.removeListener('change', changeHandler);\n },\n };\n }\n\n public static remove(component: React.Component) {\n const { emitter, mounted } = ModalStack.getStackInfo();\n const index = mounted.indexOf(component);\n if (index !== -1) {\n mounted.splice(index, 1);\n }\n emitter.emit('change');\n }\n\n /**\n * Determines if stack component is allowed to block background\n */\n public static isBlocking(component: React.Component): boolean {\n const { mounted } = ModalStack.getStackInfo();\n for (let index = 0; index < mounted.length; index++) {\n if (ModalStack.wantsToBlock(mounted[index])) {\n // only the highest component in stack\n // that wants to block is allowed to do it\n return component === mounted[index];\n }\n }\n return false;\n }\n\n private static getStackInfo(): StackInfo {\n const globalWithStack = global as GlobalWithStackInfo;\n return (\n globalWithStack.__ReactUIStackInfo ||\n (globalWithStack.__ReactUIStackInfo = {\n emitter: new EventEmitter(),\n mounted: [],\n })\n );\n }\n\n private static wantsToBlock(component: React.Component): boolean {\n if (isModal(component)) {\n return true;\n }\n\n if (isSidePage(component)) {\n const { mounted } = ModalStack.getStackInfo();\n const deepestSidePages = mounted.filter((i) => isSidePage(i)).pop();\n return !!component.props.blockBackground && component === deepestSidePages;\n }\n\n return false;\n }\n}\n\n/**\n * Specific check for component type by its instance\n */\nconst isReactUIInstance = <T>(componentName: string) => {\n return (instance: React.Component): instance is React.Component<T> => {\n const { constructor } = instance;\n\n return (\n Object.prototype.hasOwnProperty.call(constructor, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n constructor.__KONTUR_REACT_UI__ === componentName\n );\n };\n};\n\nconst isSidePage = isReactUIInstance<SidePageProps>('SidePage');\n\nconst isModal = isReactUIInstance<ModalProps>('Modal');\n"]}
|
package/lib/ModalStack.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export interface ModalStackSubscription {
|
|
|
3
3
|
remove: () => void;
|
|
4
4
|
}
|
|
5
5
|
export declare class ModalStack {
|
|
6
|
-
static add(component: React.Component, onChange: (stack:
|
|
6
|
+
static add(component: React.Component, onChange: (stack: readonly React.Component[]) => void): ModalStackSubscription;
|
|
7
7
|
static remove(component: React.Component): void;
|
|
8
8
|
/**
|
|
9
9
|
* Determines if stack component is allowed to block background
|
package/lib/SSRSafe/SSRSafe.js
CHANGED
|
@@ -14,4 +14,11 @@ export function isHTMLElement(el) {
|
|
|
14
14
|
|
|
15
15
|
return false;
|
|
16
16
|
}
|
|
17
|
+
export function isNode(node) {
|
|
18
|
+
if (isBrowser) {
|
|
19
|
+
return node instanceof Node;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
17
24
|
export var globalThat = typeof globalThis === 'object' && globalThis || typeof global === 'object' && global || typeof window === 'object' && window || Function('return this')();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SSRSafe.ts"],"names":["PropTypes","isBrowser","safePropTypesInstanceOf","getExpectedClass","instanceOf","any","isHTMLElement","el","HTMLElement","globalThat","globalThis","global","window","Function"],"mappings":"AAAA,OAAO,KAAKA,SAAZ,MAA2B,YAA3B;;AAEA,SAASC,SAAT,QAA0B,UAA1B;;AAEA,OAAO,SAASC,uBAAT;AACLC,gBADK;AAEqB;AAC1B,MAAIF,SAAJ,EAAe;AACb,WAAOD,SAAS,CAACI,UAAV,CAAqBD,gBAAgB,EAArC,CAAP;AACD;;AAED,SAAOH,SAAS,CAACK,GAAjB;AACD;;AAED,OAAO,SAASC,aAAT,CAAuBC,EAAvB,EAAmD;AACxD,MAAIN,SAAJ,EAAe;AACb,WAAOM,EAAE,YAAYC,WAArB;AACD;;AAED,SAAO,KAAP;AACD;;AAED,OAAO,IAAMC,UAA6B;AACvC,OAAOC,UAAP,KAAsB,QAAtB,IAAkCA,UAAnC;AACC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAD/B;AAEC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAF/B;AAGAC,QAAQ,CAAC,aAAD,CAAR,EAJK","sourcesContent":["import * as PropTypes from 'prop-types';\n\nimport { isBrowser } from './client';\n\nexport function safePropTypesInstanceOf<T>(\n getExpectedClass: () => new (...args: any[]) => T,\n): PropTypes.Requireable<T> {\n if (isBrowser) {\n return PropTypes.instanceOf(getExpectedClass());\n }\n\n return PropTypes.any;\n}\n\nexport function isHTMLElement(el: any): el is HTMLElement {\n if (isBrowser) {\n return el instanceof HTMLElement;\n }\n\n return false;\n}\n\nexport const globalThat: typeof globalThis =\n (typeof globalThis === 'object' && globalThis) ||\n (typeof global === 'object' && global) ||\n (typeof window === 'object' && window) ||\n Function('return this')();\n"]}
|
|
1
|
+
{"version":3,"sources":["SSRSafe.ts"],"names":["PropTypes","isBrowser","safePropTypesInstanceOf","getExpectedClass","instanceOf","any","isHTMLElement","el","HTMLElement","isNode","node","Node","globalThat","globalThis","global","window","Function"],"mappings":"AAAA,OAAO,KAAKA,SAAZ,MAA2B,YAA3B;;AAEA,SAASC,SAAT,QAA0B,UAA1B;;AAEA,OAAO,SAASC,uBAAT;AACLC,gBADK;AAEqB;AAC1B,MAAIF,SAAJ,EAAe;AACb,WAAOD,SAAS,CAACI,UAAV,CAAqBD,gBAAgB,EAArC,CAAP;AACD;;AAED,SAAOH,SAAS,CAACK,GAAjB;AACD;;AAED,OAAO,SAASC,aAAT,CAAuBC,EAAvB,EAAmD;AACxD,MAAIN,SAAJ,EAAe;AACb,WAAOM,EAAE,YAAYC,WAArB;AACD;;AAED,SAAO,KAAP;AACD;;AAED,OAAO,SAASC,MAAT,CAAgBC,IAAhB,EAA6C;AAClD,MAAIT,SAAJ,EAAe;AACb,WAAOS,IAAI,YAAYC,IAAvB;AACD;;AAED,SAAO,KAAP;AACD;;AAED,OAAO,IAAMC,UAA6B;AACvC,OAAOC,UAAP,KAAsB,QAAtB,IAAkCA,UAAnC;AACC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAD/B;AAEC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAF/B;AAGAC,QAAQ,CAAC,aAAD,CAAR,EAJK","sourcesContent":["import * as PropTypes from 'prop-types';\n\nimport { isBrowser } from './client';\n\nexport function safePropTypesInstanceOf<T>(\n getExpectedClass: () => new (...args: any[]) => T,\n): PropTypes.Requireable<T> {\n if (isBrowser) {\n return PropTypes.instanceOf(getExpectedClass());\n }\n\n return PropTypes.any;\n}\n\nexport function isHTMLElement(el: any): el is HTMLElement {\n if (isBrowser) {\n return el instanceof HTMLElement;\n }\n\n return false;\n}\n\nexport function isNode(node: unknown): node is Node {\n if (isBrowser) {\n return node instanceof Node;\n }\n\n return false;\n}\n\nexport const globalThat: typeof globalThis =\n (typeof globalThis === 'object' && globalThis) ||\n (typeof global === 'object' && global) ||\n (typeof window === 'object' && window) ||\n Function('return this')();\n"]}
|
package/lib/SSRSafe.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as PropTypes from 'prop-types';
|
|
2
2
|
export declare function safePropTypesInstanceOf<T>(getExpectedClass: () => new (...args: any[]) => T): PropTypes.Requireable<T>;
|
|
3
3
|
export declare function isHTMLElement(el: any): el is HTMLElement;
|
|
4
|
+
export declare function isNode(node: unknown): node is Node;
|
|
4
5
|
export declare const globalThat: typeof globalThis;
|
|
@@ -1,23 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Возвращает размер элемента и его позицию относительно viewport
|
|
3
3
|
*
|
|
4
|
-
* @param
|
|
4
|
+
* @param element - ref элемента или сам элемент
|
|
5
5
|
* @returns - возвращает размер элемента и его позицию относительно viewport
|
|
6
6
|
*/
|
|
7
|
-
export var getDOMRect = function getDOMRect(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
export var getDOMRect = function getDOMRect(element) {
|
|
8
|
+
var defaultValues = {
|
|
9
|
+
width: 0,
|
|
10
|
+
height: 0,
|
|
11
|
+
x: 0,
|
|
12
|
+
y: 0,
|
|
13
|
+
bottom: 0,
|
|
14
|
+
left: 0,
|
|
15
|
+
right: 0,
|
|
16
|
+
top: 0
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
if (element && 'current' in element) {
|
|
20
|
+
return getRefRect(defaultValues, element);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return getElementRect(defaultValues, element);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var getElementRect = function getElementRect(defaultValues, element) {
|
|
27
|
+
if (element) {
|
|
28
|
+
return element.getBoundingClientRect();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return defaultValues;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var getRefRect = function getRefRect(defaultValues, ref) {
|
|
35
|
+
if (ref != null && ref.current) {
|
|
36
|
+
return ref.current.getBoundingClientRect();
|
|
20
37
|
}
|
|
21
38
|
|
|
22
|
-
return
|
|
39
|
+
return defaultValues;
|
|
23
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["getDOMRect.ts"],"names":["getDOMRect","
|
|
1
|
+
{"version":3,"sources":["getDOMRect.ts"],"names":["getDOMRect","element","defaultValues","width","height","x","y","bottom","left","right","top","getRefRect","getElementRect","getBoundingClientRect","ref","current"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAAoBC,OAApB,EAAwF;AAChH,MAAMC,aAAmC,GAAG;AAC1CC,IAAAA,KAAK,EAAE,CADmC;AAE1CC,IAAAA,MAAM,EAAE,CAFkC;AAG1CC,IAAAA,CAAC,EAAE,CAHuC;AAI1CC,IAAAA,CAAC,EAAE,CAJuC;AAK1CC,IAAAA,MAAM,EAAE,CALkC;AAM1CC,IAAAA,IAAI,EAAE,CANoC;AAO1CC,IAAAA,KAAK,EAAE,CAPmC;AAQ1CC,IAAAA,GAAG,EAAE,CARqC,EAA5C;;AAUA,MAAIT,OAAO,IAAI,aAAaA,OAA5B,EAAqC;AACnC,WAAOU,UAAU,CAACT,aAAD,EAAgBD,OAAhB,CAAjB;AACD;AACD,SAAOW,cAAc,CAACV,aAAD,EAAgBD,OAAhB,CAArB;AACD,CAfM;AAgBP,IAAMW,cAAc,GAAG,SAAjBA,cAAiB,CAACV,aAAD,EAAsCD,OAAtC,EAAqE;AAC1F,MAAIA,OAAJ,EAAa;AACX,WAAOA,OAAO,CAACY,qBAAR,EAAP;AACD;AACD,SAAOX,aAAP;AACD,CALD;AAMA,IAAMS,UAAU,GAAG,SAAbA,UAAa,CAAoBT,aAApB,EAAyDY,GAAzD,EAAqF;AACtG,MAAIA,GAAJ,YAAIA,GAAG,CAAEC,OAAT,EAAkB;AAChB,WAAOD,GAAG,CAACC,OAAJ,CAAYF,qBAAZ,EAAP;AACD;AACD,SAAOX,aAAP;AACD,CALD","sourcesContent":["import { Nullable } from '../../typings/utility-types';\ntype DOMRectDefaultValues = Omit<DOMRect, 'toJSON'>;\n/**\n * Возвращает размер элемента и его позицию относительно viewport\n *\n * @param element - ref элемента или сам элемент\n * @returns - возвращает размер элемента и его позицию относительно viewport\n */\nexport const getDOMRect = <T extends Element>(element: Nullable<T> | React.RefObject<T>): DOMRectDefaultValues => {\n const defaultValues: DOMRectDefaultValues = {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n if (element && 'current' in element) {\n return getRefRect(defaultValues, element);\n }\n return getElementRect(defaultValues, element);\n};\nconst getElementRect = (defaultValues: DOMRectDefaultValues, element: Nullable<Element>) => {\n if (element) {\n return element.getBoundingClientRect();\n }\n return defaultValues;\n};\nconst getRefRect = <T extends Element>(defaultValues: DOMRectDefaultValues, ref: React.RefObject<T>) => {\n if (ref?.current) {\n return ref.current.getBoundingClientRect();\n }\n return defaultValues;\n};\n"]}
|
package/lib/dom/getDOMRect.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import { Nullable } from '../../typings/utility-types';
|
|
3
|
+
declare type DOMRectDefaultValues = Omit<DOMRect, 'toJSON'>;
|
|
2
4
|
/**
|
|
3
5
|
* Возвращает размер элемента и его позицию относительно viewport
|
|
4
6
|
*
|
|
5
|
-
* @param
|
|
7
|
+
* @param element - ref элемента или сам элемент
|
|
6
8
|
* @returns - возвращает размер элемента и его позицию относительно viewport
|
|
7
9
|
*/
|
|
8
|
-
export declare const getDOMRect: <T extends
|
|
10
|
+
export declare const getDOMRect: <T extends Element>(element: Nullable<T> | import("react").RefObject<T>) => DOMRectDefaultValues;
|
|
11
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["KeyboardMapKeys.ts"],"names":["KeyboardEventCodes","Codes","STANDARD","NUMPAD","KeyboardMapKeys","Unidentified","End","Escape","Equal","Backspace","Enter","NumpadEnter","Home","Delete","Insert","PageUp","PageDown","Tab","CapsLock","KeyA","KeyC","KeyV","KeyX","NumpadDecimal","NumpadSubtract","NumpadDivide","Comma","Minus","Period","Slash","Backslash","IntlBackslash","Space"],"mappings":"qBAAA,SAASA,kBAAkB,IAAIC,KAA/B,QAA4C,sBAA5C
|
|
1
|
+
{"version":3,"sources":["KeyboardMapKeys.ts"],"names":["KeyboardEventCodes","Codes","STANDARD","NUMPAD","KeyboardMapKeys","Unidentified","End","Escape","Equal","Backspace","Enter","NumpadEnter","Home","Delete","Insert","PageUp","PageDown","Tab","CapsLock","KeyA","KeyC","KeyV","KeyX","NumpadDecimal","NumpadSubtract","NumpadDivide","Comma","Minus","Period","Slash","Backslash","IntlBackslash","Space"],"mappings":"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","sourcesContent":["import { KeyboardEventCodes as Codes } from './KeyboardEventCodes';\n\nexport type Location = number;\nexport type KeyCode = number;\nexport type KeyboardKey = [KeyCode, Location];\n\nconst STANDARD = 0; //KeyboardEvent.DOM_KEY_LOCATION_STANDARD;\nconst NUMPAD = 3; //KeyboardEvent.DOM_KEY_LOCATION_NUMPAD;\n\nexport const KeyboardMapKeys: { [code in Codes]: KeyboardKey[] } = {\n [Codes.Unidentified]: [[0, 0]],\n [Codes.End]: [[35, STANDARD]],\n [Codes.Escape]: [[27, STANDARD]],\n [Codes.Equal]: [[187, STANDARD]],\n [Codes.Backspace]: [[8, STANDARD]],\n [Codes.Enter]: [[13, STANDARD]],\n [Codes.NumpadEnter]: [[13, NUMPAD]],\n [Codes.Home]: [[36, STANDARD]],\n [Codes.Delete]: [[46, STANDARD]],\n [Codes.Insert]: [[45, STANDARD]],\n [Codes.PageUp]: [[33, STANDARD]],\n [Codes.PageDown]: [[34, STANDARD]],\n [Codes.Tab]: [[9, STANDARD]],\n [Codes.CapsLock]: [[20, STANDARD]],\n [Codes.KeyA]: [[65, STANDARD]],\n [Codes.KeyC]: [[67, STANDARD]],\n [Codes.KeyV]: [[86, STANDARD]],\n [Codes.KeyX]: [[88, STANDARD]],\n [Codes.NumpadDecimal]: [\n [110, NUMPAD],\n [46, NUMPAD],\n ],\n [Codes.NumpadSubtract]: [[109, NUMPAD]],\n [Codes.NumpadDivide]: [[111, NUMPAD]],\n [Codes.Comma]: [[188, STANDARD]],\n [Codes.Minus]: [[189, STANDARD]],\n [Codes.Period]: [[190, STANDARD]],\n [Codes.Slash]: [[191, STANDARD]],\n [Codes.Backslash]: [[220, STANDARD]],\n [Codes.IntlBackslash]: [[226, STANDARD]],\n [Codes.Space]: [[32, STANDARD]],\n};\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { KeyboardEventCodes as Codes } from './KeyboardEventCodes';
|
|
2
2
|
export declare type Location = number;
|
|
3
3
|
export declare type KeyCode = number;
|
|
4
|
+
export declare type KeyboardKey = [KeyCode, Location];
|
|
4
5
|
export declare const KeyboardMapKeys: {
|
|
5
|
-
[code in Codes]:
|
|
6
|
+
[code in Codes]: KeyboardKey[];
|
|
6
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["extractCode.ts"],"names":["KeyboardEventCodes","Codes","KeyboardMapKeys","extractCode","e","nativeEvent","code","keyCode","which","location","mapped","Object","entries","find","set","some","_keyCode","_location","Unidentified"],"mappings":";;AAEA,SAASA,kBAAkB,IAAIC,KAA/B,QAA4C,sBAA5C;AACA,
|
|
1
|
+
{"version":3,"sources":["extractCode.ts"],"names":["KeyboardEventCodes","Codes","KeyboardMapKeys","extractCode","e","nativeEvent","code","keyCode","which","location","mapped","Object","entries","find","set","some","_keyCode","_location","Unidentified"],"mappings":";;AAEA,SAASA,kBAAkB,IAAIC,KAA/B,QAA4C,sBAA5C;AACA,SAAsBC,eAAtB,QAA6C,mBAA7C;;AAEA,OAAO,SAASC,WAAT,CAAqBC,CAArB,EAAiF;AACtFA,EAAAA,CAAC,GAAIA,CAAD,CAAwCC,WAAxC,IAAuDD,CAA3D;AACA,MAAIA,CAAC,CAACE,IAAN,EAAY;AACV,WAAOF,CAAC,CAACE,IAAT;AACD;AACD,MAAMC,OAAO,GAAGH,CAAC,CAACG,OAAF,IAAaH,CAAC,CAACI,KAA/B;AACA,MAAMC,QAAQ,GAAGL,CAAC,CAACK,QAAnB;AACA,MAAMC,MAAM,GAAIC,MAAM,CAACC,OAAR,CAAkDV,eAAlD,EAAmEW,IAAnE,CAAwE,qBAAIC,GAAJ;AACrFA,MAAAA,GAAG,CAACC,IAAJ,CAAS,sBAAEC,QAAF,YAAYC,SAAZ,mBAA2BD,QAAQ,KAAKT,OAAb,IAAwBU,SAAS,KAAKR,QAAjE,EAAT,CADqF,GAAxE,CAAf;;AAGA,SAAOC,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAT,GAAeT,KAAK,CAACiB,YAAlC;AACD","sourcesContent":["import { Entries } from '../../../typings/utility-types';\n\nimport { KeyboardEventCodes as Codes } from './KeyboardEventCodes';\nimport { KeyboardKey, KeyboardMapKeys } from './KeyboardMapKeys';\n\nexport function extractCode(e: React.KeyboardEvent<HTMLElement> | KeyboardEvent): Codes {\n e = (e as React.KeyboardEvent<HTMLElement>).nativeEvent || e;\n if (e.code) {\n return e.code as Codes;\n }\n const keyCode = e.keyCode || e.which;\n const location = e.location;\n const mapped = (Object.entries as Entries<Codes, KeyboardKey[]>)(KeyboardMapKeys).find(([, set]) =>\n set.some(([_keyCode, _location]) => _keyCode === keyCode && _location === location),\n );\n return mapped ? mapped[0] : Codes.Unidentified;\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { findDOMNode } from 'react-dom';
|
|
2
|
-
import { isHTMLElement } from "../../SSRSafe";
|
|
2
|
+
import { isHTMLElement, isNode } from "../../SSRSafe";
|
|
3
3
|
import { canUseDOM } from "../../client";
|
|
4
|
-
import {
|
|
4
|
+
import { isInstanceWithRootNode } from "../rootNodeDecorator";
|
|
5
5
|
export var getRootNode = function getRootNode(instance) {
|
|
6
6
|
if (!canUseDOM) return null;
|
|
7
7
|
|
|
@@ -9,17 +9,17 @@ export var getRootNode = function getRootNode(instance) {
|
|
|
9
9
|
return instance;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
|
|
12
|
+
var rootNode; // it happened to be that native Node interface also has
|
|
13
|
+
// the "getRootNode" method, but we dont expect it here
|
|
14
14
|
|
|
15
|
-
if (
|
|
16
|
-
|
|
15
|
+
if (isInstanceWithRootNode(instance) && !isNode(instance)) {
|
|
16
|
+
rootNode = instance.getRootNode();
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
if (
|
|
20
|
-
return
|
|
19
|
+
if (rootNode !== undefined) {
|
|
20
|
+
return rootNode;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
return
|
|
23
|
+
rootNode = findDOMNode(instance);
|
|
24
|
+
return isHTMLElement(rootNode) ? rootNode : null;
|
|
25
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["getRootNode.ts"],"names":["findDOMNode","isHTMLElement","canUseDOM","
|
|
1
|
+
{"version":3,"sources":["getRootNode.ts"],"names":["findDOMNode","isHTMLElement","isNode","canUseDOM","isInstanceWithRootNode","getRootNode","instance","rootNode","undefined"],"mappings":"AAAA,SAASA,WAAT,QAA4B,WAA5B;;;;AAIA,SAASC,aAAT,EAAwBC,MAAxB,QAAsC,YAAtC;AACA,SAASC,SAAT,QAA0B,WAA1B;;AAEA,SAASC,sBAAT,QAAuC,qBAAvC;;AAEA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD,EAAoE;AAC7F,MAAI,CAACH,SAAL,EAAgB,OAAO,IAAP;AAChB,MAAIF,aAAa,CAACK,QAAD,CAAb,IAA2BA,QAAQ,KAAK,IAA5C,EAAkD;AAChD,WAAOA,QAAP;AACD;;AAED,MAAIC,QAAJ;;AAEA;AACA;AACA,MAAIH,sBAAsB,CAACE,QAAD,CAAtB,IAAoC,CAACJ,MAAM,CAACI,QAAD,CAA/C,EAA2D;AACzDC,IAAAA,QAAQ,GAAGD,QAAQ,CAACD,WAAT,EAAX;AACD;;AAED,MAAIE,QAAQ,KAAKC,SAAjB,EAA4B;AAC1B,WAAOD,QAAP;AACD;;AAEDA,EAAAA,QAAQ,GAAGP,WAAW,CAACM,QAAD,CAAtB;AACA,SAAOL,aAAa,CAACM,QAAD,CAAb,GAA0BA,QAA1B,GAAqC,IAA5C;AACD,CApBM","sourcesContent":["import { findDOMNode } from 'react-dom';\nimport React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { isHTMLElement, isNode } from '../SSRSafe';\nimport { canUseDOM } from '../client';\n\nimport { isInstanceWithRootNode } from './rootNodeDecorator';\n\nexport const getRootNode = (instance: Nullable<React.ReactInstance>): Nullable<HTMLElement> => {\n if (!canUseDOM) return null;\n if (isHTMLElement(instance) || instance === null) {\n return instance;\n }\n\n let rootNode;\n\n // it happened to be that native Node interface also has\n // the \"getRootNode\" method, but we dont expect it here\n if (isInstanceWithRootNode(instance) && !isNode(instance)) {\n rootNode = instance.getRootNode();\n }\n\n if (rootNode !== undefined) {\n return rootNode;\n }\n\n rootNode = findDOMNode(instance);\n return isHTMLElement(rootNode) ? rootNode : null;\n};\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
2
|
+
import EventEmitter from 'eventemitter3';
|
|
2
3
|
import { getRootNode } from "../getRootNode";
|
|
3
4
|
export function rootNode(Component) {
|
|
4
5
|
var rootNode = /*#__PURE__*/function (_Component) {
|
|
@@ -8,15 +9,33 @@ export function rootNode(Component) {
|
|
|
8
9
|
var _this;
|
|
9
10
|
|
|
10
11
|
_this = _Component.call(this, arguments.length <= 0 ? undefined : arguments[0]) || this;
|
|
12
|
+
_this.rootNode = null;
|
|
13
|
+
_this.rootNodeEmitter = new EventEmitter();
|
|
11
14
|
|
|
12
15
|
_this.setRootNode = function (instance) {
|
|
13
|
-
|
|
16
|
+
var _rootNode = getRootNode(instance);
|
|
17
|
+
|
|
18
|
+
if (_rootNode !== _this.rootNode) {
|
|
19
|
+
_this.rootNode = _rootNode;
|
|
20
|
+
|
|
21
|
+
_this.rootNodeEmitter.emit('change', _rootNode);
|
|
22
|
+
}
|
|
14
23
|
};
|
|
15
24
|
|
|
16
25
|
_this.getRootNode = function () {
|
|
17
26
|
return _this.rootNode;
|
|
18
27
|
};
|
|
19
28
|
|
|
29
|
+
_this.addRootNodeChangeListener = function (callback) {
|
|
30
|
+
_this.rootNodeEmitter.addListener('change', callback);
|
|
31
|
+
|
|
32
|
+
return {
|
|
33
|
+
remove: function remove() {
|
|
34
|
+
_this.rootNodeEmitter.removeListener('change', callback);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
20
39
|
return _this;
|
|
21
40
|
}
|
|
22
41
|
|
|
@@ -32,4 +51,7 @@ export function rootNode(Component) {
|
|
|
32
51
|
}
|
|
33
52
|
|
|
34
53
|
return rootNode;
|
|
35
|
-
}
|
|
54
|
+
}
|
|
55
|
+
export var isInstanceWithRootNode = function isInstanceWithRootNode(instance) {
|
|
56
|
+
return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getRootNode');
|
|
57
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["rootNodeDecorator.tsx"],"names":["getRootNode","rootNode","Component","setRootNode","instance","nameDescriptor","Object","getOwnPropertyDescriptor","configurable","defineProperty","value","name"],"mappings":";;;;AAIA,
|
|
1
|
+
{"version":3,"sources":["rootNodeDecorator.tsx"],"names":["EventEmitter","getRootNode","rootNode","Component","rootNodeEmitter","setRootNode","instance","emit","addRootNodeChangeListener","callback","addListener","remove","removeListener","nameDescriptor","Object","getOwnPropertyDescriptor","configurable","defineProperty","value","name","isInstanceWithRootNode","Boolean","prototype","hasOwnProperty","call"],"mappings":";AACA,OAAOA,YAAP,MAAyB,eAAzB;;;;AAIA,SAASC,WAAT,QAA4B,eAA5B;;;;;;;;;;;;;AAaA,OAAO,SAASC,QAAT,CAAqEC,SAArE,EAAmF;AACxF,MAAMD,QAAQ;;;AAGZ,wBAAmC;AACjC,8FADiC,MAF5BA,QAE4B,GAFM,IAEN,OAD5BE,eAC4B,GADV,IAAIJ,YAAJ,EACU;;;AAI5BK,MAAAA,WAJ4B,GAId,UAACC,QAAD,EAA6C;AAChE,YAAMJ,SAAQ,GAAGD,WAAW,CAACK,QAAD,CAA5B;AACA,YAAIJ,SAAQ,KAAK,MAAKA,QAAtB,EAAgC;AAC9B,gBAAKA,QAAL,GAAgBA,SAAhB;AACA,gBAAKE,eAAL,CAAqBG,IAArB,CAA0B,QAA1B,EAAoCL,SAApC;AACD;AACF,OAVkC;;AAY5BD,MAAAA,WAZ4B,GAYd,YAA6B;AAChD,eAAO,MAAKC,QAAZ;AACD,OAdkC;;AAgB5BM,MAAAA,yBAhB4B,GAgBA,UAACC,QAAD,EAA4E;AAC7G,cAAKL,eAAL,CAAqBM,WAArB,CAAiC,QAAjC,EAA2CD,QAA3C;AACA,eAAO;AACLE,UAAAA,MAAM,EAAE,kBAAM;AACZ,kBAAKP,eAAL,CAAqBQ,cAArB,CAAoC,QAApC,EAA8CH,QAA9C;AACD,WAHI,EAAP;;AAKD,OAvBkC,cAElC,CALW,kBAAiBN,SAAjB,CAAd;;;AA6BA,MAAMU,cAAc,GAAGC,MAAM,CAACC,wBAAP,CAAgCb,QAAhC,EAA0C,MAA1C,CAAvB;AACA,MAAI,CAACW,cAAD,IAAmBA,cAAc,CAACG,YAAtC,EAAoD;AAClDF,IAAAA,MAAM,CAACG,cAAP,CAAsBf,QAAtB,EAAgC,MAAhC,EAAwC,EAAEgB,KAAK,EAAEf,SAAS,CAACgB,IAAnB,EAAxC;AACD;;AAED,SAAOjB,QAAP;AACD;;AAED,OAAO,IAAMkB,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACd,QAAD,EAAyD;AAC7F,SAAOe,OAAO,CAACf,QAAD,CAAP,IAAqBQ,MAAM,CAACQ,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqClB,QAArC,EAA+C,aAA/C,CAA5B;AACD,CAFM","sourcesContent":["import React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { Nullable } from '../../typings/utility-types';\n\nimport { getRootNode } from './getRootNode';\n\nexport type TSetRootNode = (e: Nullable<React.ReactNode>) => void;\n\nexport type TRootNodeSubscription = {\n remove: () => void;\n};\n\nexport interface InstanceWithRootNode {\n getRootNode: () => Nullable<HTMLElement>;\n addRootNodeChangeListener?: (callback: (node: Nullable<HTMLElement>) => void) => TRootNodeSubscription;\n}\n\nexport function rootNode<T extends new (...args: any[]) => React.Component>(Component: T) {\n const rootNode = class extends Component implements InstanceWithRootNode {\n public rootNode: Nullable<HTMLElement> = null;\n public rootNodeEmitter = new EventEmitter();\n public constructor(...args: any[]) {\n super(args[0]);\n }\n\n public setRootNode = (instance: Nullable<React.ReactInstance>) => {\n const rootNode = getRootNode(instance);\n if (rootNode !== this.rootNode) {\n this.rootNode = rootNode;\n this.rootNodeEmitter.emit('change', rootNode);\n }\n };\n\n public getRootNode = (): Nullable<HTMLElement> => {\n return this.rootNode;\n };\n\n public addRootNodeChangeListener = (callback: (node: Nullable<HTMLElement>) => void): TRootNodeSubscription => {\n this.rootNodeEmitter.addListener('change', callback);\n return {\n remove: () => {\n this.rootNodeEmitter.removeListener('change', callback);\n },\n };\n };\n };\n\n const nameDescriptor = Object.getOwnPropertyDescriptor(rootNode, 'name');\n if (!nameDescriptor || nameDescriptor.configurable) {\n Object.defineProperty(rootNode, 'name', { value: Component.name });\n }\n\n return rootNode;\n}\n\nexport const isInstanceWithRootNode = (instance: unknown): instance is InstanceWithRootNode => {\n return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getRootNode');\n};\n"]}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import EventEmitter from 'eventemitter3';
|
|
2
3
|
import { Nullable } from '../../typings/utility-types';
|
|
3
4
|
export declare type TSetRootNode = (e: Nullable<React.ReactNode>) => void;
|
|
5
|
+
export declare type TRootNodeSubscription = {
|
|
6
|
+
remove: () => void;
|
|
7
|
+
};
|
|
8
|
+
export interface InstanceWithRootNode {
|
|
9
|
+
getRootNode: () => Nullable<HTMLElement>;
|
|
10
|
+
addRootNodeChangeListener?: (callback: (node: Nullable<HTMLElement>) => void) => TRootNodeSubscription;
|
|
11
|
+
}
|
|
4
12
|
export declare function rootNode<T extends new (...args: any[]) => React.Component>(Component: T): {
|
|
5
13
|
new (...args: any[]): {
|
|
6
14
|
rootNode: Nullable<HTMLElement>;
|
|
15
|
+
rootNodeEmitter: EventEmitter<string | symbol, any>;
|
|
7
16
|
setRootNode: (instance: Nullable<React.ReactInstance>) => void;
|
|
8
17
|
getRootNode: () => Nullable<HTMLElement>;
|
|
18
|
+
addRootNodeChangeListener: (callback: (node: Nullable<HTMLElement>) => void) => TRootNodeSubscription;
|
|
9
19
|
context: any;
|
|
10
20
|
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<{}>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
|
11
21
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
@@ -31,3 +41,4 @@ export declare function rootNode<T extends new (...args: any[]) => React.Compone
|
|
|
31
41
|
UNSAFE_componentWillUpdate?(nextProps: Readonly<{}>, nextState: Readonly<{}>, nextContext: any): void;
|
|
32
42
|
};
|
|
33
43
|
} & T;
|
|
44
|
+
export declare const isInstanceWithRootNode: (instance: unknown) => instance is InstanceWithRootNode;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DefaultThemeInternal } from "../../../internal/themes/DefaultTheme";
|
|
2
|
+
import { findPropertyDescriptor } from "../ThemeHelpers";
|
|
2
3
|
export var ThemeFactory = /*#__PURE__*/function () {
|
|
3
4
|
function ThemeFactory() {}
|
|
4
5
|
|
|
@@ -8,8 +9,8 @@ export var ThemeFactory = /*#__PURE__*/function () {
|
|
|
8
9
|
};
|
|
9
10
|
|
|
10
11
|
ThemeFactory.overrideDefaultTheme = function overrideDefaultTheme(theme) {
|
|
11
|
-
|
|
12
|
-
var descriptor =
|
|
12
|
+
ThemeFactory.getKeys(DefaultThemeInternal).forEach(function (variableName) {
|
|
13
|
+
var descriptor = findPropertyDescriptor(theme, variableName);
|
|
13
14
|
Object.defineProperty(DefaultThemeInternal, variableName, descriptor);
|
|
14
15
|
});
|
|
15
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ThemeFactory.ts"],"names":["DefaultThemeInternal","ThemeFactory","create","theme","baseTheme","base","constructTheme","overrideDefaultTheme","
|
|
1
|
+
{"version":3,"sources":["ThemeFactory.ts"],"names":["DefaultThemeInternal","findPropertyDescriptor","ThemeFactory","create","theme","baseTheme","base","constructTheme","overrideDefaultTheme","getKeys","forEach","variableName","descriptor","Object","defineProperty","keys","key","includes","push","getPrototypeOf","sort","newTheme","propName","getOwnPropertyDescriptor","freeze"],"mappings":"AAAA,SAASA,oBAAT,QAAqC,oCAArC;;;AAGA,SAASC,sBAAT,QAAuC,gBAAvC;;AAEA,WAAaC,YAAb;AACgBC,EAAAA,MADhB,GACE,gBAAmCC,KAAnC,EAAuDC,SAAvD,EAA+F;AAC7F,QAAMC,IAAI,GAAGD,SAAS,IAAIL,oBAA1B;AACA,WAAO,KAAKO,cAAL,CAAoBD,IAApB,EAA0BF,KAA1B,CAAP;AACD,GAJH;;AAMgBI,EAAAA,oBANhB,GAME,8BAAmCJ,KAAnC,EAAiD;AAC/CF,IAAAA,YAAY,CAACO,OAAb,CAAqBT,oBAArB,EAA2CU,OAA3C,CAAmD,UAACC,YAAD,EAAkB;AACnE,UAAMC,UAAU,GAAGX,sBAAsB,CAACG,KAAD,EAAQO,YAAR,CAAzC;AACAE,MAAAA,MAAM,CAACC,cAAP,CAAsBd,oBAAtB,EAA4CW,YAA5C,EAA0DC,UAA1D;AACD,KAHD;AAID,GAXH;;AAagBH,EAAAA,OAbhB,GAaE,iBAAuCL,KAAvC,EAAiD;AAC/C,QAAMW,IAAoB,GAAG,EAA7B;AACA,WAAOX,KAAK,IAAI,IAAhB,EAAsB;AACnBS,MAAAA,MAAM,CAACE,IAAP,CAAYX,KAAZ,CAAD,CAAoCM,OAApC,CAA4C,UAACM,GAAD,EAAS;AACnD,YAAI,CAACD,IAAI,CAACE,QAAL,CAAcD,GAAd,CAAL,EAAyB;AACvBD,UAAAA,IAAI,CAACG,IAAL,CAAUF,GAAV;AACD;AACF,OAJD;AAKAZ,MAAAA,KAAK,GAAGS,MAAM,CAACM,cAAP,CAAsBf,KAAtB,CAAR;AACD;AACD,WAAOW,IAAI,CAACK,IAAL,EAAP;AACD,GAxBH;;AA0BiBb,EAAAA,cA1BjB,GA0BE,wBAA8BD,IAA9B,EAA2CF,KAA3C,EAA2D;AACzD,QAAMiB,QAAQ,GAAGR,MAAM,CAACV,MAAP,CAAcG,IAAd,CAAjB;AACAO,IAAAA,MAAM,CAACE,IAAP,CAAYX,KAAZ,EAAmBM,OAAnB,CAA2B,UAACY,QAAD,EAAc;AACvC,UAAMV,UAAU,GAAGC,MAAM,CAACU,wBAAP,CAAgCnB,KAAhC,EAAuCkB,QAAvC,CAAnB;AACAT,MAAAA,MAAM,CAACC,cAAP,CAAsBO,QAAtB,EAAgCC,QAAhC,EAA0CV,UAA1C;AACD,KAHD;;AAKA,WAAOC,MAAM,CAACW,MAAP,CAAcH,QAAd,CAAP;AACD,GAlCH","sourcesContent":["import { DefaultThemeInternal } from '../../internal/themes/DefaultTheme';\n\nimport { Theme, ThemeIn } from './Theme';\nimport { findPropertyDescriptor } from './ThemeHelpers';\n\nexport class ThemeFactory {\n public static create<T extends {}>(theme: ThemeIn & T, baseTheme?: Theme): Readonly<Theme & T> {\n const base = baseTheme || DefaultThemeInternal;\n return this.constructTheme(base, theme);\n }\n\n public static overrideDefaultTheme(theme: Theme) {\n ThemeFactory.getKeys(DefaultThemeInternal).forEach((variableName) => {\n const descriptor = findPropertyDescriptor(theme, variableName);\n Object.defineProperty(DefaultThemeInternal, variableName, descriptor);\n });\n }\n\n public static getKeys<T extends Theme>(theme: T) {\n const keys: Array<keyof T> = [];\n while (theme != null) {\n (Object.keys(theme) as typeof keys).forEach((key) => {\n if (!keys.includes(key)) {\n keys.push(key);\n }\n });\n theme = Object.getPrototypeOf(theme);\n }\n return keys.sort();\n }\n\n private static constructTheme(base: Theme, theme: ThemeIn) {\n const newTheme = Object.create(base);\n Object.keys(theme).forEach((propName) => {\n const descriptor = Object.getOwnPropertyDescriptor(theme, propName)!;\n Object.defineProperty(newTheme, propName, descriptor);\n });\n\n return Object.freeze(newTheme);\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Theme, ThemeIn } from './Theme';
|
|
2
2
|
export declare class ThemeFactory {
|
|
3
3
|
static create<T extends {}>(theme: ThemeIn & T, baseTheme?: Theme): Readonly<Theme & T>;
|
|
4
|
-
static overrideDefaultTheme(theme:
|
|
4
|
+
static overrideDefaultTheme(theme: Theme): void;
|
|
5
5
|
static getKeys<T extends Theme>(theme: T): (keyof T)[];
|
|
6
6
|
private static constructTheme;
|
|
7
7
|
}
|
|
@@ -24,4 +24,13 @@ export var markAsDarkTheme = function markAsDarkTheme(theme) {
|
|
|
24
24
|
enumerable: false,
|
|
25
25
|
configurable: false
|
|
26
26
|
}, _Object$create));
|
|
27
|
-
};
|
|
27
|
+
};
|
|
28
|
+
export function findPropertyDescriptor(theme, propName) {
|
|
29
|
+
for (; theme != null; theme = Object.getPrototypeOf(theme)) {
|
|
30
|
+
if (Object.prototype.hasOwnProperty.call(theme, propName)) {
|
|
31
|
+
return Object.getOwnPropertyDescriptor(theme, propName) || {};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ThemeHelpers.ts"],"names":["exposeGetters","theme","descriptors","Object","getOwnPropertyDescriptors","keys","forEach","key","descriptor","get","configurable","enumerable","defineProperty","REACT_UI_DARK_THEME_KEY","isDarkTheme","markAsDarkTheme","create","value","writable"],"mappings":";;AAEA,OAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAAmBC,KAAnB,EAAmC;AAC9D,MAAMC,WAAW,GAAGC,MAAM,CAACC,yBAAP,CAAiCH,KAAjC,CAApB;AACAE,EAAAA,MAAM,CAACE,IAAP,CAAYH,WAAZ,EAAyBI,OAAzB,CAAiC,UAACC,GAAD,EAAS;AACxC,QAAMC,UAAU,GAAGN,WAAW,CAACK,GAAD,CAA9B;AACA,QAAI,OAAOC,UAAU,CAACC,GAAlB,KAA0B,UAA1B,IAAwCD,UAAU,CAACE,YAAvD,EAAqE;AACnEF,MAAAA,UAAU,CAACG,UAAX,GAAwB,IAAxB;AACAR,MAAAA,MAAM,CAACS,cAAP,CAAsBX,KAAtB,EAA6BM,GAA7B,EAAkCC,UAAlC;AACD;AACF,GAND;AAOA,SAAOP,KAAP;AACD,CAVM;;AAYP,OAAO,IAAMY,uBAAuB,GAAG,4BAAhC;;AAEP,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACb,KAAD,EAAqC;AAC9D;AACA,SAAOA,KAAK,CAACY,uBAAD,CAAL,KAAmC,IAA1C;AACD,CAHM;;AAKP,OAAO,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAAmBd,KAAnB,EAAmC;AAChE,SAAOE,MAAM,CAACa,MAAP,CAAcf,KAAd;AACJY,EAAAA,uBADI,IACsB;AACzBI,IAAAA,KAAK,EAAE,IADkB;AAEzBC,IAAAA,QAAQ,EAAE,KAFe;AAGzBP,IAAAA,UAAU,EAAE,KAHa;AAIzBD,IAAAA,YAAY,EAAE,KAJW,EADtB,kBAAP;;;AAQD,CATM","sourcesContent":["import { Theme, ThemeIn } from './Theme';\n\nexport const exposeGetters = <T extends object>(theme: T): T => {\n const descriptors = Object.getOwnPropertyDescriptors(theme);\n Object.keys(descriptors).forEach((key) => {\n const descriptor = descriptors[key];\n if (typeof descriptor.get === 'function' && descriptor.configurable) {\n descriptor.enumerable = true;\n Object.defineProperty(theme, key, descriptor);\n }\n });\n return theme;\n};\n\nexport const REACT_UI_DARK_THEME_KEY = '__IS_REACT_UI_DARK_THEME__';\n\nexport const isDarkTheme = (theme: Theme | ThemeIn): boolean => {\n //@ts-ignore\n return theme[REACT_UI_DARK_THEME_KEY] === true;\n};\n\nexport const markAsDarkTheme = <T extends object>(theme: T): T => {\n return Object.create(theme, {\n [REACT_UI_DARK_THEME_KEY]: {\n value: true,\n writable: false,\n enumerable: false,\n configurable: false,\n },\n });\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["ThemeHelpers.ts"],"names":["exposeGetters","theme","descriptors","Object","getOwnPropertyDescriptors","keys","forEach","key","descriptor","get","configurable","enumerable","defineProperty","REACT_UI_DARK_THEME_KEY","isDarkTheme","markAsDarkTheme","create","value","writable","findPropertyDescriptor","propName","getPrototypeOf","prototype","hasOwnProperty","call","getOwnPropertyDescriptor"],"mappings":";;AAEA,OAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAAmBC,KAAnB,EAAmC;AAC9D,MAAMC,WAAW,GAAGC,MAAM,CAACC,yBAAP,CAAiCH,KAAjC,CAApB;AACAE,EAAAA,MAAM,CAACE,IAAP,CAAYH,WAAZ,EAAyBI,OAAzB,CAAiC,UAACC,GAAD,EAAS;AACxC,QAAMC,UAAU,GAAGN,WAAW,CAACK,GAAD,CAA9B;AACA,QAAI,OAAOC,UAAU,CAACC,GAAlB,KAA0B,UAA1B,IAAwCD,UAAU,CAACE,YAAvD,EAAqE;AACnEF,MAAAA,UAAU,CAACG,UAAX,GAAwB,IAAxB;AACAR,MAAAA,MAAM,CAACS,cAAP,CAAsBX,KAAtB,EAA6BM,GAA7B,EAAkCC,UAAlC;AACD;AACF,GAND;AAOA,SAAOP,KAAP;AACD,CAVM;;AAYP,OAAO,IAAMY,uBAAuB,GAAG,4BAAhC;;AAEP,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACb,KAAD,EAAqC;AAC9D;AACA,SAAOA,KAAK,CAACY,uBAAD,CAAL,KAAmC,IAA1C;AACD,CAHM;;AAKP,OAAO,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAAmBd,KAAnB,EAAmC;AAChE,SAAOE,MAAM,CAACa,MAAP,CAAcf,KAAd;AACJY,EAAAA,uBADI,IACsB;AACzBI,IAAAA,KAAK,EAAE,IADkB;AAEzBC,IAAAA,QAAQ,EAAE,KAFe;AAGzBP,IAAAA,UAAU,EAAE,KAHa;AAIzBD,IAAAA,YAAY,EAAE,KAJW,EADtB,kBAAP;;;AAQD,CATM;;AAWP,OAAO,SAASS,sBAAT,CAAgClB,KAAhC,EAA8CmB,QAA9C,EAAqE;AAC1E,SAAOnB,KAAK,IAAI,IAAhB,EAAsBA,KAAK,GAAGE,MAAM,CAACkB,cAAP,CAAsBpB,KAAtB,CAA9B,EAA4D;AAC1D,QAAIE,MAAM,CAACmB,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCvB,KAArC,EAA4CmB,QAA5C,CAAJ,EAA2D;AACzD,aAAOjB,MAAM,CAACsB,wBAAP,CAAgCxB,KAAhC,EAAuCmB,QAAvC,KAAoD,EAA3D;AACD;AACF;AACD,SAAO,EAAP;AACD","sourcesContent":["import { Theme, ThemeIn } from './Theme';\n\nexport const exposeGetters = <T extends object>(theme: T): T => {\n const descriptors = Object.getOwnPropertyDescriptors(theme);\n Object.keys(descriptors).forEach((key) => {\n const descriptor = descriptors[key];\n if (typeof descriptor.get === 'function' && descriptor.configurable) {\n descriptor.enumerable = true;\n Object.defineProperty(theme, key, descriptor);\n }\n });\n return theme;\n};\n\nexport const REACT_UI_DARK_THEME_KEY = '__IS_REACT_UI_DARK_THEME__';\n\nexport const isDarkTheme = (theme: Theme | ThemeIn): boolean => {\n //@ts-ignore\n return theme[REACT_UI_DARK_THEME_KEY] === true;\n};\n\nexport const markAsDarkTheme = <T extends object>(theme: T): T => {\n return Object.create(theme, {\n [REACT_UI_DARK_THEME_KEY]: {\n value: true,\n writable: false,\n enumerable: false,\n configurable: false,\n },\n });\n};\n\nexport function findPropertyDescriptor(theme: Theme, propName: keyof Theme) {\n for (; theme != null; theme = Object.getPrototypeOf(theme)) {\n if (Object.prototype.hasOwnProperty.call(theme, propName)) {\n return Object.getOwnPropertyDescriptor(theme, propName) || {};\n }\n }\n return {};\n}\n"]}
|
|
@@ -3,3 +3,4 @@ export declare const exposeGetters: <T extends object>(theme: T) => T;
|
|
|
3
3
|
export declare const REACT_UI_DARK_THEME_KEY = "__IS_REACT_UI_DARK_THEME__";
|
|
4
4
|
export declare const isDarkTheme: (theme: Theme | ThemeIn) => boolean;
|
|
5
5
|
export declare const markAsDarkTheme: <T extends object>(theme: T) => T;
|
|
6
|
+
export declare function findPropertyDescriptor(theme: Theme, propName: keyof Theme): PropertyDescriptor;
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skbkontur/react-ui",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.6",
|
|
4
4
|
"description": "UI Components",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "index.js",
|
|
7
7
|
"sideEffects": false,
|
|
8
|
-
"homepage": "https://tech.skbkontur.ru/react-ui/4.0.
|
|
8
|
+
"homepage": "https://tech.skbkontur.ru/react-ui/4.0.6/",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "git@github.com:skbkontur/retail-ui.git"
|
|
@@ -114,8 +114,10 @@
|
|
|
114
114
|
"dotenv": "^10.0.0",
|
|
115
115
|
"dts-css-modules-loader": "1.2.4",
|
|
116
116
|
"enzyme": "^3.11.0",
|
|
117
|
+
"eslint-plugin-jest-dom": "^4.0.1",
|
|
117
118
|
"eslint-plugin-react-hooks": "^4.3.0",
|
|
118
119
|
"eslint-plugin-storybook": "^0.5.6",
|
|
120
|
+
"eslint-plugin-testing-library": "^5.0.5",
|
|
119
121
|
"file-loader": "^6.2.0",
|
|
120
122
|
"fork-ts-checker-webpack-plugin": "^6.5.0",
|
|
121
123
|
"fs-extra": "^10.0.0",
|