UNPKG

nativescript-angular

Version:

An Angular renderer that lets you build mobile apps with NativeScript.

183 lines 9.25 kB
Object.defineProperty(exports, "__esModule", { value: true }); var view_1 = require("tns-core-modules/ui/core/view"); var layout_base_1 = require("tns-core-modules/ui/layouts/layout-base"); var page_1 = require("tns-core-modules/ui/page"); var InvisibleNode = /** @class */ (function (_super) { __extends(InvisibleNode, _super); function InvisibleNode() { var _this = _super.call(this) || this; _this.nodeType = 1; _this.nodeName = getClassName(_this); return _this; } InvisibleNode.prototype.toString = function () { return this.nodeName + "(" + this.id + ")"; }; return InvisibleNode; }(view_1.View)); exports.InvisibleNode = InvisibleNode; var CommentNode = /** @class */ (function (_super) { __extends(CommentNode, _super); function CommentNode() { var _this = _super.call(this) || this; _this.meta = { skipAddToDom: true, }; _this.id = CommentNode.id.toString(); CommentNode.id += 1; return _this; } CommentNode.id = 0; return CommentNode; }(InvisibleNode)); exports.CommentNode = CommentNode; var TextNode = /** @class */ (function (_super) { __extends(TextNode, _super); function TextNode() { var _this = _super.call(this) || this; _this.meta = { skipAddToDom: true, }; _this.id = TextNode.id.toString(); TextNode.id += 1; return _this; } TextNode.id = 0; return TextNode; }(InvisibleNode)); exports.TextNode = TextNode; var getClassName = function (instance) { return instance.constructor.name; }; var ɵ0 = getClassName; exports0 = ɵ0; function isDetachedElement(element) { return (element && element.meta && element.meta.skipAddToDom); } exports.isDetachedElement = isDetachedElement; function isView(view) { return view instanceof view_1.View; } exports.isView = isView; function isInvisibleNode(view) { return view instanceof InvisibleNode; } exports.isInvisibleNode = isInvisibleNode; var elementMap = new Map(); var camelCaseSplit = /([a-z0-9])([A-Z])/g; var defaultViewMeta = { skipAddToDom: false }; function registerElement(elementName, resolver, meta) { if (elementMap.has(elementName)) { throw new Error("Element for " + elementName + " already registered."); } else { var entry = { resolver: resolver, meta: meta }; elementMap.set(elementName, entry); elementMap.set(elementName.toLowerCase(), entry); elementMap.set(elementName.replace(camelCaseSplit, "$1-$2").toLowerCase(), entry); } } exports.registerElement = registerElement; function getViewClass(elementName) { var entry = elementMap.get(elementName) || elementMap.get(elementName.toLowerCase()); if (!entry) { throw new TypeError("No known component for element " + elementName + "."); } try { return entry.resolver(); } catch (e) { throw new TypeError("Could not load view for: " + elementName + "." + e); } } exports.getViewClass = getViewClass; function getViewMeta(nodeName) { var entry = elementMap.get(nodeName) || elementMap.get(nodeName.toLowerCase()); return (entry && entry.meta) || defaultViewMeta; } exports.getViewMeta = getViewMeta; function isKnownView(elementName) { return elementMap.has(elementName) || elementMap.has(elementName.toLowerCase()); } exports.isKnownView = isKnownView; function getSingleViewRecursive(nodes, nestLevel) { var actualNodes = nodes.filter(function (node) { return !(node instanceof InvisibleNode); }); if (actualNodes.length === 0) { throw new Error("No suitable views found in list template! " + ("Nesting level: " + nestLevel)); } else if (actualNodes.length > 1) { throw new Error("More than one view found in list template!" + ("Nesting level: " + nestLevel)); } var rootLayout = actualNodes[0]; if (!rootLayout) { return getSingleViewRecursive(rootLayout.children, nestLevel + 1); } var parentLayout = rootLayout.parent; if (parentLayout instanceof layout_base_1.LayoutBase) { var node = rootLayout.parentNode; parentLayout.removeChild(rootLayout); rootLayout.parentNode = node; } return rootLayout; } exports.getSingleViewRecursive = getSingleViewRecursive; var ɵ1 = function (parent, child, next) { // Page cannot be added to Frame with _addChildFromBuilder (trows "use defaultPage" error) if (isInvisibleNode(child)) { return; } else if (child instanceof page_1.Page) { parent.navigate({ create: function () { return child; } }); } else { throw new Error("Only a Page can be a child of Frame"); } }; exports1 = ɵ1; var frameMeta = { insertChild: ɵ1 }; // Register default NativeScript components // Note: ActionBar related components are registerd together with action-bar directives. registerElement("AbsoluteLayout", function () { return require("tns-core-modules/ui/layouts/absolute-layout").AbsoluteLayout; }); registerElement("ActivityIndicator", function () { return require("tns-core-modules/ui/activity-indicator").ActivityIndicator; }); registerElement("Border", function () { return require("tns-core-modules/ui/border").Border; }); registerElement("Button", function () { return require("tns-core-modules/ui/button").Button; }); registerElement("ContentView", function () { return require("tns-core-modules/ui/content-view").ContentView; }); registerElement("DatePicker", function () { return require("tns-core-modules/ui/date-picker").DatePicker; }); registerElement("DockLayout", function () { return require("tns-core-modules/ui/layouts/dock-layout").DockLayout; }); registerElement("Frame", function () { return require("tns-core-modules/ui/frame").Frame; }, frameMeta); registerElement("GridLayout", function () { return require("tns-core-modules/ui/layouts/grid-layout").GridLayout; }); registerElement("HtmlView", function () { return require("tns-core-modules/ui/html-view").HtmlView; }); registerElement("Image", function () { return require("tns-core-modules/ui/image").Image; }); // Parse5 changes <Image> tags to <img>. WTF! registerElement("img", function () { return require("tns-core-modules/ui/image").Image; }); registerElement("Label", function () { return require("tns-core-modules/ui/label").Label; }); registerElement("ListPicker", function () { return require("tns-core-modules/ui/list-picker").ListPicker; }); registerElement("ListView", function () { return require("tns-core-modules/ui/list-view").ListView; }); registerElement("Page", function () { return require("tns-core-modules/ui/page").Page; }); registerElement("Placeholder", function () { return require("tns-core-modules/ui/placeholder").Placeholder; }); registerElement("Progress", function () { return require("tns-core-modules/ui/progress").Progress; }); registerElement("ProxyViewContainer", function () { return require("tns-core-modules/ui/proxy-view-container").ProxyViewContainer; }); registerElement("Repeater", function () { return require("tns-core-modules/ui/repeater").Repeater; }); registerElement("ScrollView", function () { return require("tns-core-modules/ui/scroll-view").ScrollView; }); registerElement("SearchBar", function () { return require("tns-core-modules/ui/search-bar").SearchBar; }); registerElement("SegmentedBar", function () { return require("tns-core-modules/ui/segmented-bar").SegmentedBar; }); registerElement("SegmentedBarItem", function () { return require("tns-core-modules/ui/segmented-bar").SegmentedBarItem; }); registerElement("Slider", function () { return require("tns-core-modules/ui/slider").Slider; }); registerElement("StackLayout", function () { return require("tns-core-modules/ui/layouts/stack-layout").StackLayout; }); registerElement("FlexboxLayout", function () { return require("tns-core-modules/ui/layouts/flexbox-layout").FlexboxLayout; }); registerElement("Switch", function () { return require("tns-core-modules/ui/switch").Switch; }); registerElement("TabView", function () { return require("tns-core-modules/ui/tab-view").TabView; }); registerElement("TextField", function () { return require("tns-core-modules/ui/text-field").TextField; }); registerElement("TextView", function () { return require("tns-core-modules/ui/text-view").TextView; }); registerElement("TimePicker", function () { return require("tns-core-modules/ui/time-picker").TimePicker; }); registerElement("WebView", function () { return require("tns-core-modules/ui/web-view").WebView; }); registerElement("WrapLayout", function () { return require("tns-core-modules/ui/layouts/wrap-layout").WrapLayout; }); registerElement("FormattedString", function () { return require("tns-core-modules/text/formatted-string").FormattedString; }); registerElement("Span", function () { return require("tns-core-modules/text/span").Span; }); registerElement("DetachedContainer", function () { return require("tns-core-modules/ui/proxy-view-container").ProxyViewContainer; }, { skipAddToDom: true }); registerElement("page-router-outlet", function () { return require("tns-core-modules/ui/frame").Frame; }); //# sourceMappingURL=element-registry.js.map