@nutui/nutui 3.2.7 → 3.2.8-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 (200) hide show
  1. package/dist/nutui.es.js +1932 -3372
  2. package/dist/nutui.umd.js +1929 -3370
  3. package/dist/packages/_es/ActionSheet.js +2 -5
  4. package/dist/packages/_es/Address.js +162 -250
  5. package/dist/packages/_es/AddressList.js +229 -307
  6. package/dist/packages/_es/Animate.js +1 -1
  7. package/dist/packages/_es/Audio.js +1 -1
  8. package/dist/packages/_es/AudioOperate.js +1 -1
  9. package/dist/packages/_es/Avatar.js +1 -1
  10. package/dist/packages/_es/AvatarGroup.js +1 -1
  11. package/dist/packages/_es/BackTop.js +1 -1
  12. package/dist/packages/_es/Badge.js +1 -1
  13. package/dist/packages/_es/Barrage.js +1 -1
  14. package/dist/packages/_es/Button.js +1 -1
  15. package/dist/packages/_es/Calendar.js +1 -1
  16. package/dist/packages/_es/CalendarItem.js +1 -1
  17. package/dist/packages/_es/Card.js +1 -1
  18. package/dist/packages/_es/Cascader.js +2 -5
  19. package/dist/packages/_es/Category.js +1 -1
  20. package/dist/packages/_es/CategoryPane.js +1 -1
  21. package/dist/packages/_es/Cell.js +1 -1
  22. package/dist/packages/_es/CellGroup.js +1 -1
  23. package/dist/packages/_es/Checkbox.js +1 -1
  24. package/dist/packages/_es/CheckboxGroup.js +1 -1
  25. package/dist/packages/_es/CircleProgress.js +2 -2
  26. package/dist/packages/_es/Col.js +1 -1
  27. package/dist/packages/_es/Collapse.js +4 -11
  28. package/dist/packages/_es/CollapseItem.js +8 -5
  29. package/dist/packages/_es/Comment.js +1 -1
  30. package/dist/packages/_es/ConfigProvider.js +1 -1
  31. package/dist/packages/_es/CountDown.js +2 -10
  32. package/dist/packages/_es/CountUp.js +1 -1
  33. package/dist/packages/_es/DatePicker.js +8 -17
  34. package/dist/packages/_es/Dialog.js +38 -63
  35. package/dist/packages/_es/Divider.js +1 -1
  36. package/dist/packages/_es/Drag.js +1 -1
  37. package/dist/packages/_es/Ecard.js +1 -1
  38. package/dist/packages/_es/Elevator.js +2 -2
  39. package/dist/packages/_es/Ellipsis.js +1 -1
  40. package/dist/packages/_es/Empty.js +1 -1
  41. package/dist/packages/_es/FixedNav.js +1 -1
  42. package/dist/packages/_es/Form.js +39 -31
  43. package/dist/packages/_es/FormItem.js +1 -1
  44. package/dist/packages/_es/Grid.js +2 -2
  45. package/dist/packages/_es/GridItem.js +1 -1
  46. package/dist/packages/_es/Icon.js +1 -1
  47. package/dist/packages/_es/Image.js +1 -1
  48. package/dist/packages/_es/ImagePreview.js +126 -220
  49. package/dist/packages/_es/Indicator.js +4 -4
  50. package/dist/packages/_es/InfiniteLoading.js +1 -1
  51. package/dist/packages/_es/Input.js +107 -123
  52. package/dist/packages/_es/InputNumber.js +1 -1
  53. package/dist/packages/_es/Invoice.js +1 -1
  54. package/dist/packages/_es/Layout.js +1 -1
  55. package/dist/packages/_es/List.js +1 -1
  56. package/dist/packages/_es/Menu.js +14 -1
  57. package/dist/packages/_es/MenuItem.js +10 -7
  58. package/dist/packages/_es/Navbar.js +1 -1
  59. package/dist/packages/_es/NoticeBar.js +1 -1
  60. package/dist/packages/_es/Notify.js +5 -7
  61. package/dist/packages/_es/NumberKeyboard.js +4 -4
  62. package/dist/packages/_es/OverLay.js +60 -63
  63. package/dist/packages/_es/Pagination.js +1 -1
  64. package/dist/packages/_es/Picker.js +25 -50
  65. package/dist/packages/_es/Popover.js +111 -930
  66. package/dist/packages/_es/Popup.js +105 -217
  67. package/dist/packages/_es/Price.js +1 -1
  68. package/dist/packages/_es/Progress.js +1 -1
  69. package/dist/packages/_es/Radio.js +1 -1
  70. package/dist/packages/_es/RadioGroup.js +1 -1
  71. package/dist/packages/_es/Range.js +1 -1
  72. package/dist/packages/_es/Rate.js +1 -1
  73. package/dist/packages/_es/Row.js +1 -1
  74. package/dist/packages/_es/SearchBar.js +1 -1
  75. package/dist/packages/_es/ShortPassword.js +4 -4
  76. package/dist/packages/_es/SideNavBar.js +1 -1
  77. package/dist/packages/_es/SideNavBarItem.js +1 -1
  78. package/dist/packages/_es/Signature.js +1 -1
  79. package/dist/packages/_es/Skeleton.js +1 -1
  80. package/dist/packages/_es/Sku.js +4 -7
  81. package/dist/packages/_es/Step.js +1 -1
  82. package/dist/packages/_es/Steps.js +1 -1
  83. package/dist/packages/_es/Sticky.js +1 -1
  84. package/dist/packages/_es/SubSideNavBar.js +1 -1
  85. package/dist/packages/_es/Swipe.js +1 -1
  86. package/dist/packages/_es/Swiper.js +1 -1
  87. package/dist/packages/_es/SwiperItem.js +1 -1
  88. package/dist/packages/_es/Switch.js +1 -1
  89. package/dist/packages/_es/TabPane.js +1 -1
  90. package/dist/packages/_es/Tabbar.js +1 -1
  91. package/dist/packages/_es/TabbarItem.js +2 -2
  92. package/dist/packages/_es/Table.js +1 -1
  93. package/dist/packages/_es/Tabs.js +2 -2
  94. package/dist/packages/_es/Tag.js +1 -1
  95. package/dist/packages/_es/TextArea.js +1 -1
  96. package/dist/packages/_es/TimeDetail.js +1 -1
  97. package/dist/packages/_es/TimePannel.js +1 -1
  98. package/dist/packages/_es/TimeSelect.js +4 -4
  99. package/dist/packages/_es/Toast.js +5 -6
  100. package/dist/packages/_es/TrendArrow.js +1 -1
  101. package/dist/packages/_es/Uploader.js +2 -2
  102. package/dist/packages/_es/Video.js +1 -1
  103. package/dist/packages/_es/WaterMark.js +1 -1
  104. package/dist/packages/_es/common.js +1 -1
  105. package/dist/packages/_es/component.js +22 -2
  106. package/dist/packages/_es/index.js +1 -1
  107. package/dist/packages/_es/index2.js +1 -1
  108. package/dist/packages/_es/index3.js +1 -1
  109. package/dist/packages/_es/index4.js +1 -1
  110. package/dist/packages/_es/index5.js +1 -1
  111. package/dist/packages/_es/interceptor.js +32 -0
  112. package/dist/packages/_es/mountComponent.js +42 -0
  113. package/dist/packages/_es/plugin-vue_export-helper.js +1 -1
  114. package/dist/packages/_es/props.js +80 -0
  115. package/dist/packages/_es/pxCheck.js +1 -1
  116. package/dist/packages/_es/raf.js +1 -1
  117. package/dist/packages/_es/style.css +1 -1
  118. package/dist/packages/address/index.scss +7 -2
  119. package/dist/packages/addresslist/index.scss +61 -101
  120. package/dist/packages/imagepreview/index.scss +9 -1
  121. package/dist/packages/inputnumber/index.scss +5 -1
  122. package/dist/packages/locale/lang/baseLang.js +1 -1
  123. package/dist/packages/locale/lang/en-US.js +1 -1
  124. package/dist/packages/locale/lang/id-ID.js +1 -1
  125. package/dist/packages/locale/lang/index.js +1 -1
  126. package/dist/packages/locale/lang/zh-CN.js +1 -1
  127. package/dist/packages/locale/lang/zh-TW.js +1 -1
  128. package/dist/packages/menuitem/index.scss +0 -15
  129. package/dist/packages/notify/index.scss +2 -2
  130. package/dist/packages/overlay/index.scss +2 -1
  131. package/dist/packages/picker/index.scss +20 -12
  132. package/dist/packages/popover/index.scss +191 -363
  133. package/dist/packages/popup/index.scss +3 -14
  134. package/dist/smartips/attributes.json +59 -55
  135. package/dist/smartips/tags.json +16 -19
  136. package/dist/smartips/web-types.json +115 -113
  137. package/dist/style.css +1 -1
  138. package/dist/styles/themes/default.scss +54 -55
  139. package/dist/styles/themes/jdb.scss +54 -55
  140. package/dist/styles/themes/jddkh.scss +54 -55
  141. package/dist/styles/themes/jdt.scss +54 -55
  142. package/dist/styles/variables.scss +9 -0
  143. package/dist/types/__VUE/actionsheet/index.vue.d.ts +61 -57
  144. package/dist/types/__VUE/address/index.vue.d.ts +74 -94
  145. package/dist/types/__VUE/addresslist/components/GeneralShell.vue.d.ts +29 -9
  146. package/dist/types/__VUE/addresslist/components/ItemContents.vue.d.ts +4 -13
  147. package/dist/types/__VUE/addresslist/components/SwipeShell.vue.d.ts +9 -9
  148. package/dist/types/__VUE/addresslist/index.vue.d.ts +23 -20
  149. package/dist/types/__VUE/calendar/index.vue.d.ts +1 -1
  150. package/dist/types/__VUE/cascader/index.vue.d.ts +49 -54
  151. package/dist/types/__VUE/cell/index.vue.d.ts +1 -1
  152. package/dist/types/__VUE/countdown/index.vue.d.ts +0 -1
  153. package/dist/types/__VUE/countdown/util.d.ts +0 -1
  154. package/dist/types/__VUE/datepicker/index.vue.d.ts +57 -62
  155. package/dist/types/__VUE/dialog/index.d.ts +0 -3
  156. package/dist/types/__VUE/dialog/index.vue.d.ts +52 -61
  157. package/dist/types/__VUE/divider/index.vue.d.ts +1 -1
  158. package/dist/types/__VUE/fixednav/index.vue.d.ts +1 -1
  159. package/dist/types/__VUE/form/common.d.ts +4 -2
  160. package/dist/types/__VUE/form/index.vue.d.ts +4 -4
  161. package/dist/types/__VUE/grid/index.vue.d.ts +1 -1
  162. package/dist/types/__VUE/image/index.vue.d.ts +1 -1
  163. package/dist/types/__VUE/imagepreview/imagePreviewItem.vue.d.ts +27 -20
  164. package/dist/types/__VUE/imagepreview/index.d.ts +19 -5
  165. package/dist/types/__VUE/imagepreview/index.vue.d.ts +57 -43
  166. package/dist/types/__VUE/imagepreview/types.d.ts +44 -0
  167. package/dist/types/__VUE/indicator/index.vue.d.ts +1 -0
  168. package/dist/types/__VUE/input/index.vue.d.ts +35 -23
  169. package/dist/types/__VUE/inputnumber/index.vue.d.ts +1 -1
  170. package/dist/types/__VUE/invoice/index.vue.d.ts +1 -1
  171. package/dist/types/__VUE/menu/index.vue.d.ts +1 -1
  172. package/dist/types/__VUE/menuitem/index.vue.d.ts +3 -3
  173. package/dist/types/__VUE/notify/index.vue.d.ts +3 -3
  174. package/dist/types/__VUE/numberkeyboard/index.vue.d.ts +4 -4
  175. package/dist/types/__VUE/overlay/index.vue.d.ts +12 -13
  176. package/dist/types/__VUE/picker/Column.vue.d.ts +0 -2
  177. package/dist/types/__VUE/picker/index.vue.d.ts +59 -66
  178. package/dist/types/__VUE/popover/index.vue.d.ts +40 -143
  179. package/dist/types/__VUE/popup/common.d.ts +103 -0
  180. package/dist/types/__VUE/popup/index.vue.d.ts +57 -1593
  181. package/dist/types/__VUE/popup/props.d.ts +82 -0
  182. package/dist/types/__VUE/rate/index.vue.d.ts +1 -1
  183. package/dist/types/__VUE/shortpassword/index.vue.d.ts +5 -5
  184. package/dist/types/__VUE/sku/index.vue.d.ts +59 -64
  185. package/dist/types/__VUE/swipe/index.vue.d.ts +2 -2
  186. package/dist/types/__VUE/switch/index.vue.d.ts +1 -1
  187. package/dist/types/__VUE/tabbar/index.vue.d.ts +1 -1
  188. package/dist/types/__VUE/timeselect/index.vue.d.ts +3 -3
  189. package/dist/types/__VUE/video/index.vue.d.ts +2 -2
  190. package/dist/types/index.d.ts +1 -1
  191. package/dist/types/nutui.d.ts +1 -2
  192. package/package.json +2 -3
  193. package/dist/packages/_es/PullRefresh.js +0 -349
  194. package/dist/packages/pullrefresh/index.scss +0 -71
  195. package/dist/types/__VUE/addresslist/components/LongPressShell.vue.d.ts +0 -47
  196. package/dist/types/__VUE/datepicker/utils.d.ts +0 -5
  197. package/dist/types/__VUE/popup/use-lock-scroll.d.ts +0 -5
  198. package/dist/types/__VUE/pullrefresh/index.vue.d.ts +0 -128
  199. package/dist/types/__VUE/pullrefresh/use-touch.d.ts +0 -20
  200. package/dist/types/__VUE/pullrefresh/util.d.ts +0 -6
