'use strict'; var doric = require('doric'); const colors = [ "#70a1ff", "#7bed9f", "#ff6b81", "#a4b0be", "#f0932b", "#eb4d4b", "#6ab04c", "#e056fd", "#686de0", "#30336b", ].map(e => doric.Color.parse(e)); var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; let ListPanel = class ListPanel extends doric.Panel { build(rootView) { let offset = Math.ceil(Math.random() * colors.length); doric.vlayout([ doric.list({ itemCount: 100, renderItem: (idx) => { let counter; return doric.listItem(doric.hlayout([ doric.text({ layoutConfig: { widthSpec: doric.LayoutSpec.FIT, heightSpec: doric.LayoutSpec.JUST, alignment: doric.gravity().center(), }, text: `Cell At Line ${idx}`, textAlignment: doric.gravity().center(), textColor: doric.Color.parse("#ffffff"), textSize: 20, height: 50, }), doric.text({ textColor: doric.Color.parse("#ffffff"), textSize: 20, text: "", }).also(it => { counter = it; it.layoutConfig = { widthSpec: doric.LayoutSpec.FIT, heightSpec: doric.LayoutSpec.FIT, margin: { left: 10, } }; }) ]).also(it => { it.layoutConfig = { widthSpec: doric.LayoutSpec.MOST, heightSpec: doric.LayoutSpec.FIT, margin: { bottom: 2, } }; it.gravity = doric.gravity().center(); it.backgroundColor = colors[(idx + offset) % colors.length]; let clicked = 0; it.onClick = () => { counter.text = `Item Clicked ${++clicked}`; }; })).also(it => { it.layoutConfig = { widthSpec: doric.LayoutSpec.MOST, heightSpec: doric.LayoutSpec.FIT, }; it.onClick = () => { doric.log(`Click item at ${idx}`); it.height += 10; it.nativeChannel(context, "getWidth")().then(resolve => { doric.log(`resolve,${resolve}`); }, reject => { doric.log(`reject,${reject}`); }); }; }); }, layoutConfig: doric.layoutConfig().most().configHeight(doric.LayoutSpec.JUST), height: 500, }).also(it => { it.loadMore = true; it.onLoadMore = () => { it.itemCount += 100; }; it.loadMoreView = doric.listItem(doric.text({ text: "Loading", layoutConfig: doric.layoutConfig().most().configHeight(doric.LayoutSpec.JUST).configAlignment(doric.Gravity.Center), height: 50, })); }), ]).apply({ layoutConfig: doric.layoutConfig().most(), }).in(rootView); } }; ListPanel = __decorate([ Entry ], ListPanel); //# sourceMappingURL=ListDemo.js.map