UNPKG

luisa-vue

Version:

Luisa - VUE Renderer for FIGMA designs. Turn your Figma or Quant-UX design into VUE, or create re-usable designlets

379 lines (372 loc) 17.5 kB
/******/ (function() { // webpackBootstrap /******/ "use strict"; var __webpack_exports__ = {}; ;// CONCATENATED MODULE: ./src/qux/core/Logger.js function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var Logger = /*#__PURE__*/function () { function Logger() { _classCallCheck(this, Logger); this.logLevel = 0; } _createClass(Logger, [{ key: "setLogLevel", value: function setLogLevel(l) { this.logLevel = l; } }, { key: "warn", value: function warn(msg, obj) { if (obj !== undefined) { console.warn(msg, obj); } else { console.warn(msg); } } }, { key: "error", value: function error(msg, obj) { if (obj !== undefined) { console.error(msg, obj); } else { console.error(msg); } } }, { key: "log", value: function log(level, msg, obj) { var obj2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ""; if (level < this.logLevel) { if (obj !== undefined) { console.debug(msg, obj, obj2); } else { console.debug(msg); } } } }]); return Logger; }(); /* harmony default export */ var core_Logger = (new Logger()); ;// CONCATENATED MODULE: ./src/qux/scripts/ScriptAPI.js function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (ScriptAPI_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function ScriptAPI_typeof(obj) { "@babel/helpers - typeof"; return ScriptAPI_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, ScriptAPI_typeof(obj); } function ScriptAPI_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function ScriptAPI_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, ScriptAPI_toPropertyKey(descriptor.key), descriptor); } } function ScriptAPI_createClass(Constructor, protoProps, staticProps) { if (protoProps) ScriptAPI_defineProperties(Constructor.prototype, protoProps); if (staticProps) ScriptAPI_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function ScriptAPI_toPropertyKey(arg) { var key = ScriptAPI_toPrimitive(arg, "string"); return ScriptAPI_typeof(key) === "symbol" ? key : String(key); } function ScriptAPI_toPrimitive(input, hint) { if (ScriptAPI_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (ScriptAPI_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var QModel = /*#__PURE__*/function () { function QModel(model, api, type) { ScriptAPI_classCallCheck(this, QModel); this.qModel = model; this.api = api; this.type = type; } ScriptAPI_createClass(QModel, [{ key: "getName", value: function getName() { return this.qModel.name; } }, { key: "setStyle", value: function setStyle(newStyleDelta) { this.api.appDeltas.push({ type: this.type, key: 'style', id: this.qModel.id, style: newStyleDelta }); } }, { key: "setProp", value: function setProp(newStyleDelta) { this.api.appDeltas.push({ type: this.type, id: this.qModel.id, key: 'props', props: newStyleDelta }); } }, { key: "hide", value: function hide() { this.setStyle({ display: 'none' }); } }, { key: "isHidden", value: function isHidden() { var _this$qModel, _this$qModel$style; return (this === null || this === void 0 ? void 0 : (_this$qModel = this.qModel) === null || _this$qModel === void 0 ? void 0 : (_this$qModel$style = _this$qModel.style) === null || _this$qModel$style === void 0 ? void 0 : _this$qModel$style.display) === 'none'; } }, { key: "show", value: function show() { this.setStyle({ display: 'block' }); } }, { key: "toggle", value: function toggle() { if (this.isHidden()) { this.show(); } else { this.hide(); } } }]); return QModel; }(); var QWidget = /*#__PURE__*/function (_QModel) { _inherits(QWidget, _QModel); var _super = _createSuper(QWidget); function QWidget(model, api) { ScriptAPI_classCallCheck(this, QWidget); return _super.call(this, model, api, 'Widget'); } return ScriptAPI_createClass(QWidget); }(QModel); var QGroup = /*#__PURE__*/function (_QModel2) { _inherits(QGroup, _QModel2); var _super2 = _createSuper(QGroup); function QGroup(model, api) { ScriptAPI_classCallCheck(this, QGroup); return _super2.call(this, model, api, 'Group'); } ScriptAPI_createClass(QGroup, [{ key: "forEachChild", value: function forEachChild(callback) { this.qModel.children.forEach(callback); } }, { key: "setStyle", value: function setStyle(newStyleDelta) { var _this = this; this.forEachChild(function (id) { _this.api.appDeltas.push({ type: 'Widget', key: 'style', id: id, style: newStyleDelta }); }); } }, { key: "setProp", value: function setProp(newStyleDelta) { var _this2 = this; this.forEachChild(function (id) { _this2.api.appDeltas.push({ type: 'Widget', key: 'props', id: id, props: newStyleDelta }); }); } }, { key: "isHidden", value: function isHidden() { var _this3 = this; var hidden = this.qModel.children.filter(function (id) { var _widget$style; var widget = _this3.api.app.widgets[id]; return (widget === null || widget === void 0 ? void 0 : (_widget$style = widget.style) === null || _widget$style === void 0 ? void 0 : _widget$style.display) === 'none'; }); return hidden.length === this.qModel.children.length; } }]); return QGroup; }(QModel); var QScreen = /*#__PURE__*/function (_QModel3) { _inherits(QScreen, _QModel3); var _super3 = _createSuper(QScreen); function QScreen(model, api) { ScriptAPI_classCallCheck(this, QScreen); return _super3.call(this, model, api, 'Screen'); } ScriptAPI_createClass(QScreen, [{ key: "getGroup", value: function getGroup(name) { core_Logger.log(2, "QScreen.getGroup() ", name); if (this.api.app.groups) { var groups = this.api.app.groups; var screenChildren = this.qModel.children; var group = Object.values(groups).find(function (g) { if (g.name === name) { var groupChildren = g.children; var contained = groupChildren.filter(function (groupChild) { return screenChildren.indexOf(groupChild) >= 0; }); return contained.length === groupChildren.length; } return false; }); if (group) { return new QGroup(group, this.api); } } throw new Error("Widget \"".concat(name, "\" in screen \"").concat(this.qModel.name, "\" not found.")); } }, { key: "getWidget", value: function getWidget(name) { core_Logger.log(2, "QScreen.getWidget() ", name); var children = this.qModel.children; for (var i = 0; i < children.length; i++) { var widgetId = children[i]; var widget = this.api.app.widgets[widgetId]; if (widget && widget.name === name) { return new QWidget(widget, this.api); } } throw new Error("Widget \"".concat(name, "\" in screen \"").concat(this.qModel.name, "\" not found.")); } }]); return QScreen; }(QModel); var ScriptAPI = /*#__PURE__*/function () { function ScriptAPI(app, viewModel) { ScriptAPI_classCallCheck(this, ScriptAPI); core_Logger.log(2, "ScriptAPI.constructor() ", viewModel); this.app = app; this.appDeltas = []; } ScriptAPI_createClass(ScriptAPI, [{ key: "getScreen", value: function getScreen(name) { var found = Object.values(this.app.screens).filter(function (s) { return s.name === name; }); if (found.length === 1) { return new QScreen(found[0], this); } throw new Error("Screen \"".concat(name, "\" not found.")); } }, { key: "vibrate", value: function vibrate(pattern) { this.vibratePattern = pattern; } }, { key: "getAppDeltas", value: function getAppDeltas() { return this.appDeltas; } }]); return ScriptAPI; }(); ;// CONCATENATED MODULE: ./src/qux/scripts/ScriptConsole.js function ScriptConsole_typeof(obj) { "@babel/helpers - typeof"; return ScriptConsole_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, ScriptConsole_typeof(obj); } function ScriptConsole_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function ScriptConsole_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, ScriptConsole_toPropertyKey(descriptor.key), descriptor); } } function ScriptConsole_createClass(Constructor, protoProps, staticProps) { if (protoProps) ScriptConsole_defineProperties(Constructor.prototype, protoProps); if (staticProps) ScriptConsole_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function ScriptConsole_toPropertyKey(arg) { var key = ScriptConsole_toPrimitive(arg, "string"); return ScriptConsole_typeof(key) === "symbol" ? key : String(key); } function ScriptConsole_toPrimitive(input, hint) { if (ScriptConsole_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (ScriptConsole_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var ScriptConsole = /*#__PURE__*/function () { function ScriptConsole() { ScriptConsole_classCallCheck(this, ScriptConsole); this.messages = []; } ScriptConsole_createClass(ScriptConsole, [{ key: "debug", value: function debug() { console.debug('ScriptConsole.debug() > ', arguments[0]); this.messages.push({ type: 'debug', args: arguments[0] }); } }, { key: "log", value: function log() { console.log('ScriptConsole.log() > ', arguments[0]); this.messages.push({ type: 'log', args: arguments[0] }); } }, { key: "warn", value: function warn() { console.warn('ScriptConsole.warn() > ', arguments[0]); this.messages.push({ type: 'warn', args: arguments[0] }); } }, { key: "error", value: function error() { console.warn('ScriptConsole.error() > ', arguments[0]); this.messages.push({ type: 'error', args: arguments[0] }); } }]); return ScriptConsole; }(); ;// CONCATENATED MODULE: ./src/qux/scripts/ScriptWorker.js self.addEventListener('message', async function (e) { core_Logger.log(3, 'ScriptWorker.message() > enter ', e); var js = e.data.code; var model = e.data.model; var viewModel = e.data.viewModel; var sourceEvent = e.data.sourceEvent; var qux = new ScriptAPI(model); var console = new ScriptConsole(); var result = undefined; try { result = await runCode(js, qux, viewModel, console, sourceEvent); self.postMessage({ to: result, viewModel: viewModel, appDeltas: qux.getAppDeltas(), console: console.messages, vibratePattern: qux.vibratePattern, status: 'ok' }); } catch (error) { core_Logger.error(1, 'ScriptWorker.message() > Error', error); console.error(error); self.postMessage({ status: 'error', console: console.messages, error: error.message, stack: error.stack }); } core_Logger.log(1, 'ScriptWoker.message() > exit '); }); async function runCode(js, qux, viewModel, console, sourceEvent) { if (js.indexOf('await ') > 0) { core_Logger.warn('ScriptWoker.runCode() > enter > ASYNC ', js); var AsyncFunction = Object.getPrototypeOf(async function () {}).constructor; var aysncJS = "return new Promise(async (resolve) => {\n ".concat(js, "\n resolve()\n });"); console.log('ScriptWoker.runCode() > run aysnc...'); var asycnCode = AsyncFunction('qux', 'data', 'console', 'event', aysncJS); return await asycnCode(qux, viewModel, console, sourceEvent); } else { core_Logger.log(-1, 'ScriptWoker.runCode() > enter sync'); var code = new Function('qux', 'data', 'console', 'event', js); return code(qux, viewModel, console, sourceEvent); } } module.exports = __webpack_exports__; /******/ })() ; //# sourceMappingURL=luisa-vue3.common.396.js.map