import { LitElement, html, css, PropertyValueMap } from "lit"; import { customElement } from "lit/decorators.js"; import init from "../../es6/shared"; import { SyncMetaWidget } from "../../widget"; import { CONFIG, getWidgetTagName } from "../../es6/config"; import "https://unpkg.com/jquery@3.6.0/dist/jquery.js"; import "https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"; import MFExport from "../../es6/lib/MFExport"; // widget body used by all syncmeta widgets @customElement(getWidgetTagName(CONFIG.WIDGET.NAME.JSON_EXPORT)) export class JSONExportWidget extends SyncMetaWidget( LitElement, getWidgetTagName(CONFIG.WIDGET.NAME.JSON_EXPORT) ) { protected firstUpdated( _changedProperties: PropertyValueMap | Map ): void { super.firstUpdated(_changedProperties); $("#json").click(function () { var $this = $(this).addClass("loading_button"); MFExport.getJSON(function (data, title) { var link = document.createElement("a"); link.download = title + ".json"; link.href = "data:," + encodeURI(JSON.stringify(data, null, 4)); link.click(); $this.removeClass("loading_button"); }); }); $("#png").click(function () { var $this = $(this).addClass("loading_button"); MFExport.getImageURL(function (url, title) { var link = document.createElement("a"); link.download = title + ".png"; link.href = url; link.click(); $this.removeClass("loading_button"); }); }); } render() { return html` `; } static styles = css` /*noinspection CssUnknownTarget,CssUnusedSymbol*/ .loading_button { background-image: url('<%= grunt.config("baseUrl") %>/img/loading_small.gif'); background-repeat: no-repeat; background-position: right center; padding-right: 20px; } `; connectedCallback() { super.connectedCallback(); init(); } disconnectedCallback() { super.disconnectedCallback(); } }