UNPKG

@protorians/widgets

Version:

Create your web user interfaces with widgets

33 lines (32 loc) 1.47 kB
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 { WidgetNode } from "../widget-node.js"; import { Composable, Mountable } from "../decorators.js"; import { declarationExplodes } from "../helpers/index.js"; let ButtonWidget = class ButtonWidget extends WidgetNode { get tag() { return 'button'; } ; }; ButtonWidget = __decorate([ Mountable(), Composable() ], ButtonWidget); export { ButtonWidget }; export function Button(declaration) { const props = declarationExplodes(declaration, ['onPress', 'onPressStart', 'onPressEnd',]); props.declaration.listen = { ...props.declaration.listen, click: props.extended?.onPress, }; if (props.extended.onPressStart) props.declaration.listen.mousedown = props.extended.onPressStart; if (props.extended.onPressEnd) props.declaration.listen.mouseup = props.extended.onPressEnd; return new ButtonWidget(props.declaration); }