UNPKG

scriptable-testlab

Version:

A lightweight, efficient tool designed to manage and update scripts for Scriptable.

152 lines 3.89 kB
import { AbsListWidget } from "scriptable-abstract"; import { MockImage } from "../../media/image"; import { MockColor } from "../color"; import { MockLinearGradient } from "../gradient"; import { MockWidgetDate } from "./date"; import { MockWidgetImage } from "./image"; import { MockWidgetSpacer } from "./spacer"; import { MockWidgetStack } from "./stack"; import { MockWidgetText } from "./text"; const DEFAULT_STATE = { family: "medium", backgroundColor: new MockColor("#000000"), backgroundImage: new MockImage(), backgroundGradient: new MockLinearGradient(), spacing: 0, url: "", refreshAfterDate: /* @__PURE__ */ new Date(), padding: { top: 0, leading: 0, bottom: 0, trailing: 0 }, addAccessoryWidgetBackground: false, elements: [] }; class MockWidget extends AbsListWidget { constructor() { super(); this.setState(DEFAULT_STATE); } get backgroundColor() { return this.state.backgroundColor; } set backgroundColor(value) { this.setState({ backgroundColor: value }); } get backgroundImage() { return this.state.backgroundImage; } set backgroundImage(value) { this.setState({ backgroundImage: value }); } get backgroundGradient() { return this.state.backgroundGradient; } set backgroundGradient(value) { this.setState({ backgroundGradient: value }); } get spacing() { return this.state.spacing; } set spacing(value) { this.setState({ spacing: value }); } get url() { return this.state.url; } set url(value) { this.setState({ url: value }); } get refreshAfterDate() { return this.state.refreshAfterDate; } set refreshAfterDate(value) { this.setState({ refreshAfterDate: value }); } get addAccessoryWidgetBackground() { return this.state.addAccessoryWidgetBackground; } set addAccessoryWidgetBackground(value) { this.setState({ addAccessoryWidgetBackground: value }); } addText(text) { const textElement = new MockWidgetText(text); this.setState({ elements: [...this.state.elements, textElement] }); return textElement; } addDate(date) { const dateElement = new MockWidgetDate(date); this.setState({ elements: [...this.state.elements, dateElement] }); return dateElement; } addImage(image) { const imageElement = new MockWidgetImage(image); this.setState({ elements: [...this.state.elements, imageElement] }); return imageElement; } addSpacer(length) { const spacer = new MockWidgetSpacer(length); this.setState({ elements: [...this.state.elements, spacer] }); return spacer; } addStack() { const stack = new MockWidgetStack(); this.setState({ elements: [...this.state.elements, stack] }); return stack; } setPadding(top, leading, bottom, trailing) { this.setState({ padding: { top, leading, bottom, trailing } }); } useDefaultPadding() { this.setPadding(8, 8, 8, 8); } async presentSmall() { this.setState({ family: "small" }); return Promise.resolve(); } async presentMedium() { this.setState({ family: "medium" }); return Promise.resolve(); } async presentLarge() { this.setState({ family: "large" }); return Promise.resolve(); } async presentExtraLarge() { this.setState({ family: "extraLarge" }); return Promise.resolve(); } async presentAccessoryInline() { this.setState({ family: "accessoryInline" }); return Promise.resolve(); } async presentAccessoryCircular() { this.setState({ family: "accessoryCircular" }); return Promise.resolve(); } async presentAccessoryRectangular() { this.setState({ family: "accessoryRectangular" }); return Promise.resolve(); } get widgetFamily() { return this.state.family; } } export { MockWidget }; //# sourceMappingURL=widget.js.map