@pinnacle0/web-ui 0.4.7 → 0.4.9-beta.1

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 (95) hide show
  1. package/admin/AdminApp/Menu.d.ts +9 -7
  2. package/admin/AdminApp/Menu.js +9 -7
  3. package/admin/AdminApp/Menu.js.map +1 -1
  4. package/admin/AdminApp/Navigator.d.ts +9 -7
  5. package/admin/AdminApp/Navigator.js +7 -6
  6. package/admin/AdminApp/Navigator.js.map +1 -1
  7. package/admin/AdminApp/RouteSwitch.d.ts +7 -5
  8. package/admin/AdminApp/RouteSwitch.js +2 -1
  9. package/admin/AdminApp/RouteSwitch.js.map +1 -1
  10. package/admin/AdminApp/index.d.ts +7 -6
  11. package/admin/AdminApp/index.js +4 -5
  12. package/admin/AdminApp/index.js.map +1 -1
  13. package/admin/AdminPermissionSelector.d.ts +1 -1
  14. package/core/FlatList/Content/Footer/index.d.ts +10 -0
  15. package/core/FlatList/Content/Footer/index.js +11 -0
  16. package/core/FlatList/Content/Footer/index.js.map +1 -0
  17. package/core/FlatList/{shared → Content}/Footer/index.less +2 -3
  18. package/core/FlatList/Content/index.d.ts +9 -0
  19. package/core/FlatList/Content/index.js +71 -0
  20. package/core/FlatList/Content/index.js.map +1 -0
  21. package/core/FlatList/Loader/index.d.ts +3 -0
  22. package/core/FlatList/Loader/index.js +9 -0
  23. package/core/FlatList/Loader/index.js.map +1 -0
  24. package/core/FlatList/Loader/index.less +39 -0
  25. package/core/FlatList/{shared/Spinner → Refresh}/index.d.ts +1 -1
  26. package/core/FlatList/Refresh/index.js +8 -0
  27. package/core/FlatList/Refresh/index.js.map +1 -0
  28. package/core/FlatList/Refresh/index.less +22 -0
  29. package/core/FlatList/index.d.ts +3 -1
  30. package/core/FlatList/index.js +76 -27
  31. package/core/FlatList/index.js.map +1 -1
  32. package/core/FlatList/index.less +36 -0
  33. package/core/FlatList/type.d.ts +69 -37
  34. package/core/FlatList/type.js +1 -1
  35. package/core/FlatList/type.js.map +1 -1
  36. package/core/FlatList/useGap.d.ts +2 -0
  37. package/core/FlatList/useGap.js +12 -0
  38. package/core/FlatList/useGap.js.map +1 -0
  39. package/core/FlatList/util.d.ts +8 -0
  40. package/core/FlatList/util.js +35 -0
  41. package/core/FlatList/util.js.map +1 -0
  42. package/core/VirtualList.d.ts +2 -3
  43. package/core/VirtualList.js +2 -8
  44. package/core/VirtualList.js.map +1 -1
  45. package/core/VirtualTable/TableRow.d.ts +1 -1
  46. package/core/VirtualTable/index.js +0 -8
  47. package/core/VirtualTable/index.js.map +1 -1
  48. package/hooks/useSwipe/controller.js +1 -0
  49. package/hooks/useSwipe/controller.js.map +1 -1
  50. package/hooks/useSwipe/type.d.ts +1 -0
  51. package/hooks/useSwipe/type.js.map +1 -1
  52. package/internal/polyfill/IntersectionObserver.d.ts +1 -0
  53. package/internal/polyfill/IntersectionObserver.js +5 -0
  54. package/internal/polyfill/IntersectionObserver.js.map +1 -0
  55. package/package.json +12 -10
  56. package/util/{AdminNavigatorBase.d.ts → AdminNavigationUtil.d.ts} +5 -14
  57. package/util/AdminNavigationUtil.js +93 -0
  58. package/util/AdminNavigationUtil.js.map +1 -0
  59. package/core/FlatList/VirtualFlatList/Item.d.ts +0 -11
  60. package/core/FlatList/VirtualFlatList/Item.js +0 -20
  61. package/core/FlatList/VirtualFlatList/Item.js.map +0 -1
  62. package/core/FlatList/VirtualFlatList/index.d.ts +0 -8
  63. package/core/FlatList/VirtualFlatList/index.js +0 -111
  64. package/core/FlatList/VirtualFlatList/index.js.map +0 -1
  65. package/core/FlatList/VirtualFlatList/index.less +0 -22
  66. package/core/FlatList/VirtualFlatList/type.d.ts +0 -20
  67. package/core/FlatList/VirtualFlatList/type.js +0 -2
  68. package/core/FlatList/VirtualFlatList/type.js.map +0 -1
  69. package/core/FlatList/shared/Footer/index.d.ts +0 -8
  70. package/core/FlatList/shared/Footer/index.js +0 -13
  71. package/core/FlatList/shared/Footer/index.js.map +0 -1
  72. package/core/FlatList/shared/GetRowKey.d.ts +0 -2
  73. package/core/FlatList/shared/GetRowKey.js +0 -12
  74. package/core/FlatList/shared/GetRowKey.js.map +0 -1
  75. package/core/FlatList/shared/Spinner/index.js +0 -10
  76. package/core/FlatList/shared/Spinner/index.js.map +0 -1
  77. package/core/FlatList/shared/Spinner/index.less +0 -13
  78. package/core/FlatList/shared/Wrapper/Loading.d.ts +0 -8
  79. package/core/FlatList/shared/Wrapper/Loading.js +0 -7
  80. package/core/FlatList/shared/Wrapper/Loading.js.map +0 -1
  81. package/core/FlatList/shared/Wrapper/index.d.ts +0 -14
  82. package/core/FlatList/shared/Wrapper/index.js +0 -109
  83. package/core/FlatList/shared/Wrapper/index.js.map +0 -1
  84. package/core/FlatList/shared/Wrapper/index.less +0 -33
  85. package/core/FlatList/shared/hooks/useBounceSwipe.d.ts +0 -22
  86. package/core/FlatList/shared/hooks/useBounceSwipe.js +0 -111
  87. package/core/FlatList/shared/hooks/useBounceSwipe.js.map +0 -1
  88. package/core/FlatList/shared/hooks/useElementScrollState.d.ts +0 -8
  89. package/core/FlatList/shared/hooks/useElementScrollState.js +0 -38
  90. package/core/FlatList/shared/hooks/useElementScrollState.js.map +0 -1
  91. package/core/FlatList/shared/hooks/useLoadingWithDelay.d.ts +0 -9
  92. package/core/FlatList/shared/hooks/useLoadingWithDelay.js +0 -52
  93. package/core/FlatList/shared/hooks/useLoadingWithDelay.js.map +0 -1
  94. package/util/AdminNavigatorBase.js +0 -79
  95. package/util/AdminNavigatorBase.js.map +0 -1
