@qy_better_lib/hooks 0.0.13 → 0.0.15

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.
@@ -1,4 +1,4 @@
1
- (function(u,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],f):(u=typeof globalThis<"u"?globalThis:u||self,f(u["@qy_better_lib/hooks"]={},u.Vue))})(this,(function(u,f){"use strict";function F(n){return{all:n=n||new Map,on:function(t,a){var e=n.get(t);e?e.push(a):n.set(t,[a])},off:function(t,a){var e=n.get(t);e&&(a?e.splice(e.indexOf(a)>>>0,1):n.set(t,[]))},emit:function(t,a){var e=n.get(t);e&&e.slice().map(function(r){r(a)}),(e=n.get("*"))&&e.slice().map(function(r){r(t,a)})}}}function R(){const n=F();return n.emitAsync=async function(t,...a){const e=this.all?.get(t);if(!e||e.length===0)return[];const r=e.map(i=>{try{const l=i(...a);return l instanceof Promise?l:Promise.resolve(l)}catch(l){return Promise.reject(l)}});return Promise.all(r)},n}const b=R();function U(n){return f.onMounted(()=>{if(n&&n.length>0)for(let t=0;t<n.length;t++){debugger;b.on(n[t].key,n[t].value)}}),f.onUnmounted(()=>{if(n&&n.length>0)for(let t=0;t<n.length;t++)b.off(n[t].key,n[t].value),b.all.delete(n[t].key)}),{emitter:b}}function C(){function n(e,r){const i=document.createElement("a");i.href=e,i.target="_blank",r&&i.setAttribute("download",r),document.body.appendChild(i),i.click(),document.body.removeChild(i)}function t(e){e.forEach(r=>{n(r.url,r.name)})}async function a(e){if(!e)return;const r=new FileReader;return r.readAsDataURL(e),new Promise((i,l)=>{r.onload=o=>i(o.target?.result),r.onerror=o=>l(void 0)})}return{downLoadFile:n,downLoadFiles:t,toBase64:a}}function M(){function n(o){let c=t(),d=e(o);document.body.appendChild(c),document.body.appendChild(d),r(d).then(()=>{window.print(),document.body.removeChild(c),document.body.removeChild(d)})}function t(o){let c=`#print-container {
1
+ (function(d,y){typeof exports=="object"&&typeof module<"u"?y(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],y):(d=typeof globalThis<"u"?globalThis:d||self,y(d["@qy_better_lib/hooks"]={},d.Vue))})(this,(function(d,y){"use strict";function R(t){return{all:t=t||new Map,on:function(n,a){var e=t.get(n);e?e.push(a):t.set(n,[a])},off:function(n,a){var e=t.get(n);e&&(a?e.splice(e.indexOf(a)>>>0,1):t.set(n,[]))},emit:function(n,a){var e=t.get(n);e&&e.slice().map(function(o){o(a)}),(e=t.get("*"))&&e.slice().map(function(o){o(n,a)})}}}function C(){const t=R();return t.emitAsync=async function(n,...a){const e=this.all?.get(n);if(!e||e.length===0)return[];const o=e.map(i=>{try{const l=i(...a);return l instanceof Promise?l:Promise.resolve(l)}catch(l){return Promise.reject(l)}});return Promise.all(o)},t}const b=C();function U(t){return y.onMounted(()=>{if(t&&t.length>0)for(let n=0;n<t.length;n++){debugger;b.on(t[n].key,t[n].value)}}),y.onUnmounted(()=>{if(t&&t.length>0)for(let n=0;n<t.length;n++)b.off(t[n].key,t[n].value),b.all.delete(t[n].key)}),{emitter:b}}function M(){function t(e,o){const i=document.createElement("a");i.href=e,i.target="_blank",o&&i.setAttribute("download",o),document.body.appendChild(i),i.click(),document.body.removeChild(i)}function n(e){e.forEach(o=>{t(o.url,o.name)})}async function a(e){if(!e)return;const o=new FileReader;return o.readAsDataURL(e),new Promise((i,l)=>{o.onload=r=>i(r.target?.result),o.onerror=r=>l(void 0)})}return{downLoadFile:t,downLoadFiles:n,toBase64:a}}function F(){function t(r){let c=n(),u=e(r);document.body.appendChild(c),document.body.appendChild(u),o(u).then(()=>{window.print(),document.body.removeChild(c),document.body.removeChild(u)})}function n(r){let c=`#print-container {
2
2
  display: none;
3
3
  }
4
4
  @media print {
@@ -12,4 +12,4 @@
12
12
  #print-container {
13
13
  display: block;
14
14
  }
15
- }`,d=document.createElement("style");return d.innerHTML=c,d}function a(){let o=document.getElementById("print-container");o&&document?.querySelector("body")?.removeChild(o)}function e(o){a();let c=document.createElement("div");return c.setAttribute("id","print-container"),c.innerHTML=o,c}function r(o){let c=o.querySelectorAll("img");const d=[].slice.call(c);if(d.length===0)return Promise.resolve();let m=0;return new Promise(h=>{function s(){m++,m===d.length&&h()}d.forEach(y=>{y.addEventListener("load",s),y.addEventListener("error",s)})})}function i(o){const c=document.querySelector(o);c&&n(c.innerHTML)}function l(o){let c="";for(let d=0;d<o.length;d++)c+=o[d].outerHTML;c&&n(c)}return{printHtml:i,printHtmlElement:l}}function S(){const n="A77B030B-E33D-C656-7642-56D6FEA46059";function t(r=null,i,l,o){let c=e(r,i,l,o);document.getElementById(c)===null&&(c=e(r,i,l))}function a(){document.getElementById(n)?.remove()}function e(r=null,i,l,o="#999"){const c=r!=null?document.querySelector(r):document.body,d=document.getElementById(n);d!==null&&c?.removeChild(d);let m=document.createElement("canvas");m.width=250,m.height=150;let h=m.getContext("2d");h&&(h.font="16px Avenir,Helvetica,Arial,sans-serif",h.fillStyle=o.replace(/\,\s(1|(0.\d+)\))/,", 0.1"),h.textAlign="left",h.textBaseline="middle",h.rotate(-15*Math.PI/180),h?.fillText(i,0,m.height),l&&h?.fillText(l,h.measureText(i).width+16,m.height));let s=document.createElement("div");s.id=n,s.style.pointerEvents="none",s.style.top="0px",s.style.left="0px",s.style.position="fixed",s.style.zIndex="100000";const{clientWidth:y,clientHeight:g}=document.documentElement;return s.style.width=y+"px",s.style.height=g+"px",s.style.background="url("+m.toDataURL("image/png")+") left top repeat",c?.appendChild(s),n}return{createWaterMark:t,removeWatermark:a}}function j(n){let t=0,a=!1,e,r;const{server:i,receive:l}=n;window.onbeforeunload=()=>{e?.close()};function o(){try{e=new WebSocket(i),d()}catch(s){console.log("连接建立异常",s)}}function c(){if(t>=5){e?.close();return}if(a)return!1;a=!0,r=setTimeout(function(){o(),a=!1,t++,r&&clearTimeout(r)},5e3)}function d(){e&&(e.onerror=s=>{console.log("连接错误",s),c()},e.onclose=()=>{console.log("连接关闭 - "+new Date().toLocaleTimeString()),c()},e.onopen=()=>{t=0,console.log("连接成功")},e.onmessage=s=>{try{l(s)}catch{console.log("message:"+s.data)}})}function m(s){e?.readyState===WebSocket.OPEN&&e?.send(s)}function h(){e?.close()}return{ws:e,create:o,socketClose:h,sendMessage:m}}var w=(n=>(n.PNG="image/png",n.JPEG="image/jpeg",n.GIF="image/gif",n))(w||{});function p(n){return["image/png","image/jpeg","image/gif"].some(t=>t===n)}async function v(n,t=.92,a=w.JPEG){return p(a)||(a=w.JPEG),n.toDataURL(a,t)}function A(n,t=.92,a=w.JPEG){return new Promise(e=>n.toBlob(r=>e(r),a,t))}async function E(n,t){const a=n.split(",");let e=a[0].match(/:(.*?);/)?.[1];const r=atob(a[1]);let i=r.length;const l=new Uint8Array(i);for(;i--;)l[i]=r.charCodeAt(i);return p(t)&&(e=t),new Blob([l],{type:e})}function k(n){return new Promise((t,a)=>{const e=new Image;e.onload=()=>t(e),e.onerror=()=>a(new Error("dataURLtoImage(): dataURL is illegal")),e.src=n})}function z(n,t){const a=document.createElement("a");a.href=window.URL.createObjectURL(n),a.download=t||Date.now().toString(36),document.body.appendChild(a);const e=document.createEvent("MouseEvents");e.initEvent("click",!1,!1),a.dispatchEvent(e),document.body.removeChild(a)}function L(n){return new Promise(t=>{const a=new FileReader;a.onloadend=e=>t(e.target?.result),a.readAsDataURL(n)})}async function P(n,t={}){const a={...t},e=document.createElement("canvas"),r=e.getContext("2d");let i,l;for(const o in a)Object.prototype.hasOwnProperty.call(a,o)&&(a[o]=Number(a[o]));if(!a.scale)l=a.width||(a.height||0)*n.width/n.height||n.width,i=a.height||(a.width||0)*n.height/n.width||n.height;else{const o=a.scale>0&&a.scale<10?a.scale:1;l=n.width*o,i=n.height*o}switch([5,6,7,8].some(o=>o===a.orientation)?(e.height=l,e.width=i):(e.height=i,e.width=l),a.orientation){case 3:r.rotate(180*Math.PI/180),r.drawImage(n,-e.width,-e.height,e.width,e.height);break;case 6:r.rotate(90*Math.PI/180),r.drawImage(n,0,-e.width,e.height,e.width);break;case 8:r.rotate(270*Math.PI/180),r.drawImage(n,-e.height,0,e.height,e.width);break;case 2:r.translate(e.width,0),r.scale(-1,1),r.drawImage(n,0,0,e.width,e.height);break;case 4:r.translate(e.width,0),r.scale(-1,1),r.rotate(180*Math.PI/180),r.drawImage(n,-e.width,-e.height,e.width,e.height);break;case 5:r.translate(e.width,0),r.scale(-1,1),r.rotate(90*Math.PI/180),r.drawImage(n,0,-e.width,e.height,e.width);break;case 7:r.translate(e.width,0),r.scale(-1,1),r.rotate(270*Math.PI/180),r.drawImage(n,-e.height,0,e.height,e.width);break;default:r.drawImage(n,0,0,e.width,e.height)}return e}function B(n){return fetch(n).then(t=>t.blob())}function D(n){return new Promise((t,a)=>{const e=new Image;e.onload=()=>t(e),e.onerror=()=>a(new Error("urltoImage(): Image failed to load, please check the image URL")),e.src=n})}async function q(n,t={}){if(!(n instanceof Blob))throw new Error("compress(): First arg must be a Blob object or a File object.");if(typeof t!="object"&&(t=Object.assign({quality:t})),t.quality=Number(t.quality),Number.isNaN(t.quality))return n;const a=await L(n);let e=a.split(",")[0].match(/:(.*?);/)?.[1],r=w.JPEG;p(t.type)&&(r=t.type,e=t.type);const i=await k(a),l=await P(i,Object.assign({},t)),o=await v(l,t.quality,r),c=await E(o,e);return c.size>n.size?n:c}async function T(n,t={}){if(!(n instanceof Blob))throw new Error("compressAccurately(): First arg must be a Blob object or a File object.");if(typeof t!="object"&&(t=Object.assign({size:t})),t.size=Number(t.size),Number.isNaN(t.size)||t.size*1024>n.size)return n;t.accuracy=Number(t.accuracy),(!t.accuracy||t.accuracy<.8||t.accuracy>.99)&&(t.accuracy=.95);const a={max:t.size*(2-t.accuracy)*1024,accurate:t.size*1024,min:t.size*t.accuracy*1024},e=await L(n);let r=e.split(",")[0].match(/:(.*?);/)?.[1],i=w.JPEG;p(t.type)&&(i=t.type,r=t.type);const l=await k(e),o=await P(l,Object.assign({},t)),c=.75;let d=1,m;const h=new Array(2);for(let y=1;y<=7;y++){m=await v(o,d,i);const g=m.length*c;if(y===7){(a.max<g||a.min>g)&&(m=[m,...h].filter(I=>I).sort((I,N)=>Math.abs(I.length*c-a.accurate)-Math.abs(N.length*c-a.accurate))[0]);break}if(a.max<g)h[1]=m,d-=.5**(y+1);else if(a.min>g)h[0]=m,d+=.5**(y+1);else break}const s=await E(m,r);return s.size>n.size?n:s}function H(n){const t=f.ref(!1);let a=f.shallowRef(null);f.onMounted(()=>{a.value=document.querySelector(n),a.value?.addEventListener("fullscreenchange",r)}),f.onUnmounted(()=>{a.value?.removeEventListener("fullscreenchange",r)});function e(){t.value?document.exitFullscreen&&document.exitFullscreen():a.value?.requestFullscreen&&a.value?.requestFullscreen(),t.value=!t.value}function r(){t.value=document.fullscreenElement===a.value}return{container:a,full:t,on_change:e}}u.canvastoDataURL=v,u.canvastoFile=A,u.compress=q,u.compressAccurately=T,u.dataURLtoFile=E,u.dataURLtoImage=k,u.downloadFile=z,u.filetoDataURL=L,u.imagetoCanvas=P,u.urltoBlob=B,u.urltoImage=D,u.useEmits=U,u.useFile=C,u.useFullScreen=H,u.usePrintHtml=M,u.useWaterMark=S,u.useWebSocket=j,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})}));
15
+ }`,u=document.createElement("style");return u.innerHTML=c,u}function a(){let r=document.getElementById("print-container");r&&document?.querySelector("body")?.removeChild(r)}function e(r){a();let c=document.createElement("div");return c.setAttribute("id","print-container"),c.innerHTML=r,c}function o(r){let c=r.querySelectorAll("img");const u=[].slice.call(c);if(u.length===0)return Promise.resolve();let m=0;return new Promise(h=>{function s(){m++,m===u.length&&h()}u.forEach(f=>{f.addEventListener("load",s),f.addEventListener("error",s)})})}function i(r){const c=document.querySelector(r);c&&t(c.innerHTML)}function l(r){let c="";for(let u=0;u<r.length;u++)c+=r[u].outerHTML;c&&t(c)}return{printHtml:i,printHtmlElement:l}}function j(){const t="A77B030B-E33D-C656-7642-56D6FEA46059";function n(o=null,i,l,r){let c=e(o,i,l,r);document.getElementById(c)===null&&(c=e(o,i,l))}function a(){document.getElementById(t)?.remove()}function e(o=null,i,l,r="#999"){const c=o!=null?document.querySelector(o):document.body,u=document.getElementById(t);u!==null&&c?.removeChild(u);let m=document.createElement("canvas");m.width=250,m.height=150;let h=m.getContext("2d");h&&(h.font="16px Avenir,Helvetica,Arial,sans-serif",h.fillStyle=r.replace(/\,\s(1|(0.\d+)\))/,", 0.1"),h.textAlign="left",h.textBaseline="middle",h.rotate(-15*Math.PI/180),h?.fillText(i,0,m.height),l&&h?.fillText(l,h.measureText(i).width+16,m.height));let s=document.createElement("div");s.id=t,s.style.pointerEvents="none",s.style.top="0px",s.style.left="0px",s.style.position="fixed",s.style.zIndex="100000";const{clientWidth:f,clientHeight:g}=document.documentElement;return s.style.width=f+"px",s.style.height=g+"px",s.style.background="url("+m.toDataURL("image/png")+") left top repeat",c?.appendChild(s),t}return{createWaterMark:n,removeWatermark:a}}function A(t){let n=0,a=!1,e,o;const{server:i,receive:l}=t;window.onbeforeunload=()=>{e?.close()};function r(){try{e=new WebSocket(i),u()}catch(s){console.log("连接建立异常",s)}}function c(){if(n>=5){e?.close();return}if(a)return!1;a=!0,o=setTimeout(function(){r(),a=!1,n++,o&&clearTimeout(o)},5e3)}function u(){e&&(e.onerror=s=>{console.log("连接错误",s),c()},e.onclose=()=>{console.log("连接关闭 - "+new Date().toLocaleTimeString()),c()},e.onopen=()=>{n=0,console.log("连接成功")},e.onmessage=s=>{try{l(s)}catch{console.log("message:"+s.data)}})}function m(s){e?.readyState===WebSocket.OPEN&&e?.send(s)}function h(){e?.close()}return{ws:e,create:r,socketClose:h,sendMessage:m}}var w=(t=>(t.PNG="image/png",t.JPEG="image/jpeg",t.GIF="image/gif",t))(w||{});function p(t){return["image/png","image/jpeg","image/gif"].some(n=>n===t)}async function v(t,n=.92,a=w.JPEG){return p(a)||(a=w.JPEG),t.toDataURL(a,n)}function S(t,n=.92,a=w.JPEG){return new Promise(e=>t.toBlob(o=>e(o),a,n))}async function E(t,n){const a=t.split(",");let e=a[0].match(/:(.*?);/)?.[1];const o=atob(a[1]);let i=o.length;const l=new Uint8Array(i);for(;i--;)l[i]=o.charCodeAt(i);return p(n)&&(e=n),new Blob([l],{type:e})}function k(t){return new Promise((n,a)=>{const e=new Image;e.onload=()=>n(e),e.onerror=()=>a(new Error("dataURLtoImage(): dataURL is illegal")),e.src=t})}function z(t,n){const a=document.createElement("a");a.href=window.URL.createObjectURL(t),a.download=n||Date.now().toString(36),document.body.appendChild(a);const e=document.createEvent("MouseEvents");e.initEvent("click",!1,!1),a.dispatchEvent(e),document.body.removeChild(a)}function L(t){return new Promise(n=>{const a=new FileReader;a.onloadend=e=>n(e.target?.result),a.readAsDataURL(t)})}async function P(t,n={}){const a={...n},e=document.createElement("canvas"),o=e.getContext("2d");let i,l;for(const r in a)Object.prototype.hasOwnProperty.call(a,r)&&(a[r]=Number(a[r]));if(!a.scale)l=a.width||(a.height||0)*t.width/t.height||t.width,i=a.height||(a.width||0)*t.height/t.width||t.height;else{const r=a.scale>0&&a.scale<10?a.scale:1;l=t.width*r,i=t.height*r}switch([5,6,7,8].some(r=>r===a.orientation)?(e.height=l,e.width=i):(e.height=i,e.width=l),a.orientation){case 3:o.rotate(180*Math.PI/180),o.drawImage(t,-e.width,-e.height,e.width,e.height);break;case 6:o.rotate(90*Math.PI/180),o.drawImage(t,0,-e.width,e.height,e.width);break;case 8:o.rotate(270*Math.PI/180),o.drawImage(t,-e.height,0,e.height,e.width);break;case 2:o.translate(e.width,0),o.scale(-1,1),o.drawImage(t,0,0,e.width,e.height);break;case 4:o.translate(e.width,0),o.scale(-1,1),o.rotate(180*Math.PI/180),o.drawImage(t,-e.width,-e.height,e.width,e.height);break;case 5:o.translate(e.width,0),o.scale(-1,1),o.rotate(90*Math.PI/180),o.drawImage(t,0,-e.width,e.height,e.width);break;case 7:o.translate(e.width,0),o.scale(-1,1),o.rotate(270*Math.PI/180),o.drawImage(t,-e.height,0,e.height,e.width);break;default:o.drawImage(t,0,0,e.width,e.height)}return e}function B(t){return fetch(t).then(n=>n.blob())}function D(t){return new Promise((n,a)=>{const e=new Image;e.onload=()=>n(e),e.onerror=()=>a(new Error("urltoImage(): Image failed to load, please check the image URL")),e.src=t})}async function T(t,n={}){if(!(t instanceof Blob))throw new Error("compress(): First arg must be a Blob object or a File object.");if(typeof n!="object"&&(n=Object.assign({quality:n})),n.quality=Number(n.quality),Number.isNaN(n.quality))return t;const a=await L(t);let e=a.split(",")[0].match(/:(.*?);/)?.[1],o=w.JPEG;p(n.type)&&(o=n.type,e=n.type);const i=await k(a),l=await P(i,Object.assign({},n)),r=await v(l,n.quality,o),c=await E(r,e);return c.size>t.size?t:c}async function q(t,n={}){if(!(t instanceof Blob))throw new Error("compressAccurately(): First arg must be a Blob object or a File object.");if(typeof n!="object"&&(n=Object.assign({size:n})),n.size=Number(n.size),Number.isNaN(n.size)||n.size*1024>t.size)return t;n.accuracy=Number(n.accuracy),(!n.accuracy||n.accuracy<.8||n.accuracy>.99)&&(n.accuracy=.95);const a={max:n.size*(2-n.accuracy)*1024,accurate:n.size*1024,min:n.size*n.accuracy*1024},e=await L(t);let o=e.split(",")[0].match(/:(.*?);/)?.[1],i=w.JPEG;p(n.type)&&(i=n.type,o=n.type);const l=await k(e),r=await P(l,Object.assign({},n)),c=.75;let u=1,m;const h=new Array(2);for(let f=1;f<=7;f++){m=await v(r,u,i);const g=m.length*c;if(f===7){(a.max<g||a.min>g)&&(m=[m,...h].filter(I=>I).sort((I,H)=>Math.abs(I.length*c-a.accurate)-Math.abs(H.length*c-a.accurate))[0]);break}if(a.max<g)h[1]=m,u-=.5**(f+1);else if(a.min>g)h[0]=m,u+=.5**(f+1);else break}const s=await E(m,o);return s.size>t.size?t:s}d.canvastoDataURL=v,d.canvastoFile=S,d.compress=T,d.compressAccurately=q,d.dataURLtoFile=E,d.dataURLtoImage=k,d.downloadFile=z,d.filetoDataURL=L,d.imagetoCanvas=P,d.urltoBlob=B,d.urltoImage=D,d.useEmits=U,d.useFile=M,d.usePrintHtml=F,d.useWaterMark=j,d.useWebSocket=A,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
package/lib/index.d.ts CHANGED
@@ -4,4 +4,3 @@ export * from './use-print';
4
4
  export * from './use-waterMark';
