ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
117 lines • 14.3 kB
JavaScript
import { Directive, ElementRef, EventEmitter, Host, HostListener, Input, Optional, Renderer2, Self } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs';
import { Codes } from '../../../util/codes';
import { Util } from '../../../util/util';
import { ListItem } from './o-list-item';
import * as i0 from "@angular/core";
import * as i1 from "./o-list-item";
import * as i2 from "@angular/router";
export class OListItemDirective {
constructor(listItem, _el, renderer, actRoute) {
this.listItem = listItem;
this._el = _el;
this.renderer = renderer;
this.actRoute = actRoute;
this.onClick = new EventEmitter();
this.onDoubleClick = new EventEmitter();
this.selectable = false;
this.subscription = new Subscription();
}
ngOnInit() {
this.subscription.add(this.actRoute.params.subscribe(params => this.updateActiveState(params)));
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
onMouseEnter() {
if (!this.selectable && this._list && this._list.detailMode !== Codes.DETAIL_MODE_NONE) {
this.renderer.setStyle(this._el.nativeElement, 'cursor', 'pointer');
}
}
updateActiveState(params) {
if (this._list) {
const aKeys = this._list.getKeys();
if (this.modelData) {
let _act = false;
if (aKeys.length > 0) {
for (let k = 0; k < aKeys.length; ++k) {
const key = aKeys[k];
const id = params[key];
_act = (this.modelData[key] === id);
if (_act === false) {
break;
}
}
}
if (_act) {
this._el.nativeElement.classList.add('mat-active');
}
else {
this._el.nativeElement.classList.remove('mat-active');
}
}
else {
this._el.nativeElement.classList.remove('mat-active');
}
}
}
onItemClicked(e) {
if (!this.selectable && this._list) {
this._list.onItemDetailClick(this);
this.onClick.emit(this.getItemData());
}
}
onItemDoubleClicked(e) {
if (!this.selectable && this._list) {
this._list.onItemDetailDoubleClick(this);
this.onDoubleClick.emit(this.getItemData());
}
}
isSelected() {
return this._list && this._list.isItemSelected(this.modelData);
}
setListComponent(list) {
this._list = list;
}
setItemData(data) {
if (!Util.isDefined(this.modelData) || this.modelData !== 'object') {
this.modelData = data;
}
if (Util.isDefined(this.listItem)) {
this.listItem.setItemData(this.modelData);
}
}
getItemData() {
return this.modelData;
}
}
OListItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListItemDirective, deps: [{ token: i1.ListItem, host: true, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Directive });
OListItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: OListItemDirective, selector: "o-list-item, mat-list-item[o-list-item], mat-card[o-list-item]", inputs: { modelData: ["o-list-item", "modelData"], selectable: "selectable" }, host: { listeners: { "click": "onItemClicked($event)", "dblclick": "onItemDoubleClicked($event)", "mouseenter": "onMouseEnter()" }, properties: { "class.o-list-item": "true" } }, exportAs: ["olistitem"], ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListItemDirective, decorators: [{
type: Directive,
args: [{
selector: 'o-list-item, mat-list-item[o-list-item], mat-card[o-list-item]',
exportAs: 'olistitem',
host: {
'[class.o-list-item]': 'true',
'(click)': 'onItemClicked($event)',
'(dblclick)': 'onItemDoubleClicked($event)'
}
}]
}], ctorParameters: function () { return [{ type: i1.ListItem, decorators: [{
type: Host
}, {
type: Self
}, {
type: Optional
}] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i2.ActivatedRoute }]; }, propDecorators: { modelData: [{
type: Input,
args: ['o-list-item']
}], selectable: [{
type: Input
}], onMouseEnter: [{
type: HostListener,
args: ['mouseenter']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1saXN0LWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvbGlzdC9saXN0LWl0ZW0vby1saXN0LWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksRUFDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFXekMsTUFBTSxPQUFPLGtCQUFrQjtJQWM3QixZQUNxQyxRQUFrQixFQUM5QyxHQUFlLEVBQ2QsUUFBbUIsRUFDcEIsUUFBd0I7UUFISSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQzlDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBaEIxQixZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEQsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU10RCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBR3pCLGlCQUFZLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFPdEQsQ0FBQztJQUVFLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFD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QUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBUztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDbEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOztnSEEvRlUsa0JBQWtCO29HQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFUOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0VBQWdFO29CQUMxRSxRQUFRLEVBQUUsV0FBVztvQkFDckIsSUFBSSxFQUFFO3dCQUNKLHFCQUFxQixFQUFFLE1BQU07d0JBQzdCLFNBQVMsRUFBRSx1QkFBdUI7d0JBQ2xDLFlBQVksRUFBRSw2QkFBNkI7cUJBQzVDO2lCQUNGOzswQkFnQkksSUFBSTs7MEJBQUksSUFBSTs7MEJBQUksUUFBUTswSEFUcEIsU0FBUztzQkFEZixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsVUFBVTtzQkFEaEIsS0FBSztnQkFzQkMsWUFBWTtzQkFEbEIsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3QsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElMaXN0IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9vLWxpc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvZGVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9jb2Rlcyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi9vLWxpc3QtaXRlbSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ28tbGlzdC1pdGVtLCBtYXQtbGlzdC1pdGVtW28tbGlzdC1pdGVtXSwgbWF0LWNhcmRbby1saXN0LWl0ZW1dJyxcbiAgZXhwb3J0QXM6ICdvbGlzdGl0ZW0nLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLWxpc3QtaXRlbV0nOiAndHJ1ZScsXG4gICAgJyhjbGljayknOiAnb25JdGVtQ2xpY2tlZCgkZXZlbnQpJyxcbiAgICAnKGRibGNsaWNrKSc6ICdvbkl0ZW1Eb3VibGVDbGlja2VkKCRldmVudCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgT0xpc3RJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHVibGljIG9uRG91YmxlQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgnby1saXN0LWl0ZW0nKVxuICBwdWJsaWMgbW9kZWxEYXRhOiBhbnk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgX2xpc3Q6IElMaXN0O1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEhvc3QoKSBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBsaXN0SXRlbTogTGlzdEl0ZW0sXG4gICAgcHVibGljIF9lbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHVibGljIGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5hY3RSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB0aGlzLnVwZGF0ZUFjdGl2ZVN0YXRlKHBhcmFtcykpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIHB1YmxpYyBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGFibGUgJiYgdGhpcy5fbGlzdCAmJiB0aGlzLl9saXN0LmRldGFpbE1vZGUgIT09IENvZGVzLkRFVEFJTF9NT0RFX05PTkUpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ2N1cnNvcicsICdwb2ludGVyJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFjdGl2ZVN0YXRlKHBhcmFtcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9saXN0KSB7XG4gICAgICBjb25zdCBhS2V5cyA9IHRoaXMuX2xpc3QuZ2V0S2V5cygpO1xuICAgICAgaWYgKHRoaXMubW9kZWxEYXRhKSB7XG4gICAgICAgIGxldCBfYWN0ID0gZmFsc2U7XG4gICAgICAgIGlmIChhS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBhS2V5cy5sZW5ndGg7ICsraykge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gYUtleXNba107XG4gICAgICAgICAgICBjb25zdCBpZCA9IHBhcmFtc1trZXldO1xuICAgICAgICAgICAgX2FjdCA9ICh0aGlzLm1vZGVsRGF0YVtrZXldID09PSBpZCk7XG4gICAgICAgICAgICBpZiAoX2FjdCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChfYWN0KSB7XG4gICAgICAgICAgdGhpcy5fZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdtYXQtYWN0aXZlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdtYXQtYWN0aXZlJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnbWF0LWFjdGl2ZScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkl0ZW1DbGlja2VkKGU/OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZWxlY3RhYmxlICYmIHRoaXMuX2xpc3QpIHtcbiAgICAgIHRoaXMuX2xpc3Qub25JdGVtRGV0YWlsQ2xpY2sodGhpcyk7XG4gICAgICB0aGlzLm9uQ2xpY2suZW1pdCh0aGlzLmdldEl0ZW1EYXRhKCkpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSXRlbURvdWJsZUNsaWNrZWQoZT86IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGFibGUgJiYgdGhpcy5fbGlzdCkge1xuICAgICAgdGhpcy5fbGlzdC5vbkl0ZW1EZXRhaWxEb3VibGVDbGljayh0aGlzKTtcbiAgICAgIHRoaXMub25Eb3VibGVDbGljay5lbWl0KHRoaXMuZ2V0SXRlbURhdGEoKSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbGlzdCAmJiB0aGlzLl9saXN0LmlzSXRlbVNlbGVjdGVkKHRoaXMubW9kZWxEYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaXN0Q29tcG9uZW50KGxpc3Q6IElMaXN0KTogdm9pZCB7XG4gICAgdGhpcy5fbGlzdCA9IGxpc3Q7XG4gIH1cblxuICBwdWJsaWMgc2V0SXRlbURhdGEoZGF0YTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLm1vZGVsRGF0YSkgfHwgdGhpcy5tb2RlbERhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLm1vZGVsRGF0YSA9IGRhdGE7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLmxpc3RJdGVtKSkge1xuICAgICAgdGhpcy5saXN0SXRlbS5zZXRJdGVtRGF0YSh0aGlzLm1vZGVsRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEl0ZW1EYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxEYXRhO1xuICB9XG5cbn1cbiJdfQ==