dingtalk-jsapi
Version:
钉钉 模块化 多端统一 API
1 lines • 2.25 kB
JavaScript
;var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e},__assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.chooseWikiBook=exports.chooseWikiPages=exports.CHANNEL_EVENT=exports.CHANNEL_NAMESPACE=void 0;var env_1=require("../lib/env"),openModal_1=require("../api/biz/util/openModal"),openLink_1=require("../api/biz/util/openLink"),uniEvent_1=require("../plugin/uniEvent");exports.CHANNEL_NAMESPACE="wiki_picker",exports.CHANNEL_EVENT="wiki_picker_submit";var WIKI_URL="https://notes.dingtalk.com",unsubscribe=function(){},channel=uniEvent_1.getChannel(exports.CHANNEL_NAMESPACE),stringifyQuery=function(e){if(e){var n=new Array;if(Object.keys(e).forEach(function(r){var i=e[r];void 0!==i&&null!==i&&n.push(r+"="+encodeURIComponent(i))}),n.length>0)return n.join("&")}return""},openPicker=function(e,n,r){var i=env_1.getENV();if(i.platform===env_1.ENV_ENUM.notInDingTalk)throw new Error("Do not support the current environment:notInDingTalk");if(i.platform===env_1.ENV_ENUM.pc)return new Promise(function(i,t){openModal_1.default({url:e+"?"+stringifyQuery(__assign({},r)),size:"large",title:n}).then(function(e){if(e){var n=void 0;if("string"==typeof e){var r=JSON.parse(e);n=r.message||r}else n=e.message||e;if(n)return"string"==typeof n?void i(JSON.parse(n)):void i(n)}t(new Error("No data received"))})});var t=__assign({},r);return t.showmenu=!1,t.dd_progress=!1,t.title=n,unsubscribe(),new Promise(function(n,r){var i=function(e){return unsubscribe(),e&&e.data?("string"==typeof e.data&&(e.data=JSON.parse(e.data)),e.data.data?void n(e.data.data):void r(new Error("No data received"))):void r(new Error("No data received"))};unsubscribe=function(){channel.unsubscribe(exports.CHANNEL_EVENT,i),unsubscribe=function(){}},openLink_1.default({url:e+"?"+stringifyQuery(__assign({},t))}).then(function(){channel.subscribe(exports.CHANNEL_EVENT,i)})})};exports.chooseWikiPages=function(e,n){return openPicker(WIKI_URL+"/picker",e,n)},exports.chooseWikiBook=function(e,n){return openPicker(WIKI_URL+"/picker/pickbook",e,n)};