UNPKG

@junte/ui

Version:

Quality Angular UI components kit

175 lines 16.8 kB
var _a, _b; import { __decorate, __extends, __metadata } from "tslib"; import { Directive, EmbeddedViewRef, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'; import { takeWhile } from 'rxjs/operators'; import { PropertyApi } from '../../core/decorators/api'; import { Breakpoint } from '../../core/enums/breakpoint'; import { BreakpointService } from './breakpoint.service'; var breakpoints = [Breakpoint.mobile, Breakpoint.tablet, Breakpoint.desktop, Breakpoint.wide]; var BreakpointDirective = /** @class */ (function () { function BreakpointDirective(breakpoint, templateRef, viewContainerRef) { this.breakpoint = breakpoint; this.templateRef = templateRef; this.viewContainerRef = viewContainerRef; this.destroyed = false; this._target = []; } BreakpointDirective.prototype.ngOnInit = function () { var _this = this; this.matched(this.breakpoint.current); this.breakpoint.changed .pipe(takeWhile(function () { return !_this.destroyed; })) .subscribe(function (b) { return _this.matched(b); }); }; BreakpointDirective.prototype.ngOnDestroy = function () { this.destroyed = true; }; BreakpointDirective.prototype.matched = function (breakpoint) { if (this._target.includes(breakpoint)) { if (!this.view) { this.view = this.viewContainerRef.createEmbeddedView(this.templateRef); } } else { if (!!this.view) { this.viewContainerRef.clear(); this.view = null; } } }; return BreakpointDirective; }()); export { BreakpointDirective }; var ForDirective = /** @class */ (function (_super) { __extends(ForDirective, _super); function ForDirective(breakpoint, templateRef, viewContainerRef) { return _super.call(this, breakpoint, templateRef, viewContainerRef) || this; } Object.defineProperty(ForDirective.prototype, "target", { set: function (target) { this._target = [target]; }, enumerable: true, configurable: true }); ForDirective.ctorParameters = function () { return [ { type: BreakpointService }, { type: TemplateRef }, { type: ViewContainerRef } ]; }; __decorate([ PropertyApi({ name: 'jntFor', description: 'Target break point for rendering', path: 'ui.breakpoints', options: breakpoints }), Input('jntFor'), __metadata("design:type", String), __metadata("design:paramtypes", [String]) ], ForDirective.prototype, "target", null); ForDirective = __decorate([ Directive({ selector: '[jntFor]' }), __metadata("design:paramtypes", [BreakpointService, TemplateRef, ViewContainerRef]) ], ForDirective); return ForDirective; }(BreakpointDirective)); export { ForDirective }; var min = (_a = {}, _a[Breakpoint.mobile] = [Breakpoint.mobile, Breakpoint.tablet, Breakpoint.desktop, Breakpoint.wide], _a[Breakpoint.tablet] = [Breakpoint.tablet, Breakpoint.desktop, Breakpoint.wide], _a[Breakpoint.desktop] = [Breakpoint.desktop, Breakpoint.wide], _a[Breakpoint.wide] = [Breakpoint.wide], _a); var ForMinDirective = /** @class */ (function (_super) { __extends(ForMinDirective, _super); function ForMinDirective(breakpoint, templateRef, viewContainerRef) { return _super.call(this, breakpoint, templateRef, viewContainerRef) || this; } Object.defineProperty(ForMinDirective.prototype, "target", { set: function (target) { this._target = min[target]; }, enumerable: true, configurable: true }); ForMinDirective.ctorParameters = function () { return [ { type: BreakpointService }, { type: TemplateRef }, { type: ViewContainerRef } ]; }; __decorate([ PropertyApi({ name: 'jntMinFor', description: 'Min break point for rendering', path: 'ui.breakpoints', options: breakpoints }), Input('jntMinFor'), __metadata("design:type", String), __metadata("design:paramtypes", [String]) ], ForMinDirective.prototype, "target", null); ForMinDirective = __decorate([ Directive({ selector: '[jntMinFor]' }), __metadata("design:paramtypes", [BreakpointService, TemplateRef, ViewContainerRef]) ], ForMinDirective); return ForMinDirective; }(BreakpointDirective)); export { ForMinDirective }; var max = (_b = {}, _b[Breakpoint.mobile] = [Breakpoint.mobile], _b[Breakpoint.tablet] = [Breakpoint.mobile, Breakpoint.tablet], _b[Breakpoint.desktop] = [Breakpoint.mobile, Breakpoint.tablet, Breakpoint.desktop], _b[Breakpoint.wide] = [Breakpoint.mobile, Breakpoint.tablet, Breakpoint.desktop, Breakpoint.wide], _b); var ForMaxDirective = /** @class */ (function (_super) { __extends(ForMaxDirective, _super); function ForMaxDirective(breakpoint, templateRef, viewContainerRef) { return _super.call(this, breakpoint, templateRef, viewContainerRef) || this; } Object.defineProperty(ForMaxDirective.prototype, "target", { set: function (target) { this._target = max[target]; }, enumerable: true, configurable: true }); ForMaxDirective.ctorParameters = function () { return [ { type: BreakpointService }, { type: TemplateRef }, { type: ViewContainerRef } ]; }; __decorate([ PropertyApi({ name: 'jntMaxFor', description: 'Max break point for rendering', path: 'ui.breakpoints', options: breakpoints }), Input('jntMaxFor'), __metadata("design:type", String), __metadata("design:paramtypes", [String]) ], ForMaxDirective.prototype, "target", null); ForMaxDirective = __decorate([ Directive({ selector: '[jntMaxFor]' }), __metadata("design:paramtypes", [BreakpointService, TemplateRef, ViewContainerRef]) ], ForMaxDirective); return ForMaxDirective; }(BreakpointDirective)); export { ForMaxDirective }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGp1bnRlL3VpLyIsInNvdXJjZXMiOlsibGliL2xheW91dC9yZXNwb25zaXZlL3Jlc3BvbnNpdmUuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxJQUFNLFdBQVcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNO0lBQ3BDLFVBQVUsQ0FBQyxNQUFNO0lBQ2pCLFVBQVUsQ0FBQyxPQUFPO0lBQ2xCLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUVuQjtJQU1FLDZCQUE4QixVQUE2QixFQUM3QixXQUE2QixFQUM3QixnQkFBa0M7UUFGbEMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFOeEQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVoQixZQUFPLEdBQUcsRUFBRSxDQUFDO0lBS3ZCLENBQUM7SUFFRCxzQ0FBUSxHQUFSO1FBQUEsaUJBS0M7UUFKQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPO2FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FB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Qzs7O09BQUE7O2dCQUV1QixpQkFBaUI7Z0JBQ2hCLFdBQVc7Z0JBQ04sZ0JBQWdCOztJQU45QztRQVBDLFdBQVcsQ0FBQztZQUNYLElBQUksRUFBRSxXQUFXO1lBQ2pCLFdBQVcsRUFBRSwrQkFBK0I7WUFDNUMsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQzs7O2lEQUdsQjtJQVhVLGVBQWU7UUFIM0IsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGFBQWE7U0FDeEIsQ0FBQzt5Q0Fjd0IsaUJBQWlCO1lBQ2hCLFdBQVc7WUFDTixnQkFBZ0I7T0FmbkMsZUFBZSxDQW1CM0I7SUFBRCxzQkFBQztDQUFBLEFBbkJELENBQXFDLG1CQUFtQixHQW1CdkQ7U0FuQlksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRW1iZWRkZWRWaWV3UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQcm9wZXJ0eUFwaSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy9hcGknO1xuaW1wb3J0IHsgQnJlYWtwb2ludCB9IGZyb20gJy4uLy4uL2NvcmUvZW51bXMvYnJlYWtwb2ludCc7XG5pbXBvcnQgeyBCcmVha3BvaW50U2VydmljZSB9IGZyb20gJy4vYnJlYWtwb2ludC5zZXJ2aWNlJztcblxuY29uc3QgYnJlYWtwb2ludHMgPSBbQnJlYWtwb2ludC5tb2JpbGUsXG4gIEJyZWFrcG9pbnQudGFibGV0LFxuICBCcmVha3BvaW50LmRlc2t0b3AsXG4gIEJyZWFrcG9pbnQud2lkZV07XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCcmVha3BvaW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgZGVzdHJveWVkID0gZmFsc2U7XG4gIHByaXZhdGUgdmlldzogRW1iZWRkZWRWaWV3UmVmPGFueT47XG4gIHByb3RlY3RlZCBfdGFyZ2V0ID0gW107XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByaXZhdGUgYnJlYWtwb2ludDogQnJlYWtwb2ludFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1hdGNoZWQodGhpcy5icmVha3BvaW50LmN1cnJlbnQpO1xuICAgIHRoaXMuYnJlYWtwb2ludC5jaGFuZ2VkXG4gICAgICAucGlwZSh0YWtlV2hpbGUoKCkgPT4gIXRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoYiA9PiB0aGlzLm1hdGNoZWQoYikpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXRjaGVkKGJyZWFrcG9pbnQ6IEJyZWFrcG9pbnQpIHtcbiAgICBpZiAodGhpcy5fdGFyZ2V0LmluY2x1ZGVzKGJyZWFrcG9pbnQpKSB7XG4gICAgICBpZiAoIXRoaXMudmlldykge1xuICAgICAgICB0aGlzLnZpZXcgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoISF0aGlzLnZpZXcpIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudmlldyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2pudEZvcl0nXG59KVxuZXhwb3J0IGNsYXNzIEZvckRpcmVjdGl2ZSBleHRlbmRzIEJyZWFrcG9pbnREaXJlY3RpdmUge1xuXG4gIEBQcm9wZXJ0eUFwaSh7XG4gICAgbmFtZTogJ2pudEZvcicsXG4gICAgZGVzY3JpcHRpb246ICdUYXJnZXQgYnJlYWsgcG9pbnQgZm9yIHJlbmRlcmluZycsXG4gICAgcGF0aDogJ3VpLmJyZWFrcG9pbnRzJyxcbiAgICBvcHRpb25zOiBicmVha3BvaW50c1xuICB9KVxuICBASW5wdXQoJ2pudEZvcicpXG4gIHNldCB0YXJnZXQodGFyZ2V0OiBCcmVha3BvaW50KSB7XG4gICAgdGhpcy5fdGFyZ2V0ID0gW3RhcmdldF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihicmVha3BvaW50OiBCcmVha3BvaW50U2VydmljZSxcbiAgICAgICAgICAgICAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBzdXBlcihicmVha3BvaW50LCB0ZW1wbGF0ZVJlZiwgdmlld0NvbnRhaW5lclJlZik7XG4gIH1cblxufVxuXG5jb25zdCBtaW4gPSB7XG4gIFtCcmVha3BvaW50Lm1vYmlsZV06IFtCcmVha3BvaW50Lm1vYmlsZSwgQnJlYWtwb2ludC50YWJsZXQsIEJyZWFrcG9pbnQuZGVza3RvcCwgQnJlYWtwb2ludC53aWRlXSxcbiAgW0JyZWFrcG9pbnQudGFibGV0XTogW0JyZWFrcG9pbnQudGFibGV0LCBCcmVha3BvaW50LmRlc2t0b3AsIEJyZWFrcG9pbnQud2lkZV0sXG4gIFtCcmVha3BvaW50LmRlc2t0b3BdOiBbQnJlYWtwb2ludC5kZXNrdG9wLCBCcmVha3BvaW50LndpZGVdLFxuICBbQnJlYWtwb2ludC53aWRlXTogW0JyZWFrcG9pbnQud2lkZV1cbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tqbnRNaW5Gb3JdJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JNaW5EaXJlY3RpdmUgZXh0ZW5kcyBCcmVha3BvaW50RGlyZWN0aXZlIHtcblxuICBAUHJvcGVydHlBcGkoe1xuICAgIG5hbWU6ICdqbnRNaW5Gb3InLFxuICAgIGRlc2NyaXB0aW9uOiAnTWluIGJyZWFrIHBvaW50IGZvciByZW5kZXJpbmcnLFxuICAgIHBhdGg6ICd1aS5icmVha3BvaW50cycsXG4gICAgb3B0aW9uczogYnJlYWtwb2ludHNcbiAgfSlcbiAgQElucHV0KCdqbnRNaW5Gb3InKVxuICBzZXQgdGFyZ2V0KHRhcmdldDogQnJlYWtwb2ludCkge1xuICAgIHRoaXMuX3RhcmdldCA9IG1pblt0YXJnZXRdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYnJlYWtwb2ludDogQnJlYWtwb2ludFNlcnZpY2UsXG4gICAgICAgICAgICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIoYnJlYWtwb2ludCwgdGVtcGxhdGVSZWYsIHZpZXdDb250YWluZXJSZWYpO1xuICB9XG5cbn1cblxuY29uc3QgbWF4ID0ge1xuICBbQnJlYWtwb2ludC5tb2JpbGVdOiBbQnJlYWtwb2ludC5tb2JpbGVdLFxuICBbQnJlYWtwb2ludC50YWJsZXRdOiBbQnJlYWtwb2ludC5tb2JpbGUsIEJyZWFrcG9pbnQudGFibGV0XSxcbiAgW0JyZWFrcG9pbnQuZGVza3RvcF06IFtCcmVha3BvaW50Lm1vYmlsZSwgQnJlYWtwb2ludC50YWJsZXQsIEJyZWFrcG9pbnQuZGVza3RvcF0sXG4gIFtCcmVha3BvaW50LndpZGVdOiBbQnJlYWtwb2ludC5tb2JpbGUsIEJyZWFrcG9pbnQudGFibGV0LCBCcmVha3BvaW50LmRlc2t0b3AsIEJyZWFrcG9pbnQud2lkZV1cbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tqbnRNYXhGb3JdJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JNYXhEaXJlY3RpdmUgZXh0ZW5kcyBCcmVha3BvaW50RGlyZWN0aXZlIHtcblxuICBAUHJvcGVydHlBcGkoe1xuICAgIG5hbWU6ICdqbnRNYXhGb3InLFxuICAgIGRlc2NyaXB0aW9uOiAnTWF4IGJyZWFrIHBvaW50IGZvciByZW5kZXJpbmcnLFxuICAgIHBhdGg6ICd1aS5icmVha3BvaW50cycsXG4gICAgb3B0aW9uczogYnJlYWtwb2ludHNcbiAgfSlcbiAgQElucHV0KCdqbnRNYXhGb3InKVxuICBzZXQgdGFyZ2V0KHRhcmdldDogQnJlYWtwb2ludCkge1xuICAgIHRoaXMuX3RhcmdldCA9IG1heFt0YXJnZXRdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYnJlYWtwb2ludDogQnJlYWtwb2ludFNlcnZpY2UsXG4gICAgICAgICAgICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIoYnJlYWtwb2ludCwgdGVtcGxhdGVSZWYsIHZpZXdDb250YWluZXJSZWYpO1xuICB9XG5cbn1cbiJdfQ==