@nocobase/client 0.8.1-alpha.4 → 0.9.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 (195) hide show
  1. package/es/acl/ACLProvider.d.ts +16 -2
  2. package/es/acl/ACLProvider.js +271 -100
  3. package/es/acl/Configuration/ConfigureCenter.d.ts +2 -0
  4. package/es/acl/Configuration/ConfigureCenter.js +254 -0
  5. package/es/acl/Configuration/MenuConfigure.js +2 -2
  6. package/es/acl/Configuration/PermisionProvider.d.ts +4 -0
  7. package/es/acl/Configuration/PermisionProvider.js +132 -0
  8. package/es/acl/Configuration/RoleConfigure.js +98 -23
  9. package/es/acl/Configuration/RoleTable.d.ts +1 -1
  10. package/es/acl/Configuration/RoleTable.js +6 -3
  11. package/es/acl/Configuration/RolesResourcesActions.js +2 -2
  12. package/es/acl/Configuration/index.d.ts +1 -0
  13. package/es/acl/Configuration/index.js +2 -1
  14. package/es/acl/Configuration/schemas/roleCollections.js +41 -13
  15. package/es/acl/Configuration/schemas/roles.js +42 -2
  16. package/es/acl/Configuration/schemas/scopes.js +2 -0
  17. package/es/acl/index.d.ts +1 -0
  18. package/es/acl/index.js +2 -1
  19. package/es/acl/style.less +10 -0
  20. package/es/antd-config-provider/index.d.ts +3 -1
  21. package/es/antd-config-provider/index.js +25 -6
  22. package/es/antd-config-provider/loadConstrueLocale.d.ts +1 -0
  23. package/es/antd-config-provider/loadConstrueLocale.js +293 -0
  24. package/es/api-client/APIClient.js +5 -0
  25. package/es/block-provider/FormBlockProvider.js +5 -2
  26. package/es/block-provider/KanbanBlockProvider.js +3 -3
  27. package/es/block-provider/SharedFilterProvider.d.ts +1 -0
  28. package/es/block-provider/SharedFilterProvider.js +22 -6
  29. package/es/collection-manager/CollectionHistoryProvider.js +14 -2
  30. package/es/collection-manager/hooks/useCollection.d.ts +1 -0
  31. package/es/collection-manager/hooks/useCollection.js +10 -0
  32. package/es/collection-manager/interfaces/index.d.ts +0 -1
  33. package/es/collection-manager/interfaces/index.js +0 -1
  34. package/es/collection-manager/interfaces/o2m.js +1 -0
  35. package/es/collection-manager/interfaces/properties/operators.js +7 -0
  36. package/es/collection-manager/interfaces/subTable.js +1 -0
  37. package/es/collection-manager/templates/calendar.js +5 -0
  38. package/es/formula/Expression.d.ts +2 -0
  39. package/es/formula/Expression.js +296 -0
  40. package/es/formula/Result.d.ts +2 -0
  41. package/es/formula/Result.js +91 -0
  42. package/es/formula/index.d.ts +6 -0
  43. package/es/formula/index.js +8 -0
  44. package/es/i18n/i18n.js +7 -12
  45. package/es/index.d.ts +2 -1
  46. package/es/index.js +3 -2
  47. package/es/locale/en_US.d.ts +108 -28
  48. package/es/locale/en_US.js +108 -28
  49. package/es/locale/index.d.ts +201 -4
  50. package/es/locale/index.js +191 -58
  51. package/es/locale/ja_JP.d.ts +4 -0
  52. package/es/locale/ja_JP.js +4 -0
  53. package/es/locale/zh_CN.d.ts +11 -1
  54. package/es/locale/zh_CN.js +12 -2
  55. package/es/plugin-manager/PluginManager.js +19 -13
  56. package/es/pm/PluginManagerLink.js +38 -43
  57. package/es/pm/index.d.ts +1 -0
  58. package/es/pm/index.js +84 -35
  59. package/es/record-provider/index.d.ts +1 -0
  60. package/es/record-provider/index.js +7 -4
  61. package/es/route-switch/antd/admin-layout/index.d.ts +1 -0
  62. package/es/route-switch/antd/admin-layout/index.js +4 -6
  63. package/es/schema-component/antd/action/Action.js +19 -16
  64. package/es/schema-component/antd/association-filter/AssociationFilter.Item.js +24 -23
  65. package/es/schema-component/antd/cron/Cron.d.ts +0 -1
  66. package/es/schema-component/antd/cron/Cron.js +16 -19
  67. package/es/schema-component/antd/cron/locale/index.d.ts +37 -0
  68. package/es/schema-component/antd/cron/locale/index.js +6 -0
  69. package/es/schema-component/antd/filter/useFilterActionProps.js +17 -23
  70. package/es/schema-component/antd/form-item/FormItem.js +5 -4
  71. package/es/schema-component/antd/index.d.ts +1 -2
  72. package/es/schema-component/antd/index.js +1 -2
  73. package/es/schema-component/antd/page/FixedBlock.d.ts +1 -1
  74. package/es/schema-component/antd/page/FixedBlock.js +70 -21
  75. package/es/schema-component/antd/page/Page.js +15 -10
  76. package/es/schema-component/antd/remote-select/RemoteSelect.js +12 -2
  77. package/es/schema-component/antd/table/Table.Array.js +1 -1
  78. package/es/schema-component/antd/table-v2/Table.js +13 -6
  79. package/es/schema-component/antd/table-v2/TableBlockDesigner.js +24 -8
  80. package/es/schema-component/hooks/useDesignable.d.ts +1 -1
  81. package/es/schema-component/hooks/useDesignable.js +45 -16
  82. package/es/schema-component/hooks/useFieldTitle.js +3 -1
  83. package/es/schema-initializer/buttons/ReadPrettyFormActionInitializers.d.ts +3 -0
  84. package/es/schema-initializer/buttons/ReadPrettyFormActionInitializers.js +1 -0
  85. package/es/schema-initializer/buttons/TableActionColumnInitializers.js +1 -0
  86. package/es/schema-initializer/utils.js +6 -9
  87. package/es/schema-templates/BlockTemplate.js +2 -2
  88. package/es/schema-templates/SchemaTemplateManagerProvider.js +1 -1
  89. package/es/system-settings/SystemSettingsShortcut.js +1 -1
  90. package/lib/acl/ACLProvider.d.ts +16 -2
  91. package/lib/acl/ACLProvider.js +283 -102
  92. package/lib/acl/Configuration/ConfigureCenter.d.ts +2 -0
  93. package/lib/acl/Configuration/ConfigureCenter.js +278 -0
  94. package/lib/acl/Configuration/MenuConfigure.js +3 -3
  95. package/lib/acl/Configuration/PermisionProvider.d.ts +4 -0
  96. package/lib/acl/Configuration/PermisionProvider.js +156 -0
  97. package/lib/acl/Configuration/RoleConfigure.js +107 -23
  98. package/lib/acl/Configuration/RoleTable.d.ts +1 -1
  99. package/lib/acl/Configuration/RoleTable.js +8 -4
  100. package/lib/acl/Configuration/RolesResourcesActions.js +2 -2
  101. package/lib/acl/Configuration/index.d.ts +1 -0
  102. package/lib/acl/Configuration/index.js +15 -1
  103. package/lib/acl/Configuration/schemas/roleCollections.js +41 -13
  104. package/lib/acl/Configuration/schemas/roles.js +47 -2
  105. package/lib/acl/Configuration/schemas/scopes.js +2 -0
  106. package/lib/acl/index.d.ts +1 -0
  107. package/lib/acl/index.js +3 -1
  108. package/lib/acl/style.less +10 -0
  109. package/lib/antd-config-provider/index.d.ts +3 -1
  110. package/lib/antd-config-provider/index.js +40 -6
  111. package/lib/antd-config-provider/loadConstrueLocale.d.ts +1 -0
  112. package/lib/antd-config-provider/loadConstrueLocale.js +304 -0
  113. package/lib/api-client/APIClient.js +5 -0
  114. package/lib/block-provider/FormBlockProvider.js +9 -3
  115. package/lib/block-provider/KanbanBlockProvider.js +3 -3
  116. package/lib/block-provider/SharedFilterProvider.d.ts +1 -0
  117. package/lib/block-provider/SharedFilterProvider.js +26 -7
  118. package/lib/collection-manager/CollectionHistoryProvider.js +14 -1
  119. package/lib/collection-manager/hooks/useCollection.d.ts +1 -0
  120. package/lib/collection-manager/hooks/useCollection.js +10 -0
  121. package/lib/collection-manager/interfaces/index.d.ts +0 -1
  122. package/lib/collection-manager/interfaces/index.js +0 -13
  123. package/lib/collection-manager/interfaces/o2m.js +1 -0
  124. package/lib/collection-manager/interfaces/properties/operators.js +7 -0
  125. package/lib/collection-manager/interfaces/subTable.js +1 -0
  126. package/lib/collection-manager/templates/calendar.js +5 -0
  127. package/lib/formula/Expression.d.ts +2 -0
  128. package/lib/formula/Expression.js +319 -0
  129. package/lib/formula/Result.d.ts +2 -0
  130. package/lib/formula/Result.js +114 -0
  131. package/lib/formula/index.d.ts +6 -0
  132. package/lib/formula/index.js +22 -0
  133. package/lib/i18n/i18n.js +7 -14
  134. package/lib/index.d.ts +2 -1
  135. package/lib/index.js +26 -13
  136. package/lib/locale/en_US.d.ts +108 -28
  137. package/lib/locale/en_US.js +108 -28
  138. package/lib/locale/index.d.ts +201 -4
  139. package/lib/locale/index.js +197 -67
  140. package/lib/locale/ja_JP.d.ts +4 -0
  141. package/lib/locale/ja_JP.js +4 -0
  142. package/lib/locale/zh_CN.d.ts +11 -1
  143. package/lib/locale/zh_CN.js +12 -2
  144. package/lib/plugin-manager/PluginManager.js +20 -13
  145. package/lib/pm/PluginManagerLink.js +37 -43
  146. package/lib/pm/index.d.ts +1 -0
  147. package/lib/pm/index.js +90 -35
  148. package/lib/record-provider/index.d.ts +1 -0
  149. package/lib/record-provider/index.js +7 -4
  150. package/lib/route-switch/antd/admin-layout/index.d.ts +1 -0
  151. package/lib/route-switch/antd/admin-layout/index.js +5 -4
  152. package/lib/schema-component/antd/action/Action.js +19 -16
  153. package/lib/schema-component/antd/association-filter/AssociationFilter.Item.js +22 -21
  154. package/lib/schema-component/antd/cron/Cron.d.ts +0 -1
  155. package/lib/schema-component/antd/cron/Cron.js +19 -24
  156. package/lib/schema-component/antd/cron/locale/index.d.ts +37 -0
  157. package/lib/schema-component/antd/cron/locale/index.js +18 -0
  158. package/lib/schema-component/antd/filter/useFilterActionProps.js +16 -23
  159. package/lib/schema-component/antd/form-item/FormItem.js +6 -4
  160. package/lib/schema-component/antd/index.d.ts +1 -2
  161. package/lib/schema-component/antd/index.js +8 -21
  162. package/lib/schema-component/antd/page/FixedBlock.d.ts +1 -1
  163. package/lib/schema-component/antd/page/FixedBlock.js +71 -21
  164. package/lib/schema-component/antd/page/Page.js +14 -9
  165. package/lib/schema-component/antd/remote-select/RemoteSelect.js +18 -3
  166. package/lib/schema-component/antd/table/Table.Array.js +1 -1
  167. package/lib/schema-component/antd/table-v2/Table.js +14 -6
  168. package/lib/schema-component/antd/table-v2/TableBlockDesigner.js +25 -8
  169. package/lib/schema-component/hooks/useDesignable.d.ts +1 -1
  170. package/lib/schema-component/hooks/useDesignable.js +47 -18
  171. package/lib/schema-component/hooks/useFieldTitle.js +4 -1
  172. package/lib/schema-initializer/buttons/ReadPrettyFormActionInitializers.d.ts +3 -0
  173. package/lib/schema-initializer/buttons/ReadPrettyFormActionInitializers.js +1 -0
  174. package/lib/schema-initializer/buttons/TableActionColumnInitializers.js +1 -0
  175. package/lib/schema-initializer/utils.js +6 -9
  176. package/lib/schema-templates/BlockTemplate.js +2 -2
  177. package/lib/schema-templates/SchemaTemplateManagerProvider.js +1 -1
  178. package/lib/system-settings/SystemSettingsShortcut.js +1 -1
  179. package/package.json +6 -11
  180. package/es/collection-manager/interfaces/formula.d.ts +0 -2
  181. package/es/collection-manager/interfaces/formula.js +0 -74
  182. package/es/schema-component/antd/formula-input/Compute.d.ts +0 -3
  183. package/es/schema-component/antd/formula-input/Compute.js +0 -55
  184. package/es/schema-component/antd/formula-input/FormulaInput.d.ts +0 -3
  185. package/es/schema-component/antd/formula-input/FormulaInput.js +0 -167
  186. package/es/schema-component/antd/formula-input/index.d.ts +0 -1
  187. package/es/schema-component/antd/formula-input/index.js +0 -7
  188. package/lib/collection-manager/interfaces/formula.d.ts +0 -2
  189. package/lib/collection-manager/interfaces/formula.js +0 -83
  190. package/lib/schema-component/antd/formula-input/Compute.d.ts +0 -3
  191. package/lib/schema-component/antd/formula-input/Compute.js +0 -79
  192. package/lib/schema-component/antd/formula-input/FormulaInput.d.ts +0 -3
  193. package/lib/schema-component/antd/formula-input/FormulaInput.js +0 -191
  194. package/lib/schema-component/antd/formula-input/index.d.ts +0 -1
  195. package/lib/schema-component/antd/formula-input/index.js +0 -18
