UNPKG

nativescript-listview-header

Version:

A ios UITableView plugin for nativescript which allows you to add table headerview

68 lines (67 loc) 3.35 kB
var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var list_view_1 = require("ui/list-view"); var view_1 = require("ui/core/view"); var dependency_observable_1 = require("ui/core/dependency-observable"); var proxy_1 = require("ui/core/proxy"); var utils_1 = require("utils/utils"); var dependency_observable_2 = require("ui/core/dependency-observable"); exports.knownTemplates = list_view_1.knownTemplates; var ListViewWithHeader = (function (_super) { __extends(ListViewWithHeader, _super); function ListViewWithHeader() { _super.apply(this, arguments); } Object.defineProperty(ListViewWithHeader.prototype, "tableHeaderView", { get: function () { return this._tableHeaderView; }, set: function (view) { if (view) { this._addView(view); this.ios.tableHeaderView = view.ios; view.ios.frame = CGRectMake(0, 0, this.ios.bounds.size.width, 1); } else { this._removeView(this._tableHeaderView); this.ios.tableHeaderView = null; } this._tableHeaderView = view; }, enumerable: true, configurable: true }); Object.defineProperty(ListViewWithHeader.prototype, "showDisclosureIndicator", { get: function () { return this._getValue(ListViewWithHeader.showDisclousureIndictorProperty); }, set: function (value) { this._setValue(ListViewWithHeader.showDisclousureIndictorProperty, value); }, enumerable: true, configurable: true }); ListViewWithHeader.prototype._prepareCell = function (cell, indexPath) { var retValue = _super.prototype._prepareCell.call(this, cell, indexPath); cell.accessoryType = this.showDisclosureIndicator ? UITableViewCellAccessoryDisclosureIndicator : UITableViewCellAccessoryNone; return retValue; }; ListViewWithHeader.prototype.onMeasure = function (widthMeasureSpec, heightMeasureSpec) { _super.prototype.onMeasure.call(this, widthMeasureSpec, heightMeasureSpec); if (this._tableHeaderView) { var childHeightMeasureSpec = utils_1.layout.makeMeasureSpec(0, utils_1.layout.UNSPECIFIED); var childMeasuredSize = view_1.View.measureChild(this, this._tableHeaderView, widthMeasureSpec, childHeightMeasureSpec); view_1.View.layoutChild(this, this._tableHeaderView, 0, 0, childMeasuredSize.measuredWidth, childMeasuredSize.measuredHeight); this._tableHeaderView.ios.frame = CGRectMake(0, 0, this.ios.bounds.size.width, childMeasuredSize.measuredHeight); } }; ListViewWithHeader.showDisclousureIndictorProperty = new dependency_observable_1.Property("showDisclosureIndicator", "ListViewWithHeader", new proxy_1.PropertyMetadata(false, dependency_observable_2.PropertyMetadataSettings.None, null, null, function (data) { var listView = data.object; listView.ios.reloadData(); })); return ListViewWithHeader; })(list_view_1.ListView); exports.ListViewWithHeader = ListViewWithHeader;