@v-c/trigger 0.0.12 → 0.0.14

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 (38) hide show
  1. package/dist/Popup/Arrow.cjs +60 -89
  2. package/dist/Popup/Arrow.js +58 -88
  3. package/dist/Popup/Mask.cjs +53 -64
  4. package/dist/Popup/Mask.js +49 -63
  5. package/dist/Popup/PopupContent.cjs +22 -27
  6. package/dist/Popup/PopupContent.js +18 -26
  7. package/dist/Popup/index.cjs +312 -366
  8. package/dist/Popup/index.d.ts +1 -1
  9. package/dist/Popup/index.js +304 -362
  10. package/dist/UniqueProvider/UniqueContainer.cjs +133 -150
  11. package/dist/UniqueProvider/UniqueContainer.js +128 -148
  12. package/dist/UniqueProvider/index.cjs +151 -213
  13. package/dist/UniqueProvider/index.js +144 -210
  14. package/dist/UniqueProvider/useTargetState.cjs +39 -39
  15. package/dist/UniqueProvider/useTargetState.js +37 -39
  16. package/dist/_virtual/rolldown_runtime.cjs +21 -0
  17. package/dist/context.cjs +17 -28
  18. package/dist/context.js +17 -33
  19. package/dist/hooks/useAction.cjs +19 -25
  20. package/dist/hooks/useAction.js +17 -25
  21. package/dist/hooks/useAlign.cjs +396 -486
  22. package/dist/hooks/useAlign.js +391 -484
  23. package/dist/hooks/useDelay.cjs +21 -24
  24. package/dist/hooks/useDelay.js +20 -25
  25. package/dist/hooks/useOffsetStyle.cjs +34 -33
  26. package/dist/hooks/useOffsetStyle.js +32 -33
  27. package/dist/hooks/useWatch.cjs +38 -34
  28. package/dist/hooks/useWatch.js +36 -34
  29. package/dist/hooks/useWinClick.cjs +54 -64
  30. package/dist/hooks/useWinClick.js +51 -63
  31. package/dist/index.cjs +605 -694
  32. package/dist/index.d.ts +1 -1
  33. package/dist/index.js +593 -689
  34. package/dist/interface.cjs +0 -1
  35. package/dist/interface.js +0 -1
  36. package/dist/util.cjs +65 -82
  37. package/dist/util.js +66 -87
  38. package/package.json +4 -4
