cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
9 lines (8 loc) • 2.52 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e=require("../../../node_modules/@novnc/novnc/lib/rfb.js"),t=require("../../../node_modules/@novnc/novnc/core/input/keysym.js"),s=require("../../../node_modules/@novnc/novnc/core/input/keysymdef.js"),o=require("../../../node_modules/@novnc/novnc/core/util/browser.js"),r=require("./dom.js");
/*
* vuensee
* @author Anders Evenrud <andersevenrud@gmail.com>
* @link https://github.com/andersevenrud/vuensee
* @license MIT
*/
const i=["disconnect","connect","credentialsrequired","securityfailure","desktopname","bell","capabilities","clipboard"],n={esc:[t.default.XK_Escape,"Escape"],tab:[t.default.XK_Tab,"Tab"],ctrl:[t.default.XK_Control_L,"ControlLeft"],alt:[t.default.XK_Alt_L,"AltLeft"],windows:[t.default.XK_Super_L,"MetaLeft"],backspace:[t.default.XK_BackSpace,"Backspace"],enter:[t.default.XK_Return,"Enter"]};class a extends e.default{applySettings(e,{dragging:t=!1}={}){this.clipViewport=e.clipToWindow,this.scaleViewport="scale"===e.scalingMode,this.resizeSession="remote"===e.scalingMode,this.qualityLevel=e.quality,this.compressionLevel=e.compression,this.showDotCursor=e.dotCursor,this.viewOnly=e=e.viewOnly,this.dragViewport=!(!this.clipViewport&&this.dragViewport)&&t}hasPowerCapabilities(){return this.capabilities.power&&!this.viewOnly}sendKeyCommand(e,t=!0){if(n[e]){const[s,o]=n[e];this.sendKey(s,o,t)}else{const t=s.default.lookup(e);this.sendKey(t)}}static connect({root:e,bindings:t,options:{username:s,password:o,hostname:r,path:n,port:c,ssl:l,...d}}){const p=e=>s=>t[e](s),u=new a(e,`ws${l?"s":""}://${r}:${c}/${n}`,{shared:d.sharedMode,repeaterID:d.repeaterId,credentials:{username:s||void 0,password:o||void 0}}),h=i.map((e=>[e,p(e)]));return h.forEach((([e,t])=>u.addEventListener(e,t))),u.addEventListener("disconnect",(()=>{h.forEach((([e,t])=>u.removeEventListener(e,t)))})),u.applySettings(d),u}}exports.hasScrollbarGutter=o.hasScrollbarGutter,Object.defineProperty(exports,"isTouchDevice",{enumerable:!0,get:function(){return o.isTouchDevice}}),exports.VuenseeRFB=a,exports.createBell=e=>r.createAudioElement([["audio/ogg",`${e}.oga`],["audio/mpeg",`${e}.mp3`]]),exports.detectSettings=(e,t)=>{const s={...e,...t};"scale"===s.scalingMode?s.clipToWindow=!1:o.hasScrollbarGutter||(s.clipToWindow=!0);const{port:r,ssl:i}=s,n=80===r&&!0===i?443:443===r&&!1===i?80:void 0;return void 0!==n&&(s.port=n),s},exports.keyMappings=n,exports.scalingModes=["off","scale","remote"];