@web-utils/component 1.0.5 → 1.0.8

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 (2) hide show
  1. package/dist/index.js +738 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1 +1,738 @@
1
- var b=Object.defineProperty,I=Object.defineProperties;var E=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var m=(e,t,n)=>t in e?b(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,f=(e,t)=>{for(var n in t||(t={}))T.call(t,n)&&m(e,n,t[n]);if(d)for(var n of d(t))P.call(t,n)&&m(e,n,t[n]);return e},c=(e,t)=>I(e,E(t));import{isPlainObject as V,isString as N,isArray as W}from"@web-utils/core";var Ne="",j=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"empty-view",style:{fontSize:e.fontSize,height:e.height}},[e._t("default",function(){return[e._v(e._s(e.emptyTips))]})],2)},A=[],We="";function a(e,t,n,s,r,u,h,B){var i=typeof e=="function"?e.options:e;t&&(i.render=t,i.staticRenderFns=n,i._compiled=!0),s&&(i.functional=!0),u&&(i._scopeId="data-v-"+u);var l;if(h?(l=function(o){o=o||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!o&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(o=__VUE_SSR_CONTEXT__),r&&r.call(this,o),o&&o._registeredComponents&&o._registeredComponents.add(h)},i._ssrRegister=l):r&&(l=B?function(){r.call(this,(i.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(i.functional){i._injectStyles=l;var O=i.render;i.render=function(R,p){return l.call(p),O(R,p)}}else{var v=i.beforeCreate;i.beforeCreate=v?[].concat(v,l):[l]}return{exports:e,options:i}}const H={name:"EmptyView",props:{emptyTips:{type:String,default:"\u6682\u65E0\u6570\u636E"},fontSize:{type:String,default:"20px"},height:{type:String,default:"100%"}}},x={};var X=a(H,j,A,!1,U,null,null,null);function U(e){for(let t in x)this[t]=x[t]}var k=function(){return X.exports}(),L=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"flex-scroller-wrapper"},[n("div",{class:["flex-scroller",{"flex-column":e.flexColumn,"flex-row":e.flexRow,"content-scroll":e.contentScroll},e.contentClass]},[e._t("default")],2)])},J=[],je="";const Y={name:"FlexScroller",props:{flexColumn:Boolean,flexRow:Boolean,contentClass:String,contentScroll:{type:Boolean,default:!0}}},$={};var q=a(Y,L,J,!1,D,null,null,null);function D(e){for(let t in $)this[t]=$[t]}var G=function(){return q.exports}(),K=function(){var e=this,t=e.$createElement;return e._self._c,e._m(0)},Q=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"not-implement"},[n("div",[n("i",{staticClass:"fa fa-wrench"}),e._v(" \u5EFA\u8BBE\u4E2D... ")])])}],Ae="";const Z={name:"NotImplement"},g={};var ee=a(Z,K,Q,!1,te,"f91d5e80",null,null);function te(e){for(let t in g)this[t]=g[t]}var ne=function(){return ee.exports}();function re(e,t){for(let n=0;n<t.length;n++)if(e===t[n])return!0;return!1}const C=function(){return document.addEventListener?function(e,t,n){e&&t&&n&&e.addEventListener(t,n,!1)}:function(e,t,n){e&&t&&n&&e.attachEvent(`on${t}`,n)}}(),y=function(){return document.removeEventListener?function(e,t,n){e&&t&&e.removeEventListener(t,n,!1)}:function(e,t,n){e&&t&&e.detachEvent(`on${t}`,n)}}();var se=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:e.classes},[e.showIcon?n("div",{class:e.barConClasses},e._m(0),0):e._e()])},ie=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return e._l(8,function(s){return n("i",{key:`trigger-${s}`,class:`${e.prefix}-bar`})})}],He="";const oe={name:"Trigger",props:{mode:String,showIcon:Boolean,line:{type:Boolean,default:!0}},data(){return{prefix:"egd-split-trigger"}},computed:{isVertical(){return this.mode==="vertical"},classes(){return[this.prefix,this.line?this.isVertical?` ${this.prefix}-vertical-line`:`${this.prefix}-horizontal-line`:"",this.isVertical?`${this.prefix}-vertical`:`${this.prefix}-horizontal`]},barConClasses(){return[`${this.prefix}-bar-con`,this.isVertical?"vertical":"horizontal"]}}},z={};var le=a(oe,se,ie,!1,ae,null,null,null);function ae(e){for(let t in z)this[t]=z[t]}var ue=function(){return le.exports}(),fe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"outerWrapper",class:e.wrapperClasses},[e.isHorizontal?n("div",{class:`${e.prefix}-horizontal`},[n("div",{class:[`${e.prefix}-pane`,"left-pane"],style:{right:`${e.anotherOffset}%`}},[e._t("left")],2),n("div",{class:`${e.prefix}-trigger-con`,style:{left:`calc(${e.offset}% + ${e.triggerSize/2}px)`,width:`${e.triggerSize}px`},on:{mousedown:e.handleMousedown}},[e._t("trigger",function(){return[n("Trigger",{attrs:{mode:"vertical"}})]})],2),n("div",{class:[`${e.prefix}-pane`,"right-pane"],style:{left:`calc(${e.offset}% + ${e.triggerSize}px)`}},[e._t("right")],2)]):n("div",{class:`${e.prefix}-vertical`},[n("div",{class:[`${e.prefix}-pane`,"top-pane"],style:{bottom:`${e.anotherOffset}%`}},[e._t("top")],2),n("div",{class:`${e.prefix}-trigger-con`,style:{top:`calc(${e.offset}% + ${e.triggerSize/2}px)`,height:`${e.triggerSize}px`},on:{mousedown:e.handleMousedown}},[e._t("trigger",function(){return[n("Trigger",{attrs:{mode:"horizontal"}})]})],2),n("div",{class:[`${e.prefix}-pane`,"bottom-pane"],style:{top:`calc(${e.offset}% + ${e.triggerSize}px)`}},[e._t("bottom")],2)])])},ce=[],Xe="";const _e={name:"SplitPane",components:{Trigger:ue},props:{value:{type:[Number,String],default:.5},mode:{validator(e){return re(e,["horizontal","vertical"])},default:"horizontal"},triggerSize:{type:Number,default:6},min:{type:[Number,String],default:"40px"},max:{type:[Number,String],default:"40px"}},data(){return{prefix:"egd-split",offset:0,oldOffset:0,isMoving:!1}},computed:{wrapperClasses(){return[`${this.prefix}-wrapper`,this.isMoving?"no-select":""]},isHorizontal(){return this.mode==="horizontal"},anotherOffset(){return 100-this.offset},valueIsPx(){return typeof this.value=="string"},offsetSize(){return this.isHorizontal?"offsetWidth":"offsetHeight"},computedMin(){return this.getComputedThresholdValue("min")},computedMax(){return this.getComputedThresholdValue("max")}},watch:{value(){this.offset=(this.valueIsPx?this.px2percent(this.value,this.$refs.outerWrapper[this.offsetSize]):this.value)*1e4/100}},mounted(){this.$nextTick(()=>{this.offset=(this.valueIsPx?this.px2percent(this.value,this.$refs.outerWrapper[this.offsetSize]):this.value)*1e4/100})},methods:{px2percent(e,t){return parseFloat(e)/parseFloat(t)},getComputedThresholdValue(e){const t=this.$refs.outerWrapper[this.offsetSize];return this.valueIsPx?typeof this[e]=="string"?this[e]:t*this[e]:typeof this[e]=="string"?this.px2percent(this[e],t):this[e]},getMin(e,t){return this.valueIsPx?`${Math.min(parseFloat(e),parseFloat(t))}px`:Math.min(e,t)},getMax(e,t){return this.valueIsPx?`${Math.max(parseFloat(e),parseFloat(t))}px`:Math.max(e,t)},getAnotherOffset(e){let t=0;return this.valueIsPx?t=`${this.$refs.outerWrapper[this.offsetSize]-parseFloat(e)}px`:t=1-e,t},handleMove(e){const n=(this.isHorizontal?e.pageX:e.pageY)-this.initOffset,s=this.$refs.outerWrapper[this.offsetSize];let r=this.valueIsPx?`${parseFloat(this.oldOffset)+n}px`:this.px2percent(s*this.oldOffset+n,s);const u=this.getAnotherOffset(r);parseFloat(r)<=parseFloat(this.computedMin)&&(r=this.getMax(r,this.computedMin)),parseFloat(u)<=parseFloat(this.computedMax)&&(r=this.getAnotherOffset(this.getMax(u,this.computedMax))),e.atMin=this.value===this.computedMin,e.atMax=this.valueIsPx?this.getAnotherOffset(this.value)===this.computedMax:this.getAnotherOffset(this.value).toFixed(5)===this.computedMax.toFixed(5),this.$emit("input",r),this.$emit("on-moving",e)},handleUp(){this.isMoving=!1,y(window,"mousemove",this.handleMove),y(window,"mouseup",this.handleUp),this.$emit("on-move-end")},handleMousedown(e){this.initOffset=this.isHorizontal?e.pageX:e.pageY,this.oldOffset=this.value,this.isMoving=!0,C(window,"mousemove",this.handleMove),C(window,"mouseup",this.handleUp),this.$emit("on-move-start")}}},S={};var he=a(_e,fe,ce,!1,ve,null,null,null);function ve(e){for(let t in S)this[t]=S[t]}var pe=function(){return he.exports}(),de={name:"JSXComponent",props:{msg:{type:String,default:""}},render(){return arguments[0]("div",[this.msg])}};const _=(e,t)=>V(e)||N(e)?[t,e]:W(e)?[t,...e]:[t],me={name:"FlexRow",functional:!0,props:{verticalCenter:{type:Boolean,default:!1},horizonCenter:{type:Boolean,default:!1},center:{type:Boolean,default:!1},textCenter:{type:Boolean,default:!1}},render(e,{data:t,children:n,props:s}){const r=_(t.class,"flex-row");return s.center||s.horizonCenter&&s.verticalCenter?(r.push("horizon-center"),r.push("vertical-center")):(s.horizonCenter&&r.push("horizon-center"),s.verticalCenter&&r.push("vertical-center")),s.textCenter&&r.push("text-center"),e("div",c(f({},t),{class:r}),n)}};let xe,$e;const w={};var ge=a(me,xe,$e,!1,Ce,null,null,null);function Ce(e){for(let t in w)this[t]=w[t]}var ye=function(){return ge.exports}();const ze={name:"FlexColumn",functional:!0,props:{verticalCenter:{type:Boolean,default:!1},horizonCenter:{type:Boolean,default:!1},center:{type:Boolean,default:!1},textCenter:{type:Boolean,default:!1}},render(e,{data:t,children:n,props:s}){const r=_(t.class,"flex-column");return s.center||s.horizonCenter&&s.verticalCenter?(r.push("horizon-center"),r.push("vertical-center")):(s.horizonCenter&&r.push("horizon-center"),s.verticalCenter&&r.push("vertical-center")),s.textCenter&&r.push("text-center"),e("div",c(f({},t),{class:r}),n)}};let Se,we;const M={};var Me=a(ze,Se,we,!1,Fe,null,null,null);function Fe(e){for(let t in M)this[t]=M[t]}var Be=function(){return Me.exports}();const Oe={name:"FlexItem",functional:!0,props:{flexRow:{type:Boolean,default:!1},flexColumn:{type:Boolean,default:!1},verticalCenter:{type:Boolean,default:!1},horizonCenter:{type:Boolean,default:!1},center:{type:Boolean,default:!1},textCenter:{type:Boolean,default:!1},relative:{type:Boolean,default:!1},absolute:{type:Boolean,default:!1}},render(e,{children:t,data:n,props:s}){const r=_(n.class,s.relative?"flex-item-relative":"flex-item");return s.absolute&&!s.relative&&r.push("flex-item-relative"),s.center||s.horizonCenter&&s.verticalCenter?(r.push("horizon-center"),r.push("vertical-center")):(s.horizonCenter&&r.push("horizon-center"),s.verticalCenter&&r.push("vertical-center")),s.textCenter&&r.push("text-center"),s.flexColumn&&r.push("flex-column"),s.flexRow&&r.push("flex-row"),s.absolute?e("div",c(f({},n),{class:r}),[e("div",{class:"absolute",style:"overflow:auto"},t)]):e("div",c(f({},n),{class:r}),t)}};let Re,be;const F={};var Ie=a(Oe,Re,be,!1,Ee,null,null,null);function Ee(e){for(let t in F)this[t]=F[t]}var Te=function(){return Ie.exports}();export{k as EmptyView,Be as FlexColumn,Te as FlexItem,ye as FlexRow,G as FlexScroller,de as JSXComponent,ne as NotImplement,pe as SplitPane};
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { isPlainObject, isString, isArray } from "@web-utils/core";
21
+ var util = "";
22
+ const version = "1.0.8";
23
+ var render$4 = function() {
24
+ var _vm = this;
25
+ var _h = _vm.$createElement;
26
+ var _c = _vm._self._c || _h;
27
+ return _c("div", {
28
+ staticClass: "empty-view",
29
+ style: {
30
+ fontSize: _vm.fontSize,
31
+ height: _vm.height
32
+ }
33
+ }, [_vm._t("default", function() {
34
+ return [_vm._v(_vm._s(_vm.emptyTips))];
35
+ })], 2);
36
+ };
37
+ var staticRenderFns$4 = [];
38
+ var EmptyView_vue_vue_type_style_index_0_lang = "";
39
+ function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
40
+ var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
41
+ if (render2) {
42
+ options.render = render2;
43
+ options.staticRenderFns = staticRenderFns2;
44
+ options._compiled = true;
45
+ }
46
+ if (functionalTemplate) {
47
+ options.functional = true;
48
+ }
49
+ if (scopeId) {
50
+ options._scopeId = "data-v-" + scopeId;
51
+ }
52
+ var hook;
53
+ if (moduleIdentifier) {
54
+ hook = function(context) {
55
+ context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
56
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") {
57
+ context = __VUE_SSR_CONTEXT__;
58
+ }
59
+ if (injectStyles) {
60
+ injectStyles.call(this, context);
61
+ }
62
+ if (context && context._registeredComponents) {
63
+ context._registeredComponents.add(moduleIdentifier);
64
+ }
65
+ };
66
+ options._ssrRegister = hook;
67
+ } else if (injectStyles) {
68
+ hook = shadowMode ? function() {
69
+ injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);
70
+ } : injectStyles;
71
+ }
72
+ if (hook) {
73
+ if (options.functional) {
74
+ options._injectStyles = hook;
75
+ var originalRender = options.render;
76
+ options.render = function renderWithStyleInjection(h, context) {
77
+ hook.call(context);
78
+ return originalRender(h, context);
79
+ };
80
+ } else {
81
+ var existing = options.beforeCreate;
82
+ options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
83
+ }
84
+ }
85
+ return {
86
+ exports: scriptExports,
87
+ options
88
+ };
89
+ }
90
+ const __vue2_script$7 = {
91
+ name: "EmptyView",
92
+ props: {
93
+ emptyTips: {
94
+ type: String,
95
+ default: "\u6682\u65E0\u6570\u636E"
96
+ },
97
+ fontSize: {
98
+ type: String,
99
+ default: "20px"
100
+ },
101
+ height: {
102
+ type: String,
103
+ default: "100%"
104
+ }
105
+ }
106
+ };
107
+ const __cssModules$7 = {};
108
+ var __component__$7 = /* @__PURE__ */ normalizeComponent(__vue2_script$7, render$4, staticRenderFns$4, false, __vue2_injectStyles$7, null, null, null);
109
+ function __vue2_injectStyles$7(context) {
110
+ for (let o in __cssModules$7) {
111
+ this[o] = __cssModules$7[o];
112
+ }
113
+ }
114
+ var EmptyView = /* @__PURE__ */ function() {
115
+ return __component__$7.exports;
116
+ }();
117
+ EmptyView.install = function(Vue) {
118
+ Vue.component(EmptyView.name, EmptyView);
119
+ };
120
+ var render$3 = function() {
121
+ var _vm = this;
122
+ var _h = _vm.$createElement;
123
+ var _c = _vm._self._c || _h;
124
+ return _c("div", {
125
+ staticClass: "flex-scroller-wrapper"
126
+ }, [_c("div", {
127
+ class: ["flex-scroller", {
128
+ "flex-column": _vm.flexColumn,
129
+ "flex-row": _vm.flexRow,
130
+ "content-scroll": _vm.contentScroll
131
+ }, _vm.contentClass]
132
+ }, [_vm._t("default")], 2)]);
133
+ };
134
+ var staticRenderFns$3 = [];
135
+ var FlexScroller_vue_vue_type_style_index_0_lang = "";
136
+ const __vue2_script$6 = {
137
+ name: "FlexScroller",
138
+ props: {
139
+ flexColumn: Boolean,
140
+ flexRow: Boolean,
141
+ contentClass: String,
142
+ contentScroll: {
143
+ type: Boolean,
144
+ default: true
145
+ }
146
+ }
147
+ };
148
+ const __cssModules$6 = {};
149
+ var __component__$6 = /* @__PURE__ */ normalizeComponent(__vue2_script$6, render$3, staticRenderFns$3, false, __vue2_injectStyles$6, null, null, null);
150
+ function __vue2_injectStyles$6(context) {
151
+ for (let o in __cssModules$6) {
152
+ this[o] = __cssModules$6[o];
153
+ }
154
+ }
155
+ var FlexScroller = /* @__PURE__ */ function() {
156
+ return __component__$6.exports;
157
+ }();
158
+ FlexScroller.install = function(Vue) {
159
+ Vue.component(FlexScroller.name, FlexScroller);
160
+ };
161
+ var render$2 = function() {
162
+ var _vm = this;
163
+ var _h = _vm.$createElement;
164
+ _vm._self._c || _h;
165
+ return _vm._m(0);
166
+ };
167
+ var staticRenderFns$2 = [function() {
168
+ var _vm = this;
169
+ var _h = _vm.$createElement;
170
+ var _c = _vm._self._c || _h;
171
+ return _c("div", {
172
+ staticClass: "not-implement"
173
+ }, [_c("div", [_c("i", {
174
+ staticClass: "fa fa-wrench"
175
+ }), _vm._v(" \u5EFA\u8BBE\u4E2D... ")])]);
176
+ }];
177
+ var NotImplement_vue_vue_type_style_index_0_scoped_true_lang = "";
178
+ const __vue2_script$5 = {
179
+ name: "NotImplement"
180
+ };
181
+ const __cssModules$5 = {};
182
+ var __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, render$2, staticRenderFns$2, false, __vue2_injectStyles$5, "f91d5e80", null, null);
183
+ function __vue2_injectStyles$5(context) {
184
+ for (let o in __cssModules$5) {
185
+ this[o] = __cssModules$5[o];
186
+ }
187
+ }
188
+ var NotImplement = /* @__PURE__ */ function() {
189
+ return __component__$5.exports;
190
+ }();
191
+ NotImplement.install = function(Vue) {
192
+ Vue.component(NotImplement.name, NotImplement);
193
+ };
194
+ function oneOf(value, validList) {
195
+ for (let i = 0; i < validList.length; i++) {
196
+ if (value === validList[i]) {
197
+ return true;
198
+ }
199
+ }
200
+ return false;
201
+ }
202
+ const on = function() {
203
+ if (document.addEventListener) {
204
+ return function(element, event, handler) {
205
+ if (element && event && handler) {
206
+ element.addEventListener(event, handler, false);
207
+ }
208
+ };
209
+ } else {
210
+ return function(element, event, handler) {
211
+ if (element && event && handler) {
212
+ element.attachEvent(`on${event}`, handler);
213
+ }
214
+ };
215
+ }
216
+ }();
217
+ const off = function() {
218
+ if (document.removeEventListener) {
219
+ return function(element, event, handler) {
220
+ if (element && event) {
221
+ element.removeEventListener(event, handler, false);
222
+ }
223
+ };
224
+ } else {
225
+ return function(element, event, handler) {
226
+ if (element && event) {
227
+ element.detachEvent(`on${event}`, handler);
228
+ }
229
+ };
230
+ }
231
+ }();
232
+ var render$1 = function() {
233
+ var _vm = this;
234
+ var _h = _vm.$createElement;
235
+ var _c = _vm._self._c || _h;
236
+ return _c("div", {
237
+ class: _vm.classes
238
+ }, [_vm.showIcon ? _c("div", {
239
+ class: _vm.barConClasses
240
+ }, _vm._m(0), 0) : _vm._e()]);
241
+ };
242
+ var staticRenderFns$1 = [function() {
243
+ var _vm = this;
244
+ var _h = _vm.$createElement;
245
+ var _c = _vm._self._c || _h;
246
+ return _vm._l(8, function(i) {
247
+ return _c("i", {
248
+ key: `trigger-${i}`,
249
+ class: `${_vm.prefix}-bar`
250
+ });
251
+ });
252
+ }];
253
+ var Trigger_vue_vue_type_style_index_0_lang = "";
254
+ const __vue2_script$4 = {
255
+ name: "Trigger",
256
+ props: {
257
+ mode: String,
258
+ showIcon: Boolean,
259
+ line: {
260
+ type: Boolean,
261
+ default: true
262
+ }
263
+ },
264
+ data() {
265
+ return {
266
+ prefix: "egd-split-trigger"
267
+ };
268
+ },
269
+ computed: {
270
+ isVertical() {
271
+ return this.mode === "vertical";
272
+ },
273
+ classes() {
274
+ return [
275
+ this.prefix,
276
+ this.line ? this.isVertical ? ` ${this.prefix}-vertical-line` : `${this.prefix}-horizontal-line` : "",
277
+ this.isVertical ? `${this.prefix}-vertical` : `${this.prefix}-horizontal`
278
+ ];
279
+ },
280
+ barConClasses() {
281
+ return [
282
+ `${this.prefix}-bar-con`,
283
+ this.isVertical ? "vertical" : "horizontal"
284
+ ];
285
+ }
286
+ }
287
+ };
288
+ const __cssModules$4 = {};
289
+ var __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$1, staticRenderFns$1, false, __vue2_injectStyles$4, null, null, null);
290
+ function __vue2_injectStyles$4(context) {
291
+ for (let o in __cssModules$4) {
292
+ this[o] = __cssModules$4[o];
293
+ }
294
+ }
295
+ var Trigger = /* @__PURE__ */ function() {
296
+ return __component__$4.exports;
297
+ }();
298
+ var render = function() {
299
+ var _vm = this;
300
+ var _h = _vm.$createElement;
301
+ var _c = _vm._self._c || _h;
302
+ return _c("div", {
303
+ ref: "outerWrapper",
304
+ class: _vm.wrapperClasses
305
+ }, [_vm.isHorizontal ? _c("div", {
306
+ class: `${_vm.prefix}-horizontal`
307
+ }, [_c("div", {
308
+ class: [`${_vm.prefix}-pane`, "left-pane"],
309
+ style: {
310
+ right: `${_vm.anotherOffset}%`
311
+ }
312
+ }, [_vm._t("left")], 2), _c("div", {
313
+ class: `${_vm.prefix}-trigger-con`,
314
+ style: {
315
+ left: `calc(${_vm.offset}% + ${_vm.triggerSize / 2}px)`,
316
+ width: `${_vm.triggerSize}px`
317
+ },
318
+ on: {
319
+ "mousedown": _vm.handleMousedown
320
+ }
321
+ }, [_vm._t("trigger", function() {
322
+ return [_c("Trigger", {
323
+ attrs: {
324
+ "mode": "vertical"
325
+ }
326
+ })];
327
+ })], 2), _c("div", {
328
+ class: [`${_vm.prefix}-pane`, "right-pane"],
329
+ style: {
330
+ left: `calc(${_vm.offset}% + ${_vm.triggerSize}px)`
331
+ }
332
+ }, [_vm._t("right")], 2)]) : _c("div", {
333
+ class: `${_vm.prefix}-vertical`
334
+ }, [_c("div", {
335
+ class: [`${_vm.prefix}-pane`, "top-pane"],
336
+ style: {
337
+ bottom: `${_vm.anotherOffset}%`
338
+ }
339
+ }, [_vm._t("top")], 2), _c("div", {
340
+ class: `${_vm.prefix}-trigger-con`,
341
+ style: {
342
+ top: `calc(${_vm.offset}% + ${_vm.triggerSize / 2}px)`,
343
+ height: `${_vm.triggerSize}px`
344
+ },
345
+ on: {
346
+ "mousedown": _vm.handleMousedown
347
+ }
348
+ }, [_vm._t("trigger", function() {
349
+ return [_c("Trigger", {
350
+ attrs: {
351
+ "mode": "horizontal"
352
+ }
353
+ })];
354
+ })], 2), _c("div", {
355
+ class: [`${_vm.prefix}-pane`, "bottom-pane"],
356
+ style: {
357
+ top: `calc(${_vm.offset}% + ${_vm.triggerSize}px)`
358
+ }
359
+ }, [_vm._t("bottom")], 2)])]);
360
+ };
361
+ var staticRenderFns = [];
362
+ var SplitPane_vue_vue_type_style_index_0_lang = "";
363
+ const __vue2_script$3 = {
364
+ name: "SplitPane",
365
+ components: {
366
+ Trigger
367
+ },
368
+ props: {
369
+ value: {
370
+ type: [Number, String],
371
+ default: 0.5
372
+ },
373
+ mode: {
374
+ validator(value) {
375
+ return oneOf(value, ["horizontal", "vertical"]);
376
+ },
377
+ default: "horizontal"
378
+ },
379
+ triggerSize: {
380
+ type: Number,
381
+ default: 6
382
+ },
383
+ min: {
384
+ type: [Number, String],
385
+ default: "40px"
386
+ },
387
+ max: {
388
+ type: [Number, String],
389
+ default: "40px"
390
+ }
391
+ },
392
+ data() {
393
+ return {
394
+ prefix: "egd-split",
395
+ offset: 0,
396
+ oldOffset: 0,
397
+ isMoving: false
398
+ };
399
+ },
400
+ computed: {
401
+ wrapperClasses() {
402
+ return [
403
+ `${this.prefix}-wrapper`,
404
+ this.isMoving ? "no-select" : ""
405
+ ];
406
+ },
407
+ isHorizontal() {
408
+ return this.mode === "horizontal";
409
+ },
410
+ anotherOffset() {
411
+ return 100 - this.offset;
412
+ },
413
+ valueIsPx() {
414
+ return typeof this.value === "string";
415
+ },
416
+ offsetSize() {
417
+ return this.isHorizontal ? "offsetWidth" : "offsetHeight";
418
+ },
419
+ computedMin() {
420
+ return this.getComputedThresholdValue("min");
421
+ },
422
+ computedMax() {
423
+ return this.getComputedThresholdValue("max");
424
+ }
425
+ },
426
+ watch: {
427
+ value() {
428
+ this.offset = (this.valueIsPx ? this.px2percent(this.value, this.$refs.outerWrapper[this.offsetSize]) : this.value) * 1e4 / 100;
429
+ }
430
+ },
431
+ mounted() {
432
+ this.$nextTick(() => {
433
+ this.offset = (this.valueIsPx ? this.px2percent(this.value, this.$refs.outerWrapper[this.offsetSize]) : this.value) * 1e4 / 100;
434
+ });
435
+ },
436
+ methods: {
437
+ px2percent(numerator, denominator) {
438
+ return parseFloat(numerator) / parseFloat(denominator);
439
+ },
440
+ getComputedThresholdValue(type) {
441
+ const size = this.$refs.outerWrapper[this.offsetSize];
442
+ if (this.valueIsPx) {
443
+ return typeof this[type] === "string" ? this[type] : size * this[type];
444
+ } else {
445
+ return typeof this[type] === "string" ? this.px2percent(this[type], size) : this[type];
446
+ }
447
+ },
448
+ getMin(value1, value2) {
449
+ if (this.valueIsPx) {
450
+ return `${Math.min(parseFloat(value1), parseFloat(value2))}px`;
451
+ } else {
452
+ return Math.min(value1, value2);
453
+ }
454
+ },
455
+ getMax(value1, value2) {
456
+ if (this.valueIsPx) {
457
+ return `${Math.max(parseFloat(value1), parseFloat(value2))}px`;
458
+ } else {
459
+ return Math.max(value1, value2);
460
+ }
461
+ },
462
+ getAnotherOffset(value) {
463
+ let res = 0;
464
+ if (this.valueIsPx) {
465
+ res = `${this.$refs.outerWrapper[this.offsetSize] - parseFloat(value)}px`;
466
+ } else {
467
+ res = 1 - value;
468
+ }
469
+ return res;
470
+ },
471
+ handleMove(e) {
472
+ const pageOffset = this.isHorizontal ? e.pageX : e.pageY;
473
+ const offset = pageOffset - this.initOffset;
474
+ const outerWidth = this.$refs.outerWrapper[this.offsetSize];
475
+ let value = this.valueIsPx ? `${parseFloat(this.oldOffset) + offset}px` : this.px2percent(outerWidth * this.oldOffset + offset, outerWidth);
476
+ const anotherValue = this.getAnotherOffset(value);
477
+ if (parseFloat(value) <= parseFloat(this.computedMin))
478
+ value = this.getMax(value, this.computedMin);
479
+ if (parseFloat(anotherValue) <= parseFloat(this.computedMax))
480
+ value = this.getAnotherOffset(this.getMax(anotherValue, this.computedMax));
481
+ e.atMin = this.value === this.computedMin;
482
+ e.atMax = this.valueIsPx ? this.getAnotherOffset(this.value) === this.computedMax : this.getAnotherOffset(this.value).toFixed(5) === this.computedMax.toFixed(5);
483
+ this.$emit("input", value);
484
+ this.$emit("on-moving", e);
485
+ },
486
+ handleUp() {
487
+ this.isMoving = false;
488
+ off(window, "mousemove", this.handleMove);
489
+ off(window, "mouseup", this.handleUp);
490
+ this.$emit("on-move-end");
491
+ },
492
+ handleMousedown(e) {
493
+ this.initOffset = this.isHorizontal ? e.pageX : e.pageY;
494
+ this.oldOffset = this.value;
495
+ this.isMoving = true;
496
+ on(window, "mousemove", this.handleMove);
497
+ on(window, "mouseup", this.handleUp);
498
+ this.$emit("on-move-start");
499
+ }
500
+ }
501
+ };
502
+ const __cssModules$3 = {};
503
+ var __component__$3 = /* @__PURE__ */ normalizeComponent(__vue2_script$3, render, staticRenderFns, false, __vue2_injectStyles$3, null, null, null);
504
+ function __vue2_injectStyles$3(context) {
505
+ for (let o in __cssModules$3) {
506
+ this[o] = __cssModules$3[o];
507
+ }
508
+ }
509
+ var Split = /* @__PURE__ */ function() {
510
+ return __component__$3.exports;
511
+ }();
512
+ Split.install = function(Vue) {
513
+ Vue.component(Split.name, Split);
514
+ };
515
+ var JSXComponent = {
516
+ name: "JSXComponent",
517
+ props: {
518
+ msg: {
519
+ type: String,
520
+ default: ""
521
+ }
522
+ },
523
+ render() {
524
+ const h = arguments[0];
525
+ return h("div", [this.msg]);
526
+ }
527
+ };
528
+ const getClass = (customClass, fixedClass) => {
529
+ if (isPlainObject(customClass) || isString(customClass)) {
530
+ return [fixedClass, customClass];
531
+ } else if (isArray(customClass)) {
532
+ return [fixedClass, ...customClass];
533
+ } else {
534
+ return [fixedClass];
535
+ }
536
+ };
537
+ const __vue2_script$2 = {
538
+ name: "FlexColumn",
539
+ functional: true,
540
+ props: {
541
+ verticalCenter: {
542
+ type: Boolean,
543
+ default: false
544
+ },
545
+ horizonCenter: {
546
+ type: Boolean,
547
+ default: false
548
+ },
549
+ center: {
550
+ type: Boolean,
551
+ default: false
552
+ },
553
+ textCenter: {
554
+ type: Boolean,
555
+ default: false
556
+ }
557
+ },
558
+ render(createElement, { data, children, props }) {
559
+ const viewClass = getClass(data.class, "flex-column");
560
+ if (props.center || props.horizonCenter && props.verticalCenter) {
561
+ viewClass.push("horizon-center");
562
+ viewClass.push("vertical-center");
563
+ } else {
564
+ if (props.horizonCenter) {
565
+ viewClass.push("horizon-center");
566
+ }
567
+ if (props.verticalCenter) {
568
+ viewClass.push("vertical-center");
569
+ }
570
+ }
571
+ if (props.textCenter) {
572
+ viewClass.push("text-center");
573
+ }
574
+ return createElement("div", __spreadProps(__spreadValues({}, data), { class: viewClass }), children);
575
+ }
576
+ };
577
+ let __vue2_render$2, __vue2_staticRenderFns$2;
578
+ const __cssModules$2 = {};
579
+ var __component__$2 = /* @__PURE__ */ normalizeComponent(__vue2_script$2, __vue2_render$2, __vue2_staticRenderFns$2, false, __vue2_injectStyles$2, null, null, null);
580
+ function __vue2_injectStyles$2(context) {
581
+ for (let o in __cssModules$2) {
582
+ this[o] = __cssModules$2[o];
583
+ }
584
+ }
585
+ var FlexColumn = /* @__PURE__ */ function() {
586
+ return __component__$2.exports;
587
+ }();
588
+ const __vue2_script$1 = {
589
+ name: "FlexItem",
590
+ functional: true,
591
+ props: {
592
+ flexRow: {
593
+ type: Boolean,
594
+ default: false
595
+ },
596
+ flexColumn: {
597
+ type: Boolean,
598
+ default: false
599
+ },
600
+ verticalCenter: {
601
+ type: Boolean,
602
+ default: false
603
+ },
604
+ horizonCenter: {
605
+ type: Boolean,
606
+ default: false
607
+ },
608
+ center: {
609
+ type: Boolean,
610
+ default: false
611
+ },
612
+ textCenter: {
613
+ type: Boolean,
614
+ default: false
615
+ },
616
+ relative: {
617
+ type: Boolean,
618
+ default: false
619
+ },
620
+ absolute: {
621
+ type: Boolean,
622
+ default: false
623
+ }
624
+ },
625
+ render(createElement, { children, data, props }) {
626
+ const viewClass = getClass(data.class, props.relative ? "flex-item-relative" : "flex-item");
627
+ if (props.absolute && !props.relative) {
628
+ viewClass.push("flex-item-relative");
629
+ }
630
+ if (props.center || props.horizonCenter && props.verticalCenter) {
631
+ viewClass.push("horizon-center");
632
+ viewClass.push("vertical-center");
633
+ } else {
634
+ if (props.horizonCenter) {
635
+ viewClass.push("horizon-center");
636
+ }
637
+ if (props.verticalCenter) {
638
+ viewClass.push("vertical-center");
639
+ }
640
+ }
641
+ if (props.textCenter) {
642
+ viewClass.push("text-center");
643
+ }
644
+ if (props.flexColumn) {
645
+ viewClass.push("flex-column");
646
+ }
647
+ if (props.flexRow) {
648
+ viewClass.push("flex-row");
649
+ }
650
+ if (props.absolute) {
651
+ return createElement("div", __spreadProps(__spreadValues({}, data), { class: viewClass }), [createElement("div", { class: "absolute", style: "overflow:auto" }, children)]);
652
+ } else {
653
+ return createElement("div", __spreadProps(__spreadValues({}, data), { class: viewClass }), children);
654
+ }
655
+ }
656
+ };
657
+ let __vue2_render$1, __vue2_staticRenderFns$1;
658
+ const __cssModules$1 = {};
659
+ var __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render$1, __vue2_staticRenderFns$1, false, __vue2_injectStyles$1, null, null, null);
660
+ function __vue2_injectStyles$1(context) {
661
+ for (let o in __cssModules$1) {
662
+ this[o] = __cssModules$1[o];
663
+ }
664
+ }
665
+ var FlexItem = /* @__PURE__ */ function() {
666
+ return __component__$1.exports;
667
+ }();
668
+ const __vue2_script = {
669
+ name: "FlexRow",
670
+ functional: true,
671
+ props: {
672
+ verticalCenter: {
673
+ type: Boolean,
674
+ default: false
675
+ },
676
+ horizonCenter: {
677
+ type: Boolean,
678
+ default: false
679
+ },
680
+ center: {
681
+ type: Boolean,
682
+ default: false
683
+ },
684
+ textCenter: {
685
+ type: Boolean,
686
+ default: false
687
+ }
688
+ },
689
+ render(createElement, { data, children, props }) {
690
+ const viewClass = getClass(data.class, "flex-row");
691
+ if (props.center || props.horizonCenter && props.verticalCenter) {
692
+ viewClass.push("horizon-center");
693
+ viewClass.push("vertical-center");
694
+ } else {
695
+ if (props.horizonCenter) {
696
+ viewClass.push("horizon-center");
697
+ }
698
+ if (props.verticalCenter) {
699
+ viewClass.push("vertical-center");
700
+ }
701
+ }
702
+ if (props.textCenter) {
703
+ viewClass.push("text-center");
704
+ }
705
+ return createElement("div", __spreadProps(__spreadValues({}, data), { class: viewClass }), children);
706
+ }
707
+ };
708
+ let __vue2_render, __vue2_staticRenderFns;
709
+ const __cssModules = {};
710
+ var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles, null, null, null);
711
+ function __vue2_injectStyles(context) {
712
+ for (let o in __cssModules) {
713
+ this[o] = __cssModules[o];
714
+ }
715
+ }
716
+ var FlexRow = /* @__PURE__ */ function() {
717
+ return __component__.exports;
718
+ }();
719
+ FlexColumn.install = function(Vue) {
720
+ Vue.component(FlexColumn.name, FlexColumn);
721
+ };
722
+ FlexItem.install = function(Vue) {
723
+ Vue.component(FlexItem.name, FlexItem);
724
+ };
725
+ FlexRow.install = function(Vue) {
726
+ Vue.component(FlexRow.name, FlexRow);
727
+ };
728
+ function install(Vue) {
729
+ Vue.use(EmptyView);
730
+ Vue.use(FlexScroller);
731
+ Vue.use(NotImplement);
732
+ Vue.use(Split);
733
+ Vue.use(FlexColumn);
734
+ Vue.use(FlexItem);
735
+ Vue.use(FlexRow);
736
+ Vue.component(JSXComponent.name, JSXComponent);
737
+ }
738
+ export { EmptyView, FlexColumn, FlexItem, FlexRow, FlexScroller, JSXComponent, NotImplement, Split as SplitPane, install as default, install, version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@web-utils/component",
3
- "version": "1.0.5",
3
+ "version": "1.0.8",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",