@morjs/runtime-web
Version:
mor runtime for web
70 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const lit_element_1 = require("lit-element");
const my_1 = require("../../../api/my");
const baseElement_1 = require("../baseElement");
class Navigator extends baseElement_1.BaseElement {
constructor() {
super(...arguments);
/**
* 跳转方式。
*/
this['open-type'] = 'navigate';
this.handleTap = () => {
const url = this.url;
switch (this['open-type']) {
case 'navigate': {
my_1.my.navigateTo({
url
});
break;
}
case 'redirect': {
my_1.my.redirectTo({
url
});
break;
}
case 'switchTab': {
my_1.my.switchTab({
url
});
break;
}
case 'navigateBack': {
my_1.my.navigateBack();
break;
}
case 'reLaunch': {
my_1.my.reLaunch({
url
});
break;
}
}
};
}
static get styles() {
return (0, lit_element_1.css) `
:host {
display: block;
}
`;
}
connectedCallback() {
super.connectedCallback();
this.addEventListener('tap', this.handleTap, { passive: true });
}
render() {
return (0, lit_element_1.html) ` <slot></slot> `;
}
}
tslib_1.__decorate([
(0, lit_element_1.property)({ type: String })
], Navigator.prototype, 'open-type', void 0);
tslib_1.__decorate([
(0, lit_element_1.property)({ type: String })
], Navigator.prototype, "url", void 0);
exports.default = Navigator;
//# sourceMappingURL=navigator.js.map