5
5
  export * from './use-websocket';
6
6
  export * from './use-image';
7
- export * from './use-utils';
@@ -0,0 +1,10 @@
1
+ import { ECOption } from './type';
2
+ declare const options: ECOption;
3
+ /**
4
+ * Echarts图表字体、间距自适应
5
+ * @param size
6
+ * @param defalteWidth
7
+ * @returns
8
+ */
9
+ export declare function auto_chart_size(size: number, defalteWidth?: number): number | undefined;
10
+ export default options;
@@ -0,0 +1,11 @@
1
+ import { ECOption } from './type';
2
+ import * as echarts from 'echarts/core';
3
+ /**
4
+ * echarts类
5
+ * @returns echartsType
6
+ */
7
+ export default function useEcharts(): {
8
+ renderChart: (option: ECOption, domId: string, isdark?: boolean, renderer?: "canvas" | "svg") => echarts.ECharts | undefined;
9
+ removeChart: (domId: string) => void;
10
+ getChart: (domId: string) => echarts.ECharts | undefined;
11
+ };
@@ -0,0 +1,4 @@
1
+ import { BarSeriesOption, LineSeriesOption, PieSeriesOption, ScatterSeriesOption } from 'echarts/charts';
2
+ import { TitleComponentOption, TooltipComponentOption, ToolboxComponentOption, GridComponentOption, VisualMapComponentOption, LegendComponentOption, MarkLineComponentOption } from 'echarts/components';
3
+ import { DataZoomComponentOption } from 'echarts';
4
+ export type ECOption = echarts.ComposeOption<BarSeriesOption | LineSeriesOption | TitleComponentOption | ToolboxComponentOption | TooltipComponentOption | GridComponentOption | VisualMapComponentOption | PieSeriesOption | LegendComponentOption | MarkLineComponentOption | DataZoomComponentOption | ScatterSeriesOption>;
@@ -0,0 +1,45 @@
1
+ import { Cell, Node, Options, Edge } from '@antv/x6';
2
+ interface LayoutFlow {
3
+ /**画布配置 */
4
+ option: Partial<Options.Manual>;
5
+ /**数据属性配置 */
6
+ props?: LayoutFlowProp;
7
+ }
8
+ type LayoutFlowProp = {
9
+ key: string | number;
10
+ children: string;
11
+ };
12
+ /**自动排布配置 */
13
+ export type LayoutFlowNodeOption = {
14
+ /**节点宽度 */
15
+ node_w: number;
16
+ /**节点高度 */
17
+ node_h: number;
18
+ /**节点间距 */
19
+ nodesep: number;
20
+ /**层间距 */
21
+ ranksep: number;
22
+ };
23
+ /**自动排布类型 */
24
+ type LayoutDirection = 'LR' | 'RL' | 'TB' | 'BT';
25
+ type EventOption = {
26
+ [name: string]: (args: Record<string, any>) => void;
27
+ };
28
+ type CustomElementOption = {
29
+ nodes: Record<string, any>;
30
+ edges: Record<string, any>;
31
+ };
32
+ /**自动排布流程 */
33
+ export declare function useLayoutFlow(options: LayoutFlow): {
34
+ init: (container: HTMLElement) => void;
35
+ add_graph_elements: (elements: Cell[]) => void;
36
+ layout: (cfg: LayoutFlowNodeOption, dir?: LayoutDirection) => void;
37
+ center_content: (padding: number) => void;
38
+ createNodes: (node_options: Node.Metadata[]) => Node[];
39
+ createEdges: (edge_options: Edge.Metadata[]) => Edge[];
40
+ register_event: (event_options: EventOption) => void;
41
+ register_custom_elements: (el_options: CustomElementOption) => void;
42
+ get_nodes: () => any;
43
+ clear: () => void;
44
+ };
45
+ export {};
@@ -0,0 +1,12 @@
1
+ import { default as mqtt } from 'mqtt';
2
+ export default function useMQTT(url: string, options?: mqtt.IClientOptions): {
3
+ connect: ({ success, err, receive }: {
4
+ success: () => void;
5
+ err: (e: any) => void;
6
+ receive: (...args: any) => void;
7
+ }) => void;
8
+ close: () => void;
9
+ subscribe: (topic: any) => void;
10
+ unsubscribe: (topic: any) => void;
11
+ publish: (topic: any, msg: string) => void;
12
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qy_better_lib/hooks",
3
3
  "private": false,
4
- "version": "0.0.13",
4
+ "version": "0.0.15",
5
5
  "description": "qy better lib hooks",
6
6
  "author": "luhuiming",
7
7
  "license": "ISC",
@@ -36,11 +36,17 @@
36
36
  }
37
37
  },
38
38
  "devDependencies": {
39
+ "@antv/x6": "^2.18.1",
40
+ "@types/dagre": "^0.7.53",
39
41
  "@types/node": "^24.5.2",
40
42
  "@vitejs/plugin-vue": "^6.0.1",
43
+ "dagre": "^0.8.5",
44
+ "echarts": "5.6.0",
41
45
  "mitt": "^3.0.1",
46
+ "mqtt": "^5.14.1",
42
47
  "vite": "^7.1.7",
43
48
  "vite-plugin-dts": "^4.5.4",
44
49
  "vue": "^3.5.22"
45
- }
50
+ },
51
+ "dependencies": {}
46
52
  }
@@ -1 +0,0 @@
1
- export * from './use-fullscreen';