@@ -1,11 +1,13 @@
1
1
  import React from "react";
2
2
  import { AdminAppContext } from "./context";
3
- import type { AdminNavigatorBase, NavigationGroupItem } from "../../util/AdminNavigatorBase";
4
3
  import type { RouteComponentProps } from "react-router-dom";
5
4
  import "antd/es/menu/style";
6
- interface Props extends RouteComponentProps {
5
+ import type { NavigationGroupItem } from "../../util/AdminNavigationUtil";
6
+ interface Props<Feature, Field> extends RouteComponentProps {
7
7
  siteName: string;
8
- navigationService: AdminNavigatorBase<any, any>;
8
+ permissions: Feature[];
9
+ superAdminPermission: Feature;
10
+ navigationGroups: Array<NavigationGroupItem<Feature, Field>>;
9
11
  menuExpanded: boolean;
10
12
  badges?: {
11
13
  [key: string]: number;
@@ -15,13 +17,13 @@ interface State {
15
17
  currentOpenedMenuKey: string | null;
16
18
  currentSelectedMenuKey: string | null;
17
19
  }
18
- declare class RouterAwareMenu extends React.PureComponent<Props, State> {
20
+ declare class RouterAwareMenu<Feature, Field> extends React.PureComponent<Props<Feature, Field>, State> {
19
21
  static displayName: string;
20
22
  static contextType: React.Context<import("./context").AdminAppContextType>;
21
23
  context: React.ContextType<typeof AdminAppContext>;
22
24
  private readonly soundEnabledKey;
23
- constructor(props: Props);
24
- componentDidUpdate(prevProps: Props): void;
25
+ constructor(props: Props<Feature, Field>);
26
+ componentDidUpdate(prevProps: Props<Feature, Field>): void;
25
27
  /**
26
28
  * Return true if any field of currentBadges > prevBadges.
27
29
  */
@@ -48,5 +50,5 @@ declare class RouterAwareMenu extends React.PureComponent<Props, State> {
48
50
  };
49
51
  render(): JSX.Element;
50
52
  }
51
- export declare const Menu: React.ComponentClass<Pick<Props, "siteName" | "navigationService" | "menuExpanded" | "badges">, any> & import("react-router").WithRouterStatics<typeof RouterAwareMenu>;
53
+ export declare const Menu: React.ComponentClass<Pick<Props<unknown, unknown>, "navigationGroups" | "siteName" | "permissions" | "superAdminPermission" | "menuExpanded" | "badges">, any> & import("react-router").WithRouterStatics<typeof RouterAwareMenu>;
52
54
  export {};
@@ -48,6 +48,7 @@ import { MediaUtil } from "../../util/MediaUtil";
48
48
  import { Badge } from "../../core/Badge";
49
49
  import { AdminAppContext } from "./context";
50
50
  import "antd/es/menu/style";
51
+ import { AdminNavigationUtil } from "../../util/AdminNavigationUtil";
51
52
  var RouterAwareMenu = /** @class */ (function (_super) {
52
53
  __extends(RouterAwareMenu, _super);
53
54
  function RouterAwareMenu(props) {
@@ -76,8 +77,9 @@ var RouterAwareMenu = /** @class */ (function (_super) {
76
77
  return false;
77
78
  };
78
79
  _this.calculateTotalBadge = function (badges) {
80
+ var _a = _this.props, navigationGroups = _a.navigationGroups, permissions = _a.permissions, superAdminPermission = _a.superAdminPermission;
79
81
  var totalCount = 0;
80
- _this.props.navigationService.groups(false).forEach(function (_a) {
82
+ AdminNavigationUtil.groups(navigationGroups, permissions, superAdminPermission, false).forEach(function (_a) {
81
83
  var modules = _a.modules;
82
84
  modules.forEach(function (_) { return (totalCount += badges[_.url] || 0); });
83
85
  });
@@ -85,11 +87,11 @@ var RouterAwareMenu = /** @class */ (function (_super) {
85
87
  };
86
88
  _this.calculateMenuKeyByURL = function (prevBadges) {
87
89
  var _a;
88
- var _b = _this.props, location = _b.location, menuExpanded = _b.menuExpanded, siteName = _b.siteName, badges = _b.badges, navigationService = _b.navigationService;
89
- var allNavigationGroups = navigationService.groups(true);
90
+ var _b = _this.props, location = _b.location, menuExpanded = _b.menuExpanded, siteName = _b.siteName, badges = _b.badges, navigationGroups = _b.navigationGroups, permissions = _b.permissions, superAdminPermission = _b.superAdminPermission;
91
+ var allNavigationGroups = AdminNavigationUtil.groups(navigationGroups, permissions, superAdminPermission, true);
90
92
  var currentOpenedMenuKey = ((_a = allNavigationGroups === null || allNavigationGroups === void 0 ? void 0 : allNavigationGroups[0]) === null || _a === void 0 ? void 0 : _a.title) || null; // Fallback opened key
91
93
  var currentSelectedMenuKey = null;
92
- var currentModule = navigationService.moduleByURL(location.pathname);
94
+ var currentModule = AdminNavigationUtil.moduleByURL(location.pathname, navigationGroups, permissions, superAdminPermission);
93
95
  var totalBadgeCount = badges ? _this.calculateTotalBadge(badges) : 0;
94
96
  var titlePrefix = (totalBadgeCount > 0 ? "(".concat(totalBadgeCount, ") ") : "") + siteName;
95
97
  var soundEnabled = LocalStorageUtil.getBool(_this.soundEnabledKey, true);
@@ -162,9 +164,9 @@ var RouterAwareMenu = /** @class */ (function (_super) {
162
164
  }
163
165
  };
164
166
  RouterAwareMenu.prototype.render = function () {
165
- var navigationService = this.props.navigationService;
166
- var _a = this.state, currentOpenedMenuKey = _a.currentOpenedMenuKey, currentSelectedMenuKey = _a.currentSelectedMenuKey;
167
- return (React.createElement(AntMenu, { theme: "dark", mode: "inline", openKeys: currentOpenedMenuKey ? [currentOpenedMenuKey] : [], selectedKeys: currentSelectedMenuKey ? [currentSelectedMenuKey] : [], onOpenChange: this.onMenuOpenChange, items: navigationService.groups(false).map(this.renderMenuGroup) }));
167
+ var _a = this.props, navigationGroups = _a.navigationGroups, permissions = _a.permissions, superAdminPermission = _a.superAdminPermission;
168
+ var _b = this.state, currentOpenedMenuKey = _b.currentOpenedMenuKey, currentSelectedMenuKey = _b.currentSelectedMenuKey;
169
+ return (React.createElement(AntMenu, { theme: "dark", mode: "inline", openKeys: currentOpenedMenuKey ? [currentOpenedMenuKey] : [], selectedKeys: currentSelectedMenuKey ? [currentSelectedMenuKey] : [], onOpenChange: this.onMenuOpenChange, items: AdminNavigationUtil.groups(navigationGroups, permissions, superAdminPermission, false).map(this.renderMenuGroup) }));
168
170
  };
169
171
  RouterAwareMenu.displayName = "Menu";
170
172
  RouterAwareMenu.contextType = AdminAppContext;
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/Menu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/Menu.tsx"],"names":[],"mappings":"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"}
@@ -1,30 +1,32 @@
1
1
  import React from "react";
2
2
  import type { RouteComponentProps } from "react-router-dom";
3
3
  import { AdminAppContext } from "./context";
4
- import type { AdminNavigatorBase, NavigationModuleItem } from "../../util/AdminNavigatorBase";
4
+ import type { NavigationGroupItem, NavigationModuleItem } from "../../util/AdminNavigationUtil";
5
5
  interface NavigatorTabItem {
6
6
  url: string;
7
7
  module: NavigationModuleItem<any, any>;
8
8
  historyState?: any;
9
9
  customTitle?: string | null;
10
10
  }
11
- interface Props extends RouteComponentProps {
12
- navigationService: AdminNavigatorBase<any, any>;
11
+ interface Props<Feature, Field> extends RouteComponentProps {
12
+ permissions: Feature[];
13
+ superAdminPermission: Feature;
14
+ navigationGroups: Array<NavigationGroupItem<Feature, Field>>;
13
15
  }
14
16
  interface State {
15
17
  tabs: NavigatorTabItem[];
16
18
  }
17
- declare class RouterAwareNavigator extends React.PureComponent<Props, State> {
19
+ declare class RouterAwareNavigator<Feature, Field> extends React.PureComponent<Props<Feature, Field>, State> {
18
20
  static displayName: string;
19
21
  static contextType: React.Context<import("./context").AdminAppContextType>;
20
22
  context: React.ContextType<typeof AdminAppContext>;
21
- constructor(props: Props);
23
+ constructor(props: Props<Feature, Field>);
22
24
  componentDidMount(): void;
23
- componentDidUpdate(prevProps: Props): void;
25
+ componentDidUpdate(prevProps: Props<Feature, Field>): void;
24
26
  computeIndexByURL: (url: string) => number;
25
27
  onTabClose: (key: string | React.MouseEvent | React.KeyboardEvent) => void;
26
28
  onTabChange: (url: string) => void;
27
29
  render(): JSX.Element;
28
30
  }
29
- export declare const Navigator: React.ComponentClass<Pick<Props, "navigationService">, any> & import("react-router").WithRouterStatics<typeof RouterAwareNavigator>;
31
+ export declare const Navigator: React.ComponentClass<Pick<Props<unknown, unknown>, "navigationGroups" | "permissions" | "superAdminPermission">, any> & import("react-router").WithRouterStatics<typeof RouterAwareNavigator>;
30
32
  export {};
@@ -44,15 +44,16 @@ import { withRouter } from "react-router-dom";
44
44
  import { AdminAppContext } from "./context";
45
45
  import { i18n } from "../../internal/i18n/admin";
46
46
  import { Spin } from "../../core/Spin";
47
+ import { AdminNavigationUtil } from "../../util/AdminNavigationUtil";
47
48
  var RouterAwareNavigator = /** @class */ (function (_super) {
48
49
  __extends(RouterAwareNavigator, _super);
49
50
  function RouterAwareNavigator(props) {
50
51
  var _this = _super.call(this, props) || this;
51
52
  _this.computeIndexByURL = function (url) {
52
53
  // If url is null, then use current URL
53
- var navigationService = _this.props.navigationService;
54
+ var _a = _this.props, navigationGroups = _a.navigationGroups, permissions = _a.permissions, superAdminPermission = _a.superAdminPermission;
54
55
  var tabs = _this.state.tabs;
55
- var matchedModule = navigationService.moduleByURL(url);
56
+ var matchedModule = AdminNavigationUtil.moduleByURL(url, navigationGroups, permissions, superAdminPermission);
56
57
  if (matchedModule) {
57
58
  if (matchedModule.separateTab) {
58
59
  return tabs.findIndex(function (_) { return _.url === url; });
@@ -116,9 +117,9 @@ var RouterAwareNavigator = /** @class */ (function (_super) {
116
117
  }
117
118
  });
118
119
  // Create initial tab, unless homepage or 404
119
- var _a = this.props, location = _a.location, navigationService = _a.navigationService;
120
+ var _a = this.props, location = _a.location, navigationGroups = _a.navigationGroups, permissions = _a.permissions, superAdminPermission = _a.superAdminPermission;
120
121
  var url = location.pathname;
121
- var targetModule = navigationService.moduleByURL(url);
122
+ var targetModule = AdminNavigationUtil.moduleByURL(url, navigationGroups, permissions, superAdminPermission);
122
123
  if (targetModule) {
123
124
  this.setState({
124
125
  tabs: [
@@ -144,7 +145,7 @@ var RouterAwareNavigator = /** @class */ (function (_super) {
144
145
  newTabs[prevItemIndex].historyState = prevHistoryState;
145
146
  }
146
147
  // Then determine whether create a new tab, or update the existing tab
147
- var _a = this.props, location_1 = _a.location, navigationService = _a.navigationService;
148
+ var _a = this.props, location_1 = _a.location, navigationGroups = _a.navigationGroups, permissions = _a.permissions, superAdminPermission = _a.superAdminPermission;
148
149
  var newURL = location_1.pathname;
149
150
  var newHistoryState = location_1.state;
150
151
  var newIndex = this.computeIndexByURL(newURL);
@@ -156,7 +157,7 @@ var RouterAwareNavigator = /** @class */ (function (_super) {
156
157
  else {
157
158
  // If module exists, create a new tab
158
159
  // Else, it means, the user goes to the homepage tab, so just do nothing
159
- var targetModule = navigationService.moduleByURL(newURL);
160
+ var targetModule = AdminNavigationUtil.moduleByURL(newURL, navigationGroups, permissions, superAdminPermission);
160
161
  if (targetModule) {
161
162
  newTabs.push({
162
163
  url: newURL,
@@ -1 +1 @@
1
- {"version":3,"file":"Navigator.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/Navigator.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Navigator.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/Navigator.tsx"],"names":[],"mappings":"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"}
@@ -1,18 +1,20 @@
1
1
  import React from "react";
2
- import type { AdminNavigatorBase } from "../../util/AdminNavigatorBase";
2
+ import type { NavigationGroupItem } from "../../util/AdminNavigationUtil";
3
3
  import { AdminAppContext } from "./context";
4
- interface Props {
5
- navigationService: AdminNavigatorBase<any, any>;
4
+ interface Props<Feature, Field> {
5
+ permissions: Feature[];
6
+ superAdminPermission: Feature;
7
+ navigationGroups: Array<NavigationGroupItem<Feature, Field>>;
6
8
  WelcomeComponent?: React.ComponentType;
7
9
  onLifecycleError?: (error: unknown, componentStack: string) => void;
8
10
  onNotFound?: (notFoundPath: string) => void;
9
11
  }
10
- export declare class RouteSwitch extends React.PureComponent<Props> {
12
+ export declare class RouteSwitch<Feature, Field> extends React.PureComponent<Props<Feature, Field>> {
11
13
  static displayName: string;
12
14
  static contextType: React.Context<import("./context").AdminAppContextType>;
13
15
  context: React.ContextType<typeof AdminAppContext>;
14
16
  private readonly navigationModules;
15
- constructor(props: Props);
17
+ constructor(props: Props<Feature, Field>);
16
18
  renderWelcome: () => JSX.Element;
17
19
  render(): JSX.Element;
18
20
  }
@@ -25,6 +25,7 @@ var __assign = (this && this.__assign) || function () {
25
25
  return __assign.apply(this, arguments);
26
26
  };
27
27
  import React from "react";
28
+ import { AdminNavigationUtil } from "../../util/AdminNavigationUtil";
28
29
  import { Route, Switch } from "react-router-dom";
29
30
  import { WithErrorBoundary } from "./WithErrorBoundary";
30
31
  import { NotFound } from "./NotFound";
@@ -42,7 +43,7 @@ var RouteSwitch = /** @class */ (function (_super) {
42
43
  return (React.createElement(AdminPage, null,
43
44
  React.createElement(AdminPage.Result, { type: "success", title: TextUtil.interpolate(t.welcome, name), subtitle: t.homePageSubtitle, hideButton: true })));
44
45
  };
45
- _this.navigationModules = props.navigationService.modules();
46
+ _this.navigationModules = AdminNavigationUtil.modules(props.navigationGroups, props.permissions, props.superAdminPermission);
46
47
  return _this;
47
48
  }
48
49
  RouteSwitch.prototype.render = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"RouteSwitch.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/RouteSwitch.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,IAAI,EAAC,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,WAAW,CAAC;AAS1C;IAAiC,+BAA0B;IAOvD,qBAAY,KAAY;QAAxB,YACI,kBAAM,KAAK,CAAC,SAEf;QAED,mBAAa,GAAG;YACL,IAAA,IAAI,GAAI,KAAI,CAAC,OAAO,KAAhB,CAAiB;YAC5B,IAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACjB,OAAO,CACH,oBAAC,SAAS;gBACN,oBAAC,SAAS,CAAC,MAAM,IAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,gBAAgB,EAAE,UAAU,SAAG,CAClH,CACf,CAAC;QACN,CAAC,CAAC;QAXE,KAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;;IAC/D,CAAC;IAYD,4BAAM,GAAN;QACU,IAAA,KAAmD,IAAI,CAAC,KAAK,EAA5D,gBAAgB,sBAAA,EAAE,gBAAgB,sBAAA,EAAE,UAAU,gBAAc,CAAC;QACpE,OAAO,CACH,oBAAC,MAAM;YACH,oBAAC,KAAK,IAAC,KAAK,QAAC,IAAI,EAAC,GAAG,EAAC,SAAS,EAAE,gBAAgB,IAAI,IAAI,CAAC,aAAa,GAAI;YAC1E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAC,EAAgD;oBAA/C,GAAG,SAAA,EAAE,UAAU,gBAAA,EAAiB,cAAc,mBAAA;gBAAM,OAAA,CAC9E,oBAAC,KAAK,IACF,KAAK,QACL,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,EACzC,SAAS,EAAE,UAAC,KAAU,IAAK,OAAA,CACvB,oBAAC,iBAAiB,IAAC,gBAAgB,EAAE,gBAAgB;wBACjD,oBAAC,cAAc,eAAK,KAAK,EAAI,CACb,CACvB,EAJ0B,CAI1B,GACH,CACL;YAXiF,CAWjF,CAAC;YACF,oBAAC,KAAK,IAAC,SAAS,EAAE,cAAM,OAAA,oBAAC,QAAQ,IAAC,UAAU,EAAE,UAAU,GAAI,EAApC,CAAoC,GAAI,CAC3D,CACZ,CAAC;IACN,CAAC;IAzCM,uBAAW,GAAG,aAAa,CAAC;IAC5B,uBAAW,GAAG,eAAe,CAAC;IAyCzC,kBAAC;CAAA,AA3CD,CAAiC,KAAK,CAAC,aAAa,GA2CnD;SA3CY,WAAW"}
1
+ {"version":3,"file":"RouteSwitch.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/RouteSwitch.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,IAAI,EAAC,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,WAAW,CAAC;AAW1C;IAAiD,+BAA0C;IAOvF,qBAAY,KAA4B;QAAxC,YACI,kBAAM,KAAK,CAAC,SAEf;QAED,mBAAa,GAAG;YACL,IAAA,IAAI,GAAI,KAAI,CAAC,OAAO,KAAhB,CAAiB;YAC5B,IAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACjB,OAAO,CACH,oBAAC,SAAS;gBACN,oBAAC,SAAS,CAAC,MAAM,IAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,gBAAgB,EAAE,UAAU,SAAG,CAClH,CACf,CAAC;QACN,CAAC,CAAC;QAXE,KAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;;IAChI,CAAC;IAYD,4BAAM,GAAN;QACU,IAAA,KAAmD,IAAI,CAAC,KAAK,EAA5D,gBAAgB,sBAAA,EAAE,gBAAgB,sBAAA,EAAE,UAAU,gBAAc,CAAC;QACpE,OAAO,CACH,oBAAC,MAAM;YACH,oBAAC,KAAK,IAAC,KAAK,QAAC,IAAI,EAAC,GAAG,EAAC,SAAS,EAAE,gBAAgB,IAAI,IAAI,CAAC,aAAa,GAAI;YAC1E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAC,EAAgD;oBAA/C,GAAG,SAAA,EAAE,UAAU,gBAAA,EAAiB,cAAc,mBAAA;gBAAM,OAAA,CAC9E,oBAAC,KAAK,IACF,KAAK,QACL,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,EACzC,SAAS,EAAE,UAAC,KAAU,IAAK,OAAA,CACvB,oBAAC,iBAAiB,IAAC,gBAAgB,EAAE,gBAAgB;wBACjD,oBAAC,cAAc,eAAK,KAAK,EAAI,CACb,CACvB,EAJ0B,CAI1B,GACH,CACL;YAXiF,CAWjF,CAAC;YACF,oBAAC,KAAK,IAAC,SAAS,EAAE,cAAM,OAAA,oBAAC,QAAQ,IAAC,UAAU,EAAE,UAAU,GAAI,EAApC,CAAoC,GAAI,CAC3D,CACZ,CAAC;IACN,CAAC;IAzCM,uBAAW,GAAG,aAAa,CAAC;IAC5B,uBAAW,GAAG,eAAe,CAAC;IAyCzC,kBAAC;CAAA,AA3CD,CAAiD,KAAK,CAAC,aAAa,GA2CnE;SA3CY,WAAW"}
@@ -1,14 +1,16 @@
1
1
  import React from "react";
2
- import type { AdminNavigatorBase } from "../../util/AdminNavigatorBase";
2
+ import type { NavigationGroupItem } from "../../util/AdminNavigationUtil";
3
3
  import { SoundSwitch } from "./Default/SoundSwitch";
4
4
  import { SquareLogo } from "./Default/SquareLogo";
5
5
  import type { ExpandableProps } from "./Default/SquareLogo";
6
6
  import { NavigatorSide } from "./Default/NavigatorSide";
7
7
  import "antd/es/layout/style";
8
8
  import "./index.less";
9
- export interface Props {
9
+ export interface Props<Feature, Field> {
10
10
  name: string;
11
- navigationService: AdminNavigatorBase<any, any>;
11
+ permissions: Feature[];
12
+ superAdminPermission: Feature;
13
+ navigationGroups: Array<NavigationGroupItem<Feature, Field>>;
12
14
  LogoComponent?: React.ComponentType<ExpandableProps>;
13
15
  NavigatorSideComponent?: React.ComponentType;
14
16
  WelcomeComponent?: React.ComponentType;
@@ -23,16 +25,15 @@ export interface Props {
23
25
  interface State {
24
26
  menuExpanded: boolean;
25
27
  }
26
- export declare class AdminApp extends React.PureComponent<Props, State> {
28
+ export declare class AdminApp<Feature, Field> extends React.PureComponent<Props<Feature, Field>, State> {
27
29
  static displayName: string;
28
30
  static SquareLogo: typeof SquareLogo;
29
31
  static SoundSwitch: typeof SoundSwitch;
30
32
  static NavigatorSide: typeof NavigatorSide;
31
33
  private readonly menuExpandedKey;
32
- private readonly navigationModules;
33
34
  private readonly adminAppContext;
34
35
  private registeredTitleUpdater;
35
- constructor(props: Props);
36
+ constructor(props: Props<Feature, Field>);
36
37
  toggleMenuExpansion: () => void;
37
38
  render(): JSX.Element;
38
39
  }
@@ -41,7 +41,6 @@ var AdminApp = /** @class */ (function (_super) {
41
41
  _this.state = {
42
42
  menuExpanded: LocalStorageUtil.getBool(_this.menuExpandedKey, true),
43
43
  };
44
- _this.navigationModules = props.navigationService.modules();
45
44
  _this.adminAppContext = {
46
45
  name: props.name,
47
46
  updateTitle: function (title) { var _a; return (_a = _this.registeredTitleUpdater) === null || _a === void 0 ? void 0 : _a.call(_this, title); },
@@ -50,20 +49,20 @@ var AdminApp = /** @class */ (function (_super) {
50
49
  return _this;
51
50
  }
52
51
  AdminApp.prototype.render = function () {
53
- var _a = this.props, name = _a.name, navigationService = _a.navigationService, WelcomeComponent = _a.WelcomeComponent, LogoComponent = _a.LogoComponent, NavigatorSideComponent = _a.NavigatorSideComponent, noBrowserRouter = _a.noBrowserRouter, badges = _a.badges, sideMenuWidth = _a.sideMenuWidth, onNotFound = _a.onNotFound, onLifecycleError = _a.onLifecycleError;
52
+ var _a = this.props, name = _a.name, navigationGroups = _a.navigationGroups, permissions = _a.permissions, superAdminPermission = _a.superAdminPermission, WelcomeComponent = _a.WelcomeComponent, LogoComponent = _a.LogoComponent, NavigatorSideComponent = _a.NavigatorSideComponent, noBrowserRouter = _a.noBrowserRouter, badges = _a.badges, sideMenuWidth = _a.sideMenuWidth, onNotFound = _a.onNotFound, onLifecycleError = _a.onLifecycleError;
54
53
  var menuExpanded = this.state.menuExpanded;
55
54
  var coreContent = (React.createElement(AdminAppContext.Provider, { value: this.adminAppContext },
56
55
  React.createElement(AntLayout, { id: "admin-app" },
57
56
  React.createElement(AntLayout.Sider, { collapsed: !menuExpanded, width: sideMenuWidth },
58
57
  LogoComponent && React.createElement(LogoComponent, { expanded: menuExpanded }),
59
- React.createElement(Menu, { navigationService: navigationService, menuExpanded: menuExpanded, siteName: name, badges: badges }),
58
+ React.createElement(Menu, { navigationGroups: navigationGroups, permissions: permissions, superAdminPermission: superAdminPermission, menuExpanded: menuExpanded, siteName: name, badges: badges }),
60
59
  React.createElement("div", { className: "toggle-menu-icon", onClick: this.toggleMenuExpansion }, menuExpanded ? React.createElement(MenuFoldOutlined, null) : React.createElement(MenuUnfoldOutlined, null))),
61
60
  React.createElement(AntLayout, null,
62
61
  React.createElement(AntLayout.Header, null,
63
- React.createElement(Navigator, { navigationService: navigationService }),
62
+ React.createElement(Navigator, { navigationGroups: navigationGroups, permissions: permissions, superAdminPermission: superAdminPermission }),
64
63
  NavigatorSideComponent && React.createElement(NavigatorSideComponent, null)),
65
64
  React.createElement(AntLayout.Content, null,
66
- React.createElement(RouteSwitch, { navigationService: navigationService, WelcomeComponent: WelcomeComponent, onLifecycleError: onLifecycleError, onNotFound: onNotFound }))))));
65
+ React.createElement(RouteSwitch, { navigationGroups: navigationGroups, permissions: permissions, superAdminPermission: superAdminPermission, WelcomeComponent: WelcomeComponent, onLifecycleError: onLifecycleError, onNotFound: onNotFound }))))));
67
66
  return noBrowserRouter ? coreContent : React.createElement(BrowserRouter, null, coreContent);
68
67
  };
69
68
  AdminApp.displayName = "AdminApp";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/index.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { NavigationGroupItem, NavigationModuleItem } from "../util/AdminNavigatorBase";
2
+ import type { NavigationGroupItem, NavigationModuleItem } from "../util/AdminNavigationUtil";
3
3
  export interface Props<Feature, Field = undefined> {
4
4
  navigationGroups: Array<NavigationGroupItem<Feature, Field>>;
5
5
  boundPermissionsCalculator?: (permissions: Feature) => Feature[];
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import "./index.less";
3
+ interface Props {
4
+ hasNextPage: boolean;
5
+ endOfListMessage?: string;
6
+ hasNextPageMessage?: string;
7
+ loading?: boolean;
8
+ }
9
+ export declare const Footer: ({ loading, hasNextPage, hasNextPageMessage, endOfListMessage }: Props) => JSX.Element;
10
+ export {};
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { Loader } from "../../Loader";
3
+ import "./index.less";
4
+ export var Footer = function (_a) {
5
+ var loading = _a.loading, hasNextPage = _a.hasNextPage, hasNextPageMessage = _a.hasNextPageMessage, endOfListMessage = _a.endOfListMessage;
6
+ var ref = React.useRef(null);
7
+ var end = endOfListMessage !== null && endOfListMessage !== void 0 ? endOfListMessage : "All data loaded";
8
+ var next = hasNextPageMessage !== null && hasNextPageMessage !== void 0 ? hasNextPageMessage : "Pull up to load more";
9
+ return (React.createElement("div", { ref: ref, className: "g-flat-list-footer" }, loading ? React.createElement(Loader, null) : hasNextPage ? next : end));
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/FlatList/Content/Footer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,cAAc,CAAC;AAQtB,MAAM,CAAC,IAAM,MAAM,GAAG,UAAC,EAAmE;QAAlE,OAAO,aAAA,EAAE,WAAW,iBAAA,EAAE,kBAAkB,wBAAA,EAAE,gBAAgB,sBAAA;IAC9E,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAC;IACtD,IAAM,GAAG,GAAG,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,iBAAiB,CAAC;IAClD,IAAM,IAAI,GAAG,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,sBAAsB,CAAC;IAE1D,OAAO,CACH,6BAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,oBAAoB,IACxC,OAAO,CAAC,CAAC,CAAC,oBAAC,MAAM,OAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAC9C,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -1,8 +1,7 @@
1
1
  .g-flat-list-footer {
2
- width: 100%;
3
2
  display: flex;
4
- flex-flow: row nowrap;
3
+ flex-flow: column nowrap;
5
4
  justify-content: center;
6
5
  align-items: center;
7
- padding: 5px;
6
+ padding: 15px 0;
8
7
  }
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import type { FlatListProps } from "../type";
3
+ import "../../../internal/polyfill/IntersectionObserver";
4
+ interface Props<T> extends Pick<FlatListProps<T>, "data" | "renderItem" | "gap" | "emptyPlaceholder" | "rowKey" | "Footer" | "endOfListMessage" | "onPullUpLoading"> {
5
+ loading: boolean;
6
+ hasNextPageMessage?: string;
7
+ }
8
+ export declare function Content<T>({ data, emptyPlaceholder, renderItem, gap, rowKey, loading, Footer, endOfListMessage, onPullUpLoading, hasNextPageMessage }: Props<T>): JSX.Element;
9
+ export {};
@@ -0,0 +1,71 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ import React from "react";
18
+ import { useGap } from "../useGap";
19
+ import { Footer as DefaultFooter } from "./Footer";
20
+ import "../../../internal/polyfill/IntersectionObserver";
21
+ export function Content(_a) {
22
+ var data = _a.data, emptyPlaceholder = _a.emptyPlaceholder, renderItem = _a.renderItem, gap = _a.gap, rowKey = _a.rowKey, loading = _a.loading, Footer = _a.Footer, endOfListMessage = _a.endOfListMessage, onPullUpLoading = _a.onPullUpLoading, hasNextPageMessage = _a.hasNextPageMessage;
23
+ var Item = renderItem;
24
+ var itemStyle = useGap(gap);
25
+ var markerId = React.useRef(createKey());
26
+ var loadedDataKey = React.useRef(null);
27
+ var _b = React.useMemo(function () { return splitByLast(data, 2); }, [data]), first = _b.first, second = _b.second;
28
+ var _c = __read(React.useState(createKey()), 2), dataKey = _c[0], setDataKey = _c[1];
29
+ var onPullUpLoadingRef = React.useRef(onPullUpLoading);
30
+ onPullUpLoadingRef.current = onPullUpLoading;
31
+ React.useEffect(function () { return setDataKey(createKey()); }, [data]);
32
+ React.useEffect(function () {
33
+ var marker = document.getElementById(markerId.current);
34
+ if (!marker)
35
+ return;
36
+ var observer = new IntersectionObserver(function (mutations) {
37
+ var _a;
38
+ var mutation = mutations[0];
39
+ if (!mutation.isIntersecting)
40
+ return;
41
+ var currentDataKey = mutation.target.getAttribute("data-key");
42
+ if (loadedDataKey.current === currentDataKey)
43
+ return;
44
+ loadedDataKey.current = currentDataKey;
45
+ (_a = onPullUpLoadingRef.current) === null || _a === void 0 ? void 0 : _a.call(onPullUpLoadingRef);
46
+ });
47
+ observer.observe(marker);
48
+ return function () { return observer.disconnect(); };
49
+ }, []);
50
+ var createItem = function (source) {
51
+ return source.map(function (_a) {
52
+ var d = _a.d, i = _a.i;
53
+ return (React.createElement("div", { className: "g-flat-list-item", key: rowKey === "index" ? i : String(d[rowKey]), style: itemStyle },
54
+ React.createElement(Item, { data: d, index: i })));
55
+ });
56
+ };
57
+ return (React.createElement("div", { className: "g-flat-list-content" }, data.length === 0 && emptyPlaceholder ? (emptyPlaceholder) : (React.createElement(React.Fragment, null,
58
+ createItem(first),
59
+ React.createElement("div", { id: markerId.current, "data-key": dataKey }),
60
+ createItem(second),
61
+ Footer ? (React.createElement(Footer, { loading: loading })) : (React.createElement(DefaultFooter, { loading: loading, hasNextPage: onPullUpLoading !== undefined, endOfListMessage: endOfListMessage, hasNextPageMessage: hasNextPageMessage }))))));
62
+ }
63
+ function splitByLast(data, last) {
64
+ var pair = data.map(function (d, i) { return ({ d: d, i: i }); });
65
+ var from = Math.max(0, data.length - last);
66
+ return { first: pair.slice(0, from), second: pair.slice(from) };
67
+ }
68
+ function createKey() {
69
+ return Date.now().toString(36) + Math.random().toString(36).substring(2);
70
+ }
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/FlatList/Content/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACjC,OAAO,EAAC,MAAM,IAAI,aAAa,EAAC,MAAM,UAAU,CAAC;AAEjD,OAAO,iDAAiD,CAAC;AAYzD,MAAM,UAAU,OAAO,CAAI,EAAmI;QAAlI,IAAI,UAAA,EAAE,gBAAgB,sBAAA,EAAE,UAAU,gBAAA,EAAE,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,MAAM,YAAA,EAAE,gBAAgB,sBAAA,EAAE,eAAe,qBAAA,EAAE,kBAAkB,wBAAA;IAC/I,IAAM,IAAI,GAAG,UAAU,CAAC;IACxB,IAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3C,IAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAgB,IAAI,CAAC,CAAC;IAClD,IAAA,KAAkB,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,EAApB,CAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,EAAlE,KAAK,WAAA,EAAE,MAAM,YAAqD,CAAC;IACpE,IAAA,KAAA,OAAwB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAA,EAAlD,OAAO,QAAA,EAAE,UAAU,QAA+B,CAAC;IAE1D,IAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACzD,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;IAE7C,KAAK,CAAC,SAAS,CAAC,cAAM,OAAA,UAAU,CAAC,SAAS,EAAE,CAAC,EAAvB,CAAuB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvD,KAAK,CAAC,SAAS,CAAC;QACZ,IAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,IAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,UAAA,SAAS;;YAC/C,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc;gBAAE,OAAO;YAErC,IAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAEhE,IAAI,aAAa,CAAC,OAAO,KAAK,cAAc;gBAAE,OAAO;YACrD,aAAa,CAAC,OAAO,GAAG,cAAc,CAAC;YACvC,MAAA,kBAAkB,CAAC,OAAO,kEAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEzB,OAAO,cAAM,OAAA,QAAQ,CAAC,UAAU,EAAE,EAArB,CAAqB,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,UAAU,GAAG,UAAC,MAA0B;QAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,UAAC,EAAM;gBAAL,CAAC,OAAA,EAAE,CAAC,OAAA;YAAM,OAAA,CAC1B,6BAAK,SAAS,EAAC,kBAAkB,EAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS;gBAC/F,oBAAC,IAAI,IAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAI,CACzB,CACT;QAJ6B,CAI7B,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,CACH,6BAAK,SAAS,EAAC,qBAAqB,IAC/B,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CACrC,gBAAgB,CACnB,CAAC,CAAC,CAAC,CACA,oBAAC,KAAK,CAAC,QAAQ;QACV,UAAU,CAAC,KAAK,CAAC;QAClB,6BAAK,EAAE,EAAE,QAAQ,CAAC,OAAO,cAAY,OAAO,GAAI;QAC/C,UAAU,CAAC,MAAM,CAAC;QAClB,MAAM,CAAC,CAAC,CAAC,CACN,oBAAC,MAAM,IAAC,OAAO,EAAE,OAAO,GAAI,CAC/B,CAAC,CAAC,CAAC,CACA,oBAAC,aAAa,IAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,KAAK,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,GAAI,CAC9J,CACY,CACpB,CACC,CACT,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAI,IAAS,EAAE,IAAY;IAC3C,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,EAAC,CAAC,GAAA,EAAE,CAAC,GAAA,EAAC,CAAC,EAAR,CAAQ,CAAC,CAAC;IAC1C,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,CAAC;AAClE,CAAC;AAED,SAAS,SAAS;IACd,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import "./index.less";
3
+ export declare const Loader: () => JSX.Element;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import "./index.less";
3
+ export var Loader = function () {
4
+ return (React.createElement("div", { className: "g-flat-list-loader" },
5
+ React.createElement("div", { className: "dot" }),
6
+ React.createElement("div", { className: "dot" }),
7
+ React.createElement("div", { className: "dot" })));
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/FlatList/Loader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,CAAC;AAEtB,MAAM,CAAC,IAAM,MAAM,GAAG;IAClB,OAAO,CACH,6BAAK,SAAS,EAAC,oBAAoB;QAC/B,6BAAK,SAAS,EAAC,KAAK,GAAG;QACvB,6BAAK,SAAS,EAAC,KAAK,GAAG;QACvB,6BAAK,SAAS,EAAC,KAAK,GAAG,CACrB,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ .g-flat-list-loader {
2
+ display: flex;
3
+ flex-flow: row nowrap;
4
+ gap: 10px;
5
+
6
+ .dot {
7
+ width: 8px;
8
+ height: 8px;
9
+ border-radius: 50%;
10
+ background-color: #c2c2c2;
11
+ animation-name: jumping;
12
+ animation-duration: 750ms;
13
+ animation-timing-function: ease-in-out;
14
+ animation-iteration-count: infinite;
15
+
16
+ .delay(@count) when (@count > 0) {
17
+ &:nth-of-type(@{count}) {
18
+ animation-delay: @count * 250ms;
19
+ }
20
+ .delay(@count - 1);
21
+ }
22
+
23
+ .delay(4);
24
+ }
25
+
26
+ @keyframes jumping {
27
+ 0% {
28
+ opacity: 1;
29
+ }
30
+
31
+ 50% {
32
+ opacity: 0;
33
+ }
34
+
35
+ 100% {
36
+ opacity: 1;
37
+ }
38
+ }
39
+ }
@@ -4,5 +4,5 @@ interface Props {
4
4
  loading: boolean;
5
5
  message?: string;
6
6
  }
7
- export declare const Spinner: (props: Props) => JSX.Element;
7
+ export declare const Refresh: ({ loading, message }: Props) => JSX.Element;
8
8
  export {};
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { Loader } from "../Loader";
3
+ import "./index.less";
4
+ export var Refresh = function (_a) {
5
+ var loading = _a.loading, message = _a.message;
6
+ return React.createElement("div", { className: "g-flat-list-default-refresh" }, loading ? React.createElement(Loader, null) : React.createElement("span", null, message !== null && message !== void 0 ? message : "release to refresh"));
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/FlatList/Refresh/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACjC,OAAO,cAAc,CAAC;AAOtB,MAAM,CAAC,IAAM,OAAO,GAAG,UAAC,EAAyB;QAAxB,OAAO,aAAA,EAAE,OAAO,aAAA;IACrC,OAAO,6BAAK,SAAS,EAAC,6BAA6B,IAAE,OAAO,CAAC,CAAC,CAAC,oBAAC,MAAM,OAAG,CAAC,CAAC,CAAC,kCAAO,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,oBAAoB,CAAQ,CAAO,CAAC;AACtI,CAAC,CAAC"}