ionic-angular
Version:
A powerful framework for building mobile and progressive web apps with JavaScript and Angular
130 lines • 4.31 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { Directive, ElementRef, Input, Renderer } from '@angular/core';
import { Config } from '../../config/config';
import { DomController } from '../../platform/dom-controller';
import { GestureController } from '../../gestures/gesture-controller';
import { Ion } from '../ion';
import { isTrueProperty } from '../../util/util';
import { ItemSlidingGesture } from '../item/item-sliding-gesture';
import { Platform } from '../../platform/platform';
/**
* The List is a widely used interface element in almost any mobile app,
* and can include content ranging from basic text all the way to
* buttons, toggles, icons, and thumbnails.
*
* Both the list, which contains items, and the list items themselves
* can be any HTML element.
*
* Using the List and Item components make it easy to support various
* interaction modes such as swipe to edit, drag to reorder, and
* removing items.
*
* @demo /docs/demos/src/list/
* @see {@link /docs/components#lists List Component Docs}
* @advanced
*
* Enable the sliding items.
*
* ```ts
* import { Component, ViewChild } from '@angular/core';
* import { List } from 'ionic-angular';
*
* @Component({...})
* export class MyClass {
* @ViewChild(List) list: List;
*
* constructor() { }
*
* stopSliding() {
* this.list.enableSlidingItems(false);
* }
* }
* ```
*
*/
var List = (function (_super) {
__extends(List, _super);
function List(config, elementRef, renderer, _plt, _gestureCtrl, _domCtrl) {
var _this = _super.call(this, config, elementRef, renderer, 'list') || this;
_this._plt = _plt;
_this._gestureCtrl = _gestureCtrl;
_this._domCtrl = _domCtrl;
_this._enableSliding = true;
_this._containsSlidingItems = false;
return _this;
}
Object.defineProperty(List.prototype, "sliding", {
/**
* @input {boolean} If true, the sliding items will be enabled.
*/
get: function () {
return this._enableSliding;
},
set: function (val) {
this._enableSliding = isTrueProperty(val);
this._updateSlidingState();
},
enumerable: true,
configurable: true
});
/**
* @hidden
*/
List.prototype.containsSlidingItem = function (contains) {
this._containsSlidingItems = contains;
this._updateSlidingState();
};
List.prototype._updateSlidingState = function () {
var shouldSlide = this._enableSliding && this._containsSlidingItems;
if (!shouldSlide) {
this._slidingGesture && this._slidingGesture.destroy();
this._slidingGesture = null;
}
else if (!this._slidingGesture) {
(void 0) /* console.debug */;
this._slidingGesture = new ItemSlidingGesture(this._plt, this, this._gestureCtrl, this._domCtrl);
this._slidingGesture.listen();
}
};
/**
* Close any sliding items that are open.
*/
List.prototype.closeSlidingItems = function () {
this._slidingGesture && this._slidingGesture.closeOpened();
};
/**
* @hidden
*/
List.prototype.destroy = function () {
this._slidingGesture && this._slidingGesture.destroy();
};
List.decorators = [
{ type: Directive, args: [{
selector: 'ion-list',
},] },
];
/** @nocollapse */
List.ctorParameters = function () { return [
{ type: Config, },
{ type: ElementRef, },
{ type: Renderer, },
{ type: Platform, },
{ type: GestureController, },
{ type: DomController, },
]; };
List.propDecorators = {
'sliding': [{ type: Input },],
};
return List;
}(Ion));
export { List };
//# sourceMappingURL=list.js.map