wsemi
Version:
A support package for web developer.
1,570 lines (515 loc) • 1.47 MB
HTML
<!DOCTYPE html><html lang="en"><head>
<meta charset="utf-8">
<title>wsemi - Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
<script src="scripts/nav.js" defer=""></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger">
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="wsemi.html">wsemi</a><ul class="methods"><li data-type="method"><a href="wsemi.html#.ab2blob">ab2blob</a></li><li data-type="method"><a href="wsemi.html#.ab2u8arr">ab2u8arr</a></li><li data-type="method"><a href="wsemi.html#.addExcelWorksheetFromData">addExcelWorksheetFromData</a></li><li data-type="method"><a href="wsemi.html#.addMonth">addMonth</a></li><li data-type="method"><a href="wsemi.html#.aes2str">aes2str</a></li><li data-type="method"><a href="wsemi.html#.alive">alive</a></li><li data-type="method"><a href="wsemi.html#.arr2dt">arr2dt</a></li><li data-type="method"><a href="wsemi.html#.arrAccum">arrAccum</a></li><li data-type="method"><a href="wsemi.html#.arrAdd">arrAdd</a></li><li data-type="method"><a href="wsemi.html#.arrAt">arrAt</a></li><li data-type="method"><a href="wsemi.html#.arrDiff">arrDiff</a></li><li data-type="method"><a href="wsemi.html#.arrFilterByKeywords">arrFilterByKeywords</a></li><li data-type="method"><a href="wsemi.html#.arrFilterByNum">arrFilterByNum</a></li><li data-type="method"><a href="wsemi.html#.arrFilterByPnum">arrFilterByPnum</a></li><li data-type="method"><a href="wsemi.html#.arrFilterByPnumAndToLog">arrFilterByPnumAndToLog</a></li><li data-type="method"><a href="wsemi.html#.arrFind">arrFind</a></li><li data-type="method"><a href="wsemi.html#.arrGroupByMaxmin">arrGroupByMaxmin</a></li><li data-type="method"><a href="wsemi.html#.arrHas">arrHas</a></li><li data-type="method"><a href="wsemi.html#.arrInsert">arrInsert</a></li><li data-type="method"><a href="wsemi.html#.arrLookupByMaxmin">arrLookupByMaxmin</a></li><li data-type="method"><a href="wsemi.html#.arrMax">arrMax</a></li><li data-type="method"><a href="wsemi.html#.arrMin">arrMin</a></li><li data-type="method"><a href="wsemi.html#.arrMulti">arrMulti</a></li><li data-type="method"><a href="wsemi.html#.arrNorm">arrNorm</a></li><li data-type="method"><a href="wsemi.html#.arrProduct">arrProduct</a></li><li data-type="method"><a href="wsemi.html#.arrReduce">arrReduce</a></li><li data-type="method"><a href="wsemi.html#.arrSep">arrSep</a></li><li data-type="method"><a href="wsemi.html#.arrSort">arrSort</a></li><li data-type="method"><a href="wsemi.html#.asind">asind</a></li><li data-type="method"><a href="wsemi.html#.atan2d">atan2d</a></li><li data-type="method"><a href="wsemi.html#.atand">atand</a></li><li data-type="method"><a href="wsemi.html#.attstr">attstr</a></li><li data-type="method"><a href="wsemi.html#.b642obj">b642obj</a></li><li data-type="method"><a href="wsemi.html#.b642str">b642str</a></li><li data-type="method"><a href="wsemi.html#.b642u16arr">b642u16arr</a></li><li data-type="method"><a href="wsemi.html#.b642u8arr">b642u8arr</a></li><li data-type="method"><a href="wsemi.html#.binstr">binstr</a></li><li data-type="method"><a href="wsemi.html#.blob2ab">blob2ab</a></li><li data-type="method"><a href="wsemi.html#.blob2b64">blob2b64</a></li><li data-type="method"><a href="wsemi.html#.blob2str">blob2str</a></li><li data-type="method"><a href="wsemi.html#.blob2u8arr">blob2u8arr</a></li><li data-type="method"><a href="wsemi.html#.blobs2b64s">blobs2b64s</a></li><li data-type="method"><a href="wsemi.html#.blobs2u8arrs">blobs2u8arrs</a></li><li data-type="method"><a href="wsemi.html#.bodyLog">bodyLog</a></li><li data-type="method"><a href="wsemi.html#.browserView">browserView</a></li><li data-type="method"><a href="wsemi.html#.browserViewFromBlob">browserViewFromBlob</a></li><li data-type="method"><a href="wsemi.html#.browserViewFromText">browserViewFromText</a></li><li data-type="method"><a href="wsemi.html#.browserViewFromU8arr">browserViewFromU8arr</a></li><li data-type="method"><a href="wsemi.html#.bs2u8arr">bs2u8arr</a></li><li data-type="method"><a href="wsemi.html#.bufRead">bufRead</a></li><li data-type="method"><a href="wsemi.html#.bufReadDbl">bufReadDbl</a></li><li data-type="method"><a href="wsemi.html#.bufWrite">bufWrite</a></li><li data-type="method"><a href="wsemi.html#.bufWriteDbl">bufWriteDbl</a></li><li data-type="method"><a href="wsemi.html#.cache">cache</a></li><li data-type="method"><a href="wsemi.html#.cbol">cbol</a></li><li data-type="method"><a href="wsemi.html#.cdbl">cdbl</a></li><li data-type="method"><a href="wsemi.html#.cfilesize">cfilesize</a></li><li data-type="method"><a href="wsemi.html#.cfinancial">cfinancial</a></li><li data-type="method"><a href="wsemi.html#.cint">cint</a></li><li data-type="method"><a href="wsemi.html#.clearXSS">clearXSS</a></li><li data-type="method"><a href="wsemi.html#.color">color</a></li><li data-type="method"><a href="wsemi.html#.composeToTree">composeToTree</a></li><li data-type="method"><a href="wsemi.html#.convertToTree">convertToTree</a></li><li data-type="method"><a href="wsemi.html#.copyStrToClipboard">copyStrToClipboard</a></li><li data-type="method"><a href="wsemi.html#.cosd">cosd</a></li><li data-type="method"><a href="wsemi.html#.cotd">cotd</a></li><li data-type="method"><a href="wsemi.html#.createExcelWorkbook">createExcelWorkbook</a></li><li data-type="method"><a href="wsemi.html#.cscd">cscd</a></li><li data-type="method"><a href="wsemi.html#.cstr">cstr</a></li><li data-type="method"><a href="wsemi.html#.day2cht">day2cht</a></li><li data-type="method"><a href="wsemi.html#.debounce">debounce</a></li><li data-type="method"><a href="wsemi.html#.delay">delay</a></li><li data-type="method"><a href="wsemi.html#.dig">dig</a></li><li data-type="method"><a href="wsemi.html#.digExp">digExp</a></li><li data-type="method"><a href="wsemi.html#.domAlert">domAlert</a></li><li data-type="method"><a href="wsemi.html#.domAppend">domAppend</a></li><li data-type="method"><a href="wsemi.html#.domCancelEvent">domCancelEvent</a></li><li data-type="method"><a href="wsemi.html#.domCompareText">domCompareText</a></li><li data-type="method"><a href="wsemi.html#.domCompareTextDyn">domCompareTextDyn</a></li><li data-type="method"><a href="wsemi.html#.domConvertToPic">domConvertToPic</a></li><li data-type="method"><a href="wsemi.html#.domConvertToPicDyn">domConvertToPicDyn</a></li><li data-type="method"><a href="wsemi.html#.domDetect">domDetect</a></li><li data-type="method"><a href="wsemi.html#.domDrag">domDrag</a></li><li data-type="method"><a href="wsemi.html#.domDragBarAndScroll">domDragBarAndScroll</a></li><li data-type="method"><a href="wsemi.html#.domDragPreview">domDragPreview</a></li><li data-type="method"><a href="wsemi.html#.domDropFiles">domDropFiles</a></li><li data-type="method"><a href="wsemi.html#.domElementsFromPoint">domElementsFromPoint</a></li><li data-type="method"><a href="wsemi.html#.domFadeIn">domFadeIn</a></li><li data-type="method"><a href="wsemi.html#.domFadeOut">domFadeOut</a></li><li data-type="method"><a href="wsemi.html#.domFind">domFind</a></li><li data-type="method"><a href="wsemi.html#.domFinds">domFinds</a></li><li data-type="method"><a href="wsemi.html#.domGetAttr">domGetAttr</a></li><li data-type="method"><a href="wsemi.html#.domGetBoudRect">domGetBoudRect</a></li><li data-type="method"><a href="wsemi.html#.domGetBoudRectRefSelf">domGetBoudRectRefSelf</a></li><li data-type="method"><a href="wsemi.html#.domGetFileAccept">domGetFileAccept</a></li><li data-type="method"><a href="wsemi.html#.domGetFiles">domGetFiles</a></li><li data-type="method"><a href="wsemi.html#.domGetParents">domGetParents</a></li><li data-type="method"><a href="wsemi.html#.domGetPointFromEvent">domGetPointFromEvent</a></li><li data-type="method"><a href="wsemi.html#.domGetScrollableParent">domGetScrollableParent</a></li><li data-type="method"><a href="wsemi.html#.domGetWindowSize">domGetWindowSize</a></li><li data-type="method"><a href="wsemi.html#.domIsClientXYIn">domIsClientXYIn</a></li><li data-type="method"><a href="wsemi.html#.domIsFocused">domIsFocused</a></li><li data-type="method"><a href="wsemi.html#.domIsVisible">domIsVisible</a></li><li data-type="method"><a href="wsemi.html#.domPrepend">domPrepend</a></li><li data-type="method"><a href="wsemi.html#.domRemove">domRemove</a></li><li data-type="method"><a href="wsemi.html#.domRenderMarkdownMind">domRenderMarkdownMind</a></li><li data-type="method"><a href="wsemi.html#.domRenderMarkdownMindDyn">domRenderMarkdownMindDyn</a></li><li data-type="method"><a href="wsemi.html#.domRipple">domRipple</a></li><li data-type="method"><a href="wsemi.html#.domScrollIntoView">domScrollIntoView</a></li><li data-type="method"><a href="wsemi.html#.domScrollTo">domScrollTo</a></li><li data-type="method"><a href="wsemi.html#.domShowImages">domShowImages</a></li><li data-type="method"><a href="wsemi.html#.domShowImagesDyn">domShowImagesDyn</a></li><li data-type="method"><a href="wsemi.html#.domShowInputAndGetFiles">domShowInputAndGetFiles</a></li><li data-type="method"><a href="wsemi.html#.domShowInputAndGetFilesU8Arrs">domShowInputAndGetFilesU8Arrs</a></li><li data-type="method"><a href="wsemi.html#.domTooltip">domTooltip</a></li><li data-type="method"><a href="wsemi.html#.domTriggerEvent">domTriggerEvent</a></li><li data-type="method"><a href="wsemi.html#.domVirtualCreate">domVirtualCreate</a></li><li data-type="method"><a href="wsemi.html#.domVirtualCreateQueue">domVirtualCreateQueue</a></li><li data-type="method"><a href="wsemi.html#.downloadExcelFileFromData">downloadExcelFileFromData</a></li><li data-type="method"><a href="wsemi.html#.downloadExcelFileFromDataDyn">downloadExcelFileFromDataDyn</a></li><li data-type="method"><a href="wsemi.html#.downloadFileFromB64">downloadFileFromB64</a></li><li data-type="method"><a href="wsemi.html#.downloadFileFromBlob">downloadFileFromBlob</a></li><li data-type="method"><a href="wsemi.html#.downloadFileFromText">downloadFileFromText</a></li><li data-type="method"><a href="wsemi.html#.downloadFileFromU8Arr">downloadFileFromU8Arr</a></li><li data-type="method"><a href="wsemi.html#.dtmapping">dtmapping</a></li><li data-type="method"><a href="wsemi.html#.dtpick">dtpick</a></li><li data-type="method"><a href="wsemi.html#.evem">evem</a></li><li data-type="method"><a href="wsemi.html#.execProcess">execProcess</a></li><li data-type="method"><a href="wsemi.html#.execScript">execScript</a></li><li data-type="method"><a href="wsemi.html#.f2c">f2c</a></li><li data-type="method"><a href="wsemi.html#.filepathToTree">filepathToTree</a></li><li data-type="method"><a href="wsemi.html#.files2data">files2data</a></li><li data-type="method"><a href="wsemi.html#.flattenToConn">flattenToConn</a></li><li data-type="method"><a href="wsemi.html#.flattenTree">flattenTree</a></li><li data-type="method"><a href="wsemi.html#.fsCleanFolder">fsCleanFolder</a></li><li data-type="method"><a href="wsemi.html#.fsCopyFolder">fsCopyFolder</a></li><li data-type="method"><a href="wsemi.html#.fsCreateFile">fsCreateFile</a></li><li data-type="method"><a href="wsemi.html#.fsCreateFolder">fsCreateFolder</a></li><li data-type="method"><a href="wsemi.html#.fsDeleteFile">fsDeleteFile</a></li><li data-type="method"><a href="wsemi.html#.fsDeleteFolder">fsDeleteFolder</a></li><li data-type="method"><a href="wsemi.html#.fsEvem">fsEvem</a></li><li data-type="method"><a href="wsemi.html#.fsGetFilesInFolder">fsGetFilesInFolder</a></li><li data-type="method"><a href="wsemi.html#.fsGetFoldersInFolder">fsGetFoldersInFolder</a></li><li data-type="method"><a href="wsemi.html#.fsIsFile">fsIsFile</a></li><li data-type="method"><a href="wsemi.html#.fsIsFolder">fsIsFolder</a></li><li data-type="method"><a href="wsemi.html#.fsReadText">fsReadText</a></li><li data-type="method"><a href="wsemi.html#.fsRenameFile">fsRenameFile</a></li><li data-type="method"><a href="wsemi.html#.fsRenameFolder">fsRenameFolder</a></li><li data-type="method"><a href="wsemi.html#.fsTreeFolder">fsTreeFolder</a></li><li data-type="method"><a href="wsemi.html#.fsWatchFile">fsWatchFile</a></li><li data-type="method"><a href="wsemi.html#.fsWriteText">fsWriteText</a></li><li data-type="method"><a href="wsemi.html#.genGradientColor">genGradientColor</a></li><li data-type="method"><a href="wsemi.html#.genID">genID</a></li><li data-type="method"><a href="wsemi.html#.genPm">genPm</a></li><li data-type="method"><a href="wsemi.html#.getBufferSize">getBufferSize</a></li><li data-type="method"><a href="wsemi.html#.getClearPathName">getClearPathName</a></li><li data-type="method"><a href="wsemi.html#.getCsvStrFromData">getCsvStrFromData</a></li><li data-type="method"><a href="wsemi.html#.getDataFromExcelFileU8Arr">getDataFromExcelFileU8Arr</a></li><li data-type="method"><a href="wsemi.html#.getDataFromExcelFileU8ArrDyn">getDataFromExcelFileU8ArrDyn</a></li><li data-type="method"><a href="wsemi.html#.getDirName">getDirName</a></li><li data-type="method"><a href="wsemi.html#.getEnv">getEnv</a></li><li data-type="method"><a href="wsemi.html#.getExcelU8ArrFromData">getExcelU8ArrFromData</a></li><li data-type="method"><a href="wsemi.html#.getExcelU8ArrFromWorkbook">getExcelU8ArrFromWorkbook</a></li><li data-type="method"><a href="wsemi.html#.getExcelWorkbookFromData">getExcelWorkbookFromData</a></li><li data-type="method"><a href="wsemi.html#.getExcelWorkbookFromWorksheet">getExcelWorkbookFromWorksheet</a></li><li data-type="method"><a href="wsemi.html#.getExcelWorksheetFromData">getExcelWorksheetFromData</a></li><li data-type="method"><a href="wsemi.html#.getFileAccept">getFileAccept</a></li><li data-type="method"><a href="wsemi.html#.getFileName">getFileName</a></li><li data-type="method"><a href="wsemi.html#.getFileTrueName">getFileTrueName</a></li><li data-type="method"><a href="wsemi.html#.getGlobal">getGlobal</a></li><li data-type="method"><a href="wsemi.html#.getObjSize">getObjSize</a></li><li data-type="method"><a href="wsemi.html#.getTimeBetween">getTimeBetween</a></li><li data-type="method"><a href="wsemi.html#.getTimeFromUnit">getTimeFromUnit</a></li><li data-type="method"><a href="wsemi.html#.getTimeObject">getTimeObject</a></li><li data-type="method"><a href="wsemi.html#.getTimeRange">getTimeRange</a></li><li data-type="method"><a href="wsemi.html#.getUserAgent">getUserAgent</a></li><li data-type="method"><a href="wsemi.html#.getUserAgentDyn">getUserAgentDyn</a></li><li data-type="method"><a href="wsemi.html#.getltdtkeys">getltdtkeys</a></li><li data-type="method"><a href="wsemi.html#.haskey">haskey</a></li><li data-type="method"><a href="wsemi.html#.html2pic">html2pic</a></li><li data-type="method"><a href="wsemi.html#.html2picDyn">html2picDyn</a></li><li data-type="method"><a href="wsemi.html#.html2str">html2str</a></li><li data-type="method"><a href="wsemi.html#.html2strDyn">html2strDyn</a></li><li data-type="method"><a href="wsemi.html#.htmlDecode">htmlDecode</a></li><li data-type="method"><a href="wsemi.html#.htmlEncode">htmlEncode</a></li><li data-type="method"><a href="wsemi.html#.importResources">importResources</a></li><li data-type="method"><a href="wsemi.html#.interp1">interp1</a></li><li data-type="method"><a href="wsemi.html#.isDev">isDev</a></li><li data-type="method"><a href="wsemi.html#.isEle">isEle</a></li><li data-type="method"><a href="wsemi.html#.isEleExistByID">isEleExistByID</a></li><li data-type="method"><a href="wsemi.html#.isEmail">isEmail</a></li><li data-type="method"><a href="wsemi.html#.isIE">isIE</a></li><li data-type="method"><a href="wsemi.html#.isNarrow">isNarrow</a></li><li data-type="method"><a href="wsemi.html#.isStrHasCapital">isStrHasCapital</a></li><li data-type="method"><a href="wsemi.html#.isStrHasLowerCase">isStrHasLowerCase</a></li><li data-type="method"><a href="wsemi.html#.isStrHasNumber">isStrHasNumber</a></li><li data-type="method"><a href="wsemi.html#.isUserIdentify">isUserIdentify</a></li><li data-type="method"><a href="wsemi.html#.isUserName">isUserName</a></li><li data-type="method"><a href="wsemi.html#.isUserPW">isUserPW</a></li><li data-type="method"><a href="wsemi.html#.isWindow">isWindow</a></li><li data-type="method"><a href="wsemi.html#.isab">isab</a></li><li data-type="method"><a href="wsemi.html#.isarr">isarr</a></li><li data-type="method"><a href="wsemi.html#.isarr0">isarr0</a></li><li data-type="method"><a href="wsemi.html#.isblob">isblob</a></li><li data-type="method"><a href="wsemi.html#.isbol">isbol</a></li><li data-type="method"><a href="wsemi.html#.isday">isday</a></li><li data-type="method"><a href="wsemi.html#.isearr">isearr</a></li><li data-type="method"><a href="wsemi.html#.iseobj">iseobj</a></li><li data-type="method"><a href="wsemi.html#.iser">iser</a></li><li data-type="method"><a href="wsemi.html#.isernot">isernot</a></li><li data-type="method"><a href="wsemi.html#.isestr">isestr</a></li><li data-type="method"><a href="wsemi.html#.isfun">isfun</a></li><li data-type="method"><a href="wsemi.html#.isint">isint</a></li><li data-type="method"><a href="wsemi.html#.ismonth">ismonth</a></li><li data-type="method"><a href="wsemi.html#.isn0int">isn0int</a></li><li data-type="method"><a href="wsemi.html#.isn0num">isn0num</a></li><li data-type="method"><a href="wsemi.html#.isnbr">isnbr</a></li><li data-type="method"><a href="wsemi.html#.isnint">isnint</a></li><li data-type="method"><a href="wsemi.html#.isnnum">isnnum</a></li><li data-type="method"><a href="wsemi.html#.isnull">isnull</a></li><li data-type="method"><a href="wsemi.html#.isnum">isnum</a></li><li data-type="method"><a href="wsemi.html#.isobj">isobj</a></li><li data-type="method"><a href="wsemi.html#.isobj0">isobj0</a></li><li data-type="method"><a href="wsemi.html#.isp0int">isp0int</a></li><li data-type="method"><a href="wsemi.html#.isp0num">isp0num</a></li><li data-type="method"><a href="wsemi.html#.ispint">ispint</a></li><li data-type="method"><a href="wsemi.html#.ispm">ispm</a></li><li data-type="method"><a href="wsemi.html#.ispnum">ispnum</a></li><li data-type="method"><a href="wsemi.html#.isstr">isstr</a></li><li data-type="method"><a href="wsemi.html#.isstr0">isstr0</a></li><li data-type="method"><a href="wsemi.html#.istime">istime</a></li><li data-type="method"><a href="wsemi.html#.istimeTZ">istimeTZ</a></li><li data-type="method"><a href="wsemi.html#.istimems">istimems</a></li><li data-type="method"><a href="wsemi.html#.istimemsTZ">istimemsTZ</a></li><li data-type="method"><a href="wsemi.html#.isu16arr">isu16arr</a></li><li data-type="method"><a href="wsemi.html#.isu8arr">isu8arr</a></li><li data-type="method"><a href="wsemi.html#.isundefined">isundefined</a></li><li data-type="method"><a href="wsemi.html#.j2o">j2o</a></li><li data-type="method"><a href="wsemi.html#.keysmat2ltdt">keysmat2ltdt</a></li><li data-type="method"><a href="wsemi.html#.log">log</a></li><li data-type="method"><a href="wsemi.html#.ltdt2vrtsable">ltdt2vrtsable</a></li><li data-type="method"><a href="wsemi.html#.ltdtDiff">ltdtDiff</a></li><li data-type="method"><a href="wsemi.html#.ltdtDiffByKey">ltdtDiffByKey</a></li><li data-type="method"><a href="wsemi.html#.ltdtkeys2mat">ltdtkeys2mat</a></li><li data-type="method"><a href="wsemi.html#.ltdtkeysheads2mat">ltdtkeysheads2mat</a></li><li data-type="method"><a href="wsemi.html#.ltdtmapping">ltdtmapping</a></li><li data-type="method"><a href="wsemi.html#.ltdtmerge">ltdtmerge</a></li><li data-type="method"><a href="wsemi.html#.ltdtpick">ltdtpick</a></li><li data-type="method"><a href="wsemi.html#.ltdtpull">ltdtpull</a></li><li data-type="method"><a href="wsemi.html#.mat2ltdt">mat2ltdt</a></li><li data-type="method"><a href="wsemi.html#.matConcat">matConcat</a></li><li data-type="method"><a href="wsemi.html#.matDiff">matDiff</a></li><li data-type="method"><a href="wsemi.html#.matat">matat</a></li><li data-type="method"><a href="wsemi.html#.now2str">now2str</a></li><li data-type="method"><a href="wsemi.html#.now2strp">now2strp</a></li><li data-type="method"><a href="wsemi.html#.nowDay2str">nowDay2str</a></li><li data-type="method"><a href="wsemi.html#.nowms2str">nowms2str</a></li><li data-type="method"><a href="wsemi.html#.nowms2strp">nowms2strp</a></li><li data-type="method"><a href="wsemi.html#.o2j">o2j</a></li><li data-type="method"><a href="wsemi.html#.obj2b64">obj2b64</a></li><li data-type="method"><a href="wsemi.html#.obj2pb64">obj2pb64</a></li><li data-type="method"><a href="wsemi.html#.obj2str">obj2str</a></li><li data-type="method"><a href="wsemi.html#.obj2stru8arr">obj2stru8arr</a></li><li data-type="method"><a href="wsemi.html#.obj2u8arr">obj2u8arr</a></li><li data-type="method"><a href="wsemi.html#.objSortBy">objSortBy</a></li><li data-type="method"><a href="wsemi.html#.objSortByKeys">objSortByKeys</a></li><li data-type="method"><a href="wsemi.html#.ocr">ocr</a></li><li data-type="method"><a href="wsemi.html#.ocrDyn">ocrDyn</a></li><li data-type="method"><a href="wsemi.html#.oo">oo</a></li><li data-type="method"><a href="wsemi.html#.openLink">openLink</a></li><li data-type="method"><a href="wsemi.html#.pb642obj">pb642obj</a></li><li data-type="method"><a href="wsemi.html#.pmChain">pmChain</a></li><li data-type="method"><a href="wsemi.html#.pmConvertResolve">pmConvertResolve</a></li><li data-type="method"><a href="wsemi.html#.pmHook">pmHook</a></li><li data-type="method"><a href="wsemi.html#.pmHookReject">pmHookReject</a></li><li data-type="method"><a href="wsemi.html#.pmIni">pmIni</a></li><li data-type="method"><a href="wsemi.html#.pmInvResolve">pmInvResolve</a></li><li data-type="method"><a href="wsemi.html#.pmMap">pmMap</a></li><li data-type="method"><a href="wsemi.html#.pmQueue">pmQueue</a></li><li data-type="method"><a href="wsemi.html#.pmSeries">pmSeries</a></li><li data-type="method"><a href="wsemi.html#.pmThrottle">pmThrottle</a></li><li data-type="method"><a href="wsemi.html#.pseudoRandom">pseudoRandom</a></li><li data-type="method"><a href="wsemi.html#.pseudoRandomIntRange">pseudoRandomIntRange</a></li><li data-type="method"><a href="wsemi.html#.pseudoRandomRange">pseudoRandomRange</a></li><li data-type="method"><a href="wsemi.html#.queue">queue</a></li><li data-type="method"><a href="wsemi.html#.rang">rang</a></li><li data-type="method"><a href="wsemi.html#.rep">rep</a></li><li data-type="method"><a href="wsemi.html#.repObj">repObj</a></li><li data-type="method"><a href="wsemi.html#.replace">replace</a></li><li data-type="method"><a href="wsemi.html#.replaceObj">replaceObj</a></li><li data-type="method"><a href="wsemi.html#.replacePlus">replacePlus</a></li><li data-type="method"><a href="wsemi.html#.round">round</a></li><li data-type="method"><a href="wsemi.html#.secd">secd</a></li><li data-type="method"><a href="wsemi.html#.sep">sep</a></li><li data-type="method"><a href="wsemi.html#.sepInt">sepInt</a></li><li data-type="method"><a href="wsemi.html#.sind">sind</a></li><li data-type="method"><a href="wsemi.html#.split">split</a></li><li data-type="method"><a href="wsemi.html#.str2aes">str2aes</a></li><li data-type="method"><a href="wsemi.html#.str2b64">str2b64</a></li><li data-type="method"><a href="wsemi.html#.str2hint">str2hint</a></li><li data-type="method"><a href="wsemi.html#.str2md5">str2md5</a></li><li data-type="method"><a href="wsemi.html#.str2obj">str2obj</a></li><li data-type="method"><a href="wsemi.html#.str2sha512">str2sha512</a></li><li data-type="method"><a href="wsemi.html#.str2u8arr">str2u8arr</a></li><li data-type="method"><a href="wsemi.html#.strCompare">strCompare</a></li><li data-type="method"><a href="wsemi.html#.strDiff">strDiff</a></li><li data-type="method"><a href="wsemi.html#.strFindFuzz">strFindFuzz</a></li><li data-type="method"><a href="wsemi.html#.strFindFuzzDyn">strFindFuzzDyn</a></li><li data-type="method"><a href="wsemi.html#.strFindSimilar">strFindSimilar</a></li><li data-type="method"><a href="wsemi.html#.strdelleft">strdelleft</a></li><li data-type="method"><a href="wsemi.html#.strdelright">strdelright</a></li><li data-type="method"><a href="wsemi.html#.strleft">strleft</a></li><li data-type="method"><a href="wsemi.html#.strmid">strmid</a></li><li data-type="method"><a href="wsemi.html#.strright">strright</a></li><li data-type="method"><a href="wsemi.html#.stru8arr2obj">stru8arr2obj</a></li><li data-type="method"><a href="wsemi.html#.tand">tand</a></li><li data-type="method"><a href="wsemi.html#.time2day">time2day</a></li><li data-type="method"><a href="wsemi.html#.time2hour">time2hour</a></li><li data-type="method"><a href="wsemi.html#.time2min">time2min</a></li><li data-type="method"><a href="wsemi.html#.timeTZ2day">timeTZ2day</a></li><li data-type="method"><a href="wsemi.html#.timeTZ2expire">timeTZ2expire</a></li><li data-type="method"><a href="wsemi.html#.timeTZ2hour">timeTZ2hour</a></li><li data-type="method"><a href="wsemi.html#.timeTZ2min">timeTZ2min</a></li><li data-type="method"><a href="wsemi.html#.timeTZ2past">timeTZ2past</a></li><li data-type="method"><a href="wsemi.html#.timems2day">timems2day</a></li><li data-type="method"><a href="wsemi.html#.timems2hour">timems2hour</a></li><li data-type="method"><a href="wsemi.html#.timems2min">timems2min</a></li><li data-type="method"><a href="wsemi.html#.timems2time">timems2time</a></li><li data-type="method"><a href="wsemi.html#.timemsTZ2day">timemsTZ2day</a></li><li data-type="method"><a href="wsemi.html#.timemsTZ2expire">timemsTZ2expire</a></li><li data-type="method"><a href="wsemi.html#.timemsTZ2hour">timemsTZ2hour</a></li><li data-type="method"><a href="wsemi.html#.timemsTZ2min">timemsTZ2min</a></li><li data-type="method"><a href="wsemi.html#.timemsTZ2past">timemsTZ2past</a></li><li data-type="method"><a href="wsemi.html#.timemsTZ2time">timemsTZ2time</a></li><li data-type="method"><a href="wsemi.html#.treeObj">treeObj</a></li><li data-type="method"><a href="wsemi.html#.treeToFilepath">treeToFilepath</a></li><li data-type="method"><a href="wsemi.html#.trim">trim</a></li><li data-type="method"><a href="wsemi.html#.u16arr2b64">u16arr2b64</a></li><li data-type="method"><a href="wsemi.html#.u16arr2u8arr">u16arr2u8arr</a></li><li data-type="method"><a href="wsemi.html#.u8arr2ab">u8arr2ab</a></li><li data-type="method"><a href="wsemi.html#.u8arr2b64">u8arr2b64</a></li><li data-type="method"><a href="wsemi.html#.u8arr2blob">u8arr2blob</a></li><li data-type="method"><a href="wsemi.html#.u8arr2bs">u8arr2bs</a></li><li data-type="method"><a href="wsemi.html#.u8arr2obj">u8arr2obj</a></li><li data-type="method"><a href="wsemi.html#.u8arr2str">u8arr2str</a></li><li data-type="method"><a href="wsemi.html#.u8arr2u16arr">u8arr2u16arr</a></li><li data-type="method"><a href="wsemi.html#.urlParse">urlParse</a></li><li data-type="method"><a href="wsemi.html#.verifyValue">verifyValue</a></li><li data-type="method"><a href="wsemi.html#.waitFun">waitFun</a></li></ul></li></ul>
</nav>
<div id="main">
<h1 class="page-title">wsemi</h1>
<section>
<header>
<h2>
wsemi
</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="wsemi"><span class="type-signature"></span>new wsemi<span class="signature">()</span><span class="type-signature"></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="-_class.mjs.html">_class.mjs</a>, <a href="-_class.mjs.html#line1">line 1</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id=".ab2blob"><span class="type-signature type-signature-static">(static) </span>ab2blob<span class="signature">(ab)</span><span class="type-signature"> → {Blob}</span></h4>
<dl class="details">
<dt class="tag-description">Description:</dt>
<dd class="tag-description"><ul class="dummy"><li><p>ArrayBuffer資料轉Blob資料</p>
<p>Unit Test: <a href="https://github.com/yuda-lyu/wsemi/blob/master/test/ab2blob.test.mjs">Github</a></p></li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="ab2blob.mjs.html">ab2blob.mjs</a>, <a href="ab2blob.mjs.html#line19">line 19</a>
</li></ul></dd>
</dl>
<h5 class="h5-examples">Example</h5>
<div style="position:relative;">
<div onclick="editOnline(this, 'ab2blob')" style="position:absolute; right:16px; bottom:12px; font-size:9pt; color:#fff; cursor:pointer; padding-bottom:3px; border-bottom:1px solid #fff;">Try in Codepen</div>
<pre class="prettyprint"><code>need test in browser
let ab = (new Uint8Array([66, 97, 115])).buffer
console.log(ab2blob(ab))
// => Blob {size: 3, type: ""}</code></pre>
</div>
<h5 class="h5-parameters">Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>ab</code></td>
<td class="type">
<span class="param-type">ArrayBuffer</span>
</td>
<td class="description last"><p>輸入ArrayBuffer資料</p></td>
</tr>
</tbody>
</table>
<h5 class="h5-returns">Returns:</h5>
<div class="param-desc">
<p>回傳Blob資料</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">Blob</span>
</dd>
</dl>
<h4 class="name" id=".ab2u8arr"><span class="type-signature type-signature-static">(static) </span>ab2u8arr<span class="signature">(ab)</span><span class="type-signature"> → {Unit8Array}</span></h4>
<dl class="details">
<dt class="tag-description">Description:</dt>
<dd class="tag-description"><ul class="dummy"><li><p>ArrayBuffer轉Unit8Array</p>
<p>Unit Test: <a href="https://github.com/yuda-lyu/wsemi/blob/master/test/ab2u8arr.test.mjs">Github</a></p></li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="ab2u8arr.mjs.html">ab2u8arr.mjs</a>, <a href="ab2u8arr.mjs.html#line18">line 18</a>
</li></ul></dd>
</dl>
<h5 class="h5-examples">Example</h5>
<div style="position:relative;">
<div onclick="editOnline(this, 'ab2u8arr')" style="position:absolute; right:16px; bottom:12px; font-size:9pt; color:#fff; cursor:pointer; padding-bottom:3px; border-bottom:1px solid #fff;">Try in Codepen</div>
<pre class="prettyprint"><code>let ab = (new Uint8Array([66, 97, 115])).buffer
console.log(ab2u8arr(ab))
// => new Uint8Array([66, 97, 115])</code></pre>
</div>
<h5 class="h5-parameters">Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>ab</code></td>
<td class="type">
<span class="param-type">ArrayBuffer</span>
</td>
<td class="description last"><p>輸入ArrayBuffer</p></td>
</tr>
</tbody>
</table>
<h5 class="h5-returns">Returns:</h5>
<div class="param-desc">
<p>回傳Unit8Array</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">Unit8Array</span>
</dd>
</dl>
<h4 class="name" id=".addExcelWorksheetFromData"><span class="type-signature type-signature-static">(static) </span>addExcelWorksheetFromData<span class="signature">(wb, data, sheetName<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Object}</span></h4>
<dl class="details">
<dt class="tag-description">Description:</dt>
<dd class="tag-description"><ul class="dummy"><li><p>由數據陣列或DOM的table元素轉成Excel的Worksheet物件,並加入至Excel的Workbook物件</p>
<p>Unit Test: <a href="https://github.com/yuda-lyu/wsemi/blob/master/test/addExcelWorksheetFromData.test.mjs">Github</a></p></li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="addExcelWorksheetFromData.mjs.html">addExcelWorksheetFromData.mjs</a>, <a href="addExcelWorksheetFromData.mjs.html#line67">line 67</a>
</li></ul></dd>
</dl>
<h5 class="h5-examples">Example</h5>
<div style="position:relative;">
<div onclick="editOnline(this, 'addExcelWorksheetFromData')" style="position:absolute; right:16px; bottom:12px; font-size:9pt; color:#fff; cursor:pointer; padding-bottom:3px; border-bottom:1px solid #fff;">Try in Codepen</div>
<pre class="prettyprint"><code>let data = [
['a', '123', 456],
[null, 'abc123', '', 111.222333],
]
let wb = createExcelWorkbook()
console.log(wb)
// => Workbook { SheetNames: [], Sheets: {} }
wb = addExcelWorksheetFromData(wb, data, 'tester')
console.log(JSON.stringify(wb, null, 2))
// => {
// "SheetNames": [
// "tester"
// ],
// "Sheets": {
// "tester": {
// "A1": {
// "v": "a",
// "t": "s"
// },
// "B1": {
// "v": "123",
// "t": "s"
// },
// "C1": {
// "v": 456,
// "t": "n"
// },
// "B2": {
// "v": "abc123",
// "t": "s"
// },
// "C2": {
// "v": "",
// "t": "s"
// },
// "D2": {
// "v": 111.222333,
// "t": "n"
// },
// "!ref": "A1:D2"
// }
// }
// }</code></pre>
</div>
<h5 class="h5-parameters">Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>wb</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>輸入Excel的Workbook物件</p></td>
</tr>
<tr>
<td class="name"><code>data</code></td>
<td class="type">
<span class="param-type">Array</span>
|
<span class="param-type">Element</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>輸入數據陣列或是DOM的table元素(Element)</p></td>
</tr>
<tr>
<td class="name"><code>sheetName</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
<code>'data'</code>
</td>
<td class="description last"><p>輸入輸出為Excel時所在分頁(sheet)名稱字串,預設為'data'</p></td>
</tr>
</tbody>
</table>
<h5 class="h5-returns">Returns:</h5>
<div class="param-desc">
<p>回傳Excel的Workbook物件</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">Object</span>
</dd>
</dl>
<h4 class="name" id=".addMonth"><span class="type-signature type-signature-static">(static) </span>addMonth<span class="signature">(g, n)</span><span class="type-signature"> → {String}</span></h4>
<dl class="details">
<dt class="tag-description">Description:</dt>
<dd class="tag-description"><ul class="dummy"><li><p>輸入年月並增加/減少月份數量</p>
<p>Unit Test: <a href="https://github.com/yuda-lyu/wsemi/blob/master/test/addMonth.test.mjs">Github</a></p></li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="addMonth.mjs.html">addMonth.mjs</a>, <a href="addMonth.mjs.html#line23">line 23</a>
</li></ul></dd>
</dl>
<h5 class="h5-examples">Example</h5>
<div style="position:relative;">
<div onclick="editOnline(this, 'addMonth')" style="position:absolute; right:16px; bottom:12px; font-size:9pt; color:#fff; cursor:pointer; padding-bottom:3px; border-bottom:1px solid #fff;">Try in Codepen</div>
<pre class="prettyprint"><code>console.log(addMonth('2019-01', 2))
// => '2019-03'
console.log(addMonth('2018-12', -1))
// => '2018-11'</code></pre>
</div>
<h5 class="h5-parameters">Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>g</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last"><p>輸入月時間字串</p></td>
</tr>
<tr>
<td class="name"><code>n</code></td>
<td class="type">
<span class="param-type">Integer</span>
</td>
<td class="description last"><p>輸入要增加的月份數量整數,可為正負值</p></td>
</tr>
</tbody>
</table>
<h5 class="h5-returns">Returns:</h5>
<div class="param-desc">
<p>回傳新的月時間字串</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">String</span>
</dd>
</dl>
<h4 class="name" id=".aes2str"><span class="type-signature type-signature-static">(static) </span>aes2str<span class="signature">(str, key, base64<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {String}</span></h4>
<dl class="details">
<dt class="tag-description">Description:</dt>
<dd class="tag-description"><ul class="dummy"><li><p>一般字串轉AES字串
使用AES-128-CBC加密,字串採用PKCS#7填充</p>
<p>Unit Test: <a href="https://github.com/yuda-lyu/wsemi/blob/master/test/aes2str.test.mjs">Github</a></p></li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="aes2str.mjs.html">aes2str.mjs</a>, <a href="aes2str.mjs.html#line29">line 29</a>
</li></ul></dd>
</dl>
<h5 class="h5-examples">Example</h5>
<div style="position:relative;">
<div onclick="editOnline(this, 'aes2str')" style="position:absolute; right:16px; bottom:12px; font-size:9pt; color:#fff; cursor:pointer; padding-bottom:3px; border-bottom:1px solid #fff;">Try in Codepen</div>
<pre class="prettyprint"><code>let str = '53616c7465645f5f47214797ac01bc03cceb69ebced4948501ab94ca9644a6dfd277456aead4432cb9c9d74c38c42c79'
let key = '1234567890abcdefghijk'
console.log(aes2str(str, key))
// => 'test中文abcdefghijklmn'</code></pre>
</div>
<h5 class="h5-parameters">Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>str</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>輸入一般字串</p></td>
</tr>
<tr>
<td class="name"><code>key</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>輸入加密key</p></td>
</tr>
<tr>
<td class="name"><code>base64</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
<code>false</code>
</td>
<td class="description last"><p>輸入是否轉為base64字串,預設為false</p></td>
</tr>
</tbody>
</table>
<h5 class="h5-returns">Returns:</h5>
<div class="param-desc">
<p>回傳經AES轉換後字串,採Hex/base64顯示</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">String</span>
</dd>
</dl>
<h4 class="name" id=".alive"><span class="type-signature type-signature-static">(static) </span>alive<span class="signature">(timeAlive<span class="signature-attributes">opt</span>, timeDetect<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Object}</span></h4>
<dl class="details">
<dt class="tag-description">Description:</dt>
<dd class="tag-description"><ul class="dummy"><li><p>偵測單元是否在線</p>
<p>Unit Test: <a href="https://github.com/yuda-lyu/wsemi/blob/master/test/alive.test.mjs">Github</a></p></li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="alive.mjs.html">alive.mjs</a>, <a href="alive.mjs.html#line86">line 86</a>
</li></ul></dd>
</dl>
<h5 class="h5-examples">Example</h5>
<div style="position:relative;">
<div onclick="editOnline(this, 'alive')" style="position:absolute; right:16px; bottom:12px; font-size:9pt; color:#fff; cursor:pointer; padding-bottom:3px; border-bottom:1px solid #fff;">Try in Codepen</div>
<pre class="prettyprint"><code>async function topAsync() {
function test1() {
return new Promise((resolve, reject) => {
let ms = []
let oAL = alive({ timeAlive: 1500 })
let t = Date.now()
let a = { data: 123 }
let b = { data: '34.56' }
setTimeout(() => {
console.log(parseInt((Date.now() - t)) + 'ms', 'trigger a1')
oAL.trigger('a', a)
}, 500)
setTimeout(() => {
console.log(parseInt((Date.now() - t)) + 'ms', 'trigger a2')
oAL.trigger('a', a)
}, 1900)
setTimeout(() => {
console.log(parseInt((Date.now() - t)) + 'ms', 'trigger b1')
oAL.trigger('b', b)
}, 1000)
setTimeout(() => {
console.log(parseInt((Date.now() - t)) + 'ms', 'trigger b2')
oAL.trigger('b', b)
}, 3000)
oAL.on('message', function({ eventName, key, data, now }) {
console.log(parseInt((Date.now() - t)) + 'ms', { eventName, key, data, now })
ms.push(eventName + '|' + key)
})
setTimeout(() => {
resolve(ms)
}, 5000)
})
}
console.log('test1')
let r1 = await test1()
console.log(JSON.stringify(r1))
// test1
// 503ms trigger a1
// 508ms { eventName: 'enter', key: 'a', data: { data: 123 }, now: 1 }
// 1001ms trigger b1
// 1003ms { eventName: 'enter', key: 'b', data: { data: '34.56' }, now: 2 }
// 1901ms trigger a2
// 2523ms { eventName: 'leave', key: 'b', data: { data: '34.56' }, now: 1 }
// 3002ms trigger b2
// 3004ms { eventName: 'enter', key: 'b', data: { data: '34.56' }, now: 2 }
// 3430ms { eventName: 'leave', key: 'a', data: { data: 123 }, now: 1 }
// 4544ms { eventName: 'leave', key: 'b', data: { data: '34.56' }, now: 0 }
// ["enter|a","enter|b","leave|b","enter|b","leave|a","leave|b"]
}
topAsync().catch(() => {})</code></pre>
</div>
<h5 class="h5-parameters">Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>timeAlive</code></td>
<td class="type">
<span class="param-type">Integer</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
<code>10000</code>
</td>
<td class="description last"><p>輸入判斷單元是否斷線之延時整數,單位為毫秒ms,預設為10000</p></td>
</tr>
<tr>
<td class="name"><code>timeDetect</code></td>
<td class="type">
<span class="param-type">Integer</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
<code>50</code>
</td>
<td class="description last"><p>輸入偵測佇列間隔時間整數,單位為毫秒ms,預設為50</p></td>
</tr>
</tbody>
</table>
<h5 class="h5-returns">Returns:</h5>
<div class="param-desc">
<p>回傳事件物件,可呼叫事件on、trigger、get。trigger給予單元的唯一key字串與攜帶數據data物件,on為監聽事件,需自行監聽message事件取得單元進出事件。get事件可取得alive內視為存活的單元清單</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">Object</span>
</dd>
</dl>
<h4 class="name" id=".arr2dt"><span class="type-signature type-signature-static">(static) </span>arr2dt<span class="signature">(keys, values<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Object}</span></h4>
<dl class="details">
<dt class="tag-description">Description:</dt>
<dd class="tag-description"><ul class="dummy"><li><p>結合keys與values成為物件</p>
<p>Unit Test: <a href="https://github.com/yuda-lyu/wsemi/b