@@ -0,0 +1,254 @@
1
+ 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); } }
2
+
3
+ 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); }); }; }
4
+
5
+ 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; }
6
+
7
+ 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; }
8
+
9
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
+
13
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
+
15
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
16
+
17
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
+
19
+ 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(_e2) { throw _e2; }, 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(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
20
+
21
+ 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); }
22
+
23
+ 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; }
24
+
25
+ import { Checkbox, message, Table } from 'antd';
26
+ import React, { createContext, useContext, useState } from 'react';
27
+ import { useTranslation } from 'react-i18next';
28
+ import { useAPIClient, useRequest } from '../../api-client';
29
+ import { useRecord } from '../../record-provider';
30
+ import { useCompile } from '../../schema-component';
31
+
32
+ var getParentKeys = function getParentKeys(tree, func) {
33
+ var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
34
+ if (!tree) return [];
35
+
36
+ var _iterator = _createForOfIteratorHelper(tree),
37
+ _step;
38
+
39
+ try {
40
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
41
+ var data = _step.value;
42
+ path.push(data.key);
43
+ if (func(data)) return path;
44
+
45
+ if (data.children) {
46
+ var findChildren = getParentKeys(data.children, func, path);
47
+ if (findChildren.length) return findChildren;
48
+ }
49
+
50
+ path.pop();
51
+ }
52
+ } catch (err) {
53
+ _iterator.e(err);
54
+ } finally {
55
+ _iterator.f();
56
+ }
57
+
58
+ return [];
59
+ };
60
+
61
+ var getChildrenKeys = function getChildrenKeys() {
62
+ var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
63
+ var arr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
64
+
65
+ var _iterator2 = _createForOfIteratorHelper(data),
66
+ _step2;
67
+
68
+ try {
69
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
70
+ var item = _step2.value;
71
+ arr.push(item.key);
72
+ if (item.children && item.children.length) getChildrenKeys(item.children, arr);
73
+ }
74
+ } catch (err) {
75
+ _iterator2.e(err);
76
+ } finally {
77
+ _iterator2.f();
78
+ }
79
+
80
+ return arr;
81
+ };
82
+
83
+ var SettingMenuContext = /*#__PURE__*/createContext(null);
84
+
85
+ function useGetContext() {
86
+ var _useState = useState(null),
87
+ _useState2 = _slicedToArray(_useState, 2),
88
+ context = _useState2[0],
89
+ setContext = _useState2[1];
90
+
91
+ import('../../pm').then(function (_ref) {
92
+ var SettingsCenterContext = _ref.SettingsCenterContext;
93
+ setContext(SettingsCenterContext);
94
+ });
95
+ return context;
96
+ }
97
+
98
+ export var SettingCenterProvider = function SettingCenterProvider(props) {
99
+ var context = useGetContext();
100
+ var configureItems = context && useContext(context);
101
+ return /*#__PURE__*/React.createElement(SettingMenuContext.Provider, {
102
+ value: configureItems
103
+ }, props.children);
104
+ };
105
+
106
+ var formatPluginTabs = function formatPluginTabs(data) {
107
+ var tabs = [];
108
+
109
+ for (var key in data) {
110
+ var plugin = data === null || data === void 0 ? void 0 : data[key];
111
+
112
+ for (var tabKey in (plugin === null || plugin === void 0 ? void 0 : plugin.tabs) || {}) {
113
+ var tab = plugin === null || plugin === void 0 ? void 0 : plugin.tabs[tabKey];
114
+ tabs.push(_objectSpread(_objectSpread({
115
+ pluginTitle: plugin.title
116
+ }, tab), {}, {
117
+ key: "pm.".concat(key, ".").concat(tabKey)
118
+ }));
119
+ }
120
+ }
121
+
122
+ return tabs;
123
+ var arr = Object.entries(data);
124
+ var pluginsTabs = [];
125
+ console.log(tabs);
126
+ arr.forEach(function (v) {
127
+ var children = Object.entries(v[1].tabs).map(function (k) {
128
+ return {
129
+ key: 'pm.' + v[0] + '.' + k[0],
130
+ title: k[1].title
131
+ };
132
+ });
133
+ pluginsTabs.push({
134
+ title: v[1].title,
135
+ key: 'pm.' + v[0],
136
+ children: children
137
+ });
138
+ });
139
+ return pluginsTabs;
140
+ };
141
+
142
+ export var SettingsCenterConfigure = function SettingsCenterConfigure() {
143
+ var record = useRecord();
144
+ var api = useAPIClient();
145
+ var pluginTags = useContext(SettingMenuContext);
146
+ var items = pluginTags && formatPluginTabs(pluginTags) || [];
147
+
148
+ var _useTranslation = useTranslation(),
149
+ t = _useTranslation.t;
150
+
151
+ var compile = useCompile();
152
+
153
+ var _useRequest = useRequest({
154
+ resource: 'roles.snippets',
155
+ resourceOf: record.name,
156
+ action: 'list',
157
+ params: {
158
+ paginate: false
159
+ }
160
+ }),
161
+ loading = _useRequest.loading,
162
+ refresh = _useRequest.refresh,
163
+ data = _useRequest.data;
164
+
165
+ var resource = api.resource('roles.snippets', record.name);
166
+
167
+ var handleChange = /*#__PURE__*/function () {
168
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(checked, record) {
169
+ var childrenKeys, totalKeys;
170
+ return regeneratorRuntime.wrap(function _callee$(_context) {
171
+ while (1) {
172
+ switch (_context.prev = _context.next) {
173
+ case 0:
174
+ childrenKeys = getChildrenKeys(record === null || record === void 0 ? void 0 : record.children, []);
175
+ totalKeys = childrenKeys.concat(record.key);
176
+
177
+ if (checked) {
178
+ _context.next = 8;
179
+ break;
180
+ }
181
+
182
+ _context.next = 5;
183
+ return resource.remove({
184
+ values: totalKeys.map(function (v) {
185
+ return '!' + v;
186
+ })
187
+ });
188
+
189
+ case 5:
190
+ refresh();
191
+ _context.next = 11;
192
+ break;
193
+
194
+ case 8:
195
+ _context.next = 10;
196
+ return resource.add({
197
+ values: totalKeys.map(function (v) {
198
+ return '!' + v;
199
+ })
200
+ });
201
+
202
+ case 10:
203
+ refresh();
204
+
205
+ case 11:
206
+ message.success(t('Saved successfully'));
207
+
208
+ case 12:
209
+ case "end":
210
+ return _context.stop();
211
+ }
212
+ }
213
+ }, _callee);
214
+ }));
215
+
216
+ return function handleChange(_x, _x2) {
217
+ return _ref2.apply(this, arguments);
218
+ };
219
+ }();
220
+
221
+ return (items === null || items === void 0 ? void 0 : items.length) && /*#__PURE__*/React.createElement(Table, {
222
+ loading: loading,
223
+ rowKey: 'key',
224
+ pagination: false,
225
+ columns: [{
226
+ dataIndex: 'title',
227
+ title: t('Plugin tab name'),
228
+ render: function render(value) {
229
+ return compile(value);
230
+ }
231
+ }, {
232
+ dataIndex: 'pluginTitle',
233
+ title: t('Plugin name'),
234
+ render: function render(value) {
235
+ return compile(value);
236
+ }
237
+ }, {
238
+ dataIndex: 'accessible',
239
+ title: t('Accessible'),
240
+ render: function render(_, record) {
241
+ var _data$data;
242
+
243
+ var checked = !(data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.includes('!' + record.key));
244
+ return !record.children && /*#__PURE__*/React.createElement(Checkbox, {
245
+ checked: checked,
246
+ onChange: function onChange() {
247
+ return handleChange(checked, record);
248
+ }
249
+ });
250
+ }
251
+ }],
252
+ dataSource: items
253
+ });
254
+ };
@@ -25,11 +25,11 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
25
25
  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; }
