@asi-ngtools/lib
Version:
This project is a little components library, simple to use, which will help you to simplify your project.
175 lines (174 loc) • 11.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, ContentChild, Input, ViewChildren, QueryList, Output, EventEmitter } from '@angular/core';
import { AsiComponentTemplateTreeNodeDef, AsiComponentTemplateTreeLeafDef } from './../common/asi-component-template';
import { AsiTreeViewNodeComponent } from './node/asi-tree-view-node.component';
import * as nh from '../../native-helper';
import { AsiTreeViewService } from './asi-tree-view.service';
var AsiTreeViewComponent = /** @class */ (function () {
function AsiTreeViewComponent(asiTreeViewService) {
this.asiTreeViewService = asiTreeViewService;
this.baseData = [];
this.filteredData = [];
/**
* Open icon (fontawesome)
*/
this.iconOpen = 'fas fa-chevron-down';
/**
* Close icon (fontawesome)
*/
this.iconClose = 'fas fa-chevron-up';
/**
* define the name of the sub nodes to display
*/
this.nodeName = '';
/**
* If this function is define it's used to define if the node is a leaf
*/
this.isLeaf = null;
/**
* Event emitted when a node is selected
*/
this.onNodeSelected = new EventEmitter();
}
Object.defineProperty(AsiTreeViewComponent.prototype, "data", {
/** List of data to display */
set: /**
* List of data to display
* @param {?} data
* @return {?}
*/
function (data) {
this.baseData = data;
this.filteredData = data;
},
enumerable: true,
configurable: true
});
;
/**
* @param {?} nodeFinder
* @return {?}
*/
AsiTreeViewComponent.prototype.openNode = /**
* @param {?} nodeFinder
* @return {?}
*/
function (nodeFinder) {
this.asiTreeViewService.openNode(this.nodes.toArray(), nodeFinder);
};
/**
* @return {?}
*/
AsiTreeViewComponent.prototype.closeAll = /**
* @return {?}
*/
function () {
this.asiTreeViewService.closeAll(this.nodes.toArray());
};
/**
* @return {?}
*/
AsiTreeViewComponent.prototype.openAll = /**
* @return {?}
*/
function () {
this.asiTreeViewService.openAll(this.nodes.toArray());
};
/**
* @param {?} nodeFinder
* @param {?=} keepLeaves
* @param {?=} isLeaf
* @return {?}
*/
AsiTreeViewComponent.prototype.filterNodes = /**
* @param {?} nodeFinder
* @param {?=} keepLeaves
* @param {?=} isLeaf
* @return {?}
*/
function (nodeFinder, keepLeaves, isLeaf) {
var _this = this;
this.filteredData = this.asiTreeViewService.filterNodes(nh.cloneDeep(this.baseData), this.nodeName, nodeFinder, keepLeaves, isLeaf);
setTimeout(function () {
_this.openAll();
});
};
/**
* @param {?} node
* @return {?}
*/
AsiTreeViewComponent.prototype.onNodeClicked = /**
* @param {?} node
* @return {?}
*/
function (node) {
this.onNodeSelected.emit(node);
};
AsiTreeViewComponent.decorators = [
{ type: Component, args: [{
selector: 'asi-tree-view',
host: { 'class': 'asi-component asi-tree-view' },
template: "<asi-tree-view-node *ngFor=\"let nodeData of filteredData; let first = first; let last = last\"\r\n [iconOpen]=\"iconOpen\" [iconClose]=\"iconClose\" [nodeData]=\"nodeData\" [asiTreeView]=\"this\"\r\n [level]=\"1\" [nodeName]=\"nodeName\" [nodeDef]=\"nodeDef\" [leafDef]=\"leafDef\" [isLeaf]=\"isLeaf\"\r\n [firstNode]=\"first\" [lastNode]=\"last\"></asi-tree-view-node>\r\n"
}] }
];
/** @nocollapse */
AsiTreeViewComponent.ctorParameters = function () { return [
{ type: AsiTreeViewService }
]; };
AsiTreeViewComponent.propDecorators = {
nodeDef: [{ type: ContentChild, args: [AsiComponentTemplateTreeNodeDef,] }],
leafDef: [{ type: ContentChild, args: [AsiComponentTemplateTreeLeafDef,] }],
iconOpen: [{ type: Input }],
iconClose: [{ type: Input }],
data: [{ type: Input }],
nodeName: [{ type: Input }],
isLeaf: [{ type: Input }],
onNodeSelected: [{ type: Output }],
nodes: [{ type: ViewChildren, args: [AsiTreeViewNodeComponent,] }]
};
return AsiTreeViewComponent;
}());
export { AsiTreeViewComponent };
if (false) {
/** @type {?} */
AsiTreeViewComponent.prototype.baseData;
/** @type {?} */
AsiTreeViewComponent.prototype.filteredData;
/** @type {?} */
AsiTreeViewComponent.prototype.nodeDef;
/** @type {?} */
AsiTreeViewComponent.prototype.leafDef;
/**
* Open icon (fontawesome)
* @type {?}
*/
AsiTreeViewComponent.prototype.iconOpen;
/**
* Close icon (fontawesome)
* @type {?}
*/
AsiTreeViewComponent.prototype.iconClose;
/**
* define the name of the sub nodes to display
* @type {?}
*/
AsiTreeViewComponent.prototype.nodeName;
/**
* If this function is define it's used to define if the node is a leaf
* @type {?}
*/
AsiTreeViewComponent.prototype.isLeaf;
/**
* Event emitted when a node is selected
* @type {?}
*/
AsiTreeViewComponent.prototype.onNodeSelected;
/** @type {?} */
AsiTreeViewComponent.prototype.nodes;
/** @type {?} */
AsiTreeViewComponent.prototype.asiTreeViewService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLXRyZWUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYXNpLW5ndG9vbHMvbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYXNpLXRyZWUtdmlldy9hc2ktdHJlZS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0SCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztJQXNDM0QsOEJBQW9CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO3dCQTdCM0IsRUFBRTs0QkFDTixFQUFFOzs7O3dCQU1ULHFCQUFxQjs7Ozt5QkFFcEIsbUJBQW1COzs7O3dCQVVwQixFQUFFOzs7O3NCQUdNLElBQUk7Ozs7OEJBR0wsSUFBSSxZQUFZLEVBQU87S0FLakQ7SUFsQkQsc0JBQ0ksc0NBQUk7UUFGUiw4QkFBOEI7Ozs7OztRQUM5QixVQUNTLElBQWdCO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzFCOzs7T0FBQTtJQUFBLENBQUM7Ozs7O0lBZ0JLLHVDQUFROzs7O2NBQUMsVUFBb0I7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDOzs7OztJQUc5RCx1Q0FBUTs7OztRQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDOzs7OztJQUdsRCxzQ0FBTzs7OztRQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7OztJQUd4RCwwQ0FBVzs7Ozs7O0lBQVgsVUFBWSxVQUFvQixFQUFFLFVBQW9CLEVBQUUsTUFBaUI7UUFBekUsaUJBS0M7UUFKQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BJLFVBQVUsQ0FBQztZQUNULEtBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQixDQUFDLENBQUM7S0FDSjs7Ozs7SUFFTSw0Q0FBYTs7OztjQUFDLElBQThCO1FBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzs7Z0JBM0RsQyxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRTtvQkFDaEQsMmJBQTJDO2lCQUM1Qzs7OztnQkFOUSxrQkFBa0I7OzswQkFZeEIsWUFBWSxTQUFDLCtCQUErQjswQkFDNUMsWUFBWSxTQUFDLCtCQUErQjsyQkFHNUMsS0FBSzs0QkFFTCxLQUFLO3VCQUdMLEtBQUs7MkJBT0wsS0FBSzt5QkFHTCxLQUFLO2lDQUdMLE1BQU07d0JBRU4sWUFBWSxTQUFDLHdCQUF3Qjs7K0JBeEN4Qzs7U0FXYSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBc2lDb21wb25lbnRUZW1wbGF0ZVRyZWVOb2RlRGVmLCBBc2lDb21wb25lbnRUZW1wbGF0ZVRyZWVMZWFmRGVmIH0gZnJvbSAnLi8uLi9jb21tb24vYXNpLWNvbXBvbmVudC10ZW1wbGF0ZSc7XHJcbmltcG9ydCB7IEFzaVRyZWVWaWV3Tm9kZUNvbXBvbmVudCB9IGZyb20gJy4vbm9kZS9hc2ktdHJlZS12aWV3LW5vZGUuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgbmggZnJvbSAnLi4vLi4vbmF0aXZlLWhlbHBlcic7XHJcbmltcG9ydCB7IEFzaVRyZWVWaWV3U2VydmljZSB9IGZyb20gJy4vYXNpLXRyZWUtdmlldy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXNpLXRyZWUtdmlldycsXHJcbiAgaG9zdDogeyAnY2xhc3MnOiAnYXNpLWNvbXBvbmVudCBhc2ktdHJlZS12aWV3JyB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnYXNpLXRyZWUtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc2lUcmVlVmlld0NvbXBvbmVudCB7XHJcblxyXG4gIHByaXZhdGUgYmFzZURhdGE6IEFycmF5PGFueT4gPSBbXTtcclxuICBmaWx0ZXJlZERhdGE6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChBc2lDb21wb25lbnRUZW1wbGF0ZVRyZWVOb2RlRGVmKSBub2RlRGVmOiBBc2lDb21wb25lbnRUZW1wbGF0ZVRyZWVOb2RlRGVmO1xyXG4gIEBDb250ZW50Q2hpbGQoQXNpQ29tcG9uZW50VGVtcGxhdGVUcmVlTGVhZkRlZikgbGVhZkRlZjogQXNpQ29tcG9uZW50VGVtcGxhdGVUcmVlTGVhZkRlZjtcclxuXHJcbiAgLyoqIE9wZW4gaWNvbiAoZm9udGF3ZXNvbWUpICovXHJcbiAgQElucHV0KCkgaWNvbk9wZW4gPSAnZmFzIGZhLWNoZXZyb24tZG93bic7XHJcbiAgLyoqIENsb3NlIGljb24gKGZvbnRhd2Vzb21lKSAqL1xyXG4gIEBJbnB1dCgpIGljb25DbG9zZSA9ICdmYXMgZmEtY2hldnJvbi11cCc7XHJcblxyXG4gIC8qKiBMaXN0IG9mIGRhdGEgdG8gZGlzcGxheSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhdGEoZGF0YTogQXJyYXk8YW55Pikge1xyXG4gICAgdGhpcy5iYXNlRGF0YSA9IGRhdGE7XHJcbiAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IGRhdGE7XHJcbiAgfTtcclxuXHJcbiAgLyoqIGRlZmluZSB0aGUgbmFtZSBvZiB0aGUgc3ViIG5vZGVzIHRvIGRpc3BsYXkgICovXHJcbiAgQElucHV0KCkgbm9kZU5hbWUgPSAnJztcclxuXHJcbiAgLyoqIElmIHRoaXMgZnVuY3Rpb24gaXMgZGVmaW5lIGl0J3MgdXNlZCB0byBkZWZpbmUgaWYgdGhlIG5vZGUgaXMgYSBsZWFmICovXHJcbiAgQElucHV0KCkgaXNMZWFmOiBGdW5jdGlvbiA9IG51bGw7XHJcblxyXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBub2RlIGlzIHNlbGVjdGVkICovXHJcbiAgQE91dHB1dCgpIG9uTm9kZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oQXNpVHJlZVZpZXdOb2RlQ29tcG9uZW50KSBub2RlczogUXVlcnlMaXN0PEFzaVRyZWVWaWV3Tm9kZUNvbXBvbmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXNpVHJlZVZpZXdTZXJ2aWNlOiBBc2lUcmVlVmlld1NlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuTm9kZShub2RlRmluZGVyOiBGdW5jdGlvbikge1xyXG4gICAgdGhpcy5hc2lUcmVlVmlld1NlcnZpY2Uub3Blbk5vZGUodGhpcy5ub2Rlcy50b0FycmF5KCksIG5vZGVGaW5kZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQWxsKCkge1xyXG4gICAgdGhpcy5hc2lUcmVlVmlld1NlcnZpY2UuY2xvc2VBbGwodGhpcy5ub2Rlcy50b0FycmF5KCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5BbGwoKSB7XHJcbiAgICB0aGlzLmFzaVRyZWVWaWV3U2VydmljZS5vcGVuQWxsKHRoaXMubm9kZXMudG9BcnJheSgpKTtcclxuICB9XHJcblxyXG4gIGZpbHRlck5vZGVzKG5vZGVGaW5kZXI6IEZ1bmN0aW9uLCBrZWVwTGVhdmVzPzogYm9vbGVhbiwgaXNMZWFmPzogRnVuY3Rpb24pIHtcclxuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5hc2lUcmVlVmlld1NlcnZpY2UuZmlsdGVyTm9kZXMobmguY2xvbmVEZWVwKHRoaXMuYmFzZURhdGEpLCB0aGlzLm5vZGVOYW1lLCBub2RlRmluZGVyLCBrZWVwTGVhdmVzLCBpc0xlYWYpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMub3BlbkFsbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Ob2RlQ2xpY2tlZChub2RlOiBBc2lUcmVlVmlld05vZGVDb21wb25lbnQpIHtcclxuICAgIHRoaXMub25Ob2RlU2VsZWN0ZWQuZW1pdChub2RlKTtcclxuICB9XHJcbn1cclxuIl19