| | |
| | | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { |
| | | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; |
| | | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); |
| | | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; |
| | | return c > 3 && r && Object.defineProperty(target, key, r), r; |
| | | }; |
| | | import { SuperComponent, wxComponent } from '../common/src/index'; |
| | | import config from '../common/config'; |
| | | import props from './props'; |
| | | import { canIUseFormFieldButton } from '../common/version'; |
| | | import { setIcon } from '../common/utils'; |
| | | const { prefix } = config; |
| | | const name = `${prefix}-button`; |
| | | let Button = class Button extends SuperComponent { |
| | | constructor() { |
| | | super(...arguments); |
| | | this.externalClasses = [`${prefix}-class`, `${prefix}-class-icon`, `${prefix}-class-loading`]; |
| | | this.behaviors = canIUseFormFieldButton() ? ['wx://form-field-button'] : []; |
| | | this.properties = props; |
| | | this.options = { |
| | | multipleSlots: true, |
| | | }; |
| | | this.data = { |
| | | prefix, |
| | | className: '', |
| | | classPrefix: name, |
| | | }; |
| | | this.observers = { |
| | | 'theme, size, plain, block, shape, disabled, loading, variant'() { |
| | | this.setClass(); |
| | | }, |
| | | icon(icon) { |
| | | const obj = setIcon('icon', icon, ''); |
| | | this.setData(Object.assign({}, obj)); |
| | | }, |
| | | }; |
| | | this.lifetimes = { |
| | | attached() { |
| | | this.setClass(); |
| | | }, |
| | | }; |
| | | this.methods = { |
| | | setClass() { |
| | | const classList = [ |
| | | name, |
| | | `${prefix}-class`, |
| | | `${name}--${this.data.variant || 'base'}`, |
| | | `${name}--${this.data.theme || 'default'}`, |
| | | `${name}--${this.data.shape || 'rectangle'}`, |
| | | `${name}--size-${this.data.size || 'medium'}`, |
| | | ]; |
| | | if (this.data.block) { |
| | | classList.push(`${name}--block`); |
| | | } |
| | | if (this.data.disabled) { |
| | | classList.push(`${name}--disabled`); |
| | | } |
| | | if (this.data.ghost) { |
| | | classList.push(`${name}--ghost`); |
| | | } |
| | | this.setData({ |
| | | className: classList.join(' '), |
| | | }); |
| | | }, |
| | | getuserinfo(e) { |
| | | this.triggerEvent('getuserinfo', e.detail); |
| | | }, |
| | | contact(e) { |
| | | this.triggerEvent('contact', e.detail); |
| | | }, |
| | | getphonenumber(e) { |
| | | this.triggerEvent('getphonenumber', e.detail); |
| | | }, |
| | | error(e) { |
| | | this.triggerEvent('error', e.detail); |
| | | }, |
| | | opensetting(e) { |
| | | this.triggerEvent('opensetting', e.detail); |
| | | }, |
| | | launchapp(e) { |
| | | this.triggerEvent('launchapp', e.detail); |
| | | }, |
| | | chooseavatar(e) { |
| | | this.triggerEvent('chooseavatar', e.detail); |
| | | }, |
| | | handleTap(e) { |
| | | if (this.data.disabled || this.data.loading) |
| | | return; |
| | | this.triggerEvent('tap', e); |
| | | }, |
| | | }; |
| | | } |
| | | }; |
| | | Button = __decorate([ |
| | | wxComponent() |
| | | ], Button); |
| | | export default Button; |
| | | import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{canIUseFormFieldButton}from"../common/version";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-button`;let Button=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-icon`,`${prefix}-class-loading`],this.behaviors=canIUseFormFieldButton()?["wx://form-field-button"]:[],this.properties=props,this.options={multipleSlots:!0},this.data={prefix:prefix,className:"",classPrefix:name},this.observers={"theme, size, plain, block, shape, disabled, loading, variant"(){this.setClass()},icon(t){this.setData({_icon:calcIcon(t,"")})}},this.lifetimes={attached(){this.setClass()}},this.methods={setClass(){const t=[name,`${prefix}-class`,`${name}--${this.data.variant||"base"}`,`${name}--${this.data.theme||"default"}`,`${name}--${this.data.shape||"rectangle"}`,`${name}--size-${this.data.size||"medium"}`];this.data.block&&t.push(`${name}--block`),this.data.disabled&&t.push(`${name}--disabled`),this.data.ghost&&t.push(`${name}--ghost`),this.setData({className:t.join(" ")})},getuserinfo(t){this.triggerEvent("getuserinfo",t.detail)},contact(t){this.triggerEvent("contact",t.detail)},createliveactivity(t){this.triggerEvent("createliveactivity",t.detail)},getphonenumber(t){this.triggerEvent("getphonenumber",t.detail)},getrealtimephonenumber(t){this.triggerEvent("getrealtimephonenumber",t.detail)},error(t){this.triggerEvent("error",t.detail)},opensetting(t){this.triggerEvent("opensetting",t.detail)},launchapp(t){this.triggerEvent("launchapp",t.detail)},chooseavatar(t){this.triggerEvent("chooseavatar",t.detail)},agreeprivacyauthorization(t){this.triggerEvent("agreeprivacyauthorization",t.detail)},handleTap(t){this.data.disabled||this.data.loading||this.triggerEvent("tap",t)}}}};Button=__decorate([wxComponent()],Button);export default Button; |