UNPKG

marko

Version:

UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.

77 lines (65 loc) 2.24 kB
var Component = require("../../../runtime/components/Component"); var req = require("@internal/require"); var getComponentForEl = require("@internal/components-util").___getComponentForEl; // eslint-disable-next-line no-constant-binary-expression var complain = "MARKO_DEBUG" && require("complain"); // expose legacy require("@internal/components-registry").___legacy = exports; exports.load = function (typeName) { return exports.defineWidget(req(typeName)); }; // legacy api exports.defineComponent = require("../../../runtime/components/legacy/defineComponent-legacy"); exports.defineWidget = require("@internal/components-define-widget-legacy"); exports.defineRenderer = require("../../../runtime/components/legacy/defineRenderer-legacy"); exports.makeRenderable = exports.renderable = require("../../../runtime/renderable"); // browser only var Widget = (exports.Widget = Component); exports.getWidgetForEl = exports.get = function (elOrId) { var el = elOrId; if (typeof elOrId === "string") { el = document.getElementById(elOrId); } if (el && el.__widget) { return el.__widget; } return getComponentForEl(el); }; exports.initWidgets = require("@internal/components-registry").___initServerRendered; // monkey patch Widget if (Widget) { var WidgetProto = Widget.prototype; WidgetProto.setProps = function (newInput) { this.___isReceivingNewInput = true; this.___setInput(newInput); }; WidgetProto.rerender = function (newInput) { if (newInput) { this.setProps(newInput); } this.forceUpdate(); this.update(); }; } var RenderResult = require("../../../runtime/RenderResult"); RenderResult.prototype.getWidget = function () { // eslint-disable-next-line no-constant-condition if ("MARKO_DEBUG") { complain("getWidget is deprecated. use getComponent instead."); } return this.getWidgets()[0]; }; RenderResult.prototype.getWidgets = function () { // eslint-disable-next-line no-constant-condition if ("MARKO_DEBUG") { complain("getWidgets is deprecated. use getComponents instead."); } return RenderResult.prototype.getComponents .apply(this, arguments) .filter(function (component) { return component.___isLegacy; }); };