@kcuf-ui/backdrop-headless 0.0.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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/const/index.js +7 -0
  4. package/dist/cjs/context/index.js +8 -0
  5. package/dist/cjs/enum/index.js +14 -0
  6. package/dist/cjs/hook/_use-model-context.js +12 -0
  7. package/dist/cjs/hook/_use-model-dispatch.js +11 -0
  8. package/dist/cjs/hook/_use-model-props.js +11 -0
  9. package/dist/cjs/hook/_use-model-state.js +11 -0
  10. package/dist/cjs/hook/index.js +27 -0
  11. package/dist/cjs/hook/use-dispatch-refresh-visible.js +19 -0
  12. package/dist/cjs/hook/use-effect-singleton.js +31 -0
  13. package/dist/cjs/hook/use-effects.js +11 -0
  14. package/dist/cjs/hook/use-handle-click.js +20 -0
  15. package/dist/cjs/hook/use-z-index.js +18 -0
  16. package/dist/cjs/index.js +26 -0
  17. package/dist/cjs/lifecycle/index.js +12 -0
  18. package/dist/cjs/provider/index.js +39 -0
  19. package/dist/cjs/reducer/index.js +19 -0
  20. package/dist/cjs/reducer/reduce-refresh-visible.js +13 -0
  21. package/dist/cjs/types/action.js +5 -0
  22. package/dist/cjs/types/common.js +5 -0
  23. package/dist/cjs/types/context.js +5 -0
  24. package/dist/cjs/types/index.js +60 -0
  25. package/dist/cjs/types/props.js +5 -0
  26. package/dist/cjs/types/state.js +5 -0
  27. package/dist/cjs/util/create-initial-state.js +11 -0
  28. package/dist/cjs/util/index.js +41 -0
  29. package/dist/cjs/util/message-emit-refresh.js +12 -0
  30. package/dist/cjs/util/singleton-get-visible-item.js +26 -0
  31. package/dist/cjs/util/singleton-global.js +13 -0
  32. package/dist/cjs/util/singleton-is-visible.js +12 -0
  33. package/dist/cjs/util/singleton-pull.js +28 -0
  34. package/dist/cjs/util/singleton-push.js +34 -0
  35. package/dist/cjs/util/singleton-update.js +21 -0
  36. package/dist/cjs/util/toggle-scrollbar.js +21 -0
  37. package/dist/esm/const/index.js +2 -0
  38. package/dist/esm/const/index.js.map +1 -0
  39. package/dist/esm/context/index.js +3 -0
  40. package/dist/esm/context/index.js.map +1 -0
  41. package/dist/esm/enum/index.js +9 -0
  42. package/dist/esm/enum/index.js.map +1 -0
  43. package/dist/esm/hook/_use-model-context.js +6 -0
  44. package/dist/esm/hook/_use-model-context.js.map +1 -0
  45. package/dist/esm/hook/_use-model-dispatch.js +5 -0
  46. package/dist/esm/hook/_use-model-dispatch.js.map +1 -0
  47. package/dist/esm/hook/_use-model-props.js +5 -0
  48. package/dist/esm/hook/_use-model-props.js.map +1 -0
  49. package/dist/esm/hook/_use-model-state.js +5 -0
  50. package/dist/esm/hook/_use-model-state.js.map +1 -0
  51. package/dist/esm/hook/index.js +8 -0
  52. package/dist/esm/hook/index.js.map +1 -0
  53. package/dist/esm/hook/use-dispatch-refresh-visible.js +13 -0
  54. package/dist/esm/hook/use-dispatch-refresh-visible.js.map +1 -0
  55. package/dist/esm/hook/use-effect-singleton.js +25 -0
  56. package/dist/esm/hook/use-effect-singleton.js.map +1 -0
  57. package/dist/esm/hook/use-effects.js +5 -0
  58. package/dist/esm/hook/use-effects.js.map +1 -0
  59. package/dist/esm/hook/use-handle-click.js +14 -0
  60. package/dist/esm/hook/use-handle-click.js.map +1 -0
  61. package/dist/esm/hook/use-z-index.js +12 -0
  62. package/dist/esm/hook/use-z-index.js.map +1 -0
  63. package/dist/esm/index.js +3 -0
  64. package/dist/esm/index.js.map +1 -0
  65. package/dist/esm/lifecycle/index.js +6 -0
  66. package/dist/esm/lifecycle/index.js.map +1 -0
  67. package/dist/esm/provider/index.js +33 -0
  68. package/dist/esm/provider/index.js.map +1 -0
  69. package/dist/esm/reducer/index.js +13 -0
  70. package/dist/esm/reducer/index.js.map +1 -0
  71. package/dist/esm/reducer/reduce-refresh-visible.js +8 -0
  72. package/dist/esm/reducer/reduce-refresh-visible.js.map +1 -0
  73. package/dist/esm/types/action.js +2 -0
  74. package/dist/esm/types/action.js.map +1 -0
  75. package/dist/esm/types/common.js +2 -0
  76. package/dist/esm/types/common.js.map +1 -0
  77. package/dist/esm/types/context.js +2 -0
  78. package/dist/esm/types/context.js.map +1 -0
  79. package/dist/esm/types/index.js +6 -0
  80. package/dist/esm/types/index.js.map +1 -0
  81. package/dist/esm/types/props.js +2 -0
  82. package/dist/esm/types/props.js.map +1 -0
  83. package/dist/esm/types/state.js +2 -0
  84. package/dist/esm/types/state.js.map +1 -0
  85. package/dist/esm/util/create-initial-state.js +6 -0
  86. package/dist/esm/util/create-initial-state.js.map +1 -0
  87. package/dist/esm/util/index.js +6 -0
  88. package/dist/esm/util/index.js.map +1 -0
  89. package/dist/esm/util/message-emit-refresh.js +6 -0
  90. package/dist/esm/util/message-emit-refresh.js.map +1 -0
  91. package/dist/esm/util/singleton-get-visible-item.js +21 -0
  92. package/dist/esm/util/singleton-get-visible-item.js.map +1 -0
  93. package/dist/esm/util/singleton-global.js +8 -0
  94. package/dist/esm/util/singleton-global.js.map +1 -0
  95. package/dist/esm/util/singleton-is-visible.js +6 -0
  96. package/dist/esm/util/singleton-is-visible.js.map +1 -0
  97. package/dist/esm/util/singleton-pull.js +22 -0
  98. package/dist/esm/util/singleton-pull.js.map +1 -0
  99. package/dist/esm/util/singleton-push.js +28 -0
  100. package/dist/esm/util/singleton-push.js.map +1 -0
  101. package/dist/esm/util/singleton-update.js +15 -0
  102. package/dist/esm/util/singleton-update.js.map +1 -0
  103. package/dist/esm/util/toggle-scrollbar.js +17 -0
  104. package/dist/esm/util/toggle-scrollbar.js.map +1 -0
  105. package/dist/types/const/index.d.ts +1 -0
  106. package/dist/types/context/index.d.ts +3 -0
  107. package/dist/types/enum/index.d.ts +6 -0
  108. package/dist/types/hook/_use-model-context.d.ts +2 -0
  109. package/dist/types/hook/_use-model-dispatch.d.ts +2 -0
  110. package/dist/types/hook/_use-model-props.d.ts +2 -0
  111. package/dist/types/hook/_use-model-state.d.ts +2 -0
  112. package/dist/types/hook/index.d.ts +3 -0
  113. package/dist/types/hook/use-dispatch-refresh-visible.d.ts +1 -0
  114. package/dist/types/hook/use-effect-singleton.d.ts +1 -0
  115. package/dist/types/hook/use-effects.d.ts +1 -0
  116. package/dist/types/hook/use-handle-click.d.ts +1 -0
  117. package/dist/types/hook/use-z-index.d.ts +1 -0
  118. package/dist/types/index.d.ts +3 -0
  119. package/dist/types/lifecycle/index.d.ts +1 -0
  120. package/dist/types/provider/index.d.ts +3 -0
  121. package/dist/types/reducer/index.d.ts +2 -0
  122. package/dist/types/reducer/reduce-refresh-visible.d.ts +2 -0
  123. package/dist/types/types/action.d.ts +7 -0
  124. package/dist/types/types/common.d.ts +16 -0
  125. package/dist/types/types/context.d.ts +12 -0
  126. package/dist/types/types/index.d.ts +5 -0
  127. package/dist/types/types/props.d.ts +14 -0
  128. package/dist/types/types/state.d.ts +3 -0
  129. package/dist/types/util/create-initial-state.d.ts +2 -0
  130. package/dist/types/util/index.d.ts +5 -0
  131. package/dist/types/util/message-emit-refresh.d.ts +1 -0
  132. package/dist/types/util/singleton-get-visible-item.d.ts +5 -0
  133. package/dist/types/util/singleton-global.d.ts +2 -0
  134. package/dist/types/util/singleton-is-visible.d.ts +1 -0
  135. package/dist/types/util/singleton-pull.d.ts +1 -0
  136. package/dist/types/util/singleton-push.d.ts +1 -0
  137. package/dist/types/util/singleton-update.d.ts +1 -0
  138. package/dist/types/util/toggle-scrollbar.d.ts +4 -0
  139. package/package.json +57 -0
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = singletonUpdate;
8
+ var _const = require("../const");
9
+ var _singletonGlobal = _interopRequireDefault(require("./singleton-global"));
10
+ var _messageEmitRefresh = _interopRequireDefault(require("./message-emit-refresh"));
11
+ function singletonUpdate(n) {
12
+ var _singletonGlobal$item;
13
+ var zIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _const.DEFAULT_Z_INDEX;
14
+ var item = (_singletonGlobal$item = (0, _singletonGlobal.default)().items) === null || _singletonGlobal$item === void 0 ? void 0 : _singletonGlobal$item.find(function (v) {
15
+ return v.n === n;
16
+ });
17
+ if (item && item.zIndex !== zIndex) {
18
+ item.zIndex = zIndex;
19
+ (0, _messageEmitRefresh.default)(n);
20
+ }
21
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = toggleScrollbar;
7
+ var _mereDom = require("@kcuf/mere-dom");
8
+ /**
9
+ * 不用 effect,不好处理
10
+ */
11
+ function toggleScrollbar(visible) {
12
+ if (visible) {
13
+ document.documentElement.style.overflow = '';
14
+ document.documentElement.style.paddingRight = '';
15
+ } else {
16
+ var scrollbarWidth = (0, _mereDom.getScrollbarWidthOfWindow)(); // 先算好
17
+
18
+ document.documentElement.style.overflow = 'hidden';
19
+ document.documentElement.style.paddingRight = "".concat(scrollbarWidth, "px");
20
+ }
21
+ }
@@ -0,0 +1,2 @@
1
+ export var DEFAULT_Z_INDEX = 100;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["DEFAULT_Z_INDEX"],"sources":["../../../src/const/index.ts"],"sourcesContent":["export const DEFAULT_Z_INDEX = 100;\n"],"mappings":"AAAA,OAAO,IAAMA,eAAe,GAAG,GAAG","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { createContext } from 'react';
2
+ export default /*#__PURE__*/createContext(null);
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["createContext"],"sources":["../../../src/context/index.ts"],"sourcesContent":["import {\n createContext\n} from 'react';\n\nimport {\n IModelContext\n} from '../types';\n\nexport default createContext<IModelContext | null>(null);\n"],"mappings":"AAAA,SACEA,aAAa,QACR,OAAO;AAMd,4BAAeA,aAAa,CAAuB,IAAI,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ export var EAction = /*#__PURE__*/function (EAction) {
2
+ EAction[EAction["REFRESH_VISIBLE"] = 0] = "REFRESH_VISIBLE";
3
+ return EAction;
4
+ }({});
5
+ export var EMessageType = /*#__PURE__*/function (EMessageType) {
6
+ EMessageType["REFRESH"] = "kcuf-ui-backdrop:refresh";
7
+ return EMessageType;
8
+ }({});
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["EAction","EMessageType"],"sources":["../../../src/enum/index.ts"],"sourcesContent":["export enum EAction {\n REFRESH_VISIBLE\n}\n\nexport enum EMessageType {\n REFRESH = 'kcuf-ui-backdrop:refresh'\n}\n"],"mappings":"AAAA,WAAYA,OAAO,0BAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA;AAInB,WAAYC,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { useContext } from 'react';
2
+ import Context from '../context';
3
+ export default function useModelContext() {
4
+ return useContext(Context); // eslint-disable-line @typescript-eslint/no-non-null-assertion
5
+ }
6
+ //# sourceMappingURL=_use-model-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_use-model-context.js","names":["useContext","Context","useModelContext"],"sources":["../../../src/hook/_use-model-context.ts"],"sourcesContent":["import {\n useContext\n} from 'react';\n\nimport {\n IModelContext\n} from '../types';\nimport Context from '../context';\n\nexport default function useModelContext(): IModelContext {\n return useContext(Context)!; // eslint-disable-line @typescript-eslint/no-non-null-assertion\n}\n"],"mappings":"AAAA,SACEA,UAAU,QACL,OAAO;AAKd,OAAOC,OAAO,MAAM,YAAY;AAEhC,eAAe,SAASC,eAAeA,CAAA,EAAkB;EACvD,OAAOF,UAAU,CAACC,OAAO,CAAC,CAAE,CAAC;AAC/B","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import useModelContext from './_use-model-context';
2
+ export default function useModelDispatch() {
3
+ return useModelContext().dispatch;
4
+ }
5
+ //# sourceMappingURL=_use-model-dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_use-model-dispatch.js","names":["useModelContext","useModelDispatch","dispatch"],"sources":["../../../src/hook/_use-model-dispatch.ts"],"sourcesContent":["import {\n TModelDispatch\n} from '../types';\n\nimport useModelContext from './_use-model-context';\n\nexport default function useModelDispatch(): TModelDispatch {\n return useModelContext().dispatch;\n}\n"],"mappings":"AAIA,OAAOA,eAAe,MAAM,sBAAsB;AAElD,eAAe,SAASC,gBAAgBA,CAAA,EAAmB;EACzD,OAAOD,eAAe,CAAC,CAAC,CAACE,QAAQ;AACnC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import useModelContext from './_use-model-context';
2
+ export default function useModelProps() {
3
+ return useModelContext().props;
4
+ }
5
+ //# sourceMappingURL=_use-model-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_use-model-props.js","names":["useModelContext","useModelProps","props"],"sources":["../../../src/hook/_use-model-props.ts"],"sourcesContent":["import {\n IModelProps\n} from '../types';\n\nimport useModelContext from './_use-model-context';\n\nexport default function useModelProps(): IModelProps {\n return useModelContext().props;\n}\n"],"mappings":"AAIA,OAAOA,eAAe,MAAM,sBAAsB;AAElD,eAAe,SAASC,aAAaA,CAAA,EAAgB;EACnD,OAAOD,eAAe,CAAC,CAAC,CAACE,KAAK;AAChC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import useModelContext from './_use-model-context';
2
+ export default function useModelState() {
3
+ return useModelContext().state;
4
+ }
5
+ //# sourceMappingURL=_use-model-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_use-model-state.js","names":["useModelContext","useModelState","state"],"sources":["../../../src/hook/_use-model-state.ts"],"sourcesContent":["import {\n IModelState\n} from '../types';\n\nimport useModelContext from './_use-model-context';\n\nexport default function useModelState(): IModelState {\n return useModelContext().state;\n}\n"],"mappings":"AAIA,OAAOA,eAAe,MAAM,sBAAsB;AAElD,eAAe,SAASC,aAAaA,CAAA,EAAgB;EACnD,OAAOD,eAAe,CAAC,CAAC,CAACE,KAAK;AAChC","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ export { default as useProps } from './_use-model-props';
2
+
3
+ // computed values
4
+ export { default as useZIndex } from './use-z-index';
5
+
6
+ // handlers - 对 useDispatch、props.onXx 的封装,不要直接 export useDispatchXx
7
+ export { default as useHandleClick } from './use-handle-click';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default","useProps","useZIndex","useHandleClick"],"sources":["../../../src/hook/index.ts"],"sourcesContent":["export { default as useProps } from './_use-model-props';\n\n// computed values\nexport { default as useZIndex } from './use-z-index';\n\n// handlers - 对 useDispatch、props.onXx 的封装,不要直接 export useDispatchXx\nexport { default as useHandleClick } from './use-handle-click';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,QAAQ,QAAQ,oBAAoB;;AAExD;AACA,SAASD,OAAO,IAAIE,SAAS,QAAQ,eAAe;;AAEpD;AACA,SAASF,OAAO,IAAIG,cAAc,QAAQ,oBAAoB","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { useCallback } from 'react';
2
+ import { EAction } from '../enum';
3
+ import useModelDispatch from './_use-model-dispatch';
4
+ export default function useDispatchRefreshVisible() {
5
+ var dispatch = useModelDispatch();
6
+ return useCallback(function (payload) {
7
+ return dispatch({
8
+ type: EAction.REFRESH_VISIBLE,
9
+ payload: payload
10
+ });
11
+ }, [dispatch]);
12
+ }
13
+ //# sourceMappingURL=use-dispatch-refresh-visible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-dispatch-refresh-visible.js","names":["useCallback","EAction","useModelDispatch","useDispatchRefreshVisible","dispatch","payload","type","REFRESH_VISIBLE"],"sources":["../../../src/hook/use-dispatch-refresh-visible.ts"],"sourcesContent":["import {\n useCallback\n} from 'react';\n\nimport {\n EAction\n} from '../enum';\n\nimport useModelDispatch from './_use-model-dispatch';\n\nexport default function useDispatchRefreshVisible(): (payload: number) => void {\n const dispatch = useModelDispatch();\n \n return useCallback((payload: number) => dispatch({\n type: EAction.REFRESH_VISIBLE,\n payload\n }), [dispatch]);\n}\n"],"mappings":"AAAA,SACEA,WAAW,QACN,OAAO;AAEd,SACEC,OAAO,QACF,SAAS;AAEhB,OAAOC,gBAAgB,MAAM,uBAAuB;AAEpD,eAAe,SAASC,yBAAyBA,CAAA,EAA8B;EAC7E,IAAMC,QAAQ,GAAGF,gBAAgB,CAAC,CAAC;EAEnC,OAAOF,WAAW,CAAC,UAACK,OAAe;IAAA,OAAKD,QAAQ,CAAC;MAC/CE,IAAI,EAAEL,OAAO,CAACM,eAAe;MAC7BF,OAAO,EAAPA;IACF,CAAC,CAAC;EAAA,GAAE,CAACD,QAAQ,CAAC,CAAC;AACjB","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import { useEffect } from 'react';
2
+ import messenger from '@kcuf/messenger';
3
+ import { EMessageType } from '../enum';
4
+ import { singletonPush, singletonPull } from '../util';
5
+ import useModelContext from './_use-model-context';
6
+ import useDispatchRefreshVisible from './use-dispatch-refresh-visible';
7
+ export default function useEffectSingleton() {
8
+ var _useModelContext = useModelContext(),
9
+ zIndex = _useModelContext.props.zIndex;
10
+ var dispatchRefreshVisible = useDispatchRefreshVisible();
11
+ useEffect(function () {
12
+ var n = singletonPush(zIndex);
13
+ var messengerOff = messenger.on(EMessageType.REFRESH, function (payload) {
14
+ if (payload !== n) {
15
+ dispatchRefreshVisible(n);
16
+ }
17
+ });
18
+ dispatchRefreshVisible(n);
19
+ return function () {
20
+ singletonPull(n);
21
+ messengerOff();
22
+ };
23
+ }, [zIndex, dispatchRefreshVisible]);
24
+ }
25
+ //# sourceMappingURL=use-effect-singleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-effect-singleton.js","names":["useEffect","messenger","EMessageType","singletonPush","singletonPull","useModelContext","useDispatchRefreshVisible","useEffectSingleton","_useModelContext","zIndex","props","dispatchRefreshVisible","n","messengerOff","on","REFRESH","payload"],"sources":["../../../src/hook/use-effect-singleton.ts"],"sourcesContent":["import {\n useEffect\n} from 'react';\n\nimport messenger from '@kcuf/messenger';\n\nimport {\n EMessageType\n} from '../enum';\nimport {\n singletonPush,\n singletonPull\n} from '../util';\n\nimport useModelContext from './_use-model-context';\nimport useDispatchRefreshVisible from './use-dispatch-refresh-visible';\n\nexport default function useEffectSingleton(): void {\n const {\n props: {\n zIndex\n }\n } = useModelContext();\n const dispatchRefreshVisible = useDispatchRefreshVisible();\n \n useEffect(() => {\n const n = singletonPush(zIndex);\n const messengerOff = messenger.on<number>(EMessageType.REFRESH, payload => {\n if (payload !== n) {\n dispatchRefreshVisible(n);\n }\n });\n \n dispatchRefreshVisible(n);\n \n return () => {\n singletonPull(n);\n messengerOff();\n };\n }, [zIndex, dispatchRefreshVisible]);\n}\n"],"mappings":"AAAA,SACEA,SAAS,QACJ,OAAO;AAEd,OAAOC,SAAS,MAAM,iBAAiB;AAEvC,SACEC,YAAY,QACP,SAAS;AAChB,SACEC,aAAa,EACbC,aAAa,QACR,SAAS;AAEhB,OAAOC,eAAe,MAAM,sBAAsB;AAClD,OAAOC,yBAAyB,MAAM,gCAAgC;AAEtE,eAAe,SAASC,kBAAkBA,CAAA,EAAS;EACjD,IAAAC,gBAAA,GAIIH,eAAe,CAAC,CAAC;IAFjBI,MAAM,GAAAD,gBAAA,CADRE,KAAK,CACHD,MAAM;EAGV,IAAME,sBAAsB,GAAGL,yBAAyB,CAAC,CAAC;EAE1DN,SAAS,CAAC,YAAM;IACd,IAAMY,CAAC,GAAGT,aAAa,CAACM,MAAM,CAAC;IAC/B,IAAMI,YAAY,GAAGZ,SAAS,CAACa,EAAE,CAASZ,YAAY,CAACa,OAAO,EAAE,UAAAC,OAAO,EAAI;MACzE,IAAIA,OAAO,KAAKJ,CAAC,EAAE;QACjBD,sBAAsB,CAACC,CAAC,CAAC;MAC3B;IACF,CAAC,CAAC;IAEFD,sBAAsB,CAACC,CAAC,CAAC;IAEzB,OAAO,YAAM;MACXR,aAAa,CAACQ,CAAC,CAAC;MAChBC,YAAY,CAAC,CAAC;IAChB,CAAC;EACH,CAAC,EAAE,CAACJ,MAAM,EAAEE,sBAAsB,CAAC,CAAC;AACtC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import useEffectSingleton from './use-effect-singleton';
2
+ export default function useEffects() {
3
+ useEffectSingleton();
4
+ }
5
+ //# sourceMappingURL=use-effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-effects.js","names":["useEffectSingleton","useEffects"],"sources":["../../../src/hook/use-effects.ts"],"sourcesContent":["import useEffectSingleton from './use-effect-singleton';\n\nexport default function useEffects(): void {\n useEffectSingleton();\n}\n"],"mappings":"AAAA,OAAOA,kBAAkB,MAAM,wBAAwB;AAEvD,eAAe,SAASC,UAAUA,CAAA,EAAS;EACzCD,kBAAkB,CAAC,CAAC;AACtB","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { useCallback } from 'react';
2
+ import useModelProps from './_use-model-props';
3
+ export default function useHandleClick() {
4
+ var _useModelProps = useModelProps(),
5
+ _useModelProps$closab = _useModelProps.closable,
6
+ closable = _useModelProps$closab === void 0 ? true : _useModelProps$closab,
7
+ onClose = _useModelProps.onClose;
8
+ return useCallback(function () {
9
+ if (closable) {
10
+ onClose === null || onClose === void 0 || onClose();
11
+ }
12
+ }, [closable, onClose]);
13
+ }
14
+ //# sourceMappingURL=use-handle-click.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-handle-click.js","names":["useCallback","useModelProps","useHandleClick","_useModelProps","_useModelProps$closab","closable","onClose"],"sources":["../../../src/hook/use-handle-click.ts"],"sourcesContent":["import {\n useCallback\n} from 'react';\n\nimport useModelProps from './_use-model-props';\n\nexport default function useHandleClick(): () => void {\n const {\n closable = true,\n onClose\n } = useModelProps();\n \n return useCallback((): void => {\n if (closable) {\n onClose?.();\n }\n }, [closable, onClose]);\n}\n"],"mappings":"AAAA,SACEA,WAAW,QACN,OAAO;AAEd,OAAOC,aAAa,MAAM,oBAAoB;AAE9C,eAAe,SAASC,cAAcA,CAAA,EAAe;EACnD,IAAAC,cAAA,GAGIF,aAAa,CAAC,CAAC;IAAAG,qBAAA,GAAAD,cAAA,CAFjBE,QAAQ;IAARA,QAAQ,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IACfE,OAAO,GAAAH,cAAA,CAAPG,OAAO;EAGT,OAAON,WAAW,CAAC,YAAY;IAC7B,IAAIK,QAAQ,EAAE;MACZC,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAG,CAAC;IACb;EACF,CAAC,EAAE,CAACD,QAAQ,EAAEC,OAAO,CAAC,CAAC;AACzB","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { DEFAULT_Z_INDEX } from '../const';
2
+ import useModelProps from './_use-model-props';
3
+ import useModelState from './_use-model-state';
4
+ export default function useZIndex() {
5
+ var _useModelProps = useModelProps(),
6
+ _useModelProps$zIndex = _useModelProps.zIndex,
7
+ zIndex = _useModelProps$zIndex === void 0 ? DEFAULT_Z_INDEX : _useModelProps$zIndex;
8
+ var _useModelState = useModelState(),
9
+ visible = _useModelState.visible;
10
+ return visible ? zIndex : -1;
11
+ }
12
+ //# sourceMappingURL=use-z-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-z-index.js","names":["DEFAULT_Z_INDEX","useModelProps","useModelState","useZIndex","_useModelProps","_useModelProps$zIndex","zIndex","_useModelState","visible"],"sources":["../../../src/hook/use-z-index.ts"],"sourcesContent":["import {\n DEFAULT_Z_INDEX\n} from '../const';\n\nimport useModelProps from './_use-model-props';\nimport useModelState from './_use-model-state';\n\nexport default function useZIndex(): number {\n const {\n zIndex = DEFAULT_Z_INDEX\n } = useModelProps();\n const {\n visible\n } = useModelState();\n \n return visible ? zIndex : -1;\n}\n"],"mappings":"AAAA,SACEA,eAAe,QACV,UAAU;AAEjB,OAAOC,aAAa,MAAM,oBAAoB;AAC9C,OAAOC,aAAa,MAAM,oBAAoB;AAE9C,eAAe,SAASC,SAASA,CAAA,EAAW;EAC1C,IAAAC,cAAA,GAEIH,aAAa,CAAC,CAAC;IAAAI,qBAAA,GAAAD,cAAA,CADjBE,MAAM;IAANA,MAAM,GAAAD,qBAAA,cAAGL,eAAe,GAAAK,qBAAA;EAE1B,IAAAE,cAAA,GAEIL,aAAa,CAAC,CAAC;IADjBM,OAAO,GAAAD,cAAA,CAAPC,OAAO;EAGT,OAAOA,OAAO,GAAGF,MAAM,GAAG,CAAC,CAAC;AAC9B","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export { default } from './provider';
2
+ export * from './hook';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './provider';\n\nexport * from './hook';\n\nexport type {\n IModelProps as BackdropProps\n} from './types';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AAEpC,cAAc,QAAQ","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import useEffects from '../hook/use-effects';
2
+ export default function Lifecycle() {
3
+ useEffects();
4
+ return null;
5
+ }
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useEffects","Lifecycle"],"sources":["../../../src/lifecycle/index.ts"],"sourcesContent":["import useEffects from '../hook/use-effects';\n\nexport default function Lifecycle(): null {\n useEffects();\n \n return null;\n}\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,qBAAqB;AAE5C,eAAe,SAASC,SAASA,CAAA,EAAS;EACxCD,UAAU,CAAC,CAAC;EAEZ,OAAO,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["children"];
4
+ import { useReducer, useCallback } from 'react';
5
+ import useIsUnmounted from '@kcuf-hook/use-is-unmounted';
6
+ import { createInitialState } from '../util';
7
+ import reducer from '../reducer';
8
+ import Context from '../context';
9
+ import Lifecycle from '../lifecycle';
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ export default function Provider(_ref) {
12
+ var children = _ref.children,
13
+ props = _objectWithoutProperties(_ref, _excluded);
14
+ var isUnmounted = useIsUnmounted();
15
+ var _useReducer = useReducer(reducer, null, createInitialState),
16
+ _useReducer2 = _slicedToArray(_useReducer, 2),
17
+ state = _useReducer2[0],
18
+ dispatch = _useReducer2[1];
19
+ var safeDispatch = useCallback(function (action) {
20
+ if (!isUnmounted()) {
21
+ dispatch(action);
22
+ }
23
+ }, [isUnmounted, dispatch]);
24
+ return /*#__PURE__*/_jsxs(Context, {
25
+ value: {
26
+ props: props,
27
+ state: state,
28
+ dispatch: safeDispatch
29
+ },
30
+ children: [/*#__PURE__*/_jsx(Lifecycle, {}), children]
31
+ });
32
+ }
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useReducer","useCallback","useIsUnmounted","createInitialState","reducer","Context","Lifecycle","jsx","_jsx","jsxs","_jsxs","Provider","_ref","children","props","_objectWithoutProperties","_excluded","isUnmounted","_useReducer","_useReducer2","_slicedToArray","state","dispatch","safeDispatch","action","value"],"sources":["../../../src/provider/index.tsx"],"sourcesContent":["import {\n ReactElement,\n useReducer,\n useCallback\n} from 'react';\n\nimport useIsUnmounted from '@kcuf-hook/use-is-unmounted';\n\nimport {\n IModelProviderProps,\n IModelState,\n TModelAction\n} from '../types';\nimport {\n createInitialState\n} from '../util';\nimport reducer from '../reducer';\nimport Context from '../context';\nimport Lifecycle from '../lifecycle';\n\nexport default function Provider({\n children,\n ...props\n}: IModelProviderProps): ReactElement {\n const isUnmounted = useIsUnmounted();\n const [state, dispatch] = useReducer<IModelState, null, [TModelAction]>(reducer, null, createInitialState);\n \n const safeDispatch = useCallback((action: TModelAction): void => {\n if (!isUnmounted()) {\n dispatch(action);\n }\n }, [isUnmounted, dispatch]);\n \n return <Context value={{\n props,\n state,\n dispatch: safeDispatch\n }}>\n <Lifecycle />\n {children}\n </Context>;\n}\n"],"mappings":";;;AAAA,SAEEA,UAAU,EACVC,WAAW,QACN,OAAO;AAEd,OAAOC,cAAc,MAAM,6BAA6B;AAOxD,SACEC,kBAAkB,QACb,SAAS;AAChB,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,SAAS,MAAM,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAErC,eAAe,SAASC,QAAQA,CAAAC,IAAA,EAGM;EAAA,IAFpCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACLC,KAAK,GAAAC,wBAAA,CAAAH,IAAA,EAAAI,SAAA;EAER,IAAMC,WAAW,GAAGf,cAAc,CAAC,CAAC;EACpC,IAAAgB,WAAA,GAA0BlB,UAAU,CAAoCI,OAAO,EAAE,IAAI,EAAED,kBAAkB,CAAC;IAAAgB,YAAA,GAAAC,cAAA,CAAAF,WAAA;IAAnGG,KAAK,GAAAF,YAAA;IAAEG,QAAQ,GAAAH,YAAA;EAEtB,IAAMI,YAAY,GAAGtB,WAAW,CAAC,UAACuB,MAAoB,EAAW;IAC/D,IAAI,CAACP,WAAW,CAAC,CAAC,EAAE;MAClBK,QAAQ,CAACE,MAAM,CAAC;IAClB;EACF,CAAC,EAAE,CAACP,WAAW,EAAEK,QAAQ,CAAC,CAAC;EAE3B,oBAAOZ,KAAA,CAACL,OAAO;IAACoB,KAAK,EAAE;MACrBX,KAAK,EAALA,KAAK;MACLO,KAAK,EAALA,KAAK;MACLC,QAAQ,EAAEC;IACZ,CAAE;IAAAV,QAAA,gBACAL,IAAA,CAACF,SAAS,IAAE,CAAC,EACZO,QAAQ;EAAA,CACF,CAAC;AACZ","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { EAction } from '../enum';
2
+ import reduceRefreshVisible from './reduce-refresh-visible';
3
+ export default function reducer(state, action) {
4
+ switch (action.type) {
5
+ case EAction.REFRESH_VISIBLE:
6
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition
7
+ return reduceRefreshVisible(state, action.payload);
8
+ default:
9
+ // 如果 default 里 action 的类型没有 narrow 到 never,则 type 未 cover 全
10
+ return state;
11
+ }
12
+ }
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["EAction","reduceRefreshVisible","reducer","state","action","type","REFRESH_VISIBLE","payload"],"sources":["../../../src/reducer/index.ts"],"sourcesContent":["import {\n IModelState,\n TModelAction\n} from '../types';\nimport {\n EAction\n} from '../enum';\n\nimport reduceRefreshVisible from './reduce-refresh-visible';\n\nexport default function reducer(state: IModelState, action: TModelAction): IModelState {\n switch (action.type) {\n case EAction.REFRESH_VISIBLE: // eslint-disable-line @typescript-eslint/no-unnecessary-condition\n return reduceRefreshVisible(state, action.payload);\n default: // 如果 default 里 action 的类型没有 narrow 到 never,则 type 未 cover 全\n return state;\n }\n}\n"],"mappings":"AAIA,SACEA,OAAO,QACF,SAAS;AAEhB,OAAOC,oBAAoB,MAAM,0BAA0B;AAE3D,eAAe,SAASC,OAAOA,CAACC,KAAkB,EAAEC,MAAoB,EAAe;EACrF,QAAQA,MAAM,CAACC,IAAI;IACnB,KAAKL,OAAO,CAACM,eAAe;MAAE;MAC5B,OAAOL,oBAAoB,CAACE,KAAK,EAAEC,MAAM,CAACG,OAAO,CAAC;IACpD;MAAS;MACP,OAAOJ,KAAK;EACd;AACF","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import { produce } from 'immer';
2
+ import { singletonIsVisible } from '../util';
3
+ export default function reduceRefreshVisible(state, payload) {
4
+ return produce(state, function (draft) {
5
+ draft.visible = singletonIsVisible(payload);
6
+ });
7
+ }
8
+ //# sourceMappingURL=reduce-refresh-visible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduce-refresh-visible.js","names":["produce","singletonIsVisible","reduceRefreshVisible","state","payload","draft","visible"],"sources":["../../../src/reducer/reduce-refresh-visible.ts"],"sourcesContent":["import {\n produce\n} from 'immer';\n\nimport {\n IModelState\n} from '../types';\nimport {\n singletonIsVisible\n} from '../util';\n\nexport default function reduceRefreshVisible(state: IModelState, payload: number): IModelState {\n return produce(state, draft => {\n draft.visible = singletonIsVisible(payload);\n });\n}\n"],"mappings":"AAAA,SACEA,OAAO,QACF,OAAO;AAKd,SACEC,kBAAkB,QACb,SAAS;AAEhB,eAAe,SAASC,oBAAoBA,CAACC,KAAkB,EAAEC,OAAe,EAAe;EAC7F,OAAOJ,OAAO,CAACG,KAAK,EAAE,UAAAE,KAAK,EAAI;IAC7BA,KAAK,CAACC,OAAO,GAAGL,kBAAkB,CAACG,OAAO,CAAC;EAC7C,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","names":[],"sources":["../../../src/types/action.ts"],"sourcesContent":["import {\n Dispatch\n} from 'react';\n\nimport {\n EAction\n} from '../enum';\n\nexport type TModelAction = {\n type: EAction.REFRESH_VISIBLE;\n payload: number;\n};\n\nexport type TModelDispatch = Dispatch<TModelAction>;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","names":[],"sources":["../../../src/types/common.ts"],"sourcesContent":["export interface IBackdropSingletonItem {\n n: number;\n zIndex: number;\n}\n\nexport interface IBackdropGlobal {\n n?: number;\n items?: IBackdropSingletonItem[];\n}\n\nexport interface IBackdropWindow {\n __backdrop_singleton__?: IBackdropGlobal;\n}\n\nexport interface IMessageData<T = void> {\n source: string;\n type: string;\n payload: T;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../src/types/context.ts"],"sourcesContent":["import {\n ReactNode\n} from 'react';\n\nimport {\n IModelProps\n} from './props';\nimport {\n IModelState\n} from './state';\nimport {\n TModelDispatch\n} from './action';\n\nexport interface IModelContext {\n props: IModelProps;\n state: IModelState;\n dispatch: TModelDispatch;\n}\n\nexport interface IModelProviderProps extends IModelProps {\n children: ReactNode;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ export * from './common';
2
+ export * from './props';
3
+ export * from './state';
4
+ export * from './action';
5
+ export * from './context';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/types/index.ts"],"sourcesContent":["export * from './common';\nexport * from './props';\nexport * from './state';\nexport * from './action';\nexport * from './context';\n"],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,WAAW","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.js","names":[],"sources":["../../../src/types/props.ts"],"sourcesContent":["export interface IModelProps {\n /**\n * z-index 默认 100\n */\n zIndex?: number;\n /**\n * 是否点击关闭\n */\n closable?: boolean;\n /**\n * 点击关闭的回调,必须 `closable: true`\n */\n onClose?(): void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","names":[],"sources":["../../../src/types/state.ts"],"sourcesContent":["export interface IModelState {\n visible: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ export default function createInitialState() {
2
+ return {
3
+ visible: false
4
+ };
5
+ }
6
+ //# sourceMappingURL=create-initial-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-initial-state.js","names":["createInitialState","visible"],"sources":["../../../src/util/create-initial-state.ts"],"sourcesContent":["import {\n IModelState\n} from '../types';\n\nexport default function createInitialState(): IModelState {\n return {\n visible: false\n };\n}\n"],"mappings":"AAIA,eAAe,SAASA,kBAAkBA,CAAA,EAAgB;EACxD,OAAO;IACLC,OAAO,EAAE;EACX,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ export { default as createInitialState } from './create-initial-state';
2
+ export { default as singletonPush } from './singleton-push';
3
+ export { default as singletonPull } from './singleton-pull';
4
+ export { default as singletonUpdate } from './singleton-update';
5
+ export { default as singletonIsVisible } from './singleton-is-visible';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default","createInitialState","singletonPush","singletonPull","singletonUpdate","singletonIsVisible"],"sources":["../../../src/util/index.ts"],"sourcesContent":["export { default as createInitialState } from './create-initial-state';\n\nexport { default as singletonPush } from './singleton-push';\nexport { default as singletonPull } from './singleton-pull';\nexport { default as singletonUpdate } from './singleton-update';\nexport { default as singletonIsVisible } from './singleton-is-visible';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,kBAAkB,QAAQ,wBAAwB;AAEtE,SAASD,OAAO,IAAIE,aAAa,QAAQ,kBAAkB;AAC3D,SAASF,OAAO,IAAIG,aAAa,QAAQ,kBAAkB;AAC3D,SAASH,OAAO,IAAII,eAAe,QAAQ,oBAAoB;AAC/D,SAASJ,OAAO,IAAIK,kBAAkB,QAAQ,wBAAwB","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import messenger from '@kcuf/messenger';
2
+ import { EMessageType } from '../enum';
3
+ export default function messageEmitRefresh(n) {
4
+ messenger.emit(EMessageType.REFRESH, n);
5
+ }
6
+ //# sourceMappingURL=message-emit-refresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-emit-refresh.js","names":["messenger","EMessageType","messageEmitRefresh","n","emit","REFRESH"],"sources":["../../../src/util/message-emit-refresh.ts"],"sourcesContent":["import messenger from '@kcuf/messenger';\n\nimport {\n EMessageType\n} from '../enum';\n\nexport default function messageEmitRefresh(n: number): void {\n messenger.emit<number>(EMessageType.REFRESH, n);\n}\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,iBAAiB;AAEvC,SACEC,YAAY,QACP,SAAS;AAEhB,eAAe,SAASC,kBAAkBA,CAACC,CAAS,EAAQ;EAC1DH,SAAS,CAACI,IAAI,CAASH,YAAY,CAACI,OAAO,EAAEF,CAAC,CAAC;AACjD","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import singletonGlobal from './singleton-global';
2
+
3
+ /**
4
+ * 获取展示的 item,即 z-index 最高的那个(如果 z-index 一样,则后入者高)
5
+ */
6
+ export default function singletonGetVisibleItem() {
7
+ var _singletonGlobal = singletonGlobal(),
8
+ _singletonGlobal$item = _singletonGlobal.items,
9
+ items = _singletonGlobal$item === void 0 ? [] : _singletonGlobal$item;
10
+ var visibleItem;
11
+ var visibleIndex = -1;
12
+ for (var i = items.length - 1; i >= 0; i--) {
13
+ var v = items[i];
14
+ if (v && v.zIndex > visibleIndex) {
15
+ visibleItem = v;
16
+ visibleIndex = v.zIndex;
17
+ }
18
+ }
19
+ return visibleItem;
20
+ }
21
+ //# sourceMappingURL=singleton-get-visible-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton-get-visible-item.js","names":["singletonGlobal","singletonGetVisibleItem","_singletonGlobal","_singletonGlobal$item","items","visibleItem","visibleIndex","i","length","v","zIndex"],"sources":["../../../src/util/singleton-get-visible-item.ts"],"sourcesContent":["import {\n IBackdropSingletonItem\n} from '../types';\n\nimport singletonGlobal from './singleton-global';\n\n/**\n * 获取展示的 item,即 z-index 最高的那个(如果 z-index 一样,则后入者高)\n */\nexport default function singletonGetVisibleItem(): IBackdropSingletonItem | undefined {\n const {\n items = []\n } = singletonGlobal();\n let visibleItem: IBackdropSingletonItem | undefined;\n let visibleIndex = -1;\n \n for (let i = items.length - 1; i >= 0; i--) {\n const v = items[i];\n \n if (v && v.zIndex > visibleIndex) {\n visibleItem = v;\n visibleIndex = v.zIndex;\n }\n }\n \n return visibleItem;\n}\n"],"mappings":"AAIA,OAAOA,eAAe,MAAM,oBAAoB;;AAEhD;AACA;AACA;AACA,eAAe,SAASC,uBAAuBA,CAAA,EAAuC;EACpF,IAAAC,gBAAA,GAEIF,eAAe,CAAC,CAAC;IAAAG,qBAAA,GAAAD,gBAAA,CADnBE,KAAK;IAALA,KAAK,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;EAEZ,IAAIE,WAA+C;EACnD,IAAIC,YAAY,GAAG,CAAC,CAAC;EAErB,KAAK,IAAIC,CAAC,GAAGH,KAAK,CAACI,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IAC1C,IAAME,CAAC,GAAGL,KAAK,CAACG,CAAC,CAAC;IAElB,IAAIE,CAAC,IAAIA,CAAC,CAACC,MAAM,GAAGJ,YAAY,EAAE;MAChCD,WAAW,GAAGI,CAAC;MACfH,YAAY,GAAGG,CAAC,CAACC,MAAM;IACzB;EACF;EAEA,OAAOL,WAAW;AACpB","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import { getWindow } from '@kcuf/sandbox-escape';
2
+ export default function singletonGlobal() {
3
+ var _win$__backdrop_singl;
4
+ var win = getWindow();
5
+ (_win$__backdrop_singl = win.__backdrop_singleton__) !== null && _win$__backdrop_singl !== void 0 ? _win$__backdrop_singl : win.__backdrop_singleton__ = {};
6
+ return win.__backdrop_singleton__;
7
+ }
8
+ //# sourceMappingURL=singleton-global.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton-global.js","names":["getWindow","singletonGlobal","_win$__backdrop_singl","win","__backdrop_singleton__"],"sources":["../../../src/util/singleton-global.ts"],"sourcesContent":["import {\n getWindow\n} from '@kcuf/sandbox-escape';\n\nimport {\n IBackdropGlobal,\n IBackdropWindow\n} from '../types';\n\nexport default function singletonGlobal(): IBackdropGlobal {\n const win = getWindow<IBackdropWindow>();\n \n win.__backdrop_singleton__ ??= {};\n \n return win.__backdrop_singleton__;\n}\n"],"mappings":"AAAA,SACEA,SAAS,QACJ,sBAAsB;AAO7B,eAAe,SAASC,eAAeA,CAAA,EAAoB;EAAA,IAAAC,qBAAA;EACzD,IAAMC,GAAG,GAAGH,SAAS,CAAkB,CAAC;EAExC,CAAAE,qBAAA,GAAAC,GAAG,CAACC,sBAAsB,cAAAF,qBAAA,cAAAA,qBAAA,GAA1BC,GAAG,CAACC,sBAAsB,GAAK,CAAC,CAAC;EAEjC,OAAOD,GAAG,CAACC,sBAAsB;AACnC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import singletonGetVisibleItem from './singleton-get-visible-item';
2
+ export default function singletonIsVisible(n) {
3
+ var visibleItem = singletonGetVisibleItem();
4
+ return (visibleItem === null || visibleItem === void 0 ? void 0 : visibleItem.n) === n;
5
+ }
6
+ //# sourceMappingURL=singleton-is-visible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton-is-visible.js","names":["singletonGetVisibleItem","singletonIsVisible","n","visibleItem"],"sources":["../../../src/util/singleton-is-visible.ts"],"sourcesContent":["import singletonGetVisibleItem from './singleton-get-visible-item';\n\nexport default function singletonIsVisible(n: number): boolean {\n const visibleItem = singletonGetVisibleItem();\n \n return visibleItem?.n === n;\n}\n"],"mappings":"AAAA,OAAOA,uBAAuB,MAAM,8BAA8B;AAElE,eAAe,SAASC,kBAAkBA,CAACC,CAAS,EAAW;EAC7D,IAAMC,WAAW,GAAGH,uBAAuB,CAAC,CAAC;EAE7C,OAAO,CAAAG,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAED,CAAC,MAAKA,CAAC;AAC7B","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ import singletonGlobal from './singleton-global';
2
+ import messageEmitRefresh from './message-emit-refresh';
3
+ import toggleScrollbar from './toggle-scrollbar';
4
+ export default function singletonPull(n) {
5
+ var g = singletonGlobal();
6
+ var items = g.items;
7
+ if (!(items !== null && items !== void 0 && items.length)) {
8
+ return;
9
+ }
10
+ var index = items.findIndex(function (v) {
11
+ return v.n === n;
12
+ });
13
+ if (index >= 0) {
14
+ items.splice(index, 1);
15
+ if (!items.length) {
16
+ g.n = 0;
17
+ toggleScrollbar(true);
18
+ }
19
+ messageEmitRefresh(n);
20
+ }
21
+ }
22
+ //# sourceMappingURL=singleton-pull.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton-pull.js","names":["singletonGlobal","messageEmitRefresh","toggleScrollbar","singletonPull","n","g","items","length","index","findIndex","v","splice"],"sources":["../../../src/util/singleton-pull.ts"],"sourcesContent":["import singletonGlobal from './singleton-global';\nimport messageEmitRefresh from './message-emit-refresh';\nimport toggleScrollbar from './toggle-scrollbar';\n\nexport default function singletonPull(n: number): void {\n const g = singletonGlobal();\n const {\n items\n } = g;\n \n if (!items?.length) {\n return;\n }\n \n const index = items.findIndex(v => v.n === n);\n \n if (index >= 0) {\n items.splice(index, 1);\n \n if (!items.length) {\n g.n = 0;\n \n toggleScrollbar(true);\n }\n \n messageEmitRefresh(n);\n }\n}\n"],"mappings":"AAAA,OAAOA,eAAe,MAAM,oBAAoB;AAChD,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,OAAOC,eAAe,MAAM,oBAAoB;AAEhD,eAAe,SAASC,aAAaA,CAACC,CAAS,EAAQ;EACrD,IAAMC,CAAC,GAAGL,eAAe,CAAC,CAAC;EAC3B,IACEM,KAAK,GACHD,CAAC,CADHC,KAAK;EAGP,IAAI,EAACA,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEC,MAAM,GAAE;IAClB;EACF;EAEA,IAAMC,KAAK,GAAGF,KAAK,CAACG,SAAS,CAAC,UAAAC,CAAC;IAAA,OAAIA,CAAC,CAACN,CAAC,KAAKA,CAAC;EAAA,EAAC;EAE7C,IAAII,KAAK,IAAI,CAAC,EAAE;IACdF,KAAK,CAACK,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;IAEtB,IAAI,CAACF,KAAK,CAACC,MAAM,EAAE;MACjBF,CAAC,CAACD,CAAC,GAAG,CAAC;MAEPF,eAAe,CAAC,IAAI,CAAC;IACvB;IAEAD,kBAAkB,CAACG,CAAC,CAAC;EACvB;AACF","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ import { DEFAULT_Z_INDEX } from '../const';
2
+ import singletonGlobal from './singleton-global';
3
+ import messageEmitRefresh from './message-emit-refresh';
4
+ import toggleScrollbar from './toggle-scrollbar';
5
+ export default function singletonPush() {
6
+ var zIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_Z_INDEX;
7
+ var o = singletonGlobal();
8
+ var _o$n = o.n,
9
+ n = _o$n === void 0 ? 0 : _o$n,
10
+ items = o.items;
11
+ n += 1;
12
+ o.n = n;
13
+ if (!items) {
14
+ items = [];
15
+ o.items = items;
16
+ }
17
+ var item = {
18
+ n: n,
19
+ zIndex: zIndex
20
+ };
21
+ if (n === 1) {
22
+ toggleScrollbar(false);
23
+ }
24
+ items.push(item);
25
+ messageEmitRefresh(n);
26
+ return n;
27
+ }
28
+ //# sourceMappingURL=singleton-push.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton-push.js","names":["DEFAULT_Z_INDEX","singletonGlobal","messageEmitRefresh","toggleScrollbar","singletonPush","zIndex","arguments","length","undefined","o","_o$n","n","items","item","push"],"sources":["../../../src/util/singleton-push.ts"],"sourcesContent":["import {\n IBackdropSingletonItem\n} from '../types';\nimport {\n DEFAULT_Z_INDEX\n} from '../const';\n\nimport singletonGlobal from './singleton-global';\nimport messageEmitRefresh from './message-emit-refresh';\nimport toggleScrollbar from './toggle-scrollbar';\n\nexport default function singletonPush(zIndex = DEFAULT_Z_INDEX): number {\n const o = singletonGlobal();\n let {\n n = 0,\n items\n } = o;\n \n n += 1;\n o.n = n;\n \n if (!items) {\n items = [];\n o.items = items;\n }\n \n const item: IBackdropSingletonItem = {\n n,\n zIndex\n };\n \n if (n === 1) {\n toggleScrollbar(false);\n }\n \n items.push(item);\n messageEmitRefresh(n);\n \n return n;\n}\n"],"mappings":"AAGA,SACEA,eAAe,QACV,UAAU;AAEjB,OAAOC,eAAe,MAAM,oBAAoB;AAChD,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,OAAOC,eAAe,MAAM,oBAAoB;AAEhD,eAAe,SAASC,aAAaA,CAAA,EAAmC;EAAA,IAAlCC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGN,eAAe;EAC5D,IAAMS,CAAC,GAAGR,eAAe,CAAC,CAAC;EAC3B,IAAAS,IAAA,GAGID,CAAC,CAFHE,CAAC;IAADA,CAAC,GAAAD,IAAA,cAAG,CAAC,GAAAA,IAAA;IACLE,KAAK,GACHH,CAAC,CADHG,KAAK;EAGPD,CAAC,IAAI,CAAC;EACNF,CAAC,CAACE,CAAC,GAAGA,CAAC;EAEP,IAAI,CAACC,KAAK,EAAE;IACVA,KAAK,GAAG,EAAE;IACVH,CAAC,CAACG,KAAK,GAAGA,KAAK;EACjB;EAEA,IAAMC,IAA4B,GAAG;IACnCF,CAAC,EAADA,CAAC;IACDN,MAAM,EAANA;EACF,CAAC;EAED,IAAIM,CAAC,KAAK,CAAC,EAAE;IACXR,eAAe,CAAC,KAAK,CAAC;EACxB;EAEAS,KAAK,CAACE,IAAI,CAACD,IAAI,CAAC;EAChBX,kBAAkB,CAACS,CAAC,CAAC;EAErB,OAAOA,CAAC;AACV","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { DEFAULT_Z_INDEX } from '../const';
2
+ import singletonGlobal from './singleton-global';
3
+ import messageEmitRefresh from './message-emit-refresh';
4
+ export default function singletonUpdate(n) {
5
+ var _singletonGlobal$item;
6
+ var zIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_Z_INDEX;
7
+ var item = (_singletonGlobal$item = singletonGlobal().items) === null || _singletonGlobal$item === void 0 ? void 0 : _singletonGlobal$item.find(function (v) {
8
+ return v.n === n;
9
+ });
10
+ if (item && item.zIndex !== zIndex) {
11
+ item.zIndex = zIndex;
12
+ messageEmitRefresh(n);
13
+ }
14
+ }
15
+ //# sourceMappingURL=singleton-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton-update.js","names":["DEFAULT_Z_INDEX","singletonGlobal","messageEmitRefresh","singletonUpdate","n","_singletonGlobal$item","zIndex","arguments","length","undefined","item","items","find","v"],"sources":["../../../src/util/singleton-update.ts"],"sourcesContent":["import {\n DEFAULT_Z_INDEX\n} from '../const';\n\nimport singletonGlobal from './singleton-global';\nimport messageEmitRefresh from './message-emit-refresh';\n\nexport default function singletonUpdate(n: number, zIndex = DEFAULT_Z_INDEX): void {\n const item = singletonGlobal().items?.find(v => v.n === n);\n \n if (item && item.zIndex !== zIndex) {\n item.zIndex = zIndex;\n \n messageEmitRefresh(n);\n }\n}\n"],"mappings":"AAAA,SACEA,eAAe,QACV,UAAU;AAEjB,OAAOC,eAAe,MAAM,oBAAoB;AAChD,OAAOC,kBAAkB,MAAM,wBAAwB;AAEvD,eAAe,SAASC,eAAeA,CAACC,CAAS,EAAkC;EAAA,IAAAC,qBAAA;EAAA,IAAhCC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGP,eAAe;EACzE,IAAMU,IAAI,IAAAL,qBAAA,GAAGJ,eAAe,CAAC,CAAC,CAACU,KAAK,cAAAN,qBAAA,uBAAvBA,qBAAA,CAAyBO,IAAI,CAAC,UAAAC,CAAC;IAAA,OAAIA,CAAC,CAACT,CAAC,KAAKA,CAAC;EAAA,EAAC;EAE1D,IAAIM,IAAI,IAAIA,IAAI,CAACJ,MAAM,KAAKA,MAAM,EAAE;IAClCI,IAAI,CAACJ,MAAM,GAAGA,MAAM;IAEpBJ,kBAAkB,CAACE,CAAC,CAAC;EACvB;AACF","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { getScrollbarWidthOfWindow } from '@kcuf/mere-dom';
2
+
3
+ /**
4
+ * 不用 effect,不好处理
5
+ */
6
+ export default function toggleScrollbar(visible) {
7
+ if (visible) {
8
+ document.documentElement.style.overflow = '';
9
+ document.documentElement.style.paddingRight = '';
10
+ } else {
11
+ var scrollbarWidth = getScrollbarWidthOfWindow(); // 先算好
12
+
13
+ document.documentElement.style.overflow = 'hidden';
14
+ document.documentElement.style.paddingRight = "".concat(scrollbarWidth, "px");
15
+ }
16
+ }
17
+ //# sourceMappingURL=toggle-scrollbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-scrollbar.js","names":["getScrollbarWidthOfWindow","toggleScrollbar","visible","document","documentElement","style","overflow","paddingRight","scrollbarWidth","concat"],"sources":["../../../src/util/toggle-scrollbar.ts"],"sourcesContent":["import {\n getScrollbarWidthOfWindow\n} from '@kcuf/mere-dom';\n\n/**\n * 不用 effect,不好处理\n */\nexport default function toggleScrollbar(visible: boolean): void {\n if (visible) {\n document.documentElement.style.overflow = '';\n document.documentElement.style.paddingRight = '';\n } else {\n const scrollbarWidth = getScrollbarWidthOfWindow(); // 先算好\n \n document.documentElement.style.overflow = 'hidden';\n document.documentElement.style.paddingRight = `${scrollbarWidth}px`;\n }\n}\n"],"mappings":"AAAA,SACEA,yBAAyB,QACpB,gBAAgB;;AAEvB;AACA;AACA;AACA,eAAe,SAASC,eAAeA,CAACC,OAAgB,EAAQ;EAC9D,IAAIA,OAAO,EAAE;IACXC,QAAQ,CAACC,eAAe,CAACC,KAAK,CAACC,QAAQ,GAAG,EAAE;IAC5CH,QAAQ,CAACC,eAAe,CAACC,KAAK,CAACE,YAAY,GAAG,EAAE;EAClD,CAAC,MAAM;IACL,IAAMC,cAAc,GAAGR,yBAAyB,CAAC,CAAC,CAAC,CAAC;;IAEpDG,QAAQ,CAACC,eAAe,CAACC,KAAK,CAACC,QAAQ,GAAG,QAAQ;IAClDH,QAAQ,CAACC,eAAe,CAACC,KAAK,CAACE,YAAY,MAAAE,MAAA,CAAMD,cAAc,OAAI;EACrE;AACF","ignoreList":[]}