26
26
 
27
27
  import { Checkbox, message, Table } from 'antd';
28
+ import { uniq } from 'lodash';
28
29
  import React, { useState } from 'react';
29
30
  import { useTranslation } from 'react-i18next';
30
31
  import { useAPIClient, useRequest } from '../../api-client';
31
32
  import { useRecord } from '../../record-provider';
32
- import { uniq } from 'lodash';
33
33
  import { useMenuItems } from './MenuItemsProvider';
34
34
 
35
35
  var findUids = function findUids(items) {
@@ -263,7 +263,7 @@ export var MenuConfigure = function MenuConfigure() {
263
263
 
264
264
  return onChange;
265
265
  }()
266
- }), t('Accessible')),
266
+ }), ' ', t('Accessible')),
267
267
  render: function render(_, schema) {
268
268
  var checked = uids.includes(schema.uid);
269
269
  return /*#__PURE__*/React.createElement(Checkbox, {
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export declare const SettingCenterPermissionProvider: (props: any) => JSX.Element;
3
+ export declare const PermissionContext: React.Context<any>;
4
+ export declare const PermissionProvider: (props: any) => JSX.Element;
@@ -0,0 +1,132 @@
1
+ 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; }
2
+
3
+ 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; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ 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); } }
8
+
9
+ 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); }); }; }
10
+
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
+
13
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
+
15
+ 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); }
16
+
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
+
19
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
20
+
21
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
+
23
+ import { message } from 'antd';
24
+ import React, { createContext, useContext, useState } from 'react';
25
+ import { useTranslation } from 'react-i18next';
26
+ import { useAPIClient } from '../../api-client';
27
+ import { useRecord } from '../../record-provider';
28
+ export var SettingCenterPermissionProvider = function SettingCenterPermissionProvider(props) {
29
+ var _currentRecord$snippe;
30
+
31
+ var _useContext = useContext(PermissionContext),
32
+ currentRecord = _useContext.currentRecord;
33
+
34
+ if (!(currentRecord === null || currentRecord === void 0 ? void 0 : (_currentRecord$snippe = currentRecord.snippets) === null || _currentRecord$snippe === void 0 ? void 0 : _currentRecord$snippe.includes('pm.*'))) {
35
+ return null;
36
+ }
37
+
38
+ return /*#__PURE__*/React.createElement("div", null, props.children);
39
+ };
40
+ export var PermissionContext = /*#__PURE__*/createContext(null);
41
+ export var PermissionProvider = function PermissionProvider(props) {
42
+ var api = useAPIClient();
43
+ var record = useRecord();
44
+
45
+ var _useTranslation = useTranslation(),
46
+ t = _useTranslation.t;
47
+
48
+ var snippets = record.snippets;
49
+ snippets === null || snippets === void 0 ? void 0 : snippets.forEach(function (key) {
50
+ record[key] = true;
51
+ });
52
+
53
+ var _useState = useState(record),
54
+ _useState2 = _slicedToArray(_useState, 2),
55
+ currentRecord = _useState2[0],
56
+ setCurrentRecord = _useState2[1];
57
+
58
+ return /*#__PURE__*/React.createElement(PermissionContext.Provider, {
59
+ value: {
60
+ currentRecord: currentRecord,
61
+ update: function () {
62
+ var _update = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(field, form) {
63
+ var _field$getState, path, value, resource;
64
+
65
+ return regeneratorRuntime.wrap(function _callee$(_context) {
66
+ while (1) {
67
+ switch (_context.prev = _context.next) {
68
+ case 0:
69
+ _field$getState = field.getState(), path = _field$getState.path, value = _field$getState.value;
70
+
71
+ if (!['ui.*', 'pm', 'pm.*'].includes(path)) {
72
+ _context.next = 13;
73
+ break;
74
+ }
75
+
76
+ resource = api.resource('roles.snippets', record.name);
77
+
78
+ if (!value) {
79
+ _context.next = 8;
80
+ break;
81
+ }
82
+
83
+ _context.next = 6;
84
+ return resource.add({
85
+ values: [path]
86
+ });
87
+
88
+ case 6:
89
+ _context.next = 10;
90
+ break;
91
+
92
+ case 8:
93
+ _context.next = 10;
94
+ return resource.remove({
95
+ values: [path]
96
+ });
97
+
98
+ case 10:
99
+ setCurrentRecord(_objectSpread(_objectSpread(_objectSpread({}, currentRecord), form.values), {}, _defineProperty({}, path, value)));
100
+ _context.next = 16;
101
+ break;
102
+
103
+ case 13:
104
+ _context.next = 15;
105
+ return api.resource('roles').update({
106
+ filterByTk: record.name,
107
+ values: form.values
108
+ });
109
+
110
+ case 15:
111
+ setCurrentRecord(_objectSpread(_objectSpread({}, currentRecord), form.values));
112
+
113
+ case 16:
114
+ message.success(t('Saved successfully'));
115
+
116
+ case 17:
117
+ case "end":
118
+ return _context.stop();
119
+ }
120
+ }
121
+ }, _callee);
122
+ }));
123
+
124
+ function update(_x, _x2) {
125
+ return _update.apply(this, arguments);
126
+ }
127
+
128
+ return update;
129
+ }()
130
+ }
131
+ }, props.children);
132
+ };
@@ -2,33 +2,114 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
2
2
 