@@ -1,213 +1,151 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const vue = require("vue");
4
- const Portal = require("@v-c/portal");
5
- const util$1 = require("@v-c/util");
6
- const findDOMNode = require("@v-c/util/dist/Dom/findDOMNode");
7
- const context = require("../context.cjs");
8
- const useAlign = require("../hooks/useAlign.cjs");
9
- const useDelay = require("../hooks/useDelay.cjs");
10
- const index = require("../Popup/index.cjs");
11
- const util = require("../util.cjs");
12
- const UniqueContainer = require("./UniqueContainer.cjs");
13
- const useTargetState = require("./useTargetState.cjs");
14
- const UniqueProvider = /* @__PURE__ */ vue.defineComponent((props, {
15
- slots
16
- }) => {
17
- const [trigger, open, options, onTargetVisibleChanged] = useTargetState.default();
18
- const mergedOptions = vue.computed(() => {
19
- if (!options.value || !props.postTriggerProps) {
20
- return options.value;
21
- }
22
- return props.postTriggerProps(options.value);
23
- });
24
- const popupEle = vue.shallowRef(null);
25
- const popupSize = vue.ref(null);
26
- const externalPopupRef = vue.shallowRef(null);
27
- const resolveToElement = (node) => {
28
- if (!node) {
29
- return null;
30
- }
31
- if (findDOMNode.isDOM(node)) {
32
- return node;
33
- }
34
- const exposed = node;
35
- if (findDOMNode.isDOM(exposed?.$el)) {
36
- return exposed.$el;
37
- }
38
- const nativeEl = exposed?.nativeElement;
39
- if (findDOMNode.isDOM(nativeEl?.value)) {
40
- return nativeEl.value;
41
- }
42
- if (findDOMNode.isDOM(nativeEl)) {
43
- return nativeEl;
44
- }
45
- if (typeof exposed?.getElement === "function") {
46
- const el = exposed.getElement();
47
- if (findDOMNode.isDOM(el)) {
48
- return el;
49
- }
50
- }
51
- return null;
52
- };
53
- const setPopupRef = (node) => {
54
- const element = resolveToElement(node);
55
- externalPopupRef.value = element;
56
- if (popupEle.value !== element) {
57
- popupEle.value = element;
58
- }
59
- };
60
- const isOpenRef = vue.shallowRef();
61
- const delayInvoke = useDelay.default();
62
- const show = (showOptions, isOpen) => {
63
- isOpenRef.value = isOpen;
64
- delayInvoke(() => {
65
- trigger(showOptions);
66
- }, showOptions.delay);
67
- };
68
- const hide = (delay) => {
69
- delayInvoke(() => {
70
- if (isOpenRef.value?.()) {
71
- return;
72
- }
73
- trigger(false);
74
- }, delay);
75
- };
76
- const onVisibleChanged = (visible) => {
77
- onTargetVisibleChanged(visible);
78
- };
79
- const [
80
- ready,
81
- offsetX,
82
- offsetY,
83
- offsetR,
84
- offsetB,
85
- arrowX,
86
- arrowY,
87
- ,
88
- ,
89
- // scaleX - not used in UniqueProvider
90
- // scaleY - not used in UniqueProvider
91
- alignInfo,
92
- onAlign
93
- ] = useAlign.default(
94
- open,
95
- popupEle,
96
- vue.computed(() => mergedOptions.value?.target),
97
- vue.computed(() => mergedOptions.value?.popupPlacement),
98
- vue.computed(() => mergedOptions.value?.builtinPlacements || {}),
99
- vue.computed(() => mergedOptions.value?.popupAlign),
100
- void 0,
101
- // onPopupAlign
102
- vue.ref(false)
103
- // isMobile
104
- );
105
- const alignedClassName = vue.computed(() => {
106
- if (!mergedOptions.value) {
107
- return "";
108
- }
109
- const baseClassName = util.getAlignPopupClassName(mergedOptions.value?.builtinPlacements || {}, mergedOptions.value.prefixCls || "", alignInfo.value, false);
110
- return util$1.classNames(baseClassName, mergedOptions.value?.getPopupClassNameFromAlign?.(alignInfo.value));
111
- });
112
- const contextValue = {
113
- show,
114
- hide
115
- };
116
- vue.watch(() => mergedOptions.value?.target, () => {
117
- onAlign();
118
- }, {
119
- immediate: true
120
- });
121
- const onPrepare = () => {
122
- onAlign();
123
- return Promise.resolve();
124
- };
125
- const subPopupElements = vue.ref({});
126
- const parentContext = context.useTriggerContext();
127
- const triggerContextValue = vue.computed(() => {
128
- return {
129
- registerSubPopup: (id, subPopupEle) => {
130
- if (subPopupEle) {
131
- subPopupElements.value[id] = subPopupEle;
132
- } else {
133
- delete subPopupElements.value[id];
134
- }
135
- parentContext?.value?.registerSubPopup(id, subPopupEle);
136
- }
137
- };
138
- });
139
- return () => {
140
- const prefixCls = mergedOptions?.value?.prefixCls;
141
- return vue.createVNode(context.UniqueContextProvider, contextValue, {
142
- default: () => [slots?.default?.(), !!mergedOptions.value && vue.createVNode(context.TriggerContextProvider, triggerContextValue.value, {
143
- default: () => [vue.createVNode(index.default, {
144
- "ref": setPopupRef,
145
- "portal": Portal,
146
- "prefixCls": prefixCls,
147
- "popup": mergedOptions.value?.popup,
148
- "className": util$1.classNames(mergedOptions.value?.popupClassName, alignedClassName.value, `${prefixCls}-unique-controlled`),
149
- "style": mergedOptions.value?.popupStyle,
150
- "target": mergedOptions.value?.target,
151
- "open": open.value,
152
- "keepDom": true,
153
- "fresh": true,
154
- "autoDestroy": false,
155
- "onVisibleChanged": onVisibleChanged,
156
- "ready": ready.value,
157
- "offsetX": offsetX.value,
158
- "offsetY": offsetY.value,
159
- "offsetR": offsetR.value,
160
- "offsetB": offsetB.value,
161
- "onAlign": onAlign,
162
- "onPrepare": onPrepare,
163
- "onResize": (size) => {
164
- popupSize.value = {
165
- width: size.offsetWidth,
166
- height: size.offsetHeight
167
- };
168
- },
169
- "arrowPos": {
170
- x: arrowX.value,
171
- y: arrowY.value
172
- },
173
- "align": alignInfo.value,
174
- "zIndex": mergedOptions.value?.zIndex,
175
- "mask": mergedOptions.value?.mask,
176
- "arrow": mergedOptions.value?.arrow,
177
- "motion": mergedOptions.value?.popupMotion,
178
- "maskMotion": mergedOptions.value?.maskMotion,
179
- "getPopupContainer": mergedOptions.value.getPopupContainer
180
- }, {
181
- default: () => [vue.createVNode(UniqueContainer.default, {
182
- "prefixCls": prefixCls,
183
- "isMobile": false,
184
- "ready": ready.value,
185
- "open": open.value,
186
- "align": alignInfo.value,
187
- "offsetX": offsetX.value,
188
- "offsetY": offsetY.value,
189
- "offsetR": offsetR.value,
190
- "offsetB": offsetB.value,
191
- "arrowPos": {
192
- x: arrowX.value,
193
- y: arrowY.value
194
- },
195
- "popupSize": popupSize.value,
196
- "motion": mergedOptions.value?.popupMotion,
197
- "uniqueContainerClassName": util$1.classNames(mergedOptions.value?.uniqueContainerClassName, alignedClassName.value),
198
- "uniqueContainerStyle": mergedOptions?.value?.uniqueContainerStyle
199
- }, null)]
200
- })]
201
- })]
202
- });
203
- };
204
- }, {
205
- props: {
206
- postTriggerProps: {
207
- type: Function,
208
- required: false,
209
- default: void 0
210
- }
211
- }
212
- });
213
- exports.default = UniqueProvider;
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ const require_rolldown_runtime = require("../_virtual/rolldown_runtime.cjs");
3
+ const require_context = require("../context.cjs");
4
+ const require_util = require("../util.cjs");
5
+ const require_useAlign = require("../hooks/useAlign.cjs");
6
+ const require_useDelay = require("../hooks/useDelay.cjs");
7
+ const require_index = require("../Popup/index.cjs");
8
+ const require_UniqueContainer = require("./UniqueContainer.cjs");
9
+ const require_useTargetState = require("./useTargetState.cjs");
10
+ let vue = require("vue");
11
+ let __v_c_portal = require("@v-c/portal");
12
+ __v_c_portal = require_rolldown_runtime.__toESM(__v_c_portal);
13
+ let __v_c_util = require("@v-c/util");
14
+ let __v_c_util_dist_Dom_findDOMNode = require("@v-c/util/dist/Dom/findDOMNode");
15
+ var UniqueProvider = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots }) => {
16
+ const [trigger, open, options, onTargetVisibleChanged] = require_useTargetState.default();
17
+ const mergedOptions = (0, vue.computed)(() => {
18
+ if (!options.value || !props.postTriggerProps) return options.value;
19
+ return props.postTriggerProps(options.value);
20
+ });
21
+ const popupEle = (0, vue.shallowRef)(null);
22
+ const popupSize = (0, vue.ref)(null);
23
+ const externalPopupRef = (0, vue.shallowRef)(null);
24
+ const resolveToElement = (node) => {
25
+ if (!node) return null;
26
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(node)) return node;
27
+ const exposed = node;
28
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(exposed?.$el)) return exposed.$el;
29
+ const nativeEl = exposed?.nativeElement;
30
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(nativeEl?.value)) return nativeEl.value;
31
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(nativeEl)) return nativeEl;
32
+ if (typeof exposed?.getElement === "function") {
33
+ const el = exposed.getElement();
34
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(el)) return el;
35
+ }
36
+ return null;
37
+ };
38
+ const setPopupRef = (node) => {
39
+ const element = resolveToElement(node);
40
+ if (!element) return;
41
+ externalPopupRef.value = element;
42
+ if (popupEle.value !== element) popupEle.value = element;
43
+ };
44
+ const isOpenRef = (0, vue.shallowRef)();
45
+ const delayInvoke = require_useDelay.default();
46
+ const show = (showOptions, isOpen) => {
47
+ isOpenRef.value = isOpen;
48
+ delayInvoke(() => {
49
+ trigger(showOptions);
50
+ }, showOptions.delay);
51
+ };
52
+ const hide = (delay) => {
53
+ delayInvoke(() => {
54
+ if (isOpenRef.value?.()) return;
55
+ trigger(false);
56
+ }, delay);
57
+ };
58
+ const onVisibleChanged = (visible) => {
59
+ onTargetVisibleChanged(visible);
60
+ };
61
+ const [ready, offsetX, offsetY, offsetR, offsetB, arrowX, arrowY, , , alignInfo, onAlign] = require_useAlign.default(open, popupEle, (0, vue.computed)(() => mergedOptions.value?.target), (0, vue.computed)(() => mergedOptions.value?.popupPlacement), (0, vue.computed)(() => mergedOptions.value?.builtinPlacements || {}), (0, vue.computed)(() => mergedOptions.value?.popupAlign), void 0, (0, vue.ref)(false));
62
+ const alignedClassName = (0, vue.computed)(() => {
63
+ if (!mergedOptions.value) return "";
64
+ return (0, __v_c_util.classNames)(require_util.getAlignPopupClassName(mergedOptions.value?.builtinPlacements || {}, mergedOptions.value.prefixCls || "", alignInfo.value, false), mergedOptions.value?.getPopupClassNameFromAlign?.(alignInfo.value));
65
+ });
66
+ const contextValue = {
67
+ show,
68
+ hide
69
+ };
70
+ (0, vue.watch)(() => mergedOptions.value?.target, () => {
71
+ onAlign();
72
+ }, { immediate: true });
73
+ const onPrepare = () => {
74
+ onAlign();
75
+ return Promise.resolve();
76
+ };
77
+ const subPopupElements = (0, vue.ref)({});
78
+ const parentContext = require_context.useTriggerContext();
79
+ const triggerContextValue = (0, vue.computed)(() => {
80
+ return { registerSubPopup: (id, subPopupEle) => {
81
+ if (subPopupEle) subPopupElements.value[id] = subPopupEle;
82
+ else delete subPopupElements.value[id];
83
+ parentContext?.value?.registerSubPopup(id, subPopupEle);
84
+ } };
85
+ });
86
+ return () => {
87
+ const prefixCls = mergedOptions?.value?.prefixCls;
88
+ return (0, vue.createVNode)(require_context.UniqueContextProvider, contextValue, { default: () => [slots?.default?.(), !!mergedOptions.value && (0, vue.createVNode)(require_context.TriggerContextProvider, triggerContextValue.value, { default: () => [(0, vue.createVNode)(require_index.default, {
89
+ "ref": setPopupRef,
90
+ "portal": __v_c_portal.default,
91
+ "prefixCls": prefixCls,
92
+ "popup": mergedOptions.value?.popup,
93
+ "className": (0, __v_c_util.classNames)(mergedOptions.value?.popupClassName, alignedClassName.value, `${prefixCls}-unique-controlled`),
94
+ "style": mergedOptions.value?.popupStyle,
95
+ "target": mergedOptions.value?.target,
96
+ "open": open.value,
97
+ "keepDom": true,
98
+ "fresh": true,
99
+ "autoDestroy": false,
100
+ "onVisibleChanged": onVisibleChanged,
101
+ "ready": ready.value,
102
+ "offsetX": offsetX.value,
103
+ "offsetY": offsetY.value,
104
+ "offsetR": offsetR.value,
105
+ "offsetB": offsetB.value,
106
+ "onAlign": onAlign,
107
+ "onPrepare": onPrepare,
108
+ "onResize": (size) => {
109
+ popupSize.value = {
110
+ width: size.offsetWidth,
111
+ height: size.offsetHeight
112
+ };
113
+ },
114
+ "arrowPos": {
115
+ x: arrowX.value,
116
+ y: arrowY.value
117
+ },
118
+ "align": alignInfo.value,
119
+ "zIndex": mergedOptions.value?.zIndex,
120
+ "mask": mergedOptions.value?.mask,
121
+ "arrow": mergedOptions.value?.arrow,
122
+ "motion": mergedOptions.value?.popupMotion,
123
+ "maskMotion": mergedOptions.value?.maskMotion,
124
+ "getPopupContainer": mergedOptions.value.getPopupContainer
125
+ }, { default: () => [(0, vue.createVNode)(require_UniqueContainer.default, {
126
+ "prefixCls": prefixCls,
127
+ "isMobile": false,
128
+ "ready": ready.value,
129
+ "open": open.value,
130
+ "align": alignInfo.value,
131
+ "offsetX": offsetX.value,
132
+ "offsetY": offsetY.value,
133
+ "offsetR": offsetR.value,
134
+ "offsetB": offsetB.value,
135
+ "arrowPos": {
136
+ x: arrowX.value,
137
+ y: arrowY.value
138
+ },
139
+ "popupSize": popupSize.value,
140
+ "motion": mergedOptions.value?.popupMotion,
141
+ "uniqueContainerClassName": (0, __v_c_util.classNames)(mergedOptions.value?.uniqueContainerClassName, alignedClassName.value),
142
+ "uniqueContainerStyle": mergedOptions?.value?.uniqueContainerStyle
143
+ }, null)] })] })] });
144
+ };
145
+ }, { props: { postTriggerProps: {
146
+ type: Function,
147
+ required: false,
148
+ default: void 0
149
+ } } });
150
+ var UniqueProvider_default = UniqueProvider;
151
+ exports.default = UniqueProvider_default;