@ozen-ui/responsive 0.84.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/README.md +26 -0
- package/__inner__/cjs/constants/environment/constants/index.js +5 -0
- package/__inner__/cjs/constants/environment/constants/isDev.js +5 -0
- package/__inner__/cjs/constants/environment/constants/isProduction.js +4 -0
- package/__inner__/cjs/constants/environment/index.js +4 -0
- package/__inner__/cjs/constants/index.js +4 -0
- package/__inner__/cjs/entities/breakpoint.js +2 -0
- package/__inner__/cjs/entities/index.js +9 -0
- package/__inner__/cjs/entities/orientation.js +4 -0
- package/__inner__/cjs/entities/os.js +4 -0
- package/__inner__/cjs/entities/scope.js +2 -0
- package/__inner__/cjs/entities/type.js +4 -0
- package/__inner__/cjs/entities/viewport.js +2 -0
- package/__inner__/cjs/fabric/fabric.js +79 -0
- package/__inner__/cjs/fabric/index.js +5 -0
- package/__inner__/cjs/fabric/infers/base.js +2 -0
- package/__inner__/cjs/fabric/infers/breakpoint.js +2 -0
- package/__inner__/cjs/fabric/infers/index.js +8 -0
- package/__inner__/cjs/fabric/infers/orientation.js +2 -0
- package/__inner__/cjs/fabric/infers/os.js +2 -0
- package/__inner__/cjs/fabric/infers/type.js +2 -0
- package/__inner__/cjs/fabric/infers/viewport.js +2 -0
- package/__inner__/cjs/fabric/utils.js +25 -0
- package/__inner__/cjs/hooks/index.js +15 -0
- package/__inner__/cjs/hooks/useBreakpoint.js +16 -0
- package/__inner__/cjs/hooks/useBreakpointObserver.js +19 -0
- package/__inner__/cjs/hooks/useDeviceType.js +16 -0
- package/__inner__/cjs/hooks/useDeviceTypeObserver.js +19 -0
- package/__inner__/cjs/hooks/useOS.js +16 -0
- package/__inner__/cjs/hooks/useOSObserver.js +19 -0
- package/__inner__/cjs/hooks/useOrientation.js +16 -0
- package/__inner__/cjs/hooks/useOrientationObserver.js +19 -0
- package/__inner__/cjs/hooks/useSnapshot.js +16 -0
- package/__inner__/cjs/hooks/useSnapshotObserver.js +19 -0
- package/__inner__/cjs/hooks/useViewport.js +16 -0
- package/__inner__/cjs/hooks/useViewportObserver.js +19 -0
- package/__inner__/cjs/index.js +4 -0
- package/__inner__/cjs/provider/ResponsiveContext.js +16 -0
- package/__inner__/cjs/provider/ResponsiveProvider.js +24 -0
- package/__inner__/cjs/provider/index.js +6 -0
- package/__inner__/cjs/provider/types.js +2 -0
- package/__inner__/cjs/store/ResponsiveStore.js +95 -0
- package/__inner__/cjs/store/index.js +5 -0
- package/__inner__/cjs/store/types.js +2 -0
- package/__inner__/cjs/store/utils.js +69 -0
- package/__inner__/cjs/ui/ResponsiveNodes/ResponsiveNodes.js +30 -0
- package/__inner__/cjs/ui/ResponsiveNodes/index.js +5 -0
- package/__inner__/cjs/ui/ResponsiveNodes/types.js +2 -0
- package/__inner__/cjs/ui/ResponsiveProps/ResponsiveProps.js +40 -0
- package/__inner__/cjs/ui/ResponsiveProps/index.js +5 -0
- package/__inner__/cjs/ui/ResponsiveProps/types.js +2 -0
- package/__inner__/cjs/ui/index.js +5 -0
- package/__inner__/cjs/ui/utils/index.js +5 -0
- package/__inner__/cjs/ui/utils/types.js +2 -0
- package/__inner__/cjs/ui/utils/utils.js +78 -0
- package/__inner__/cjs/user-agent/constants.js +115 -0
- package/__inner__/cjs/user-agent/index.js +5 -0
- package/__inner__/cjs/user-agent/user-agent-parser.js +92 -0
- package/__inner__/esm/constants/environment/constants/index.js +2 -0
- package/__inner__/esm/constants/environment/constants/isDev.js +2 -0
- package/__inner__/esm/constants/environment/constants/isProduction.js +1 -0
- package/__inner__/esm/constants/environment/index.js +1 -0
- package/__inner__/esm/constants/index.js +1 -0
- package/__inner__/esm/entities/breakpoint.js +1 -0
- package/__inner__/esm/entities/index.js +6 -0
- package/__inner__/esm/entities/orientation.js +1 -0
- package/__inner__/esm/entities/os.js +1 -0
- package/__inner__/esm/entities/scope.js +1 -0
- package/__inner__/esm/entities/type.js +1 -0
- package/__inner__/esm/entities/viewport.js +1 -0
- package/__inner__/esm/fabric/fabric.js +75 -0
- package/__inner__/esm/fabric/index.js +2 -0
- package/__inner__/esm/fabric/infers/base.js +1 -0
- package/__inner__/esm/fabric/infers/breakpoint.js +1 -0
- package/__inner__/esm/fabric/infers/index.js +5 -0
- package/__inner__/esm/fabric/infers/orientation.js +1 -0
- package/__inner__/esm/fabric/infers/os.js +1 -0
- package/__inner__/esm/fabric/infers/type.js +1 -0
- package/__inner__/esm/fabric/infers/viewport.js +1 -0
- package/__inner__/esm/fabric/utils.js +21 -0
- package/__inner__/esm/hooks/index.js +12 -0
- package/__inner__/esm/hooks/useBreakpoint.js +12 -0
- package/__inner__/esm/hooks/useBreakpointObserver.js +15 -0
- package/__inner__/esm/hooks/useDeviceType.js +12 -0
- package/__inner__/esm/hooks/useDeviceTypeObserver.js +15 -0
- package/__inner__/esm/hooks/useOS.js +12 -0
- package/__inner__/esm/hooks/useOSObserver.js +15 -0
- package/__inner__/esm/hooks/useOrientation.js +12 -0
- package/__inner__/esm/hooks/useOrientationObserver.js +15 -0
- package/__inner__/esm/hooks/useSnapshot.js +12 -0
- package/__inner__/esm/hooks/useSnapshotObserver.js +15 -0
- package/__inner__/esm/hooks/useViewport.js +12 -0
- package/__inner__/esm/hooks/useViewportObserver.js +15 -0
- package/__inner__/esm/index.js +1 -0
- package/__inner__/esm/provider/ResponsiveContext.js +12 -0
- package/__inner__/esm/provider/ResponsiveProvider.js +19 -0
- package/__inner__/esm/provider/index.js +3 -0
- package/__inner__/esm/provider/types.js +1 -0
- package/__inner__/esm/store/ResponsiveStore.js +92 -0
- package/__inner__/esm/store/index.js +2 -0
- package/__inner__/esm/store/types.js +1 -0
- package/__inner__/esm/store/utils.js +62 -0
- package/__inner__/esm/ui/ResponsiveNodes/ResponsiveNodes.js +25 -0
- package/__inner__/esm/ui/ResponsiveNodes/index.js +2 -0
- package/__inner__/esm/ui/ResponsiveNodes/types.js +1 -0
- package/__inner__/esm/ui/ResponsiveProps/ResponsiveProps.js +36 -0
- package/__inner__/esm/ui/ResponsiveProps/index.js +2 -0
- package/__inner__/esm/ui/ResponsiveProps/types.js +1 -0
- package/__inner__/esm/ui/index.js +2 -0
- package/__inner__/esm/ui/utils/index.js +2 -0
- package/__inner__/esm/ui/utils/types.js +1 -0
- package/__inner__/esm/ui/utils/utils.js +74 -0
- package/__inner__/esm/user-agent/constants.js +112 -0
- package/__inner__/esm/user-agent/index.js +2 -0
- package/__inner__/esm/user-agent/user-agent-parser.js +89 -0
- package/__inner__/types/constants/environment/constants/index.d.ts +2 -0
- package/__inner__/types/constants/environment/constants/isDev.d.ts +1 -0
- package/__inner__/types/constants/environment/constants/isProduction.d.ts +1 -0
- package/__inner__/types/constants/environment/index.d.ts +1 -0
- package/__inner__/types/constants/index.d.ts +1 -0
- package/__inner__/types/entities/breakpoint.d.ts +21 -0
- package/__inner__/types/entities/index.d.ts +6 -0
- package/__inner__/types/entities/orientation.d.ts +7 -0
- package/__inner__/types/entities/os.d.ts +8 -0
- package/__inner__/types/entities/scope.d.ts +11 -0
- package/__inner__/types/entities/type.d.ts +8 -0
- package/__inner__/types/entities/viewport.d.ts +4 -0
- package/__inner__/types/fabric/fabric.d.ts +25 -0
- package/__inner__/types/fabric/index.d.ts +2 -0
- package/__inner__/types/fabric/infers/base.d.ts +2 -0
- package/__inner__/types/fabric/infers/breakpoint.d.ts +5 -0
- package/__inner__/types/fabric/infers/index.d.ts +5 -0
- package/__inner__/types/fabric/infers/orientation.d.ts +4 -0
- package/__inner__/types/fabric/infers/os.d.ts +4 -0
- package/__inner__/types/fabric/infers/type.d.ts +4 -0
- package/__inner__/types/fabric/infers/viewport.d.ts +3 -0
- package/__inner__/types/fabric/utils.d.ts +2 -0
- package/__inner__/types/hooks/index.d.ts +12 -0
- package/__inner__/types/hooks/useBreakpoint.d.ts +2 -0
- package/__inner__/types/hooks/useBreakpointObserver.d.ts +2 -0
- package/__inner__/types/hooks/useDeviceType.d.ts +2 -0
- package/__inner__/types/hooks/useDeviceTypeObserver.d.ts +2 -0
- package/__inner__/types/hooks/useOS.d.ts +2 -0
- package/__inner__/types/hooks/useOSObserver.d.ts +2 -0
- package/__inner__/types/hooks/useOrientation.d.ts +2 -0
- package/__inner__/types/hooks/useOrientationObserver.d.ts +2 -0
- package/__inner__/types/hooks/useSnapshot.d.ts +2 -0
- package/__inner__/types/hooks/useSnapshotObserver.d.ts +3 -0
- package/__inner__/types/hooks/useViewport.d.ts +2 -0
- package/__inner__/types/hooks/useViewportObserver.d.ts +2 -0
- package/__inner__/types/index.d.ts +1 -0
- package/__inner__/types/provider/ResponsiveContext.d.ts +8 -0
- package/__inner__/types/provider/ResponsiveProvider.d.ts +4 -0
- package/__inner__/types/provider/index.d.ts +3 -0
- package/__inner__/types/provider/types.d.ts +6 -0
- package/__inner__/types/store/ResponsiveStore.d.ts +16 -0
- package/__inner__/types/store/index.d.ts +2 -0
- package/__inner__/types/store/types.d.ts +12 -0
- package/__inner__/types/store/utils.d.ts +5 -0
- package/__inner__/types/ui/ResponsiveNodes/ResponsiveNodes.d.ts +4 -0
- package/__inner__/types/ui/ResponsiveNodes/index.d.ts +2 -0
- package/__inner__/types/ui/ResponsiveNodes/types.d.ts +6 -0
- package/__inner__/types/ui/ResponsiveProps/ResponsiveProps.d.ts +5 -0
- package/__inner__/types/ui/ResponsiveProps/index.d.ts +2 -0
- package/__inner__/types/ui/ResponsiveProps/types.d.ts +8 -0
- package/__inner__/types/ui/index.d.ts +2 -0
- package/__inner__/types/ui/utils/index.d.ts +2 -0
- package/__inner__/types/ui/utils/types.d.ts +6 -0
- package/__inner__/types/ui/utils/utils.d.ts +6 -0
- package/__inner__/types/user-agent/constants.d.ts +108 -0
- package/__inner__/types/user-agent/index.d.ts +2 -0
- package/__inner__/types/user-agent/user-agent-parser.d.ts +11 -0
- package/package.json +34 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { __assign, __read, __spreadArray } from "tslib";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useBreakpoint as useBreakpointLibrary, useBreakpointObserver as useBreakpointObserverLibrary, useDeviceType as useDeviceTypeLibrary, useDeviceTypeObserver as useDeviceTypeObserverLibrary, useOrientation as useOrientationLibrary, useOrientationObserver as useOrientationObserverLibrary, useOS as useOSLibrary, useOSObserver as useOSObserverLibrary, useViewport as useViewportLibrary, useViewportObserver as useViewportObserverLibrary, } from '../hooks';
|
|
4
|
+
import { ResponsiveProvider } from '../provider';
|
|
5
|
+
import { ResponsiveNodes, ResponsiveProps } from '../ui';
|
|
6
|
+
import { createScope } from './utils';
|
|
7
|
+
export var createResponsive = function (breakpoints) {
|
|
8
|
+
var scope = createScope(breakpoints);
|
|
9
|
+
// ui
|
|
10
|
+
var ResponsivePropsComponent = function (props) { return React.createElement(ResponsiveProps, __assign({}, props)); };
|
|
11
|
+
var ResponsiveNodesComponent = function (props) { return React.createElement(ResponsiveNodes, __assign({}, props)); };
|
|
12
|
+
// Provider
|
|
13
|
+
var ProviderComponent = function (props) { return React.createElement(ResponsiveProvider, __assign({}, props, { scope: scope })); };
|
|
14
|
+
// hooks
|
|
15
|
+
var useBreakpoint = function () { return useBreakpointLibrary(); };
|
|
16
|
+
var useBreakpointObserver = function () {
|
|
17
|
+
var params = [];
|
|
18
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
19
|
+
params[_i] = arguments[_i];
|
|
20
|
+
}
|
|
21
|
+
return useBreakpointObserverLibrary.apply(void 0, __spreadArray([], __read(params), false));
|
|
22
|
+
};
|
|
23
|
+
var useDeviceType = function () { return useDeviceTypeLibrary(); };
|
|
24
|
+
var useDeviceTypeObserver = function () {
|
|
25
|
+
var params = [];
|
|
26
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
27
|
+
params[_i] = arguments[_i];
|
|
28
|
+
}
|
|
29
|
+
return useDeviceTypeObserverLibrary.apply(void 0, __spreadArray([], __read(params), false));
|
|
30
|
+
};
|
|
31
|
+
var useOrientation = function () { return useOrientationLibrary(); };
|
|
32
|
+
var useOrientationObserver = function () {
|
|
33
|
+
var params = [];
|
|
34
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
35
|
+
params[_i] = arguments[_i];
|
|
36
|
+
}
|
|
37
|
+
return useOrientationObserverLibrary.apply(void 0, __spreadArray([], __read(params), false));
|
|
38
|
+
};
|
|
39
|
+
var useOS = function () { return useOSLibrary(); };
|
|
40
|
+
var useOSObserver = function () {
|
|
41
|
+
var params = [];
|
|
42
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
43
|
+
params[_i] = arguments[_i];
|
|
44
|
+
}
|
|
45
|
+
return useOSObserverLibrary.apply(void 0, __spreadArray([], __read(params), false));
|
|
46
|
+
};
|
|
47
|
+
var useViewport = function () { return useViewportLibrary(); };
|
|
48
|
+
var useViewportObserver = function () {
|
|
49
|
+
var params = [];
|
|
50
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
51
|
+
params[_i] = arguments[_i];
|
|
52
|
+
}
|
|
53
|
+
return useViewportObserverLibrary.apply(void 0, __spreadArray([], __read(params), false));
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
breakpoints: breakpoints,
|
|
57
|
+
osVariant: scope.osVariant,
|
|
58
|
+
sizesAscending: scope.sizesAscending,
|
|
59
|
+
typeVariant: scope.typeVariant,
|
|
60
|
+
orientationVariant: scope.orientationVariant,
|
|
61
|
+
ResponsiveProps: ResponsivePropsComponent,
|
|
62
|
+
ResponsiveNodes: ResponsiveNodesComponent,
|
|
63
|
+
Provider: ProviderComponent,
|
|
64
|
+
useBreakpoint: useBreakpoint,
|
|
65
|
+
useBreakpointObserver: useBreakpointObserver,
|
|
66
|
+
useDeviceType: useDeviceType,
|
|
67
|
+
useDeviceTypeObserver: useDeviceTypeObserver,
|
|
68
|
+
useOrientation: useOrientation,
|
|
69
|
+
useOrientationObserver: useOrientationObserver,
|
|
70
|
+
useOS: useOS,
|
|
71
|
+
useOSObserver: useOSObserver,
|
|
72
|
+
useViewport: useViewport,
|
|
73
|
+
useViewportObserver: useViewportObserver,
|
|
74
|
+
};
|
|
75
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { orientation, OSVariant, type } from '../entities';
|
|
3
|
+
export var createScope = function (breakpoints) {
|
|
4
|
+
var sizesAscending = Object.entries(breakpoints)
|
|
5
|
+
.sort(function (_a, _b) {
|
|
6
|
+
var _c = __read(_a, 2), breakpoint1 = _c[1];
|
|
7
|
+
var _d = __read(_b, 2), breakpoint2 = _d[1];
|
|
8
|
+
return breakpoint1 - breakpoint2;
|
|
9
|
+
})
|
|
10
|
+
.map(function (_a) {
|
|
11
|
+
var _b = __read(_a, 1), deviceSize = _b[0];
|
|
12
|
+
return deviceSize;
|
|
13
|
+
});
|
|
14
|
+
return {
|
|
15
|
+
breakpoints: breakpoints,
|
|
16
|
+
sizesAscending: sizesAscending,
|
|
17
|
+
osVariant: OSVariant,
|
|
18
|
+
orientationVariant: orientation,
|
|
19
|
+
typeVariant: type,
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './useBreakpoint';
|
|
2
|
+
export * from './useBreakpointObserver';
|
|
3
|
+
export * from './useDeviceType';
|
|
4
|
+
export * from './useDeviceTypeObserver';
|
|
5
|
+
export * from './useOrientation';
|
|
6
|
+
export * from './useOrientationObserver';
|
|
7
|
+
export * from './useOS';
|
|
8
|
+
export * from './useOSObserver';
|
|
9
|
+
export * from './useSnapshot';
|
|
10
|
+
export * from './useSnapshotObserver';
|
|
11
|
+
export * from './useViewport';
|
|
12
|
+
export * from './useViewportObserver';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useResponsiveContext } from '../provider/ResponsiveContext';
|
|
4
|
+
import { useBreakpointObserver } from './useBreakpointObserver';
|
|
5
|
+
export var useBreakpoint = function () {
|
|
6
|
+
var store = useResponsiveContext().store;
|
|
7
|
+
var _a = __read(useState(function () { return store.snapshot.size; }), 2), breakpoint = _a[0], setBreakpoint = _a[1];
|
|
8
|
+
useBreakpointObserver(function (current) {
|
|
9
|
+
setBreakpoint(current);
|
|
10
|
+
});
|
|
11
|
+
return breakpoint;
|
|
12
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEventBusEvents } from "@ozen-ui/kit/useEventBusEvents";
|
|
2
|
+
import { useStoredValue } from "@ozen-ui/kit/useStoredValue";
|
|
3
|
+
import { useResponsiveContext } from '../provider/ResponsiveContext';
|
|
4
|
+
export var useBreakpointObserver = function (onChange) {
|
|
5
|
+
var store = useResponsiveContext().store;
|
|
6
|
+
var breakpoints = useStoredValue(function () { return store.snapshot.size; });
|
|
7
|
+
useEventBusEvents(store.eventBus, {
|
|
8
|
+
breakpointChange: function (_a) {
|
|
9
|
+
var previous = _a.previous, current = _a.current;
|
|
10
|
+
breakpoints.current = current.size;
|
|
11
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(current.size, previous.size);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
return breakpoints;
|
|
15
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useResponsiveContext } from '../provider/ResponsiveContext';
|
|
4
|
+
import { useDeviceTypeObserver } from './useDeviceTypeObserver';
|
|
5
|
+
export var useDeviceType = function () {
|
|
6
|
+
var store = useResponsiveContext().store;
|
|
7
|
+
var _a = __read(useState(function () { return store.snapshot.type; }), 2), type = _a[0], setType = _a[1];
|
|
8
|
+
useDeviceTypeObserver(function (current) {
|
|
9
|
+
setType(current);
|
|
10
|
+
});
|
|
11
|
+
return type;
|
|
12
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEventBusEvents } from "@ozen-ui/kit/useEventBusEvents";
|
|
2
|
+
import { useStoredValue } from "@ozen-ui/kit/useStoredValue";
|
|
3
|
+
import { useResponsiveContext } from '../provider/ResponsiveContext';
|
|
4
|
+
export var useDeviceTypeObserver = function (onChange) {
|
|
5
|
+
var store = useResponsiveContext().store;
|
|
6
|
+
var type = useStoredValue(function () { return store.snapshot.type; });
|
|
7
|
+
useEventBusEvents(store.eventBus, {
|
|
8
|
+
typeChange: function (_a) {
|
|
9
|
+
var previous = _a.previous, current = _a.current;
|
|
10
|
+
type.current = current.type;
|
|
11
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(current.type, previous.type);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
return type;
|
|
15
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useResponsiveContext } from '../provider/ResponsiveContext';
|
|
4
|
+
import { useOSObserver } from './useOSObserver';
|
|
5
|
+
export var useOS = function () {
|
|
6
|
+
var store = useResponsiveContext().store;
|
|
7
|
+
var _a = __read(useState(function () { return store.snapshot.os; }), 2), OS = _a[0], setOS = _a[1];
|
|
8
|
+
useOSObserver(function (current) {
|
|
9
|
+
setOS(current);
|
|
10
|
+
});
|
|
11
|
+
return OS;
|
|
12
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEventBusEvents } from "@ozen-ui/kit/useEventBusEvents";
|
|
2
|
+
import { useStoredValue } from "@ozen-ui/kit/useStoredValue";
|
|
3
|
+
import { useResponsiveContext } from '../provider/ResponsiveContext';
|
|
4
|
+
export var useOSObserver = function (onChange) {
|
|
5
|
+
var store = useResponsiveContext().store;
|
|
6
|
+
var os = useStoredValue(function () { return store.snapshot.os; });
|
|
7
|
+
useEventBusEvents(store.eventBus, {
|
|
8
|
+
osChange: function (_a) {
|
|
9
|
+
var previous = _a.previous, current = _a.current;
|
|
10
|
+
os.current = current.os;
|
|
11
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(current.os, previous.os);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
return os;
|
|
15
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useResponsiveContext } from '../provider/ResponsiveContext';
|
|
4
|
+
import { useOrientationObserver } from './useOrientationObserver';
|
|
5
|
+
export var useOrientation = function () {
|
|
6
|
+
var store = useResponsiveContext().store;
|
|
7
|
+
var _a = __read(useState(function () { return store.snapshot.orientation; }), 2), orientation = _a[0], setOrientation = _a[1];
|
|
8
|
+
useOrientationObserver(function (current) {
|
|
9
|
+
setOrientation(current);
|
|
10
|
+
});
|
|
11
|
+
return orientation;
|
|
12
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEventBusEvents } from "@ozen-ui/kit/useEventBusEvents";
|
|
2
|
+
import { useStoredValue } from "@ozen-ui/kit/useStoredValue";
|
|
3
|
+
import { useResponsiveContext } from '../provider/ResponsiveContext';
|
|
4
|
+
export var useOrientationObserver = function (onChange) {
|
|
5
|
+
var store = useResponsiveContext().store;
|
|
6
|
+
var orientation = useStoredValue(function () { return store.snapshot.orientation; });
|
|
7
|
+
useEventBusEvents(store.eventBus, {
|
|
8
|
+
orientationChange: function (_a) {
|
|
9
|
+
var previous = _a.previous, current = _a.current;
|
|
10
|
+
orientation.current = current.orientation;
|
|
11
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(current.orientation, previous.orientation);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
return orientation;
|
|
15
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useResponsiveContext } from '../provider';
|
|
4
|
+
import { useSnapshotObserver } from './useSnapshotObserver';
|
|
5
|
+
export var useSnapshot = function () {
|
|
6
|
+
var store = useResponsiveContext().store;
|
|
7
|
+
var _a = __read(useState(function () { return store.snapshot; }), 2), snapshot = _a[0], setSnapshot = _a[1];
|
|
8
|
+
useSnapshotObserver(function (current) {
|
|
9
|
+
setSnapshot(current);
|
|
10
|
+
});
|
|
11
|
+
return snapshot;
|
|
12
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEventBusEvents } from "@ozen-ui/kit/useEventBusEvents";
|
|
2
|
+
import { useStoredValue } from "@ozen-ui/kit/useStoredValue";
|
|
3
|
+
import { useResponsiveContext } from '../provider';
|
|
4
|
+
export var useSnapshotObserver = function (onChange) {
|
|
5
|
+
var store = useResponsiveContext().store;
|
|
6
|
+
var snapshot = useStoredValue(function () { return store.snapshot; });
|
|
7
|
+
useEventBusEvents(store.eventBus, {
|
|
8
|
+
snapshotChange: function (_a) {
|
|
9
|
+
var previous = _a.previous, current = _a.current;
|
|
10
|
+
snapshot.current = current;
|
|
11
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(current, previous);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
return snapshot;
|
|
15
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useResponsiveContext } from '../provider/ResponsiveContext';
|
|
4
|
+
import { useViewportObserver } from './useViewportObserver';
|
|
5
|
+
export var useViewport = function () {
|
|
6
|
+
var store = useResponsiveContext().store;
|
|
7
|
+
var _a = __read(useState(function () { return store.snapshot.viewport; }), 2), viewport = _a[0], setViewport = _a[1];
|
|
8
|
+
useViewportObserver(function (current) {
|
|
9
|
+
setViewport(current);
|
|
10
|
+
});
|
|
11
|
+
return viewport;
|
|
12
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEventBusEvents } from "@ozen-ui/kit/useEventBusEvents";
|
|
2
|
+
import { useStoredValue } from "@ozen-ui/kit/useStoredValue";
|
|
3
|
+
import { useResponsiveContext } from '../provider/ResponsiveContext';
|
|
4
|
+
export var useViewportObserver = function (onChange) {
|
|
5
|
+
var store = useResponsiveContext().store;
|
|
6
|
+
var viewport = useStoredValue(function () { return store.snapshot.viewport; });
|
|
7
|
+
useEventBusEvents(store.eventBus, {
|
|
8
|
+
viewportChange: function (_a) {
|
|
9
|
+
var previous = _a.previous, current = _a.current;
|
|
10
|
+
viewport.current = current.viewport;
|
|
11
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(current.viewport, previous.viewport);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
return viewport;
|
|
15
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './fabric';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useContext, createContext } from 'react';
|
|
2
|
+
import { isDev } from '../constants';
|
|
3
|
+
// ToDo: сделать на стандартных брейкпоинтах ozen
|
|
4
|
+
export var AutocompleteBaseContextDefaultValue = null;
|
|
5
|
+
export var ResponsiveContext = createContext(AutocompleteBaseContextDefaultValue);
|
|
6
|
+
export var useResponsiveContext = function () {
|
|
7
|
+
return useContext(ResponsiveContext);
|
|
8
|
+
};
|
|
9
|
+
// Именованный провайдер
|
|
10
|
+
if (isDev) {
|
|
11
|
+
ResponsiveContext.displayName = 'ResponsiveContext';
|
|
12
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React, { useEffect, useMemo } from 'react';
|
|
2
|
+
import { useStoredValue } from "@ozen-ui/kit/useStoredValue";
|
|
3
|
+
import { ResponsiveStore } from '../store';
|
|
4
|
+
import { ResponsiveContext } from './ResponsiveContext';
|
|
5
|
+
export var ResponsiveProvider = function (_a) {
|
|
6
|
+
var scope = _a.scope, children = _a.children;
|
|
7
|
+
var store = useStoredValue(function () { return new ResponsiveStore(scope); });
|
|
8
|
+
var memoizedContextValue = useMemo(function () { return ({
|
|
9
|
+
store: store.current,
|
|
10
|
+
}); }, [store]);
|
|
11
|
+
useEffect(function () {
|
|
12
|
+
var currentStore = store.current;
|
|
13
|
+
currentStore.mount();
|
|
14
|
+
return function () {
|
|
15
|
+
currentStore.unmount();
|
|
16
|
+
};
|
|
17
|
+
}, []);
|
|
18
|
+
return (React.createElement(ResponsiveContext.Provider, { value: memoizedContextValue }, children));
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { EventBus } from "@ozen-ui/kit/utils";
|
|
2
|
+
import { userAgentParser } from '../user-agent';
|
|
3
|
+
import { getBreakpointState, getOrientationState, getOSState, getTypeState, } from './utils';
|
|
4
|
+
var ResponsiveStore = /** @class */ (function () {
|
|
5
|
+
function ResponsiveStore(scope) {
|
|
6
|
+
this.eventBus = new EventBus();
|
|
7
|
+
this.raf = 0;
|
|
8
|
+
this.cleanup = null;
|
|
9
|
+
this.scope = scope;
|
|
10
|
+
this.snapshot = this.getSnapshot();
|
|
11
|
+
}
|
|
12
|
+
ResponsiveStore.prototype.getSnapshot = function () {
|
|
13
|
+
var viewport = {
|
|
14
|
+
width: window.innerWidth,
|
|
15
|
+
height: window.innerHeight,
|
|
16
|
+
};
|
|
17
|
+
var deviceType = userAgentParser.deviceType, OSName = userAgentParser.OSName;
|
|
18
|
+
var orientation = getOrientationState(viewport);
|
|
19
|
+
var size = getBreakpointState(this.scope, viewport.width);
|
|
20
|
+
var type = getTypeState(this.scope, deviceType);
|
|
21
|
+
var os = getOSState(this.scope, OSName);
|
|
22
|
+
return {
|
|
23
|
+
viewport: viewport,
|
|
24
|
+
type: type,
|
|
25
|
+
os: os,
|
|
26
|
+
size: size,
|
|
27
|
+
orientation: orientation,
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
ResponsiveStore.prototype.mount = function () {
|
|
31
|
+
var _this = this;
|
|
32
|
+
var onResize = function () { return _this.schedule(); };
|
|
33
|
+
window.addEventListener('resize', onResize, { passive: true });
|
|
34
|
+
window.addEventListener('orientationchange', onResize, { passive: true });
|
|
35
|
+
this.cleanup = function () {
|
|
36
|
+
window.removeEventListener('resize', onResize);
|
|
37
|
+
window.removeEventListener('orientationchange', onResize);
|
|
38
|
+
if (_this.raf) {
|
|
39
|
+
window.cancelAnimationFrame(_this.raf);
|
|
40
|
+
}
|
|
41
|
+
_this.raf = 0;
|
|
42
|
+
};
|
|
43
|
+
this.snapshot = this.getSnapshot();
|
|
44
|
+
};
|
|
45
|
+
ResponsiveStore.prototype.unmount = function () {
|
|
46
|
+
var _a;
|
|
47
|
+
(_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
48
|
+
this.cleanup = null;
|
|
49
|
+
};
|
|
50
|
+
ResponsiveStore.prototype.notify = function () {
|
|
51
|
+
var _this = this;
|
|
52
|
+
this.raf = 0;
|
|
53
|
+
userAgentParser.update();
|
|
54
|
+
var next = this.getSnapshot();
|
|
55
|
+
var events = [];
|
|
56
|
+
if (next.orientation.current !== this.snapshot.orientation.current) {
|
|
57
|
+
events.push('orientationChange');
|
|
58
|
+
}
|
|
59
|
+
if (next.size.current !== this.snapshot.size.current) {
|
|
60
|
+
events.push('breakpointChange');
|
|
61
|
+
}
|
|
62
|
+
if (next.os.current !== this.snapshot.os.current) {
|
|
63
|
+
events.push('osChange');
|
|
64
|
+
}
|
|
65
|
+
if (next.type.current !== this.snapshot.type.current) {
|
|
66
|
+
events.push('typeChange');
|
|
67
|
+
}
|
|
68
|
+
if (next.viewport.width !== this.snapshot.viewport.width ||
|
|
69
|
+
next.viewport.height !== this.snapshot.viewport.height) {
|
|
70
|
+
events.push('viewportChange');
|
|
71
|
+
}
|
|
72
|
+
if (events.length > 0) {
|
|
73
|
+
events.push('snapshotChange');
|
|
74
|
+
}
|
|
75
|
+
events.forEach(function (event) {
|
|
76
|
+
_this.eventBus.publish(event, {
|
|
77
|
+
previous: _this.snapshot,
|
|
78
|
+
current: next,
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
this.snapshot = next;
|
|
82
|
+
};
|
|
83
|
+
ResponsiveStore.prototype.schedule = function () {
|
|
84
|
+
var _this = this;
|
|
85
|
+
if (this.raf) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this.raf = window.requestAnimationFrame(function () { return _this.notify(); });
|
|
89
|
+
};
|
|
90
|
+
return ResponsiveStore;
|
|
91
|
+
}());
|
|
92
|
+
export { ResponsiveStore };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { capitalizeFirstLetter } from '@ozen-ui/kit/utils';
|
|
2
|
+
export var getTypeState = function (scope, current) {
|
|
3
|
+
var typeState = {
|
|
4
|
+
current: current,
|
|
5
|
+
};
|
|
6
|
+
Object.values(scope.typeVariant).forEach(function (deviceType) {
|
|
7
|
+
typeState["is".concat(capitalizeFirstLetter(deviceType))] =
|
|
8
|
+
deviceType === current;
|
|
9
|
+
});
|
|
10
|
+
return typeState;
|
|
11
|
+
};
|
|
12
|
+
export var getOrientationState = function (_a) {
|
|
13
|
+
var width = _a.width, height = _a.height;
|
|
14
|
+
var isVertical = width < height;
|
|
15
|
+
var isHorizontal = !isVertical;
|
|
16
|
+
return {
|
|
17
|
+
isHorizontal: isHorizontal,
|
|
18
|
+
isVertical: isVertical,
|
|
19
|
+
current: isVertical ? 'vertical' : 'horizontal',
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export var getBreakpointState = function (scope, width) {
|
|
23
|
+
var breakpointState = {};
|
|
24
|
+
var currentSizeIndex = 0;
|
|
25
|
+
for (var i = 0; i < scope.sizesAscending.length; i++) {
|
|
26
|
+
var size = scope.sizesAscending[i];
|
|
27
|
+
var breakpoint = scope.breakpoints[size];
|
|
28
|
+
if (i === 0 && width <= breakpoint) {
|
|
29
|
+
currentSizeIndex = i;
|
|
30
|
+
breakpointState.current = size;
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
if (width >= breakpoint) {
|
|
34
|
+
currentSizeIndex = i;
|
|
35
|
+
breakpointState.current = size;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
var writeIsKey = function (key, value) {
|
|
42
|
+
breakpointState[key] =
|
|
43
|
+
value;
|
|
44
|
+
};
|
|
45
|
+
scope.sizesAscending.forEach(function (deviceSize, index) {
|
|
46
|
+
writeIsKey("is".concat(deviceSize.toUpperCase()), currentSizeIndex === index);
|
|
47
|
+
writeIsKey("above".concat(deviceSize.toUpperCase()), currentSizeIndex > index);
|
|
48
|
+
writeIsKey("below".concat(deviceSize.toUpperCase()), currentSizeIndex < index);
|
|
49
|
+
writeIsKey("atOrAbove".concat(deviceSize.toUpperCase()), currentSizeIndex >= index);
|
|
50
|
+
writeIsKey("atOrBelow".concat(deviceSize.toUpperCase()), currentSizeIndex <= index);
|
|
51
|
+
});
|
|
52
|
+
return breakpointState;
|
|
53
|
+
};
|
|
54
|
+
export var getOSState = function (scope, current) {
|
|
55
|
+
var OSState = {
|
|
56
|
+
current: current,
|
|
57
|
+
};
|
|
58
|
+
Object.values(scope.osVariant).forEach(function (OS) {
|
|
59
|
+
OSState["is".concat(capitalizeFirstLetter(OS))] = OS === current;
|
|
60
|
+
});
|
|
61
|
+
return OSState;
|
|
62
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { isFunction } from '@ozen-ui/kit/utils';
|
|
3
|
+
import { useBreakpoint, useDeviceType } from '../../hooks';
|
|
4
|
+
import { useResponsiveContext } from '../../provider/ResponsiveContext';
|
|
5
|
+
import { resolveBreakpoints } from '../utils/utils';
|
|
6
|
+
export var ResponsiveNodes = function (_a) {
|
|
7
|
+
var _b;
|
|
8
|
+
var by = _a.by, fallback = _a.fallback;
|
|
9
|
+
var store = useResponsiveContext().store;
|
|
10
|
+
var breakpoint = useBreakpoint();
|
|
11
|
+
var type = useDeviceType();
|
|
12
|
+
var device = {
|
|
13
|
+
size: breakpoint.current,
|
|
14
|
+
type: type.current,
|
|
15
|
+
};
|
|
16
|
+
var Fallback = fallback !== null && fallback !== void 0 ? fallback : (function () { return null; });
|
|
17
|
+
var component = (_b = resolveBreakpoints(store.scope, by, device)) === null || _b === void 0 ? void 0 : _b.value;
|
|
18
|
+
if (!component) {
|
|
19
|
+
return React.createElement(Fallback, null);
|
|
20
|
+
}
|
|
21
|
+
if (isFunction(component)) {
|
|
22
|
+
return component();
|
|
23
|
+
}
|
|
24
|
+
return component;
|
|
25
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { isFunction } from '@ozen-ui/kit/utils';
|
|
4
|
+
import { useBreakpoint, useDeviceType } from '../../hooks';
|
|
5
|
+
import { useResponsiveContext } from '../../provider';
|
|
6
|
+
import { resolveBreakpoints } from '../utils';
|
|
7
|
+
export var ResponsiveProps = function (_a) {
|
|
8
|
+
var _b;
|
|
9
|
+
var component = _a.component, props = _a.props, sharedPropsProp = _a.sharedProps, fallback = _a.fallback;
|
|
10
|
+
var store = useResponsiveContext().store;
|
|
11
|
+
var breakpoint = useBreakpoint();
|
|
12
|
+
var type = useDeviceType();
|
|
13
|
+
var device = {
|
|
14
|
+
size: breakpoint.current,
|
|
15
|
+
type: type.current,
|
|
16
|
+
};
|
|
17
|
+
var Fallback = fallback !== null && fallback !== void 0 ? fallback : (function () { return null; });
|
|
18
|
+
var rawNeededProps = (_b = resolveBreakpoints(store.scope, props, device)) === null || _b === void 0 ? void 0 : _b.value;
|
|
19
|
+
if (!rawNeededProps) {
|
|
20
|
+
return React.createElement(Fallback, null);
|
|
21
|
+
}
|
|
22
|
+
var sharedProps = (function () {
|
|
23
|
+
if (!sharedPropsProp) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
if (isFunction(sharedPropsProp)) {
|
|
27
|
+
return sharedPropsProp();
|
|
28
|
+
}
|
|
29
|
+
return sharedPropsProp;
|
|
30
|
+
})();
|
|
31
|
+
var neededProps = isFunction(rawNeededProps)
|
|
32
|
+
? rawNeededProps()
|
|
33
|
+
: rawNeededProps;
|
|
34
|
+
var Component = component;
|
|
35
|
+
return React.createElement(Component, __assign({}, sharedProps, neededProps));
|
|
36
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|