@opentiny/vue-drawer 2.15.0 → 2.17.0

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.
package/lib/index.js CHANGED
@@ -1,18 +1,14 @@
1
1
  function _extends() {
2
- _extends = Object.assign ? Object.assign.bind() : function(target) {
3
- for (var i = 1; i < arguments.length; i++) {
4
- var source = arguments[i];
5
- for (var key in source) {
6
- if (Object.prototype.hasOwnProperty.call(source, key)) {
7
- target[key] = source[key];
8
- }
9
- }
2
+ return _extends = Object.assign ? Object.assign.bind() : function(n) {
3
+ for (var e = 1; e < arguments.length; e++) {
4
+ var t = arguments[e];
5
+ for (var r in t)
6
+ ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
10
7
  }
11
- return target;
12
- };
13
- return _extends.apply(this, arguments);
8
+ return n;
9
+ }, _extends.apply(null, arguments);
14
10
  }
15
- import { defineComponent, $prefix, $setup, $props } from "@opentiny/vue-common";
11
+ import { defineComponent, $prefix, $setup, $props, createComponent, appProperties, hooks, setupComponent } from "@opentiny/vue-common";
16
12
  import PcTemplate from "./pc.js";
17
13
  import MobileFirstTemplate from "./mobile-first.js";
18
14
  var template = function template2(mode) {
@@ -30,7 +26,7 @@ var $constants = {
30
26
  SCROLL_LOCK_CLASS: function SCROLL_LOCK_CLASS(mode) {
31
27
  var scrollLockClasses = {
32
28
  "mobile-first": "overflow-hidden",
33
- "pc": "tiny-popup-parent--hidden tiny-dialog-box__scroll-lock"
29
+ "pc": "popup-parent--hidden dialog-box__scroll-lock"
34
30
  };
35
31
  return scrollLockClasses[mode] || "";
36
32
  },
@@ -90,7 +86,9 @@ var drawerProps = _extends({}, $props, {
90
86
  default: 2e3
91
87
  },
92
88
  beforeClose: Function,
93
- tipsProps: Object
89
+ tipsProps: Object,
90
+ // tiny 新增:用于方法调用组件
91
+ customSlots: Object
94
92
  });
95
93
  var Drawer = defineComponent({
96
94
  name: $prefix + "Drawer",
@@ -103,15 +101,80 @@ var Drawer = defineComponent({
103
101
  });
104
102
  }
105
103
  });
106
- var version = "2.15.0";
104
+ var defaultConfigs = {
105
+ customClass: null,
106
+ placement: "right",
107
+ width: null,
108
+ title: "",
109
+ showClose: true,
110
+ showHeader: true,
111
+ showFooter: false,
112
+ mask: true,
113
+ maskClosable: true,
114
+ dragable: false,
115
+ lockScroll: true,
116
+ flex: false,
117
+ zIndex: 2e3,
118
+ beforeClose: null,
119
+ tipsProps: null
120
+ };
121
+ var service = function service2(configs) {
122
+ var _appProperties$tiny_m;
123
+ if (configs === void 0) {
124
+ configs = {};
125
+ }
126
+ var events = {
127
+ onOpen: function onOpen(params) {
128
+ var _configs$events;
129
+ if (typeof ((_configs$events = configs.events) == null ? void 0 : _configs$events.open) === "function") {
130
+ configs.events.open(params);
131
+ }
132
+ },
133
+ onClose: function onClose(params) {
134
+ var _configs$events2;
135
+ if (typeof ((_configs$events2 = configs.events) == null ? void 0 : _configs$events2.close) === "function") {
136
+ configs.events.close(params);
137
+ }
138
+ },
139
+ onConfirm: function onConfirm(params) {
140
+ var _configs$events3;
141
+ if (typeof ((_configs$events3 = configs.events) == null ? void 0 : _configs$events3.confirm) === "function") {
142
+ configs.events.confirm(params);
143
+ }
144
+ }
145
+ };
146
+ var options = _extends({}, defaultConfigs, configs, events);
147
+ var instance = createComponent({
148
+ component: Drawer,
149
+ propsData: _extends({}, options, {
150
+ _constants: $constants,
151
+ tiny_mode: configs.tiny_mode || ((_appProperties$tiny_m = appProperties().tiny_mode) == null ? void 0 : _appProperties$tiny_m.value)
152
+ }),
153
+ el: document.createElement("div")
154
+ });
155
+ var parent = document.body;
156
+ parent.appendChild(instance.$el);
157
+ hooks.nextTick(function() {
158
+ instance.open();
159
+ });
160
+ return instance;
161
+ };
162
+ var version = "2.17.0";
107
163
  Drawer.model = {
108
- prop: "modelValue",
109
- event: "update:modelValue"
164
+ prop: "visible",
165
+ event: "update:visible"
110
166
  };
167
+ Drawer.service = service;
111
168
  Drawer.install = function(Vue) {
112
169
  Vue.component(Drawer.name, Drawer);
113
170
  };
114
171
  Drawer.version = version;
172
+ setupComponent.TINYDrawer = {
173
+ init: function init(root) {
174
+ var prefix = root.$apiPrefix || "$";
175
+ root[prefix + "drawer"] = service;
176
+ }
177
+ };
115
178
  export {
116
179
  Drawer as default
117
180
  };
@@ -63,6 +63,7 @@ var __vue2_script = defineComponent({
63
63
  IconClose: IconClose()
64
64
  },
65
65
  props: [].concat(props, ["visible", "title", "showHeader", "showFooter", "customClass", "placement", "width", "mask", "dragable", "maskClosable", "lockScroll", "flex", "beforeClose"]),
66
+ emits: ["update:visible", "open", "close", "confirm"],
66
67
  setup: function setup$1(props2, context) {
67
68
  return setup({
68
69
  props: props2,
@@ -89,8 +90,8 @@ var render = function render2() {
89
90
  }
90
91
  }, [_vm.mask ? _c("div", {
91
92
  ref: "mask",
92
- class: _vm.m("fixed z-50 left-0 right-0 top-0 bottom-0 w-full h-full transition-opacity ease-linear duration-200", {
93
- "bg-color-bg-7": _vm.state.toggle
93
+ class: _vm.m("fixed z-50 left-0 right-0 top-0 bottom-0 w-full h-full transition ease-linear duration-200", {
94
+ "bg-color-bg-7": _vm.state.visible
94
95
  }),
95
96
  on: {
96
97
  "click": function click($event) {
@@ -110,23 +111,24 @@ var render = function render2() {
110
111
  }, {
111
112
  "left-0 top-0 -translate-y-full border-b-0.5 rounded-b-lg": _vm.placement === "top"
112
113
  }, {
113
- "translate-y-0": ["top", "bottom"].includes(_vm.placement) && _vm.state.toggle
114
+ "translate-y-0": ["top", "bottom"].includes(_vm.placement) && _vm.state.visible
114
115
  }, {
115
116
  "left-0 top-0 -translate-x-full border-r-0.5 rounded-r-lg": _vm.placement === "left"
116
117
  }, {
117
118
  "right-0 top-0 translate-x-full border-l-0.5 rounded-l-lg": _vm.placement === "right"
118
119
  }, {
119
- "translate-x-0": ["left", "right"].includes(_vm.placement) && _vm.state.toggle
120
+ "translate-x-0": ["left", "right"].includes(_vm.placement) && _vm.state.visible
120
121
  }, _vm.customClass),
121
122
  style: {
122
- width: ["left", "right"].includes(_vm.placement) ? _vm.state.computedWidth : null
123
+ width: ["left", "right"].includes(_vm.placement) ? _vm.state.computedWidth : null,
124
+ height: ["top", "bottom"].includes(_vm.placement) && _vm.dragable && _vm.state.height ? _vm.state.height + "px" : null
123
125
  },
124
126
  attrs: {
125
127
  "data-tag": "tiny-drawer-main"
126
128
  }
127
129
  }, [_vm.dragable ? _c("div", {
128
130
  ref: "dragBar",
129
- class: ["h-full absolute top-0 w-2 cursor-e-resize", _vm.placement === "left" ? "-right-1" : "-left-1"],
131
+ class: ["absolute", ["left", "right"].includes(_vm.placement) && "cursor-e-resize h-full top-0 w-2", ["top", "bottom"].includes(_vm.placement) && "cursor-n-resize w-full h-2 left-0", _vm.placement === "left" && "-right-1", _vm.placement === "right" && "-left-1", _vm.placement === "top" && "-bottom-1", _vm.placement === "bottom" && "-top-1"],
130
132
  attrs: {
131
133
  "data-tag": "drawer-drag-bar"
132
134
  }
@@ -140,11 +142,12 @@ var render = function render2() {
140
142
  }
141
143
  }, [_vm._t("header", function() {
142
144
  return [_vm.title ? _c("div", {
143
- staticClass: "max-w-[80%] pr-4 text-left truncate"
145
+ staticClass: "max-w-[80%] pr-4 text-left truncate text-color-text-primary"
144
146
  }, [_vm._v(_vm._s(_vm.title))]) : _vm._e(), _c("div", {
145
147
  staticClass: "flex-1 flex items-center justify-end"
146
148
  }, [_vm._t("header-right", function() {
147
149
  return [_c("IconClose", {
150
+ staticClass: "fill-color-icon-primary",
148
151
  attrs: {
149
152
  "custom-class": "h-5 w-5 cursor-pointer"
150
153
  },
package/lib/pc.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { renderless, api } from '@opentiny/vue-renderless/drawer/vue';
2
- import { defineComponent, props, setup } from '@opentiny/vue-common';
2
+ import { defineComponent, h, props, setup } from '@opentiny/vue-common';
3
3
  import '@opentiny/vue-theme/drawer/index.css';
4
4
  import { iconClose, iconHelpCircle } from '@opentiny/vue-icon';
5
5
  import Button from '@opentiny/vue-button';
@@ -64,9 +64,22 @@ var __vue2_script = defineComponent({
64
64
  TinyButton: Button,
65
65
  TinyTooltip: Tooltip,
66
66
  IconClose: iconClose(),
67
- IconHelpCircle: iconHelpCircle()
67
+ IconHelpCircle: iconHelpCircle(),
68
+ // tiny新增: 适配Vue2下, 在模板中渲染VNode
69
+ SlotWrapper: {
70
+ props: ["node"],
71
+ render: function render() {
72
+ var node = this.node;
73
+ if (typeof node === "function") {
74
+ return node(h);
75
+ } else {
76
+ return node;
77
+ }
78
+ }
79
+ }
68
80
  },
69
- props: [].concat(props, ["visible", "title", "showHeader", "showFooter", "customClass", "placement", "width", "mask", "dragable", "maskClosable", "lockScroll", "flex", "showClose", "zIndex", "beforeClose", "tipsProps"]),
81
+ props: [].concat(props, ["visible", "title", "showHeader", "showFooter", "customClass", "placement", "width", "mask", "dragable", "maskClosable", "lockScroll", "flex", "showClose", "zIndex", "beforeClose", "tipsProps", "customSlots"]),
82
+ emits: ["update:visible", "open", "close", "confirm"],
70
83
  setup: function setup$1(props2, context) {
71
84
  return setup({
72
85
  props: props2,
@@ -76,7 +89,7 @@ var __vue2_script = defineComponent({
76
89
  });
77
90
  }
78
91
  });
79
- var render = function render2() {
92
+ var render2 = function render3() {
80
93
  var _vm = this;
81
94
  var _h = _vm.$createElement;
82
95
  var _c = _vm._self._c || _h;
@@ -89,11 +102,9 @@ var render = function render2() {
89
102
  attrs: {
90
103
  "name": "drawer-fade"
91
104
  }
92
- }, [_vm.mask && _vm.visible ? _c("div", {
105
+ }, [_vm.mask && _vm.state.visible ? _c("div", {
93
106
  ref: "mask",
94
- class: ["tiny-drawer__mask", {
95
- "show-bg-color": _vm.state.toggle
96
- }],
107
+ staticClass: "tiny-drawer__mask show-bg-color",
97
108
  style: {
98
109
  zIndex: _vm.zIndex
99
110
  },
@@ -110,8 +121,8 @@ var render = function render2() {
110
121
  directives: [{
111
122
  name: "show",
112
123
  rawName: "v-show",
113
- value: _vm.visible,
114
- expression: "visible"
124
+ value: _vm.state.visible,
125
+ expression: "state.visible"
115
126
  }],
116
127
  ref: "drawerBox",
117
128
  class: ["tiny-drawer__main", {
@@ -120,10 +131,11 @@ var render = function render2() {
120
131
  "is-top": _vm.placement === "top",
121
132
  "is-bottom": _vm.placement === "bottom",
122
133
  "drag-effects": !_vm.state.dragEvent.isDrag,
123
- "toggle": _vm.state.toggle
134
+ "toggle": _vm.state.visible
124
135
  }, "tiny-drawer-main", _vm.customClass],
125
136
  style: {
126
137
  width: ["left", "right"].includes(_vm.placement) ? _vm.state.computedWidth : null,
138
+ height: ["top", "bottom"].includes(_vm.placement) && _vm.dragable && _vm.state.height ? _vm.state.height + "px" : null,
127
139
  zIndex: _vm.zIndex
128
140
  },
129
141
  attrs: {
@@ -131,7 +143,7 @@ var render = function render2() {
131
143
  }
132
144
  }, [_vm.dragable ? _c("div", {
133
145
  ref: "dragBar",
134
- class: ["tiny-drawer__drag-bar"],
146
+ class: ["tiny-drawer__drag-bar", ["left", "right"].includes(_vm.placement) && "p-left-Right", ["top", "bottom"].includes(_vm.placement) && "p-top-Bottom", _vm.placement === "left" && "p-left", _vm.placement === "right" && "p-right", _vm.placement === "top" && "p-top", _vm.placement === "bottom" && "p-bottom"],
135
147
  attrs: {
136
148
  "data-tag": "drawer-drag-bar"
137
149
  }
@@ -144,7 +156,12 @@ var render = function render2() {
144
156
  "data-tag": "drawer-header"
145
157
  }
146
158
  }, [_vm._t("header", function() {
147
- return [_c("div", {
159
+ var _vm$customSlots;
160
+ return [(_vm$customSlots = _vm.customSlots) !== null && _vm$customSlots !== void 0 && _vm$customSlots.header ? _c("slot-wrapper", {
161
+ attrs: {
162
+ "node": _vm.customSlots.header
163
+ }
164
+ }) : _c("div", {
148
165
  staticClass: "tiny-drawer__header"
149
166
  }, [_c("div", {
150
167
  staticClass: "tiny-drawer__header-left"
@@ -154,7 +171,14 @@ var render = function render2() {
154
171
  staticClass: "tiny-drawer__help-icon"
155
172
  })], 1) : _vm._e()], 1), _c("div", {
156
173
  staticClass: "tiny-drawer__header-right"
157
- }, [_vm._t("header-right")], 2)])];
174
+ }, [_vm._t("header-right", function() {
175
+ var _vm$customSlots2;
176
+ return [(_vm$customSlots2 = _vm.customSlots) !== null && _vm$customSlots2 !== void 0 && _vm$customSlots2.headerRight ? _c("slot-wrapper", {
177
+ attrs: {
178
+ "node": _vm.customSlots.headerRight
179
+ }
180
+ }) : _vm._e()];
181
+ })], 2)])];
158
182
  }), _vm.showClose ? _c("button", {
159
183
  staticClass: "tiny-drawer__headerbtn",
160
184
  attrs: {
@@ -176,14 +200,25 @@ var render = function render2() {
176
200
  attrs: {
177
201
  "data-tag": "drawer-body"
178
202
  }
179
- }, [_vm._t("default")], 2), _vm.showFooter ? _c("div", {
203
+ }, [_vm._t("default", function() {
204
+ return [_c("slot-wrapper", {
205
+ attrs: {
206
+ "node": _vm.customSlots.default
207
+ }
208
+ })];
209
+ })], 2), _vm.showFooter ? _c("div", {
180
210
  ref: "footer",
181
211
  staticClass: "tiny-drawer__footer",
182
212
  attrs: {
183
213
  "data-tag": "drawer-footer"
184
214
  }
185
215
  }, [_vm._t("footer", function() {
186
- return [_c("tiny-button", {
216
+ var _vm$customSlots3;
217
+ return [(_vm$customSlots3 = _vm.customSlots) !== null && _vm$customSlots3 !== void 0 && _vm$customSlots3.footer ? _c("slot-wrapper", {
218
+ attrs: {
219
+ "node": _vm.customSlots.footer
220
+ }
221
+ }) : [_c("tiny-button", {
187
222
  class: ["tiny-drawer__confirm-btn", {
188
223
  reverse: _vm.state.btnOrderReversed
189
224
  }],
@@ -207,12 +242,12 @@ var render = function render2() {
207
242
  return _vm.handleClose("cancel");
208
243
  }
209
244
  }
210
- }, [_vm._v(_vm._s(_vm.t("ui.button.cancel")))])];
245
+ }, [_vm._v(_vm._s(_vm.t("ui.button.cancel")))])]];
211
246
  })], 2) : _vm._e()])])])], 1);
212
247
  };
213
248
  var staticRenderFns = [];
214
249
  var __cssModules = {};
215
- var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);
250
+ var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render2, staticRenderFns, false, __vue2_injectStyles, null, null, null);
216
251
  function __vue2_injectStyles(context) {
217
252
  for (var o in __cssModules) {
218
253
  this[o] = __cssModules[o];
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@opentiny/vue-drawer",
3
- "version": "2.15.0",
3
+ "version": "2.17.0",
4
4
  "description": "",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib/index.js",
7
7
  "sideEffects": false,
8
8
  "type": "module",
9
9
  "dependencies": {
10
- "@opentiny/vue-button": "~2.15.0",
11
- "@opentiny/vue-tooltip": "~2.15.0",
12
- "@opentiny/vue-common": "~2.15.0",
13
- "@opentiny/vue-renderless": "~3.15.0",
14
- "@opentiny/vue-icon": "~2.15.0",
15
- "@opentiny/vue-theme": "~3.15.0"
10
+ "@opentiny/vue-button": "~2.17.0",
11
+ "@opentiny/vue-tooltip": "~2.17.0",
12
+ "@opentiny/vue-common": "~2.17.0",
13
+ "@opentiny/vue-renderless": "~3.17.0",
14
+ "@opentiny/vue-icon": "~2.17.0",
15
+ "@opentiny/vue-theme": "~3.17.0"
16
16
  },
17
17
  "license": "MIT",
18
18
  "types": "index.d.ts"
package/src/index.d.ts CHANGED
@@ -1,3 +1,7 @@
1
+ export declare const $constants: {
2
+ SCROLL_LOCK_CLASS(mode: string): string;
3
+ DEFAULT_WIDTH: string;
4
+ };
1
5
  export declare const drawerProps: {
2
6
  _constants: {
3
7
  type: ObjectConstructor;
@@ -54,6 +58,7 @@ export declare const drawerProps: {
54
58
  };
55
59
  beforeClose: FunctionConstructor;
56
60
  tipsProps: ObjectConstructor;
61
+ customSlots: ObjectConstructor;
57
62
  tiny_mode: StringConstructor;
58
63
  tiny_mode_root: BooleanConstructor;
59
64
  tiny_template: (ObjectConstructor | FunctionConstructor)[];
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Copyright (c) 2022 - present TinyVue Authors.
3
+ * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license.
6
+ *
7
+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
8
+ * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
9
+ * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
10
+ *
11
+ */
12
+ export declare const defaultConfigs: {
13
+ customClass: null;
14
+ placement: string;
15
+ width: null;
16
+ title: string;
17
+ showClose: boolean;
18
+ showHeader: boolean;
19
+ showFooter: boolean;
20
+ mask: boolean;
21
+ maskClosable: boolean;
22
+ dragable: boolean;
23
+ lockScroll: boolean;
24
+ flex: boolean;
25
+ zIndex: number;
26
+ beforeClose: null;
27
+ tipsProps: null;
28
+ };
29
+ declare const _default: (configs?: {}) => import("vue/types/vue").CombinedVueInstance<Record<never, any> & import("vue").default, object, object, object, Record<never, any>>;
30
+ export default _default;