@nocobase/plugin-mobile-client 0.10.0-alpha.2

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.
Files changed (183) hide show
  1. package/client.d.ts +4 -0
  2. package/client.js +30 -0
  3. package/docs/en-US/index.md +7 -0
  4. package/docs/en-US/installation.md +13 -0
  5. package/docs/en-US/tabs.json +14 -0
  6. package/docs/en-US/usage.md +1 -0
  7. package/docs/zh-CN/index.md +7 -0
  8. package/docs/zh-CN/installation.md +13 -0
  9. package/docs/zh-CN/tabs.json +14 -0
  10. package/docs/zh-CN/usage.md +2 -0
  11. package/lib/client/configuration/App.d.ts +2 -0
  12. package/lib/client/configuration/App.js +40 -0
  13. package/lib/client/configuration/Interface.d.ts +2 -0
  14. package/lib/client/configuration/Interface.js +20 -0
  15. package/lib/client/configuration/index.d.ts +2 -0
  16. package/lib/client/configuration/index.js +27 -0
  17. package/lib/client/core/bridge/index.d.ts +2 -0
  18. package/lib/client/core/bridge/index.js +17 -0
  19. package/lib/client/core/bridge/injects.d.ts +13 -0
  20. package/lib/client/core/bridge/injects.js +13 -0
  21. package/lib/client/core/bridge/native-call.d.ts +1 -0
  22. package/lib/client/core/bridge/native-call.js +24 -0
  23. package/lib/client/core/index.d.ts +3 -0
  24. package/lib/client/core/index.js +46 -0
  25. package/lib/client/core/schema/common/index.d.ts +1 -0
  26. package/lib/client/core/schema/common/index.js +16 -0
  27. package/lib/client/core/schema/common/page.d.ts +16 -0
  28. package/lib/client/core/schema/common/page.js +23 -0
  29. package/lib/client/core/schema/components/container/Container.Designer.d.ts +2 -0
  30. package/lib/client/core/schema/components/container/Container.Designer.js +138 -0
  31. package/lib/client/core/schema/components/container/Container.d.ts +5 -0
  32. package/lib/client/core/schema/components/container/Container.js +150 -0
  33. package/lib/client/core/schema/components/container/index.d.ts +1 -0
  34. package/lib/client/core/schema/components/container/index.js +16 -0
  35. package/lib/client/core/schema/components/header/Header.Designer.d.ts +2 -0
  36. package/lib/client/core/schema/components/header/Header.Designer.js +72 -0
  37. package/lib/client/core/schema/components/header/Header.d.ts +10 -0
  38. package/lib/client/core/schema/components/header/Header.js +85 -0
  39. package/lib/client/core/schema/components/header/index.d.ts +1 -0
  40. package/lib/client/core/schema/components/header/index.js +16 -0
  41. package/lib/client/core/schema/components/index.d.ts +6 -0
  42. package/lib/client/core/schema/components/index.js +71 -0
  43. package/lib/client/core/schema/components/menu/Menu.Designer.d.ts +2 -0
  44. package/lib/client/core/schema/components/menu/Menu.Designer.js +81 -0
  45. package/lib/client/core/schema/components/menu/Menu.Item.d.ts +6 -0
  46. package/lib/client/core/schema/components/menu/Menu.Item.js +129 -0
  47. package/lib/client/core/schema/components/menu/Menu.d.ts +7 -0
  48. package/lib/client/core/schema/components/menu/Menu.js +88 -0
  49. package/lib/client/core/schema/components/menu/MenuBlockInitializer.d.ts +2 -0
  50. package/lib/client/core/schema/components/menu/MenuBlockInitializer.js +51 -0
  51. package/lib/client/core/schema/components/menu/index.d.ts +2 -0
  52. package/lib/client/core/schema/components/menu/index.js +27 -0
  53. package/lib/client/core/schema/components/menu/schema.d.ts +17 -0
  54. package/lib/client/core/schema/components/menu/schema.js +24 -0
  55. package/lib/client/core/schema/components/page/Page.Designer.d.ts +2 -0
  56. package/lib/client/core/schema/components/page/Page.Designer.js +160 -0
  57. package/lib/client/core/schema/components/page/Page.d.ts +5 -0
  58. package/lib/client/core/schema/components/page/Page.js +157 -0
  59. package/lib/client/core/schema/components/page/index.d.ts +1 -0
  60. package/lib/client/core/schema/components/page/index.js +16 -0
  61. package/lib/client/core/schema/components/settings/Settings.Designer.d.ts +2 -0
  62. package/lib/client/core/schema/components/settings/Settings.Designer.js +37 -0
  63. package/lib/client/core/schema/components/settings/Settings.d.ts +6 -0
  64. package/lib/client/core/schema/components/settings/Settings.js +43 -0
  65. package/lib/client/core/schema/components/settings/SettingsBlockInitializer.d.ts +2 -0
  66. package/lib/client/core/schema/components/settings/SettingsBlockInitializer.js +51 -0
  67. package/lib/client/core/schema/components/settings/index.d.ts +2 -0
  68. package/lib/client/core/schema/components/settings/index.js +27 -0
  69. package/lib/client/core/schema/components/tab-bar/TabBar.Item.d.ts +6 -0
  70. package/lib/client/core/schema/components/tab-bar/TabBar.Item.js +80 -0
  71. package/lib/client/core/schema/components/tab-bar/TabBar.d.ts +6 -0
  72. package/lib/client/core/schema/components/tab-bar/TabBar.js +138 -0
  73. package/lib/client/core/schema/components/tab-bar/index.d.ts +1 -0
  74. package/lib/client/core/schema/components/tab-bar/index.js +16 -0
  75. package/lib/client/core/schema/components/tab-bar/schema.d.ts +18 -0
  76. package/lib/client/core/schema/components/tab-bar/schema.js +25 -0
  77. package/lib/client/core/schema/helpers/index.d.ts +67 -0
  78. package/lib/client/core/schema/helpers/index.js +49 -0
  79. package/lib/client/core/schema/hooks/index.d.ts +1 -0
  80. package/lib/client/core/schema/hooks/index.js +16 -0
  81. package/lib/client/core/schema/hooks/useSchemaPatch.d.ts +3 -0
  82. package/lib/client/core/schema/hooks/useSchemaPatch.js +61 -0
  83. package/lib/client/core/schema/index.d.ts +3 -0
  84. package/lib/client/core/schema/index.js +38 -0
  85. package/lib/client/core/schema/initializers/BlockInitializers.d.ts +147 -0
  86. package/lib/client/core/schema/initializers/BlockInitializers.js +79 -0
  87. package/lib/client/core/schema/initializers/index.d.ts +1 -0
  88. package/lib/client/core/schema/initializers/index.js +16 -0
  89. package/lib/client/core/schema/scopes/grid-card.d.ts +15 -0
  90. package/lib/client/core/schema/scopes/grid-card.js +45 -0
  91. package/lib/client/core/schema/scopes/index.d.ts +1 -0
  92. package/lib/client/core/schema/scopes/index.js +16 -0
  93. package/lib/client/devices/iOS6.d.ts +5 -0
  94. package/lib/client/devices/iOS6.js +32 -0
  95. package/lib/client/devices/index.d.ts +2 -0
  96. package/lib/client/devices/index.js +43 -0
  97. package/lib/client/index.d.ts +3 -0
  98. package/lib/client/index.js +47 -0
  99. package/lib/client/locale/en-US.d.ts +2 -0
  100. package/lib/client/locale/en-US.js +9 -0
  101. package/lib/client/locale/index.d.ts +4 -0
  102. package/lib/client/locale/index.js +43 -0
  103. package/lib/client/locale/zh-CN.d.ts +32 -0
  104. package/lib/client/locale/zh-CN.js +39 -0
  105. package/lib/client/router/Application.d.ts +3 -0
  106. package/lib/client/router/Application.js +129 -0
  107. package/lib/client/router/InterfaceProvider.d.ts +4 -0
  108. package/lib/client/router/InterfaceProvider.js +29 -0
  109. package/lib/client/router/InterfaceRouter.d.ts +6 -0
  110. package/lib/client/router/InterfaceRouter.js +58 -0
  111. package/lib/client/router/RouteSwitchProvider.d.ts +2 -0
  112. package/lib/client/router/RouteSwitchProvider.js +59 -0
  113. package/lib/client/router/index.d.ts +2 -0
  114. package/lib/client/router/index.js +27 -0
  115. package/lib/index.d.ts +1 -0
  116. package/lib/index.js +13 -0
  117. package/lib/server/index.d.ts +1 -0
  118. package/lib/server/index.js +13 -0
  119. package/lib/server/plugin.d.ts +10 -0
  120. package/lib/server/plugin.js +57 -0
  121. package/lib/server/routes.d.ts +34 -0
  122. package/lib/server/routes.js +41 -0
  123. package/package.json +28 -0
  124. package/server.d.ts +4 -0
  125. package/server.js +30 -0
  126. package/src/client/configuration/App.tsx +23 -0
  127. package/src/client/configuration/Interface.tsx +11 -0
  128. package/src/client/configuration/index.ts +2 -0
  129. package/src/client/core/bridge/index.ts +2 -0
  130. package/src/client/core/bridge/injects.ts +14 -0
  131. package/src/client/core/bridge/native-call.ts +23 -0
  132. package/src/client/core/index.tsx +45 -0
  133. package/src/client/core/schema/common/index.ts +1 -0
  134. package/src/client/core/schema/common/page.ts +16 -0
  135. package/src/client/core/schema/components/container/Container.Designer.tsx +88 -0
  136. package/src/client/core/schema/components/container/Container.tsx +135 -0
  137. package/src/client/core/schema/components/container/index.ts +1 -0
  138. package/src/client/core/schema/components/header/Header.Designer.tsx +39 -0
  139. package/src/client/core/schema/components/header/Header.tsx +49 -0
  140. package/src/client/core/schema/components/header/index.ts +1 -0
  141. package/src/client/core/schema/components/index.ts +6 -0
  142. package/src/client/core/schema/components/menu/Menu.Designer.tsx +46 -0
  143. package/src/client/core/schema/components/menu/Menu.Item.tsx +97 -0
  144. package/src/client/core/schema/components/menu/Menu.tsx +82 -0
  145. package/src/client/core/schema/components/menu/MenuBlockInitializer.tsx +20 -0
  146. package/src/client/core/schema/components/menu/index.ts +2 -0
  147. package/src/client/core/schema/components/menu/schema.ts +17 -0
  148. package/src/client/core/schema/components/page/Page.Designer.tsx +106 -0
  149. package/src/client/core/schema/components/page/Page.tsx +132 -0
  150. package/src/client/core/schema/components/page/index.ts +1 -0
  151. package/src/client/core/schema/components/settings/Settings.Designer.tsx +22 -0
  152. package/src/client/core/schema/components/settings/Settings.tsx +25 -0
  153. package/src/client/core/schema/components/settings/SettingsBlockInitializer.tsx +20 -0
  154. package/src/client/core/schema/components/settings/index.ts +2 -0
  155. package/src/client/core/schema/components/tab-bar/TabBar.Item.tsx +67 -0
  156. package/src/client/core/schema/components/tab-bar/TabBar.tsx +108 -0
  157. package/src/client/core/schema/components/tab-bar/index.ts +1 -0
  158. package/src/client/core/schema/components/tab-bar/schema.ts +18 -0
  159. package/src/client/core/schema/helpers/index.ts +38 -0
  160. package/src/client/core/schema/hooks/index.ts +1 -0
  161. package/src/client/core/schema/hooks/useSchemaPatch.ts +24 -0
  162. package/src/client/core/schema/index.ts +3 -0
  163. package/src/client/core/schema/initializers/BlockInitializers.ts +81 -0
  164. package/src/client/core/schema/initializers/index.ts +1 -0
  165. package/src/client/core/schema/scopes/grid-card.ts +35 -0
  166. package/src/client/core/schema/scopes/index.ts +1 -0
  167. package/src/client/devices/iOS6.tsx +24 -0
  168. package/src/client/devices/index.tsx +27 -0
  169. package/src/client/index.tsx +33 -0
  170. package/src/client/locale/en-US.ts +5 -0
  171. package/src/client/locale/index.ts +23 -0
  172. package/src/client/locale/zh-CN.ts +33 -0
  173. package/src/client/router/Application.tsx +114 -0
  174. package/src/client/router/InterfaceProvider.tsx +11 -0
  175. package/src/client/router/InterfaceRouter.tsx +48 -0
  176. package/src/client/router/RouteSwitchProvider.tsx +31 -0
  177. package/src/client/router/index.ts +2 -0
  178. package/src/index.ts +1 -0
  179. package/src/server/collections/.gitkeep +0 -0
  180. package/src/server/index.ts +1 -0
  181. package/src/server/plugin.ts +25 -0
  182. package/src/server/routes.ts +38 -0
  183. package/types.d.ts +0 -0
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ function _react() {
8
+ const data = _interopRequireWildcard(require("react"));
9
+ _react = function _react() {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _reactRouterDom() {
15
+ const data = require("react-router-dom");
16
+ _reactRouterDom = function _reactRouterDom() {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _client() {
22
+ const data = require("@nocobase/client");
23
+ _client = function _client() {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ function _css() {
29
+ const data = require("@emotion/css");
30
+ _css = function _css() {
31
+ return data;
32
+ };
33
+ return data;
34
+ }
35
+ var _InterfaceProvider = require("./InterfaceProvider");
36
+ var _core = require("../core");
37
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
40
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
42
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
43
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
44
+ const commonCSSVariables = (0, _css().css)`
45
+ --nb-spacing: 14px;
46
+ `;
47
+ const commonCSSOverride = (0, _css().css)``;
48
+ const commonDesignerCSS = (0, _css().css)`
49
+ --nb-designer-top: 2px;
50
+ --nb-designer-right: 2px;
51
+ .nb-sortable-designer:hover {
52
+ position: relative;
53
+ > .general-schema-designer {
54
+ display: block;
55
+ }
56
+ }
57
+ .general-schema-designer {
58
+ position: absolute;
59
+ z-index: 999;
60
+ top: 0;
61
+ bottom: 0;
62
+ left: 0;
63
+ right: 0;
64
+ display: none;
65
+ border: 0;
66
+ pointer-events: none;
67
+ > .general-schema-designer-icons {
68
+ position: absolute;
69
+ top: var(--nb-designer-top);
70
+ right: var(--nb-designer-right);
71
+ line-height: 16px;
72
+ pointer-events: all;
73
+ .ant-space-item {
74
+ background-color: #f18b62;
75
+ color: #fff;
76
+ line-height: 16px;
77
+ width: 16px;
78
+ padding-left: 1px;
79
+ }
80
+ }
81
+ }
82
+ `;
83
+ const drawerProps = {
84
+ getContainer: '.nb-mobile-application',
85
+ width: '90%',
86
+ style: {
87
+ position: 'absolute'
88
+ }
89
+ };
90
+ const modalProps = _objectSpread(_objectSpread({}, drawerProps), {}, {
91
+ style: {
92
+ maxWidth: 'calc(100% - 16px)'
93
+ },
94
+ maskStyle: {
95
+ position: 'absolute'
96
+ },
97
+ wrapClassName: (0, _css().css)`
98
+ position: absolute;
99
+ `
100
+ });
101
+ const MApplication = props => {
102
+ const route = (0, _client().useRoute)();
103
+ const params = (0, _reactRouterDom().useParams)();
104
+ const interfaceContext = (0, _InterfaceProvider.useInterfaceContext)();
105
+ const Provider = (0, _react().useMemo)(() => {
106
+ return interfaceContext ? _react().default.Fragment : _client().AdminProvider;
107
+ }, [interfaceContext]);
108
+ (0, _client().useViewport)();
109
+ return _react().default.createElement(Provider, null, _react().default.createElement(_core.MobileCore, null, _react().default.createElement(_client().ActionContextProvider, {
110
+ modalProps: modalProps,
111
+ drawerProps: drawerProps
112
+ }, _react().default.createElement("div", {
113
+ className: (0, _css().cx)('nb-mobile-application', commonDesignerCSS, commonCSSVariables, commonCSSOverride, (0, _css().css)`
114
+ display: flex;
115
+ flex-direction: column;
116
+ width: 100%;
117
+ height: 100%;
118
+ position: relative;
119
+ overflow: hidden;
120
+ `)
121
+ }, params.name && !params.name.startsWith('tab_') ? _react().default.createElement(_reactRouterDom().Outlet, null) : _react().default.createElement(_client().RemoteSchemaComponent, {
122
+ key: route.uiSchemaUid,
123
+ uid: route.uiSchemaUid
124
+ }, props.children), _react().default.createElement("div", {
125
+ id: "nb-position-container"
126
+ })))));
127
+ };
128
+ var _default = MApplication;
129
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export declare const InterfaceContext: React.Context<any>;
3
+ export declare const InterfaceProvider: (props: any) => React.JSX.Element;
4
+ export declare const useInterfaceContext: () => any;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useInterfaceContext = exports.InterfaceProvider = exports.InterfaceContext = void 0;
7
+ function _react() {
8
+ const data = _interopRequireWildcard(require("react"));
9
+ _react = function _react() {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ const InterfaceContext = _react().default.createContext(null);
17
+ exports.InterfaceContext = InterfaceContext;
18
+ const InterfaceProvider = props => {
19
+ return _react().default.createElement(InterfaceContext.Provider, {
20
+ value: {
21
+ interface: true
22
+ }
23
+ }, props.children);
24
+ };
25
+ exports.InterfaceProvider = InterfaceProvider;
26
+ const useInterfaceContext = () => {
27
+ return (0, _react().useContext)(InterfaceContext);
28
+ };
29
+ exports.useInterfaceContext = useInterfaceContext;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ interface InterfaceRouterProps {
3
+ [key: string]: any;
4
+ }
5
+ export declare const InterfaceRouter: React.FC<InterfaceRouterProps>;
6
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.InterfaceRouter = void 0;
7
+ function _client() {
8
+ const data = require("@nocobase/client");
9
+ _client = function _client() {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _react() {
15
+ const data = _interopRequireWildcard(require("react"));
16
+ _react = function _react() {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _reactRouterDom() {
22
+ const data = require("react-router-dom");
23
+ _reactRouterDom = function _reactRouterDom() {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ var _InterfaceProvider = require("./InterfaceProvider");
29
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+ function RouteCleaner(props) {
32
+ return _react().default.createElement(_reactRouterDom().UNSAFE_RouteContext.Provider, {
33
+ value: {
34
+ outlet: null,
35
+ matches: [],
36
+ isDataRoute: false
37
+ }
38
+ }, _react().default.createElement(_reactRouterDom().UNSAFE_LocationContext.Provider, {
39
+ value: null
40
+ }, props.children));
41
+ }
42
+ const InterfaceRouter = props => {
43
+ const allRoutes = (0, _client().useRoutes)();
44
+ const routes = (0, _react().useMemo)(() => allRoutes.reduce((nextRoutes, item) => {
45
+ if (item['component'] === 'MApplication') {
46
+ nextRoutes.push(item, {
47
+ type: 'redirect',
48
+ to: '/mobile',
49
+ from: '/'
50
+ });
51
+ }
52
+ return nextRoutes;
53
+ }, []), [allRoutes]);
54
+ return _react().default.createElement(RouteCleaner, null, _react().default.createElement(_reactRouterDom().HashRouter, null, _react().default.createElement(_InterfaceProvider.InterfaceProvider, null, _react().default.createElement(_client().RouteSwitch, {
55
+ routes: routes
56
+ }))));
57
+ };
58
+ exports.InterfaceRouter = InterfaceRouter;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const RouterSwitchProvider: (props: any) => React.JSX.Element;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RouterSwitchProvider = void 0;
7
+ function _client() {
8
+ const data = require("@nocobase/client");
9
+ _client = function _client() {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _react() {
15
+ const data = _interopRequireWildcard(require("react"));
16
+ _react = function _react() {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _reactRouterDom() {
22
+ const data = require("react-router-dom");
23
+ _reactRouterDom = function _reactRouterDom() {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ var _bridge = require("../core/bridge");
29
+ var _Application = _interopRequireDefault(require("./Application"));
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
36
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
37
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
38
+ const RouterSwitchProvider = props => {
39
+ const _useRouteSwitchContex = (0, _client().useRouteSwitchContext)(),
40
+ routes = _useRouteSwitchContex.routes,
41
+ components = _useRouteSwitchContex.components;
42
+ // redirect to mobile
43
+ const location = (0, _reactRouterDom().useLocation)();
44
+ const navigate = (0, _reactRouterDom().useNavigate)();
45
+ (0, _react().useEffect)(() => {
46
+ if (_bridge.isJSBridge) {
47
+ if (location.pathname.includes('/admin')) {
48
+ navigate('/mobile');
49
+ }
50
+ }
51
+ }, [location.pathname, navigate]);
52
+ return _react().default.createElement(_client().RouteSwitchProvider, {
53
+ routes: routes,
54
+ components: _objectSpread(_objectSpread({}, components), {}, {
55
+ MApplication: _Application.default
56
+ })
57
+ }, props.children);
58
+ };
59
+ exports.RouterSwitchProvider = RouterSwitchProvider;
@@ -0,0 +1,2 @@
1
+ export * from './InterfaceRouter';
2
+ export * from './RouteSwitchProvider';
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _InterfaceRouter = require("./InterfaceRouter");
7
+ Object.keys(_InterfaceRouter).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _InterfaceRouter[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _InterfaceRouter[key];
14
+ }
15
+ });
16
+ });
17
+ var _RouteSwitchProvider = require("./RouteSwitchProvider");
18
+ Object.keys(_RouteSwitchProvider).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _RouteSwitchProvider[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _RouteSwitchProvider[key];
25
+ }
26
+ });
27
+ });
package/lib/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { default } from './server';
package/lib/index.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _server.default;
10
+ }
11
+ });
12
+ var _server = _interopRequireDefault(require("./server"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1 @@
1
+ export { default } from './plugin';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _plugin.default;
10
+ }
11
+ });
12
+ var _plugin = _interopRequireDefault(require("./plugin"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,10 @@
1
+ import { Plugin } from '@nocobase/server';
2
+ export declare class MobileClientPlugin extends Plugin {
3
+ afterAdd(): void;
4
+ load(): Promise<void>;
5
+ install(): Promise<void>;
6
+ afterEnable(): Promise<void>;
7
+ afterDisable(): Promise<void>;
8
+ remove(): Promise<void>;
9
+ }
10
+ export default MobileClientPlugin;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.MobileClientPlugin = void 0;
7
+ function _server() {
8
+ const data = require("@nocobase/server");
9
+ _server = function _server() {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ var _routes = require("./routes");
15
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
19
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
20
+ class MobileClientPlugin extends _server().Plugin {
21
+ afterAdd() {}
22
+ load() {
23
+ return _asyncToGenerator(function* () {})();
24
+ }
25
+ install() {
26
+ var _this = this;
27
+ return _asyncToGenerator(function* () {
28
+ const repository = _this.app.db.getRepository('uiRoutes');
29
+ var _iterator = _createForOfIteratorHelper(_routes.routes),
30
+ _step;
31
+ try {
32
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
33
+ const values = _step.value;
34
+ yield repository.create({
35
+ values
36
+ });
37
+ }
38
+ } catch (err) {
39
+ _iterator.e(err);
40
+ } finally {
41
+ _iterator.f();
42
+ }
43
+ })();
44
+ }
45
+ afterEnable() {
46
+ return _asyncToGenerator(function* () {})();
47
+ }
48
+ afterDisable() {
49
+ return _asyncToGenerator(function* () {})();
50
+ }
51
+ remove() {
52
+ return _asyncToGenerator(function* () {})();
53
+ }
54
+ }
55
+ exports.MobileClientPlugin = MobileClientPlugin;
56
+ var _default = MobileClientPlugin;
57
+ exports.default = _default;
@@ -0,0 +1,34 @@
1
+ export declare const routes: {
2
+ type: string;
3
+ path: string;
4
+ component: string;
5
+ uiSchema: {
6
+ type: string;
7
+ 'x-component': string;
8
+ 'x-designer': string;
9
+ 'x-component-props': {};
10
+ properties: {
11
+ page: {
12
+ type: string;
13
+ 'x-component': string;
14
+ 'x-designer': string;
15
+ 'x-component-props': {};
16
+ properties: {
17
+ grid: {
18
+ type: string;
19
+ 'x-component': string;
20
+ 'x-initializer': string;
21
+ 'x-component-props': {
22
+ showDivider: boolean;
23
+ };
24
+ };
25
+ };
26
+ };
27
+ };
28
+ };
29
+ routes: {
30
+ type: string;
31
+ path: string;
32
+ component: string;
33
+ }[];
34
+ }[];
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.routes = void 0;
7
+ const routes = [{
8
+ type: 'route',
9
+ path: '/mobile/:name(.+)?',
10
+ component: 'MApplication',
11
+ uiSchema: {
12
+ type: 'void',
13
+ 'x-component': 'MContainer',
14
+ 'x-designer': 'MContainer.Designer',
15
+ 'x-component-props': {},
16
+ properties: {
17
+ page: {
18
+ type: 'void',
19
+ 'x-component': 'MPage',
20
+ 'x-designer': 'MPage.Designer',
21
+ 'x-component-props': {},
22
+ properties: {
23
+ grid: {
24
+ type: 'void',
25
+ 'x-component': 'Grid',
26
+ 'x-initializer': 'MBlockInitializers',
27
+ 'x-component-props': {
28
+ showDivider: false
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ },
35
+ routes: [{
36
+ type: 'route',
37
+ path: '',
38
+ component: 'RouteSchemaComponent'
39
+ }]
40
+ }];
41
+ exports.routes = routes;
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@nocobase/plugin-mobile-client",
3
+ "version": "0.10.0-alpha.2",
4
+ "main": "lib/server/index.js",
5
+ "displayName": "Mobile-client",
6
+ "displayName.zh-CN": "移动端",
7
+ "description": "Provide mobile client access",
8
+ "description.zh-CN": "提供移动端访问",
9
+ "devDependencies": {
10
+ "@emotion/css": "^11.7.1",
11
+ "@formily/antd": "2.2.24",
12
+ "@formily/react": "2.2.24",
13
+ "@formily/shared": "2.2.24",
14
+ "@nocobase/server": "0.10.0-alpha.2",
15
+ "@nocobase/test": "0.10.0-alpha.2",
16
+ "@types/react": "^17.0.0",
17
+ "@types/react-dom": "^17.0.0",
18
+ "antd": "^4.24.8",
19
+ "classnames": "^2.3.1",
20
+ "react": "^18.0.0",
21
+ "react-dom": "^18.0.0",
22
+ "react-router-dom": "^6.11.2"
23
+ },
24
+ "dependencies": {
25
+ "antd-mobile": "^5.29.1"
26
+ },
27
+ "gitHead": "85028ae1733fcbd46ecd5d291dacbdc175f7f073"
28
+ }
package/server.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ // @ts-nocheck
2
+ export * from './lib/server';
3
+ export { default } from './lib/server';
4
+
package/server.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
4
+
5
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
6
+
7
+ var _index = _interopRequireWildcard(require("./lib/server"));
8
+
9
+ Object.defineProperty(exports, "__esModule", {
10
+ value: true
11
+ });
12
+ var _exportNames = {};
13
+ Object.defineProperty(exports, "default", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _index.default;
17
+ }
18
+ });
19
+
20
+ Object.keys(_index).forEach(function (key) {
21
+ if (key === "default" || key === "__esModule") return;
22
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
23
+ if (key in exports && exports[key] === _index[key]) return;
24
+ Object.defineProperty(exports, key, {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _index[key];
28
+ }
29
+ });
30
+ });
@@ -0,0 +1,23 @@
1
+ import { Card, Form, Input } from 'antd';
2
+ import React from 'react';
3
+ import { useTranslation } from '../locale';
4
+
5
+ export const AppConfiguration = () => {
6
+ const { t } = useTranslation();
7
+ return (
8
+ <Card
9
+ style={{
10
+ minHeight: '600px',
11
+ }}
12
+ >
13
+ <Form layout="vertical">
14
+ <Form.Item
15
+ tooltip={`${t('The full address is')} ${window.origin}/mobile`}
16
+ label={t('Mobile client access address')}
17
+ >
18
+ <Input value="/mobile" disabled />
19
+ </Form.Item>
20
+ </Form>
21
+ </Card>
22
+ );
23
+ };
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { InterfaceRouter } from '../router';
3
+ import { MobileDevice } from '../devices';
4
+
5
+ export const InterfaceConfiguration = () => {
6
+ return (
7
+ <MobileDevice>
8
+ <InterfaceRouter></InterfaceRouter>
9
+ </MobileDevice>
10
+ );
11
+ };
@@ -0,0 +1,2 @@
1
+ export * from './App';
2
+ export * from './Interface';
@@ -0,0 +1,2 @@
1
+ import './native-call';
2
+ export * from './injects';
@@ -0,0 +1,14 @@
1
+ interface InvokeFunction {
2
+ (params: { action: 'scan' }, cb: (data: { url: string }) => void): void;
3
+ (params: { action: 'moveTaskToBack' }, cb?: () => void): void;
4
+ }
5
+
6
+ const JsBridge = (window as any).JsBridge as {
7
+ invoke: InvokeFunction;
8
+ };
9
+
10
+ export const invoke: InvokeFunction = (params, cb) => {
11
+ JsBridge.invoke(params, cb);
12
+ };
13
+
14
+ export const isJSBridge = !!JsBridge;