@@ -1,919 +1,87 @@
1
1
  /*!
2
- * @nutui/nutui v3.2.7 Fri Nov 18 2022 19:57:44 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v3.2.8-beta.1 Fri Dec 02 2022 14:18:21 GMT+0800 (中国标准时间)
3
3
  * (c) 2022 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
6
- import { ref, toRefs, computed, onMounted, onUnmounted, watch, nextTick, resolveComponent, openBlock, createElementBlock, Fragment, createElementVNode, normalizeClass, withModifiers, renderSlot, createVNode, withCtx, createCommentVNode, renderList, mergeProps, toDisplayString } from "vue";
7
- import { c as createComponent } from "./component.js";
8
- import Popup, { popupProps } from "./Popup.js";
9
- import Button from "./Button.js";
6
+ import { ref, reactive, computed, watch, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, createVNode, normalizeStyle, withCtx, createCommentVNode, Fragment, renderList, withModifiers, mergeProps, toDisplayString } from "vue";
7
+ import { j as isArray, c as createComponent } from "./component.js";
10
8
  import { _ as _export_sfc } from "./plugin-vue_export-helper.js";
11
9
  import "../locale/lang";
12
- import "./OverLay.js";
13
- import "./Icon.js";
14
- import "./pxCheck.js";
15
- function getWindow(node) {
16
- if (node == null) {
17
- return window;
18
- }
19
- if (node.toString() !== "[object Window]") {
20
- var ownerDocument = node.ownerDocument;
21
- return ownerDocument ? ownerDocument.defaultView || window : window;
22
- }
23
- return node;
24
- }
25
- function isElement(node) {
26
- var OwnElement = getWindow(node).Element;
27
- return node instanceof OwnElement || node instanceof Element;
28
- }
29
- function isHTMLElement(node) {
30
- var OwnElement = getWindow(node).HTMLElement;
31
- return node instanceof OwnElement || node instanceof HTMLElement;
32
- }
33
- function isShadowRoot(node) {
34
- if (typeof ShadowRoot === "undefined") {
35
- return false;
36
- }
37
- var OwnElement = getWindow(node).ShadowRoot;
38
- return node instanceof OwnElement || node instanceof ShadowRoot;
39
- }
40
- var round = Math.round;
41
- function getUAString() {
42
- var uaData = navigator.userAgentData;
43
- if (uaData != null && uaData.brands) {
44
- return uaData.brands.map(function(item) {
45
- return item.brand + "/" + item.version;
46
- }).join(" ");
47
- }
48
- return navigator.userAgent;
49
- }
50
- function isLayoutViewport() {
51
- return !/^((?!chrome|android).)*safari/i.test(getUAString());
52
- }
53
- function getBoundingClientRect(element, includeScale, isFixedStrategy) {
54
- if (includeScale === void 0) {
55
- includeScale = false;
56
- }
57
- if (isFixedStrategy === void 0) {
58
- isFixedStrategy = false;
59
- }
60
- var clientRect = element.getBoundingClientRect();
61
- var scaleX = 1;
62
- var scaleY = 1;
63
- if (includeScale && isHTMLElement(element)) {
64
- scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
65
- scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
66
- }
67
- var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport;
68
- var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
69
- var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
70
- var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
71
- var width = clientRect.width / scaleX;
72
- var height = clientRect.height / scaleY;
73
- return {
74
- width,
75
- height,
76
- top: y,
77
- right: x + width,
78
- bottom: y + height,
79
- left: x,
80
- x,
81
- y
82
- };
83
- }
84
- function getWindowScroll(node) {
85
- var win = getWindow(node);
86
- var scrollLeft = win.pageXOffset;
87
- var scrollTop = win.pageYOffset;
88
- return {
89
- scrollLeft,
90
- scrollTop
91
- };
92
- }
93
- function getHTMLElementScroll(element) {
94
- return {
95
- scrollLeft: element.scrollLeft,
96
- scrollTop: element.scrollTop
97
- };
98
- }
99
- function getNodeScroll(node) {
100
- if (node === getWindow(node) || !isHTMLElement(node)) {
101
- return getWindowScroll(node);
102
- } else {
103
- return getHTMLElementScroll(node);
104
- }
105
- }
106
- function getNodeName(element) {
107
- return element ? (element.nodeName || "").toLowerCase() : null;
108
- }
109
- function getDocumentElement(element) {
110
- return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement;
111
- }
112
- function getWindowScrollBarX(element) {
113
- return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
114
- }
115
- function getComputedStyle(element) {
116
- return getWindow(element).getComputedStyle(element);
117
- }
118
- function isScrollParent(element) {
119
- var _getComputedStyle = getComputedStyle(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY;
120
- return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
121
- }
122
- function isElementScaled(element) {
123
- var rect = element.getBoundingClientRect();
124
- var scaleX = round(rect.width) / element.offsetWidth || 1;
125
- var scaleY = round(rect.height) / element.offsetHeight || 1;
126
- return scaleX !== 1 || scaleY !== 1;
127
- }
128
- function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
129
- if (isFixed === void 0) {
130
- isFixed = false;
131
- }
132
- var isOffsetParentAnElement = isHTMLElement(offsetParent);
133
- var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
134
- var documentElement = getDocumentElement(offsetParent);
135
- var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
136
- var scroll = {
137
- scrollLeft: 0,
138
- scrollTop: 0
139
- };
140
- var offsets = {
141
- x: 0,
142
- y: 0
143
- };
144
- if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
145
- if (getNodeName(offsetParent) !== "body" || isScrollParent(documentElement)) {
146
- scroll = getNodeScroll(offsetParent);
147
- }
148
- if (isHTMLElement(offsetParent)) {
149
- offsets = getBoundingClientRect(offsetParent, true);
150
- offsets.x += offsetParent.clientLeft;
151
- offsets.y += offsetParent.clientTop;
152
- } else if (documentElement) {
153
- offsets.x = getWindowScrollBarX(documentElement);
154
- }
155
- }
156
- return {
157
- x: rect.left + scroll.scrollLeft - offsets.x,
158
- y: rect.top + scroll.scrollTop - offsets.y,
159
- width: rect.width,
160
- height: rect.height
161
- };
162
- }
163
- function getLayoutRect(element) {
164
- var clientRect = getBoundingClientRect(element);
165
- var width = element.offsetWidth;
166
- var height = element.offsetHeight;
167
- if (Math.abs(clientRect.width - width) <= 1) {
168
- width = clientRect.width;
169
- }
170
- if (Math.abs(clientRect.height - height) <= 1) {
171
- height = clientRect.height;
172
- }
173
- return {
174
- x: element.offsetLeft,
175
- y: element.offsetTop,
176
- width,
177
- height
178
- };
179
- }
180
- function getParentNode(element) {
181
- if (getNodeName(element) === "html") {
182
- return element;
183
- }
184
- return element.assignedSlot || element.parentNode || (isShadowRoot(element) ? element.host : null) || getDocumentElement(element);
185
- }
186
- function getScrollParent(node) {
187
- if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) {
188
- return node.ownerDocument.body;
189
- }
190
- if (isHTMLElement(node) && isScrollParent(node)) {
191
- return node;
192
- }
193
- return getScrollParent(getParentNode(node));
194
- }
195
- function listScrollParents(element, list) {
196
- var _element$ownerDocumen;
197
- if (list === void 0) {
198
- list = [];
199
- }
200
- var scrollParent = getScrollParent(element);
201
- var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
202
- var win = getWindow(scrollParent);
203
- var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
204
- var updatedList = list.concat(target);
205
- return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target)));
206
- }
207
- function isTableElement(element) {
208
- return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0;
209
- }
210
- function getTrueOffsetParent(element) {
211
- if (!isHTMLElement(element) || getComputedStyle(element).position === "fixed") {
212
- return null;
213
- }
214
- return element.offsetParent;
215
- }
216
- function getContainingBlock(element) {
217
- var isFirefox = /firefox/i.test(getUAString());
218
- var isIE = /Trident/i.test(getUAString());
219
- if (isIE && isHTMLElement(element)) {
220
- var elementCss = getComputedStyle(element);
221
- if (elementCss.position === "fixed") {
222
- return null;
223
- }
224
- }
225
- var currentNode = getParentNode(element);
226
- if (isShadowRoot(currentNode)) {
227
- currentNode = currentNode.host;
228
- }
229
- while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) {
230
- var css = getComputedStyle(currentNode);
231
- if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") {
232
- return currentNode;
233
- } else {
234
- currentNode = currentNode.parentNode;
235
- }
236
- }
237
- return null;
238
- }
239
- function getOffsetParent(element) {
240
- var window2 = getWindow(element);
241
- var offsetParent = getTrueOffsetParent(element);
242
- while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === "static") {
243
- offsetParent = getTrueOffsetParent(offsetParent);
244
- }
245
- if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle(offsetParent).position === "static")) {
246
- return window2;
247
- }
248
- return offsetParent || getContainingBlock(element) || window2;
249
- }
250
- var top = "top";
251
- var bottom = "bottom";
252
- var right = "right";
253
- var left = "left";
254
- var auto = "auto";
255
- var basePlacements = [top, bottom, right, left];
256
- var start = "start";
257
- var end = "end";
258
- var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {
259
- return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
260
- }, []);
261
- var beforeRead = "beforeRead";
262
- var read = "read";
263
- var afterRead = "afterRead";
264
- var beforeMain = "beforeMain";
265
- var main = "main";
266
- var afterMain = "afterMain";
267
- var beforeWrite = "beforeWrite";
268
- var write = "write";
269
- var afterWrite = "afterWrite";
270
- var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
271
- function order(modifiers) {
272
- var map = /* @__PURE__ */ new Map();
273
- var visited = /* @__PURE__ */ new Set();
274
- var result = [];
275
- modifiers.forEach(function(modifier) {
276
- map.set(modifier.name, modifier);
277
- });
278
- function sort(modifier) {
279
- visited.add(modifier.name);
280
- var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
281
- requires.forEach(function(dep) {
282
- if (!visited.has(dep)) {
283
- var depModifier = map.get(dep);
284
- if (depModifier) {
285
- sort(depModifier);
286
- }
287
- }
288
- });
289
- result.push(modifier);
290
- }
291
- modifiers.forEach(function(modifier) {
292
- if (!visited.has(modifier.name)) {
293
- sort(modifier);
294
- }
295
- });
296
- return result;
297
- }
298
- function orderModifiers(modifiers) {
299
- var orderedModifiers = order(modifiers);
300
- return modifierPhases.reduce(function(acc, phase) {
301
- return acc.concat(orderedModifiers.filter(function(modifier) {
302
- return modifier.phase === phase;
303
- }));
304
- }, []);
305
- }
306
- function debounce(fn2) {
307
- var pending;
308
- return function() {
309
- if (!pending) {
310
- pending = new Promise(function(resolve) {
311
- Promise.resolve().then(function() {
312
- pending = void 0;
313
- resolve(fn2());
314
- });
315
- });
316
- }
317
- return pending;
318
- };
319
- }
320
- function getBasePlacement(placement) {
321
- return placement.split("-")[0];
322
- }
323
- function mergeByName(modifiers) {
324
- var merged = modifiers.reduce(function(merged2, current) {
325
- var existing = merged2[current.name];
326
- merged2[current.name] = existing ? Object.assign({}, existing, current, {
327
- options: Object.assign({}, existing.options, current.options),
328
- data: Object.assign({}, existing.data, current.data)
329
- }) : current;
330
- return merged2;
331
- }, {});
332
- return Object.keys(merged).map(function(key) {
333
- return merged[key];
334
- });
335
- }
336
- function getVariation(placement) {
337
- return placement.split("-")[1];
338
- }
339
- function getMainAxisFromPlacement(placement) {
340
- return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y";
341
- }
342
- function computeOffsets(_ref) {
343
- var reference = _ref.reference, element = _ref.element, placement = _ref.placement;
344
- var basePlacement = placement ? getBasePlacement(placement) : null;
345
- var variation = placement ? getVariation(placement) : null;
346
- var commonX = reference.x + reference.width / 2 - element.width / 2;
347
- var commonY = reference.y + reference.height / 2 - element.height / 2;
348
- var offsets;
349
- switch (basePlacement) {
350
- case top:
351
- offsets = {
352
- x: commonX,
353
- y: reference.y - element.height
354
- };
355
- break;
356
- case bottom:
357
- offsets = {
358
- x: commonX,
359
- y: reference.y + reference.height
360
- };
361
- break;
362
- case right:
363
- offsets = {
364
- x: reference.x + reference.width,
365
- y: commonY
366
- };
367
- break;
368
- case left:
369
- offsets = {
370
- x: reference.x - element.width,
371
- y: commonY
372
- };
373
- break;
374
- default:
375
- offsets = {
376
- x: reference.x,
377
- y: reference.y
378
- };
379
- }
380
- var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
381
- if (mainAxis != null) {
382
- var len = mainAxis === "y" ? "height" : "width";
383
- switch (variation) {
384
- case start:
385
- offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
386
- break;
387
- case end:
388
- offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
389
- break;
390
- }
391
- }
392
- return offsets;
393
- }
394
- var DEFAULT_OPTIONS = {
395
- placement: "bottom",
396
- modifiers: [],
397
- strategy: "absolute"
398
- };
399
- function areValidElements() {
400
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
401
- args[_key] = arguments[_key];
402
- }
403
- return !args.some(function(element) {
404
- return !(element && typeof element.getBoundingClientRect === "function");
405
- });
406
- }
407
- function popperGenerator(generatorOptions) {
408
- if (generatorOptions === void 0) {
409
- generatorOptions = {};
410
- }
411
- var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
412
- return function createPopper2(reference, popper, options) {
413
- if (options === void 0) {
414
- options = defaultOptions;
415
- }
416
- var state = {
417
- placement: "bottom",
418
- orderedModifiers: [],
419
- options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
420
- modifiersData: {},
421
- elements: {
422
- reference,
423
- popper
424
- },
425
- attributes: {},
426
- styles: {}
427
- };
428
- var effectCleanupFns = [];
429
- var isDestroyed = false;
430
- var instance = {
431
- state,
432
- setOptions: function setOptions(setOptionsAction) {
433
- var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction;
434
- cleanupModifierEffects();
435
- state.options = Object.assign({}, defaultOptions, state.options, options2);
436
- state.scrollParents = {
437
- reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
438
- popper: listScrollParents(popper)
439
- };
440
- var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers)));
441
- state.orderedModifiers = orderedModifiers.filter(function(m) {
442
- return m.enabled;
443
- });
444
- runModifierEffects();
445
- return instance.update();
446
- },
447
- forceUpdate: function forceUpdate() {
448
- if (isDestroyed) {
449
- return;
450
- }
451
- var _state$elements = state.elements, reference2 = _state$elements.reference, popper2 = _state$elements.popper;
452
- if (!areValidElements(reference2, popper2)) {
453
- return;
454
- }
455
- state.rects = {
456
- reference: getCompositeRect(reference2, getOffsetParent(popper2), state.options.strategy === "fixed"),
457
- popper: getLayoutRect(popper2)
458
- };
459
- state.reset = false;
460
- state.placement = state.options.placement;
461
- state.orderedModifiers.forEach(function(modifier) {
462
- return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
463
- });
464
- for (var index2 = 0; index2 < state.orderedModifiers.length; index2++) {
465
- if (state.reset === true) {
466
- state.reset = false;
467
- index2 = -1;
468
- continue;
469
- }
470
- var _state$orderedModifie = state.orderedModifiers[index2], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name;
471
- if (typeof fn2 === "function") {
472
- state = fn2({
473
- state,
474
- options: _options,
475
- name,
476
- instance
477
- }) || state;
478
- }
479
- }
480
- },
481
- update: debounce(function() {
482
- return new Promise(function(resolve) {
483
- instance.forceUpdate();
484
- resolve(state);
485
- });
486
- }),
487
- destroy: function destroy() {
488
- cleanupModifierEffects();
489
- isDestroyed = true;
490
- }
491
- };
492
- if (!areValidElements(reference, popper)) {
493
- return instance;
494
- }
495
- instance.setOptions(options).then(function(state2) {
496
- if (!isDestroyed && options.onFirstUpdate) {
497
- options.onFirstUpdate(state2);
498
- }
499
- });
500
- function runModifierEffects() {
501
- state.orderedModifiers.forEach(function(_ref3) {
502
- var name = _ref3.name, _ref3$options = _ref3.options, options2 = _ref3$options === void 0 ? {} : _ref3$options, effect2 = _ref3.effect;
503
- if (typeof effect2 === "function") {
504
- var cleanupFn = effect2({
505
- state,
506
- name,
507
- instance,
508
- options: options2
509
- });
510
- var noopFn = function noopFn2() {
511
- };
512
- effectCleanupFns.push(cleanupFn || noopFn);
513
- }
514
- });
515
- }
516
- function cleanupModifierEffects() {
517
- effectCleanupFns.forEach(function(fn2) {
518
- return fn2();
519
- });
520
- effectCleanupFns = [];
521
- }
522
- return instance;
523
- };
524
- }
525
- var passive = {
526
- passive: true
527
- };
528
- function effect$1(_ref) {
529
- var state = _ref.state, instance = _ref.instance, options = _ref.options;
530
- var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;
531
- var window2 = getWindow(state.elements.popper);
532
- var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
533
- if (scroll) {
534
- scrollParents.forEach(function(scrollParent) {
535
- scrollParent.addEventListener("scroll", instance.update, passive);
536
- });
537
- }
538
- if (resize) {
539
- window2.addEventListener("resize", instance.update, passive);
540
- }
541
- return function() {
542
- if (scroll) {
543
- scrollParents.forEach(function(scrollParent) {
544
- scrollParent.removeEventListener("scroll", instance.update, passive);
545
- });
546
- }
547
- if (resize) {
548
- window2.removeEventListener("resize", instance.update, passive);
549
- }
550
- };
551
- }
552
- var eventListeners = {
553
- name: "eventListeners",
554
- enabled: true,
555
- phase: "write",
556
- fn: function fn() {
557
- },
558
- effect: effect$1,
559
- data: {}
560
- };
561
- function popperOffsets(_ref) {
562
- var state = _ref.state, name = _ref.name;
563
- state.modifiersData[name] = computeOffsets({
564
- reference: state.rects.reference,
565
- element: state.rects.popper,
566
- strategy: "absolute",
567
- placement: state.placement
568
- });
569
- }
570
- var popperOffsets$1 = {
571
- name: "popperOffsets",
572
- enabled: true,
573
- phase: "read",
574
- fn: popperOffsets,
575
- data: {}
576
- };
577
- var unsetSides = {
578
- top: "auto",
579
- right: "auto",
580
- bottom: "auto",
581
- left: "auto"
582
- };
583
- function roundOffsetsByDPR(_ref) {
584
- var x = _ref.x, y = _ref.y;
585
- var win = window;
586
- var dpr = win.devicePixelRatio || 1;
587
- return {
588
- x: round(x * dpr) / dpr || 0,
589
- y: round(y * dpr) / dpr || 0
590
- };
591
- }
592
- function mapToStyles(_ref2) {
593
- var _Object$assign2;
594
- var popper = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;
595
- var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y;
596
- var _ref3 = typeof roundOffsets === "function" ? roundOffsets({
597
- x,
598
- y
599
- }) : {
600
- x,
601
- y
602
- };
603
- x = _ref3.x;
604
- y = _ref3.y;
605
- var hasX = offsets.hasOwnProperty("x");
606
- var hasY = offsets.hasOwnProperty("y");
607
- var sideX = left;
608
- var sideY = top;
609
- var win = window;
610
- if (adaptive) {
611
- var offsetParent = getOffsetParent(popper);
612
- var heightProp = "clientHeight";
613
- var widthProp = "clientWidth";
614
- if (offsetParent === getWindow(popper)) {
615
- offsetParent = getDocumentElement(popper);
616
- if (getComputedStyle(offsetParent).position !== "static" && position === "absolute") {
617
- heightProp = "scrollHeight";
618
- widthProp = "scrollWidth";
619
- }
620
- }
621
- offsetParent = offsetParent;
622
- if (placement === top || (placement === left || placement === right) && variation === end) {
623
- sideY = bottom;
624
- var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp];
625
- y -= offsetY - popperRect.height;
626
- y *= gpuAcceleration ? 1 : -1;
627
- }
628
- if (placement === left || (placement === top || placement === bottom) && variation === end) {
629
- sideX = right;
630
- var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp];
631
- x -= offsetX - popperRect.width;
632
- x *= gpuAcceleration ? 1 : -1;
633
- }
634
- }
635
- var commonStyles = Object.assign({
636
- position
637
- }, adaptive && unsetSides);
638
- var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
639
- x,
640
- y
641
- }) : {
642
- x,
643
- y
644
- };
645
- x = _ref4.x;
646
- y = _ref4.y;
647
- if (gpuAcceleration) {
648
- var _Object$assign;
649
- return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
650
- }
651
- return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2));
652
- }
653
- function computeStyles(_ref5) {
654
- var state = _ref5.state, options = _ref5.options;
655
- var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
656
- var commonStyles = {
657
- placement: getBasePlacement(state.placement),
658
- variation: getVariation(state.placement),
659
- popper: state.elements.popper,
660
- popperRect: state.rects.popper,
661
- gpuAcceleration,
662
- isFixed: state.options.strategy === "fixed"
663
- };
664
- if (state.modifiersData.popperOffsets != null) {
665
- state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
666
- offsets: state.modifiersData.popperOffsets,
667
- position: state.options.strategy,
668
- adaptive,
669
- roundOffsets
670
- })));
671
- }
672
- if (state.modifiersData.arrow != null) {
673
- state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
674
- offsets: state.modifiersData.arrow,
675
- position: "absolute",
676
- adaptive: false,
677
- roundOffsets
678
- })));
679
- }
680
- state.attributes.popper = Object.assign({}, state.attributes.popper, {
681
- "data-popper-placement": state.placement
682
- });
683
- }
684
- var computeStyles$1 = {
685
- name: "computeStyles",
686
- enabled: true,
687
- phase: "beforeWrite",
688
- fn: computeStyles,
689
- data: {}
690
- };
691
- function applyStyles(_ref) {
692
- var state = _ref.state;
693
- Object.keys(state.elements).forEach(function(name) {
694
- var style = state.styles[name] || {};
695
- var attributes = state.attributes[name] || {};
696
- var element = state.elements[name];
697
- if (!isHTMLElement(element) || !getNodeName(element)) {
698
- return;
699
- }
700
- Object.assign(element.style, style);
701
- Object.keys(attributes).forEach(function(name2) {
702
- var value = attributes[name2];
703
- if (value === false) {
704
- element.removeAttribute(name2);
705
- } else {
706
- element.setAttribute(name2, value === true ? "" : value);
707
- }
708
- });
709
- });
710
- }
711
- function effect(_ref2) {
712
- var state = _ref2.state;
713
- var initialStyles = {
714
- popper: {
715
- position: state.options.strategy,
716
- left: "0",
717
- top: "0",
718
- margin: "0"
719
- },
720
- arrow: {
721
- position: "absolute"
722
- },
723
- reference: {}
724
- };
725
- Object.assign(state.elements.popper.style, initialStyles.popper);
726
- state.styles = initialStyles;
727
- if (state.elements.arrow) {
728
- Object.assign(state.elements.arrow.style, initialStyles.arrow);
729
- }
730
- return function() {
731
- Object.keys(state.elements).forEach(function(name) {
732
- var element = state.elements[name];
733
- var attributes = state.attributes[name] || {};
734
- var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);
735
- var style = styleProperties.reduce(function(style2, property) {
736
- style2[property] = "";
737
- return style2;
738
- }, {});
739
- if (!isHTMLElement(element) || !getNodeName(element)) {
740
- return;
741
- }
742
- Object.assign(element.style, style);
743
- Object.keys(attributes).forEach(function(attribute) {
744
- element.removeAttribute(attribute);
745
- });
746
- });
747
- };
748
- }
749
- var applyStyles$1 = {
750
- name: "applyStyles",
751
- enabled: true,
752
- phase: "write",
753
- fn: applyStyles,
754
- effect,
755
- requires: ["computeStyles"]
756
- };
757
- var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];
758
- var createPopper = /* @__PURE__ */ popperGenerator({
759
- defaultModifiers
760
- });
761
- function distanceAndSkiddingToXY(placement, rects, offset2) {
762
- var basePlacement = getBasePlacement(placement);
763
- var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
764
- var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, {
765
- placement
766
- })) : offset2, skidding = _ref[0], distance = _ref[1];
767
- skidding = skidding || 0;
768
- distance = (distance || 0) * invertDistance;
769
- return [left, right].indexOf(basePlacement) >= 0 ? {
770
- x: distance,
771
- y: skidding
772
- } : {
773
- x: skidding,
774
- y: distance
775
- };
776
- }
777
- function offset(_ref2) {
778
- var state = _ref2.state, options = _ref2.options, name = _ref2.name;
779
- var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;
780
- var data = placements.reduce(function(acc, placement) {
781
- acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);
782
- return acc;
783
- }, {});
784
- var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y;
785
- if (state.modifiersData.popperOffsets != null) {
786
- state.modifiersData.popperOffsets.x += x;
787
- state.modifiersData.popperOffsets.y += y;
788
- }
789
- state.modifiersData[name] = data;
790
- }
791
- var offsetModifier = {
792
- name: "offset",
793
- enabled: true,
794
- phase: "main",
795
- requires: ["popperOffsets"],
796
- fn: offset
797
- };
798
- const { componentName, create } = createComponent("popover");
10
+ const { create } = createComponent("popover");
799
11
  const _sfc_main = create({
800
- inheritAttrs: false,
801
- components: {
802
- [Popup.name]: Popup,
803
- [Button.name]: Button
804
- },
12
+ components: {},
805
13
  props: {
806
- ...popupProps,
807
- list: {
808
- type: Array,
809
- default: []
810
- },
811
- theme: {
812
- type: String,
813
- default: "light"
814
- },
815
- location: {
816
- type: String,
817
- default: "bottom"
818
- },
819
- offset: {
820
- type: Array,
821
- default: [0, 12]
822
- },
823
- customClass: {
824
- type: String,
825
- default: ""
826
- },
827
- showArrow: {
828
- type: Boolean,
829
- default: true
830
- }
14
+ visible: { type: Boolean, default: false },
15
+ list: { type: Array, default: [] },
16
+ theme: { type: String, default: "light" },
17
+ location: { type: String, default: "bottom" },
18
+ offset: { type: Array, default: [0, 12] },
19
+ customClass: { type: String, default: "" },
20
+ showArrow: { type: Boolean, default: true },
21
+ iconPrefix: { type: String, default: "nut-icon" },
22
+ duration: { type: [Number, String], default: 0.3 },
23
+ overlay: { type: Boolean, default: false },
24
+ overlayClass: { type: String, default: "" },
25
+ overlayStyle: { type: Object },
26
+ closeOnClickOverlay: { type: Boolean, default: true },
27
+ closeOnClickAction: { type: Boolean, default: true },
28
+ closeOnClickOutside: { type: Boolean, default: true }
831
29
  },
832
30
  emits: ["update", "update:visible", "close", "choose", "open"],
833
31
  setup(props, { emit }) {
834
- let popper;
835
- const reference = ref();
836
32
  const popoverRef = ref();
33
+ const popoverContentRef = ref();
837
34
  const showPopup = ref(props.visible);
838
- const { theme, location } = toRefs(props);
839
- const classes = computed(() => {
840
- const prefixCls = componentName;
841
- return `${prefixCls} ${prefixCls}--${theme.value}`;
842
- });
843
- const popoverContent = computed(() => {
844
- const prefixCls = "popover-content";
845
- return {
846
- [prefixCls]: true,
847
- [`${prefixCls}--${location.value}`]: location.value
848
- };
35
+ const state = reactive({
36
+ rootWidth: 0,
37
+ rootHeight: 0
849
38
  });
850
39
  const popoverArrow = computed(() => {
851
- const prefixCls = "popover-arrow";
852
- return {
853
- [prefixCls]: true,
854
- [`${prefixCls}--${location.value}`]: location.value
855
- };
40
+ const prefixCls = "nut-popover-arrow";
41
+ const loca = props.location;
42
+ const direction = loca.split("-")[0];
43
+ return `${prefixCls} ${prefixCls}-${direction} ${prefixCls}--${loca}`;
856
44
  });
857
- const createPopperInstance = () => {
858
- if (reference.value && popoverRef.value) {
859
- return createPopper(reference.value, popoverRef.value.popupRef, {
860
- placement: props.location,
861
- modifiers: [
862
- {
863
- name: "computeStyles",
864
- options: {
865
- adaptive: false,
866
- gpuAcceleration: false
867
- }
868
- },
869
- Object.assign({}, offsetModifier, {
870
- options: {
871
- offset: props.offset
872
- }
873
- })
874
- ]
875
- });
45
+ const getStyles = computed(() => {
46
+ let cross = +state.rootHeight;
47
+ let lengthways = +state.rootWidth;
48
+ let { offset, location } = props;
49
+ if (isArray(offset) && offset.length == 2) {
50
+ cross += +offset[1];
51
+ lengthways += +offset[1];
876
52
  }
877
- return null;
878
- };
879
- const clickOverlay = () => {
880
- };
881
- const uploadLocation = () => {
882
- nextTick(() => {
883
- if (!showPopup.value)
884
- return;
885
- if (!popper) {
886
- popper = createPopperInstance();
887
- } else {
888
- popper.setOptions({
889
- placement: props.location
890
- });
891
- }
892
- });
893
- };
894
- const clickAway = (event) => {
895
- const element = reference.value;
896
- if (element && !element.contains(event.target)) {
897
- closePopover();
53
+ const direction = location.split("-")[0];
54
+ const style = {};
55
+ const mapd = {
56
+ top: "bottom",
57
+ bottom: "top",
58
+ left: "right",
59
+ right: "left"
60
+ };
61
+ if (["top", "bottom"].includes(direction)) {
62
+ style[mapd[direction]] = `${cross}px`;
63
+ style.marginLeft = `${offset[0]}px`;
64
+ } else {
65
+ style[mapd[direction]] = `${lengthways}px`;
66
+ style.marginTop = `${offset[0]}px`;
898
67
  }
899
- };
900
- onMounted(() => {
901
- window.addEventListener("click", clickAway, true);
902
- });
903
- onUnmounted(() => {
904
- window.removeEventListener("click", clickAway, true);
68
+ return style;
905
69
  });
70
+ const getContentWidth = () => {
71
+ const { offsetHeight, offsetWidth } = popoverRef.value;
72
+ state.rootHeight = offsetHeight;
73
+ state.rootWidth = offsetWidth;
74
+ };
906
75
  watch(
907
76
  () => props.visible,
908
77
  (value) => {
909
78
  showPopup.value = value;
910
- uploadLocation();
911
- }
912
- );
913
- watch(
914
- () => props.location,
915
- (value) => {
916
- uploadLocation();
79
+ if (value) {
80
+ window.addEventListener("touchstart", clickAway, true);
81
+ getContentWidth();
82
+ } else {
83
+ window.removeEventListener("touchstart", clickAway, true);
84
+ }
917
85
  }
918
86
  );
919
87
  const update = (val) => {
@@ -925,81 +93,94 @@ const _sfc_main = create({
925
93
  emit("open");
926
94
  };
927
95
  const closePopover = () => {
928
- emit("close");
929
96
  emit("update:visible", false);
97
+ emit("close");
930
98
  };
931
99
  const chooseItem = (item, index2) => {
932
- if (item.disabled) {
933
- return;
100
+ !item.disabled && emit("choose", item, index2);
101
+ if (props.closeOnClickAction) {
102
+ closePopover();
103
+ }
104
+ };
105
+ const clickAway = (event) => {
106
+ const element = popoverRef.value;
107
+ const elContent = popoverContentRef.value;
108
+ if (element && !element.contains(event.target) && elContent && !elContent.contains(event.target) && props.closeOnClickOutside) {
109
+ closePopover();
934
110
  }
935
- emit("choose", item, index2);
936
111
  };
937
112
  return {
938
- classes,
939
113
  showPopup,
940
114
  openPopover,
941
- popoverContent,
942
115
  popoverArrow,
943
116
  closePopover,
944
117
  chooseItem,
945
- reference,
946
118
  popoverRef,
947
- clickOverlay
119
+ getStyles,
120
+ popoverContentRef
948
121
  };
949
122
  }
950
123
  });
951
- const _hoisted_1 = ["onClick"];
952
- const _hoisted_2 = { class: "popover-menu-name" };
124
+ const _hoisted_1 = {
125
+ ref: "popoverContentRef",
126
+ class: "nut-popover-content-group"
127
+ };
128
+ const _hoisted_2 = ["onClick"];
129
+ const _hoisted_3 = { class: "nut-popover-menu-name" };
953
130
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
954
131
  const _component_nut_icon = resolveComponent("nut-icon");
955
132
  const _component_nut_popup = resolveComponent("nut-popup");
956
- return openBlock(), createElementBlock(Fragment, null, [
133
+ return openBlock(), createElementBlock("view", {
134
+ class: normalizeClass(["nut-popover", `nut-popover--${_ctx.theme}`, `${_ctx.customClass}`])
135
+ }, [
957
136
  createElementVNode("view", {
958
- style: { "display": "inline-block" },
959
- class: normalizeClass(_ctx.customClass),
960
- onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.openPopover && _ctx.openPopover(...args), ["stop"])),
961
- ref: "reference"
137
+ class: "nut-popover-wrapper",
138
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.openPopover && _ctx.openPopover(...args)),
139
+ ref: "popoverRef"
962
140
  }, [
963
141
  renderSlot(_ctx.$slots, "reference")
964
- ], 2),
142
+ ], 512),
965
143
  createVNode(_component_nut_popup, {
966
- ref: "popoverRef",
967
- "pop-class": _ctx.classes,
144
+ popClass: `nut-popover-content nut-popover-content--${_ctx.location}`,
145
+ style: normalizeStyle(_ctx.getStyles),
968
146
  visible: _ctx.showPopup,
969
147
  "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => _ctx.showPopup = $event),
970
- overlay: false,
971
- onClickOverlay: _ctx.clickOverlay
148
+ position: "",
149
+ transition: "nut-popover",
150
+ overlay: _ctx.overlay,
151
+ duration: _ctx.duration,
152
+ overlayStyle: _ctx.overlayStyle,
153
+ overlayClass: _ctx.overlayClass,
154
+ closeOnClickOverlay: _ctx.closeOnClickOverlay
972
155
  }, {
973
156
  default: withCtx(() => [
974
- _ctx.showArrow ? (openBlock(), createElementBlock("view", {
975
- key: 0,
976
- class: normalizeClass(_ctx.popoverArrow)
977
- }, null, 2)) : createCommentVNode("", true),
978
- renderSlot(_ctx.$slots, "content"),
979
- createElementVNode("view", {
980
- class: normalizeClass(["popover-menu", _ctx.popoverContent]),
981
- ref: "popoverMenu"
982
- }, [
157
+ createElementVNode("view", _hoisted_1, [
158
+ _ctx.showArrow ? (openBlock(), createElementBlock("view", {
159
+ key: 0,
160
+ class: normalizeClass(_ctx.popoverArrow)
161
+ }, null, 2)) : createCommentVNode("", true),
162
+ renderSlot(_ctx.$slots, "content"),
983
163
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.list, (item, index2) => {
984
164
  return openBlock(), createElementBlock("view", {
985
165
  key: index2,
986
- class: normalizeClass([item.className, { "popover-menu-item": true, disabled: item.disabled }]),
166
+ class: normalizeClass([item.className, item.disabled && "nut-popover-menu-disabled", "nut-popover-menu-item"]),
987
167
  onClick: withModifiers(($event) => _ctx.chooseItem(item, index2), ["stop"])
988
168
  }, [
989
169
  item.icon ? renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
990
170
  createVNode(_component_nut_icon, mergeProps(_ctx.$attrs, {
991
- class: "item-img",
171
+ class: "nut-popover-item-img",
172
+ classPrefix: _ctx.iconPrefix,
992
173
  name: item.icon
993
- }), null, 16, ["name"])
174
+ }), null, 16, ["classPrefix", "name"])
994
175
  ]) : createCommentVNode("", true),
995
- createElementVNode("view", _hoisted_2, toDisplayString(item.name), 1)
996
- ], 10, _hoisted_1);
176
+ createElementVNode("view", _hoisted_3, toDisplayString(item.name), 1)
177
+ ], 10, _hoisted_2);
997
178
  }), 128))
998
- ], 2)
179
+ ], 512)
999
180
  ]),
1000
181
  _: 3
1001
- }, 8, ["pop-class", "visible", "onClickOverlay"])
1002
- ], 64);
182
+ }, 8, ["popClass", "style", "visible", "overlay", "duration", "overlayStyle", "overlayClass", "closeOnClickOverlay"])
183
+ ], 2);
1003
184
  }
1004
185
  var index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
1005
186
  export { index as default };