UNPKG

@web-atoms/core-docs

Version:
73 lines 3.42 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; (function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "../../core/AtomBinder", "../../core/AtomLoader", "../../core/AtomUri", "./AtomContentControl", "./AtomItemsControl"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AtomViewPager = void 0; const AtomBinder_1 = require("../../core/AtomBinder"); const AtomLoader_1 = require("../../core/AtomLoader"); const AtomUri_1 = require("../../core/AtomUri"); const AtomContentControl_1 = require("./AtomContentControl"); const AtomItemsControl_1 = require("./AtomItemsControl"); class AtomViewPager extends AtomItemsControl_1.AtomItemsControl { dispose(e) { if (!e) { for (const iterator of this.items) { iterator.dispose(); } } this.selectedItem = null; super.dispose(e); } onCollectionChanged() { // do nothing... } create() { super.create(); const eStyle = this.element.style; eStyle.position = "absolute"; eStyle.left = eStyle.right = eStyle.bottom = eStyle.top = "0"; const cc = new AtomContentControl_1.AtomContentControl(this.app); this.append(cc); const style = cc.element.style; style.position = "absolute"; style.top = style.left = style.right = style.bottom = "0"; cc.bind(cc.element, "content", [["this", "selectedItem"]], false, (si) => { if (!si) { return undefined; } if (si.view) { return si.view; } this.app.runAsync(() => __awaiter(this, void 0, void 0, function* () { const { view: ctrl } = yield AtomLoader_1.AtomLoader.loadView(new AtomUri_1.AtomUri(si.value), this.app, false); si.view = ctrl; ctrl.element._logicalParent = this.element; AtomBinder_1.AtomBinder.refreshValue(this, "selectedItem"); si.dispose = () => { ctrl.dispose(); ctrl.element._logicalParent = null; }; })); return undefined; }, this); } } exports.AtomViewPager = AtomViewPager; }); //# sourceMappingURL=AtomViewPager.js.map