@molejs/mole-jssdk
Version:
mole app jssdk
1,919 lines (1,702 loc) • 89.7 kB
JavaScript
function dingTalkPolyfill () {
return {
openNewPage: function openNewPage(_ref) {
var url = _ref.url;
window.dd.biz.util.openLink({
url: url });
},
get version() {
return window.dd.version;
}
};
}
var ua = window.navigator.userAgent;
function dynamicLoadJs(url, callback) {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
if (typeof callback == 'function') {
script.onload = script.onreadystatechange = function () {
if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") {
callback();
script.onload = script.onreadystatechange = null;
}
};
}
head.appendChild(script);
}
var platform = {
get iPhoneX() {
return (/iphone/gi.test(ua) && screen.height == 812 && screen.width == 375
);
},
get iPhoneXR() {
return (/iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 2 && window.screen.width === 414 && window.screen.height === 896
);
},
get iPhoneXSMax() {
return (/iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 3 && window.screen.width === 414 && window.screen.height === 896
);
},
get os() {
if (ua.match(/(Android);?[\s\/]+([\d.]+)?/)) {
return 'android';
} var ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/);
if (ipad || iphone || ipod) return 'ios';
return '';
},
get container() {
if (ua.toLowerCase().match(/upaasapp/i)) return 'italent';
if (ua.toLowerCase().match(/tita/i)) return 'tita';
if (ua.match(/DingTalk/i)) return 'dingTalk';
if (ua.match(/MicroMessenger/i)) return 'wechart';
if (ua.match(/wxwork/i)) return 'wxwork';
return 'browser';
},
get OS() {
if (ua.match(/(Android);?[\s\/]+([\d.]+)?/)) {
return 'android';
} var ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/);
if (ipad || iphone || ipod) return 'ios';
return '';
},
get ShellName() {
if (ua.toLowerCase().match(/upaasapp/i)) return 'italent';
if (ua.toLowerCase().match(/tita/i)) return 'tita';
if (ua.match(/DingTalk/i)) return 'dingTalk';
if (ua.match(/MicroMessenger/i)) return 'wechart';
if (ua.match(/wxwork/i)) return 'wxwork';
return 'browser';
},
get web() {
if (/mobile|android|iphone|ipad|phone/i.test(ua) && !platform.bsAppAndroid && !platform.bsAppIOS) {
return true;
}
return false;
},
get ios() {
return platform.os === 'ios';
},
get android() {
return platform.os === 'android';
},
get weixin() {
return !!ua.match(/MicroMessenger/i);
},
get weixinWork() {
return !!ua.match(/wxwork/i);
},
get bsAppIOS() {
return !!ua.toLowerCase().match(/beisen/i) && platform.ios && platform.apiCloud;
},
get beisenApp() {
return platform.bsAppIOS || platform.bsAppAndroid;
},
get bsAppAndroid() {
return !!ua.toLowerCase().match(/beisen/i) && platform.android;
},
get apiCloud() {
return !!ua.toLowerCase().match(/apicloud/i);
},
get titaApp() {
return !!ua.toLowerCase().match(/tita/i);
},
get titav2App() {
return !!ua.match(/Titav2/i);
},
get upaasApp() {
return !!ua.toLowerCase().match(/upaasapp/i);
},
get dingTalk() {
return !!ua.match(/DingTalk/i);
},
get bayer() {
return !!ua.match(/Bayer/i);
},
get iTalentIOS() {
return platform.ios && platform.apiCloud && platform.upaasApp;
},
get iTalentAndroid() {
return platform.android && platform.upaasApp;
},
get iTalentWeb() {
return false;
},
get api() {
return platform.bsAppIOS ? window.api || window.top.api || {} : window.BSJSBridge;
},
waitApi: function waitApi() {
var t = void 0;
return new Promise(function (reslove, reject) {
if (!!ua.match(/DingTalk/i)) {
return dynamicLoadJs('//g.alicdn.com/dingding/dingtalk-jsapi/2.3.0/dingtalk.open.js', function () {
window.api = dingTalkPolyfill(window.dd);
return reslove({});
});
}
if (platform.bsAppAndroid) {
if (window.BSJSBridge || window.parent.BSJSBridge) {
return reslove({
api: window.BSJSBridge || window.parent.BSJSBridge
});
}
t = setInterval(function () {
if (window.BSJSBridge || window.parent.BSJSBridge) {
clearInterval(t);
return reslove({
api: window.BSJSBridge || window.parent.BSJSBridge
});
}
}, 16);
} else if (platform.bsAppIOS) {
if (window.api || window.parent.api) {
return reslove({
api: window.api || window.parent.api
});
}
t = setInterval(function () {
if (window.api || window.parent.api) {
clearInterval(t);
return reslove({
api: window.api || window.parent.api
});
}
}, 16);
} else {
return reslove({});
}
});
},
waitApiV2: function waitApiV2() {
var t = void 0;
return new Promise(function (reslove, reject) {
if (platform.dingTalk) {
return dynamicLoadJs('//g.alicdn.com/dingding/dingtalk-jsapi/2.3.0/dingtalk.open.js', function () {
window.api = dingTalkPolyfill(window.dd);
return reslove({});
});
}
if (platform.bsAppAndroid) {
if (window.bsapi || window.parent.bsapi) {
return reslove({
api: window.bsapi || window.parent.bsapi
});
}
t = setInterval(function () {
if (window.bsapi || window.parent.bsapi) {
clearInterval(t);
return reslove({
api: window.bsapi || window.parent.bsapi
});
}
}, 16);
} else if (platform.bsAppIOS) {
if (window.api || window.parent.api) {
return reslove({
api: window.api || window.parent.api
});
}
t = setInterval(function () {
if (window.api || window.parent.api) {
clearInterval(t);
return reslove({
api: window.api || window.parent.api
});
}
}, 16);
}
});
},
select: function select() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var mobile = params.mobile,
androidApp = params.androidApp,
iosApp = params.iosApp,
beisenApp = params.beisenApp,
weixin = params.weixin,
weixinWork = params.weixinWork,
dingTalk = params.dingTalk;
var cb = void 0;
if (platform.bsAppIOS && iosApp) {
cb = iosApp;
} else if (platform.bsAppAndroid && androidApp) {
cb = androidApp;
} else if (platform.dingTalk && dingTalk) {
cb = dingTalk;
} else if (platform.weixin && weixin) {
cb = weixin;
} else if (platform.weixinWork && weixinWork) {
cb = weixinWork;
} else {
cb = mobile;
}
if (platform.beisenApp && beisenApp) {
cb = beisenApp;
}
if (typeof cb === 'function') {
return cb();
}
}
};
function getApi() {
return platform.select({
iosApp: function iosApp() {
return window.api || window.parent.api;
},
androidApp: function androidApp() {
return window.BSJSBridge || window.parent.BSJSBridge;
}
});
}
function notify() {
var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var cb = arguments[1];
getApi().callHandler('bs-droid-event', {
param: param
}, function (ret, err) {
return cb && cb(window.JSON.parse(ret), err);
});
}
function call() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var number = params.number,
_params$type = params.type,
type = _params$type === undefined ? 'tel' : _params$type;
return platform.select({
iosApp: function iosApp() {
return window.api.call({
number: number,
type: type
});
},
androidApp: function androidApp() {
notify({
action: 8,
number: number
});
}
});
}
function promiseToCallback(prom, callback) {
return prom.then(function (arg) {
callback && callback(null, arg);
return arg;
}).catch(function (err) {
callback && callback(err);
return Promise.reject(err);
});
}
function getApi$1() {
return new Promise(function (resolve, reject) {
if (platform.ios) {
var BSApi = window.api.require('BSApi');
resolve(BSApi);
} else {
resolve(window.bsapi);
}
});
}
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
var classCallCheck = function (instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
};
var createClass = function () {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function (Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
}();
var _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
var get = function get(object, property, receiver) {
if (object === null) object = Function.prototype;
var desc = Object.getOwnPropertyDescriptor(object, property);
if (desc === undefined) {
var parent = Object.getPrototypeOf(object);
if (parent === null) {
return undefined;
} else {
return get(parent, property, receiver);
}
} else if ("value" in desc) {
return desc.value;
} else {
var getter = desc.get;
if (getter === undefined) {
return undefined;
}
return getter.call(receiver);
}
};
var inherits = function (subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: false,
writable: true,
configurable: true
}
});
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
};
var objectWithoutProperties = function (obj, keys) {
var target = {};
for (var i in obj) {
if (keys.indexOf(i) >= 0) continue;
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
target[i] = obj[i];
}
return target;
};
var possibleConstructorReturn = function (self, call) {
if (!self) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return call && (typeof call === "object" || typeof call === "function") ? call : self;
};
var MoleError = function (_Error) {
inherits(MoleError, _Error);
function MoleError(msg) {
classCallCheck(this, MoleError);
return possibleConstructorReturn(this, (MoleError.__proto__ || Object.getPrototypeOf(MoleError)).call(this, msg));
}
createClass(MoleError, [{
key: "toString",
value: function toString() {
return "[MoleError] " + get(MoleError.prototype.__proto__ || Object.getPrototypeOf(MoleError.prototype), "toString", this).call(this);
}
}]);
return MoleError;
}(Error);
var ChooseImageError = function (_MoleError) {
inherits(ChooseImageError, _MoleError);
function ChooseImageError(msg) {
classCallCheck(this, ChooseImageError);
var _this = possibleConstructorReturn(this, (ChooseImageError.__proto__ || Object.getPrototypeOf(ChooseImageError)).call(this, msg));
_this.isUserCancelled = false;
_this.isEmptyResult = false;
return _this;
}
return ChooseImageError;
}(MoleError);
function chooseImage(params, cb) {
var prom = getApi$1().then(function (api) {
return new Promise(function (resolve, reject) {
api.initBSImageSelector(params, function (ret, err) {
if (!ret) {
reject(new ChooseImageError(err || ''));
return;
}
if (ret.code !== 1) {
var _err = new ChooseImageError(ret.msg || '');
_err.isUserCancelled = ret.code === -1;
reject(_err);
return;
}
var r = [];
if (Array.isArray(ret.selectImageArray)) {
r = ret.selectImageArray;
}
if (r.length === 0) {
var _err2 = new ChooseImageError();
_err2.isEmptyResult = true;
reject(_err2);
return;
}
resolve(r);
});
});
});
return promiseToCallback(prom, cb);
}
function closeAll() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _params$isWin = params.isWin,
_params$isFrame = params.isFrame,
restParam = objectWithoutProperties(params, ['isWin', 'isFrame']);
if (platform.bayer) {
var jsfun = 'window.openHome && openHome()';
return window.api.execScript({
name: 'root',
script: jsfun
});
}
platform.select({
mobile: function mobile() {},
iosApp: function iosApp() {
var tag = params.tag,
restParam = objectWithoutProperties(params, ['tag']);
__closeToTargetPage(_extends({
name: tag || window.api.pageParam.closeToWinName
}, restParam));
},
androidApp: function androidApp() {
notify(_extends({}, params, {
action: 13
}));
}
});
}
function __closeToTargetPage() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var name = params.name,
isFrame = params.isFrame,
animation = params.animation,
restParam = objectWithoutProperties(params, ['name', 'isFrame', 'animation']);
if (window.BSAppTransfer) {
return window.BSAppTransfer.toNative && window.BSAppTransfer.toNative(window.JSON.stringify({ 'target': '' }));
}
if (isFrame) {
if (animation) {
window.api.animation(_extends({
name: name || window.api.frameName
}, animation), function () {
window.api.closeFrame(_extends({
name: name || window.api.frameName
}, restParam));
});
}
return;
}
window.api.closeToWin(_extends({
name: name
}, restParam));
}
function closeToWin(params) {
platform.select({
iosApp: function iosApp() {
window.api.closeToWin(params);
},
androidApp: function androidApp() {
notify(_extends({}, params, {
action: 13
}));
}
});
}
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
}
// Detect buggy property enumeration order in older V8 versions.
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
test1[5] = 'de';
if (Object.getOwnPropertyNames(test1)[0] === '5') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test2 = {};
for (var i = 0; i < 10; i++) {
test2['_' + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
return test2[n];
});
if (order2.join('') !== '0123456789') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test3 = {};
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {
return false;
}
return true;
} catch (err) {
// We don't expect any of the above to throw, but better to be safe.
return false;
}
}
var objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
function dynamicLoadJs$1(url, callback) {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
if (typeof callback == 'function') {
script.onload = script.onreadystatechange = function () {
if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") {
callback();
script.onload = script.onreadystatechange = null;
}
};
}
head.appendChild(script);
}
function getJSBridge() {
var t = void 0;
var count = 0;
return new Promise(function (reslove, reject) {
if (platform.dingTalk) {
return dynamicLoadJs$1('//g.alicdn.com/dingding/dingtalk-jsapi/2.3.0/dingtalk.open.js', function () {
return reslove({});
});
}
if (platform.bsAppAndroid) {
if (window.BSJSBridge) {
return reslove({
api: window.BSJSBridge
});
}
t = setInterval(function () {
count++;
if (window.BSJSBridge) {
clearInterval(t);
count = 0;
return reslove({
api: window.BSJSBridge
});
}
if (count <= 300) {
clearInterval(t);
count = 0;
return reslove({
api: window.BSJSBridge
});
}
}, 20);
} else if (platform.bsAppIOS) {
if (window.api) {
count = 0;
return reslove({
api: window.api
});
}
t = setInterval(function () {
count++;
if (window.api) {
count = 0;
clearInterval(t);
return reslove({
api: window.api
});
}
if (count >= 500) {
clearInterval(t);
count = 0;
return reject();
}
}, 20);
} else {
return reslove({});
}
});
}
function Emitter(obj) {
if (obj) return mixin(obj);
}
function mixin(obj) {
for (var key in Emitter.prototype) {
obj[key] = Emitter.prototype[key];
}
return obj;
}
Emitter.prototype.on = Emitter.prototype.addEventListener = function (event, fn) {
this._callbacks = this._callbacks || {};
(this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn);
this._callbacks['$' + event] = this._callbacks['$' + event].slice(this._callbacks['$' + event].length - 1);
return this;
};
Emitter.prototype.once = function (event, fn) {
function on() {
this.off(event, on);
fn.apply(this, arguments);
}
on.fn = fn;
this.on(event, on);
return this;
};
Emitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function (event, fn) {
this._callbacks = this._callbacks || {};
if (0 == arguments.length) {
this._callbacks = {};
return this;
}
var callbacks = this._callbacks['$' + event];
if (!callbacks) return this;
if (1 == arguments.length) {
delete this._callbacks['$' + event];
return this;
}
var cb;
for (var i = 0; i < callbacks.length; i++) {
cb = callbacks[i];
if (cb === fn || cb.fn === fn) {
callbacks.splice(i, 1);
break;
}
}
return this;
};
Emitter.prototype.emit = function (event) {
this._callbacks = this._callbacks || {};
var args = [].slice.call(arguments, 1),
callbacks = this._callbacks['$' + event];
if (callbacks) {
callbacks = callbacks.slice(0);
for (var i = 0, len = callbacks.length; i < len; ++i) {
callbacks[i].apply(this, args);
}
}
return this;
};
Emitter.prototype.listeners = function (event) {
this._callbacks = this._callbacks || {};
return this._callbacks['$' + event] || [];
};
Emitter.prototype.hasListeners = function (event) {
return !!this.listeners(event).length;
};
var getEmitterInstance = (function () {
var emitter = window.__moleAppemitter || window.top.__moleAppemitter || new Emitter();
window.__moleAppemitter = emitter;
return emitter;
});
function trigger(params) {
var _ref = params || {},
name = _ref.name,
extra = _ref.extra;
function __commFunc() {
var emitter = getEmitterInstance();
emitter.emit(name, extra);
}
platform.select({
mobile: function mobile() {
__commFunc();
},
iosApp: function iosApp() {
window.api.sendEvent({
name: name,
extra: extra
});
},
androidApp: function androidApp() {
if (platform.titaApp || platform.titav2App) {
return __commFunc();
}
if (window.bsapi && typeof window.bsapi.sendEvent === 'function') {
return window.bsapi.sendEvent({
name: name,
extra: extra,
param: extra
});
}
}
});
}
function off(params) {
var _ref = params || {},
name = _ref.name;
function __commFunc() {
var emitter = getEmitterInstance();
emitter.off(name);
}
getJSBridge().then(function () {
platform.select({
mobile: function mobile() {
__commFunc();
},
iosApp: function iosApp() {
window.api.removeEventListener({
name: name
});
},
androidApp: function androidApp() {
__commFunc();
}
});
});
}
function on(params, cb) {
var _ref = params || {},
name = _ref.name,
extra = _ref.extra;
function __commFunc() {
var emitter = getEmitterInstance();
emitter.on(name, function (args) {
var ret = {
value: args,
extra: extra
};
cb && cb(ret);
});
}
platform.select({
mobile: function mobile() {
__commFunc();
},
iosApp: function iosApp() {
if (!window.api && !window.top.api) {
return;
}
window.api.addEventListener({
name: name,
extra: extra
}, cb);
},
androidApp: function androidApp() {
if (name === 'keyback') {
return notify({
action: 99,
isKeyBackControl: true
}, cb);
}
if (window.bsapi && window.bsapi.addEventListener) {
window.bsapi.addEventListener({
name: name
}, cb);
} else {
__commFunc();
}
}
});
}
var iconIOSMapings = {
history: 'sys-icon-banci',
back: 'm-sys-backward',
close: 'm-sys-guanbi',
share: 'upaas-icon-share',
'm-sys-backward': 'm-sys-backward',
'm-sys-guanbi': 'm-sys-guanbi',
'upaas-icon-share': 'upaas-icon-share'
};
var iconAndroidMapings = {
history: 'history',
back: 'back',
close: 'close',
share: 'upaas-icon-share'
};
var navBarHelper = {
getIcon: function getIcon(iconName) {
return platform.select({
iosApp: function iosApp() {
return iconIOSMapings[iconName];
},
androidApp: function androidApp() {
return iconAndroidMapings[iconName];
}
});
},
getColor: function getColor() {
var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var defaultColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '#fafafa';
return platform.select({
iosApp: function iosApp() {
return color;
},
androidApp: function androidApp() {
if (color.match(/#fff|#ffffff|(rgb)a?\(255,/gi)) {
return defaultColor;
}
return color;
}
});
},
getItemStyle: function getItemStyle(data) {
var _ref = data.style || {
color: '#667580'
},
fontSize = _ref.fontSize,
_ref$color = _ref.color,
color = _ref$color === undefined ? '#667580' : _ref$color;
var newColor = this.getColor(color);
return platform.select({
iosApp: function iosApp() {
return {
style: _extends({
color: '#667580'
}, data.style)
};
},
androidApp: function androidApp() {
return {
fontSize: fontSize,
color: newColor,
textColor: newColor
};
}
});
},
isControl: function isControl(data) {
return !data.control || data.useDefault || data.init;
},
getDefaultCallback: function getDefaultCallback(data) {
var type = data.type;
if (type === 'back') {
return 'handleBack';
} else if (type === 'close') {
return 'handleClose';
} else {
return data.callback;
}
}
};
var default_leftItem = [{
type: "back",
icon: "m-sys-backward",
useDefault: true,
control: false,
style: {
color: '#667580'
},
callback: "handleBack"
}];
function configNavigation(options, cb) {
var params = objectAssign({}, options);
var titleItem = params.titleItem,
_params$leftItem = params.leftItem,
leftItem = _params$leftItem === undefined ? default_leftItem : _params$leftItem,
rightItem = params.rightItem,
_params$reset = params.reset,
reset = _params$reset === undefined ? true : _params$reset,
pageId = params.pageId,
bgColor = params.bgColor,
other = objectWithoutProperties(params, ["titleItem", "leftItem", "rightItem", "reset", "pageId", "bgColor"]);
getJSBridge().then(function () {
if (!pageId) {
pageId = params.winName || platform.ios && window.api && window.api.winName;
}
if (!titleItem.type) {
titleItem.cat = "titleItem";
}
titleItem.pageId = pageId;
if (rightItem) {
rightItem.forEach(function (item, index) {
objectAssign(item, _extends({
cat: "rightItem",
index: index,
pageId: pageId,
init: !item.control,
useDefault: !item.control,
lable: item.text,
icon: navBarHelper.getIcon(item.icon || item.type) || item.icon
}, navBarHelper.getItemStyle(item)));
var _callback = navBarHelper.getDefaultCallback(item);
item.callback = navBarHelper.isControl(item) ? _callback : item.callback || "defaultCb";
});
}
if (leftItem) {
if (platform.titaApp || platform.titav2App) {
leftItem = leftItem.filter(function (item) {
return item.type !== "close";
});
}
leftItem.forEach(function (item, index) {
objectAssign(item, _extends({
cat: "leftItem",
index: index,
pageId: pageId,
init: !item.control,
type: !item.text || item.text.length == 0 ? item.type : "text",
useDefault: !item.control,
icon: navBarHelper.getIcon(item.icon || item.type) || item.icon
}, navBarHelper.getItemStyle(item)));
var _callback = navBarHelper.getDefaultCallback(item);
item.callback = navBarHelper.isControl(item) ? _callback : item.callback || "defaultCb";
});
}
params.leftItem = leftItem;
params.rightItem = rightItem;
params.titleItem = titleItem;
params.pageId = pageId;
params.bgColor = navBarHelper.getColor(bgColor, "#fafafa");
params.color = navBarHelper.getColor(params.color, "white");
platform.select({
iosApp: function iosApp() {
if (!window.api && !window.top.api) {
return;
}
on({
name: "monitorNavigationEvent"
}, function (ret) {
var _ret$value = ret.value,
cat = _ret$value.cat,
init = _ret$value.init,
type = _ret$value.type;
if (pageId === ret.value.pageId) {
if (init && type === "close") {
return closeAll({
tag: window.api.pageParam.closeToWinName || "upaas_win_entrance"
});
}
cb && cb({
cat: cat,
data: _extends({}, ret.value, {
winName: undefined
})
});
}
});
setTimeout(function () {
trigger({
name: "configNavigation",
extra: _extends({
winName: pageId,
pageId: pageId,
reset: reset
}, params, other)
});
}, 0);
},
androidApp: function androidApp() {
on({
name: "event_23"
}, function (ret) {
var dto = JSON.parse(ret.value);
if (dto.length) {
dto = dto[0];
}
if (dto.init && dto.type === "close") {
return closeAll({});
}
if (dto.cat === "titleItem") {
return cb && cb({
cat: dto.cat,
data: _extends({}, dto)
});
}
cb && cb(_extends({}, dto, {
data: _extends({}, params[dto.cat][dto.index])
}));
});
on({
name: "event_25"
}, function (ret) {
var dto = JSON.parse(ret.value);
if (dto.init && dto.type === "close") {
return closeAll({});
}
cb && cb(_extends({}, dto, {
data: params[dto.cat][dto.index]
}));
});
function callHandler() {
window.BSJSBridge.callHandler("bs-get-header", {
param: params
});
}
callHandler();
}
});
});
}
function connectionType() {
return platform.select({
mobile: function mobile() {
return '';
},
iosApp: function iosApp() {
return window.api.connectionType;
},
androidApp: function androidApp() {
return window.bsapi.connectionType;
}
});
}
function getJSBridgeSync() {
return window.bsapi || window.api;
}
function deviceId() {
return platform.select({
mobile: function mobile() {
return '';
},
beisenApp: function beisenApp() {
return getJSBridgeSync().deviceId;
}
});
}
function frameName() {
return platform.select({
iosApp: function iosApp() {
return window.api.frameName;
},
androidApp: function androidApp() {
return '';
}
});
}
function getLocation() {
var _cb = arguments[0];
if (arguments.length === 2) {
_cb = arguments[1];
}
platform.select({
iosApp: function iosApp() {
var BSAttendance = window.api.require('BSAttendance');
BSAttendance.getCurrentLocation({
isGetCurLocation: true
}, _cb);
},
androidApp: function androidApp() {
notify({
isGetCurLocation: true,
action: 95
}, _cb);
}
});
}
function getWifiMacAddress(cb) {
platform.select({
iosApp: function iosApp() {
var BSAttendance = window.api.require('BSAttendance');
BSAttendance.getCurrentLocation({
isGetCurLocation: false
}, cb);
},
androidApp: function androidApp() {
notify({
isGetCurLocation: false,
action: 95
}, cb);
}
});
}
function goBack() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _params$isWin = params.isWin,
isWin = _params$isWin === undefined ? true : _params$isWin,
_params$isFrame = params.isFrame,
restParam = objectWithoutProperties(params, ['isWin', 'isFrame']);
if (document.referrer == "" && location.hash.indexOf('fromURL=homedetail') < 0 && window.BSAppTransfer && window.BSAppTransfer.toNative) {
window.BSAppTransfer && window.BSAppTransfer.toNative && window.BSAppTransfer.toNative(JSON.stringify({ 'target': '' }));
return false;
}
platform.select({
mobile: function mobile() {},
iosApp: function iosApp() {
if (isWin) {
return window.api.closeWin(restParam);
} else {
return window.api.closeFrame(restParam);
}
},
androidApp: function androidApp() {
try {
if (window.history.length > 1) {
history.back();
} else {
notify(_extends({
isCurrentPage: true
}, restParam, {
action: 13
}));
}
} catch (e) {
notify(_extends({
isCurrentPage: true
}, restParam, {
action: 13
}));
}
}
});
}
function warning (msg) {
return new TypeError(msg);
}
function openBSWkWebView() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
platform.select({
iosApp: function iosApp() {
var url = params.url,
_params$title = params.title,
title = _params$title === undefined ? '' : _params$title,
_params$isShowNav = params.isShowNav,
isShowNav = _params$isShowNav === undefined ? true : _params$isShowNav,
_params$isShowProgres = params.isShowProgressView,
isShowProgressView = _params$isShowProgres === undefined ? true : _params$isShowProgres,
isShowDocumentTitle = params.isShowDocumentTitle,
isShowCloseBtn = params.isShowCloseBtn,
restParams = objectWithoutProperties(params, ['url', 'title', 'isShowNav', 'isShowProgressView', 'isShowDocumentTitle', 'isShowCloseBtn']);
if (!url) {
return warning('在调用openNativeWebView的时候, url不存在');
}
var BSWebView = window.api.require('BSWebview');
BSWebView.open(_extends({
url: url,
title: title,
isShowNav: isShowNav,
disableRelease: disableRelease,
isShowProgressView: isShowProgressView,
isShowDocumentTitle: isShowDocumentTitle
}, restParams));
}
});
}
var default_leftItem$1 = [{
type: 'back',
icon: 'm-sys-backward',
useDefault: true,
control: false,
callback: 'handleBack'
}];
function getiOSApi() {
return window.api || window.top.api;
}
function openNewPage(options) {
platform.waitApi().then(function () {
var params = objectAssign({}, options);
var url = params.url,
pageId = params.pageId,
_params$navBar = params.navBar,
navBar = _params$navBar === undefined ? {
show: true
} : _params$navBar,
_params$header = params.header,
header = _params$header === undefined ? {} : _params$header,
_params$referrer = params.referrer,
referrer = _params$referrer === undefined ? '' : _params$referrer,
tag = params.tag,
_params$features = params.features,
features = _params$features === undefined ? {} : _params$features,
_params$winAttrs = params.winAttrs,
winAttrs = _params$winAttrs === undefined ? {} : _params$winAttrs,
restParam = objectWithoutProperties(params, ['url', 'pageId', 'navBar', 'header', 'referrer', 'tag', 'features', 'winAttrs']);
var _navBar$show = navBar.show,
navBarShow = _navBar$show === undefined ? true : _navBar$show;
if (navBarShow) {
navBar.options = objectAssign({}, {
leftItem: default_leftItem$1
}, navBar.options);
if (navBar.options.rightItem && navBar.options.rightItem.length > 0) {
navBar.options.rightItem.forEach(function (item) {
objectAssign(item, _extends({
useDefault: !item.control,
init: !item.control,
icon: navBarHelper.getIcon(item.icon || item.type)
}, navBarHelper.getItemStyle(item)));
if (!item.control || item.useDefault || item.init) {
item.callback = '$$rightback$$';
}
});
}
if (platform.titaApp || platform.titav2App) {
navBar.options.leftItem = navBar.options.leftItem.filter(function (item) {
return item.type !== 'close';
});
}
navBar.options.leftItem.forEach(function (item) {
objectAssign(item, _extends({
useDefault: !item.control,
init: !item.control,
icon: navBarHelper.getIcon(item.icon || item.type)
}, navBarHelper.getItemStyle(item)));
if (item.type === 'back') {
if (!item.control || item.useDefault || item.init) {
item.callback = 'handleBack';
} else {
item.callback = item.callback || '$$handleBack$$';
}
}
if (item.type === 'close') {
if (!item.control || item.useDefault || item.init) {
item.callback = 'handleClose';
} else {
item.callback = '$$handleClose$$';
}
}
});
objectAssign(navBar, _extends({}, header, {
enable: navBar.show || navBar.enable || header.show,
options: {
pageParam: navBar.options
}
}));
}
platform.select({
dingTalk: function dingTalk() {
window.dd.biz.util.openLink({
url: url });
},
mobile: function mobile() {
window.location.href = url;
},
iosApp: function iosApp() {
getiOSApi().sendEvent({
name: 'upaas_page_jump',
extra: _extends({
href: url,
from: referrer || 'paasapp',
closeToWinName: tag || getiOSApi().winName,
header: navBar
}, features, restParam, {
winName: pageId || getiOSApi().winName,
winSettings: winAttrs
})
});
},
androidApp: function androidApp() {
notify(_extends({
action: 12,
type: navBar.enable || navBarShow ? 2 : 4,
url: url
}, features, winAttrs, restParam));
}
});
});
}
var PhotographError = function (_MoleError) {
inherits(PhotographError, _MoleError);
function PhotographError(msg) {
classCallCheck(this, PhotographError);
var _this = possibleConstructorReturn(this, (PhotographError.__proto__ || Object.getPrototypeOf(PhotographError)).call(this, msg));
_this.isUserCancelled = false;
return _this;
}
return PhotographError;
}(MoleError);
function photograph(params, cb) {
var prom = getApi$1().then(function (api) {
return new Promise(function (resolve, reject) {
api.takePicture(params, function (ret, err) {
if (!ret) {
reject(new PhotographError(err || ''));
return;
}
if (ret.code !== 1) {
var _err = new PhotographError(ret.msg || '');
_err.isUserCancelled = ret.code === -1;
reject(_err);
return;
}
resolve(ret.picture);
});
});
});
return promiseToCallback(prom, cb);
}
function ready(cb) {
platform.select({
mobile: function mobile() {
cb && cb();
},
iosApp: function iosApp() {
if (window.__molejs_is_ready__) {
cb && cb();
} else {
window.apiready = function () {
window.__molejs_is_ready__ = true;
cb && cb();
};
}
},
androidApp: function androidApp() {
if (window.__molejs_is_ready__) {
cb && cb();
} else {
window.bsapiready = function () {
window.__molejs_is_ready__ = true;
cb && cb();
};
}
}
});
}
function removeItem() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var key = params.key;
platform.select({
mobile: function mobile() {
var storage = window.localStorage;
return storage.removeItem(key);
},
iosApp: function iosApp() {
return window.api.removePrefs({
key: key,
sync: true
});
},
androidApp: function androidApp() {
return window.BSLocalStorage.delete(key);
}
});
}
function setFullScreen() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
platform.select({
iosApp: function iosApp() {
window.api.setFullScreen(params);
}
});
}
function setOrientation() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var screenOrientation = params.screenOrientation,
restProps = objectWithoutProperties(params, ['screenOrientation']);
platform.select({
iosApp: function iosApp() {
window.api.sendEvent({
name: 'ios:setScreenOrientation',
extra: _extends({
screenOrientation: screenOrientation
}, restProps)
});
},
androidApp: function androidApp() {
notify(_extends({
screenOrientation: screenOrientation
}, restProps, {
action: 80
}));
}
});
}
function setStatusBarStyle() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
platform.select({
iosApp: function iosApp() {
window.api.setStatusBarStyle(params);
}
});
}
function setPageAttr() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _params$type = params.type,
type = _params$type === undefined ? 'frame' : _params$type,
restProps = objectWithoutProperties(params, ['type']);
platform.select({
iosApp: function iosApp() {
if (type === 'frame') {
window.api.setFrameAttr(restProps);
} else {
window.api.setWinAttr(restProps);
}
}
});
}
function sms() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var numbers = params.numbers,
_params$text = params.text,
text = _params$text === undefined ? '' : _params$text;
platform.select({
mobile: function mobile() {
return '';
},
iosApp: function iosApp() {
window.api.sms({
numbers: numbers,
text: text
});
},
androidApp: function androidApp() {
notify({
action: 9,
numbers: numbers,
text: text
});
}
});
}
function version() {
return platform.select({
mobile: function mobile() {
return '0.0.0';
},
iosApp: function iosApp() {
return window.navigator.userAgent.toLowerCase().match(/upaasapp\/([\d.]+)/)[1] || '0.0.0';
},
androidApp: function androidApp() {
if (window.navigator.userAgent.toLowerCase().match(/upaasapp\/([\d.]+)/)) {
return window.navigator.userAgent.toLowerCase().match(/upaasapp\/([\d.]+)/)[1];
}
return '0.0.0';
}
});
}
function winName() {
return platform.select({
iosApp: function iosApp() {
return window.api.winName;
},
androidApp: function androidApp() {
return '';
}
});
}
function getItem() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var key = params.key;
return platform.select({
mobile: function mobile() {
var storage = window.localStorage;
return storage.getItem(key);
},
iosApp: function iosApp() {
return window.api.getPrefs({
key: key,
sync: true
});
},
androidApp: function androidApp() {
return window.BSLocalStorage.getBSData(key);
}
});
}
function __openWin(params) {
var name = params.name,
url = params.url,
_params$navBar = params.navBar,
navBar = _params$navBar === undefined ? { enable: true } : _params$navBar,
_params$viewAttrs = params.viewAttrs,
viewAttrs = _params$viewAttrs === undefined ? {} : _params$viewAttrs,
_params$pageParam = params.pageParam,
pageParam = _params$pageParam === undefined ? {} : _params$pageParam,
_params$useWKWebView = params.useWKWebView,
useWKWebView = _params$useWKWebView === undefined ? true : _params$useWKWebView,
restParams = objectWithoutProperties(params, ['name', 'url', 'navBar', 'viewAttrs', 'pageParam', 'useWKWebView']);
if (platform.bsAppAndroid) {
return notify({
action: 5,
url: url,
type: navBar.enable ? 2 : 4,
hasTitle: navBar.enable
});
}
var softInputBarEnabled = true;
if (window.api.systemVersion >= '11.0') {
softInputBarEnabled = false;
}
var header_enable = navBar.enable;
var upaas_headerH = header_enable ? getItem('upaas_headerH') || window.localStorage.getItem('upaas_headerH') : 0;
var _navBar$rect = navBar.rect,
rect = _navBar$rect === undefined ? {
x: 0,
y: 0,
w: 'auto',
h: upaas_headerH
} : _navBar$rect,
title = navBar.title,
titleItem = navBar.titleItem,
leftItem = navBar.leftItem,
rightItem = navBar.rightItem;
var config = {
header: {
name: 'header',
options: {
rect: rect,
pageParam: {
titleItem: titleItem || {
text: title
},
leftItem: leftItem,
rightItem: rightItem
}
}
},
content: {
name: 'content',
url: url,
options: _extends({
rect: {
x: 0,
y: upaas_headerH,
w: 'auto',
h: window.api.winHeight - upaas_headerH
},
pageParam: pageParam
}, viewAttrs)
}
};
if (!header_enable) {
delete config.header;
}
var winName = name + '_' + Math.random();
window.api.openWin(_extends({
name: winName,
url: 'widget://modules/children/common/wins/inside/index.html',
useWKWebView: useWKWebView,
softInputBarEnabled: softInputBarEnabled,
slidBackType: 'edge',
pageParam: _extends({
winName: winName
}, config)
}, restParams));
}
function openAppPage(params) {
__openWin(params);
}
function __onReady() {
window.BSJSBridge.init(function (message, cb) {
var metaData = JSON.parse(decodeURIComponent(message));
var _metaData$action = metaData.action,
action = _metaData$action === undefined ? '' : _metaData$action,
_metaData$event = metaData.event,
event = _metaData$event === undefined ? '' : _metaData$event,
data = metaData.data;
if (!action) {
return new Error('Be careful! unknown action.');
}
if (Number(action) === 15) {
window.bsapp_pageInitData = metaData.data;
} else {
if (typeof cb === 'function') {
return cb(data);
}
if (platform.titaApp || platform.titav2App) {
return trigger({
name: event || 'event_' + action,
extra: data
});
}
trigger({
name: event || 'event_' + action,
extra: {
value: data
}
});
}
});
}
function initEvent(cb) {
platform.select({
androidApp: function androidApp() {
if (window.BSJSBridge) {
__onReady();
} else {
document.addEventListener('BSJSBridgeReady', function () {
__onReady();
}, false);
}
}
});
}
var hostAlias = {
tm: 'tm',
italent: 'www',
cloud: 'cloud',
setting: 'setting',
ocean: 'ocean',
account: 'account',
biset: 'biset',
appcenter: 'appcenter',
robot: 'robot',
operationCloud: 'operation-cloud',
appstore: 'appstore',
approval: 'approval',
tms: 'tms',
devCloud: 'dev-cloud',
settingCloud: 'setting-cloud',
docCloud: 'doc-cloud',
landingsite: 'landingsite',
service: 'service'
};
function warining(msg) {
if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'development') {
throw TypeError("\u3010@beisen/helper\u3011:" + msg);
}
return window.console && window.console.warn("\u3010@beisen/helper\u3011:" + msg);
}
var Utils = {
// 私有 拼接host
generateHost: function (host, domain) {
return "//" + host + "." + domain;
},
getBSGlobal: function (key, defaultValue) {
return BSGlobal[key] || defaultValue;
},
getEnv: function () {
return this.getBSGlobal('env', 'production');
},
getBSGlobalDomain: function () {
var domain = this.getBSGlobal('domain');
if (!domain || typeof domain !== 'string') {
return warining('请检查BSGlobal.domain是否存在或者是否为string类型!');
}
return domain;
},
getBSGlobalEnv: function () {
var env = this.getBSGlobal('env', 'production');
if (!env || typeof env !== 'string') {
return warining('请检查BSGlobal.env是否存在或者是否为string类型!');
}
return env;
}
};
var index = {
getBSGlobal: function (key) {
return Utils.getBSGlobal(key);
},
// 登录人信息
getUserInfo: function () {
return Utils.getBSGlobal('loginUserInfo');
},
// 租户信息
getTenantInfo: function () {
return Utils.getBSGlobal('tenantInfo');
},
//