3
3
  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); }); }; }
4
4
 
5
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6
+
7
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
+
9
+ 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); }
10
+
11
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
12
+
13
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
14
+
15
+ 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; }
16
+
5
17
  import { onFieldChange } from '@formily/core';
6
- import { message } from 'antd';
7
- import React from 'react';
18
+ import { connect } from '@formily/react';
19
+ import { Checkbox } from 'antd';
20
+ import uniq from 'lodash/uniq';
21
+ import React, { useContext } from 'react';
8
22
  import { useTranslation } from 'react-i18next';
9
23
  import { useAPIClient, useRequest } from '../../api-client';
10
- import { useRecord } from '../../record-provider';
11
24
  import { SchemaComponent } from '../../schema-component';
12
- export var RoleConfigure = function RoleConfigure() {
13
- var api = useAPIClient();
14
- var record = useRecord();
15
-
25
+ import { PermissionContext } from './PermisionProvider';
26
+ var SnippetCheckboxGroup = connect(function (props) {
16
27
  var _useTranslation = useTranslation(),
17
28
  t = _useTranslation.t;
18
29
 
30
+ return /*#__PURE__*/React.createElement(Checkbox.Group, {
31
+ style: {
32
+ width: '100%'
33
+ },
34
+ value: props.value,
35
+ onChange: function onChange(values) {
36
+ var value = uniq([].concat(_toConsumableArray(props.value || []), _toConsumableArray(values))).filter(function (key) {
37
+ return key && !['!ui.*', '!pm', '!pm.*'].includes(key);
38
+ }).map(function (key) {
39
+ if (!['ui.*', 'pm', 'pm.*'].includes(key)) {
40
+ return key;
41
+ }
42
+
43
+ if (values === null || values === void 0 ? void 0 : values.includes(key)) {
44
+ return key;
45
+ }
46
+
47
+ return "!".concat(key);
48
+ });
49
+
50
+ for (var _i = 0, _arr = ['ui.*', 'pm', 'pm.*']; _i < _arr.length; _i++) {
51
+ var key = _arr[_i];
52
+
53
+ if (!value.includes(key) && !value.includes("!".concat(key))) {
54
+ value.push("!".concat(key));
55
+ }
56
+ }
57
+
58
+ props.onChange(value);
59
+ }
60
+ }, /*#__PURE__*/React.createElement("div", {
61
+ style: {
62
+ marginTop: 16
63
+ }
64
+ }, /*#__PURE__*/React.createElement(Checkbox, {
65
+ value: "ui.*"
66
+ }, t('Allows to configure interface'))), /*#__PURE__*/React.createElement("div", {
67
+ style: {
68
+ marginTop: 8
69
+ }
70
+ }, /*#__PURE__*/React.createElement(Checkbox, {
71
+ value: "pm"
72
+ }, t('Allows to install, activate, disable plugins'))), /*#__PURE__*/React.createElement("div", {
73
+ style: {
74
+ marginTop: 8
75
+ }
76
+ }, /*#__PURE__*/React.createElement(Checkbox, {
77
+ value: "pm.*"
78
+ }, t('Allows to configure plugins'))));
79
+ });
80
+ export var RoleConfigure = function RoleConfigure() {
81
+ var _useContext = useContext(PermissionContext),
82
+ update = _useContext.update,
83
+ currentRecord = _useContext.currentRecord;
84
+
85
+ var _useTranslation2 = useTranslation(),
86
+ t = _useTranslation2.t;
87
+
19
88
  return /*#__PURE__*/React.createElement(SchemaComponent, {
89
+ components: {
90
+ SnippetCheckboxGroup: SnippetCheckboxGroup
91
+ },
20
92
  schema: {
21
93
  type: 'void',
22
94
  name: 'form',
23
95
  'x-component': 'Form',
24
96
  'x-component-props': {
25
97
  useValues: function useValues(options) {
26
- return useRequest({
27
- resource: 'roles',
28
- action: 'get',
29
- params: {
30
- filterByTk: record.name
31
- }
98
+ var api = useAPIClient();
99
+ return useRequest(function () {
100
+ return api.resource('roles').get({
101
+ filterByTk: currentRecord.name
102
+ }).then(function (res) {
103
+ var _res$data, _record$snippets;
104
+
105
+ var record = res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.data;
106
+ (_record$snippets = record.snippets) === null || _record$snippets === void 0 ? void 0 : _record$snippets.forEach(function (key) {
107
+ record[key] = true;
108
+ });
109
+ return {
110
+ data: record
111
+ };
112
+ });
32
113
  }, options);
33
114
  },
34
115
  effects: function effects() {
@@ -47,15 +128,9 @@ export var RoleConfigure = function RoleConfigure() {
47
128
 
48
129
  case 2:
49
130
  _context.next = 4;
50
- return api.resource('roles').update({
51
- filterByTk: record.name,
52
- values: form.values
53
- });
131
+ return update(field, form);
54
132
 
55
133
  case 4:
56
- message.success(t('Saved successfully'));
57
-
58
- case 5:
59
134
  case "end":
60
135
  return _context.stop();
61
136
  }
@@ -70,11 +145,11 @@ export var RoleConfigure = function RoleConfigure() {
70
145
  }
71
146
  },
72
147
  properties: {
73
- allowConfigure: {
148
+ snippets: {
74
149
  title: t('Configure permissions'),
150
+ type: 'boolean',
75
151
  'x-decorator': 'FormItem',
76
- 'x-component': 'Checkbox',
77
- 'x-content': t('Allows configuration of the whole system, including UI, collections, permissions, etc.')
152
+ 'x-component': 'SnippetCheckboxGroup'
78
153
  },
79
154
  'strategy.actions': {
80
155
  title: t('Global action permissions'),
@@ -1,2 +1,2 @@
1
- export declare const useAvailableActions: () => any;
1
+ export declare const useAvailableActions: () => any[];
2
2
  export declare const RoleTable: () => JSX.Element;
@@ -2,9 +2,10 @@ import { Spin } from 'antd';
2
2
  import React, { createContext, useContext } from 'react';
3
3
  import { useRequest } from '../../api-client';
4
4
  import { SchemaComponent } from '../../schema-component';
5
- import { roleSchema } from './schemas/roles';
6
5
  import { MenuItemsProvider } from '../Configuration/MenuItemsProvider';
7
- var AvailableActionsContext = /*#__PURE__*/createContext(null);
6
+ import { PermissionProvider, SettingCenterPermissionProvider } from '../Configuration/PermisionProvider';
7
+ import { roleSchema } from './schemas/roles';
8
+ var AvailableActionsContext = /*#__PURE__*/createContext([]);
8
9
 
9
10
  var AvailableActionsProver = function AvailableActionsProver(props) {
10
11
  var _useRequest = useRequest({
@@ -30,7 +31,9 @@ export var RoleTable = function RoleTable() {
30
31
  return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AvailableActionsProver, null, /*#__PURE__*/React.createElement(SchemaComponent, {
31
32
  schema: roleSchema,
32
33
  components: {
33
- MenuItemsProvider: MenuItemsProvider
34
+ MenuItemsProvider: MenuItemsProvider,
35
+ SettingCenterPermissionProvider: SettingCenterPermissionProvider,
36
+ PermissionProvider: PermissionProvider
34
37
  }
35
38
  })));
36
39
  };
@@ -63,8 +63,8 @@ export var RolesResourcesActions = connect(function (props) {
63
63
  getCollection = _useCollectionManager.getCollection,
64
64
  getCollectionFields = _useCollectionManager.getCollectionFields;
65
65
 
66
- var collection = getCollection(roleCollection.name);
67
- var collectionFields = getCollectionFields(roleCollection.name);
66
+ var collection = getCollection(roleCollection.collectionName);
67
+ var collectionFields = getCollectionFields(roleCollection.collectionName);
68
68
  var compile = useCompile();
69
69
 
70
70
  var _useTranslation = useTranslation(),
@@ -3,3 +3,4 @@ export { RoleConfigure } from './RoleConfigure';
3
3
  export { RolesResourcesActions } from './RolesResourcesActions';
4
4
  export { RoleTable } from './RoleTable';
5
5
  export { StrategyActions } from './StrategyActions';
6
+ export { SettingsCenterConfigure, SettingCenterProvider } from './ConfigureCenter';
@@ -2,4 +2,5 @@ export { MenuConfigure } from './MenuConfigure';
2
2
  export { RoleConfigure } from './RoleConfigure';
3
3
  export { RolesResourcesActions } from './RolesResourcesActions';
4
4
  export { RoleTable } from './RoleTable';
5
- export { StrategyActions } from './StrategyActions';
5
+ export { StrategyActions } from './StrategyActions';
6
+ export { SettingsCenterConfigure, SettingCenterProvider } from './ConfigureCenter';