@js-sugar/angular
Version:
JS-Sugar core package (Angular)
99 lines • 14.6 kB
JavaScript
import { isPlatformBrowser } from '@angular/common';
import { Component, ContentChildren, EventEmitter, Inject, Output, PLATFORM_ID } from '@angular/core';
import { PanelComponent } from './panel.component';
import { state, style, transition, trigger } from '@angular/animations';
import { SIDENAV_ANIMATE } from './animation';
import * as i0 from "@angular/core";
import * as i1 from "@angular/cdk/bidi";
export class PanelsComponent {
constructor(_dir, _platformId) {
this._dir = _dir;
this.layoutChange = new EventEmitter();
this._animationState = false;
this._contentPosition = { top: 0, bottom: 0, left: 0, right: 0 };
this._isBrowser = isPlatformBrowser(_platformId);
this._isRtl = this._dir.value === 'rtl';
}
get contentPosition() {
return this._contentPosition;
}
ngAfterContentInit() {
this.refresh();
}
refresh() {
this.computeContentPosition();
this._animationState = !this._animationState;
}
computeContentPosition() {
if (this._isBrowser) {
const fixedPanels = this._panels.filter(p => p.show && !p.over);
const max = (items) => items.length === 0 ? 0 : Math.max(...items);
const getPositionSizes = (position) => fixedPanels
.filter(p => p.position === position)
.map(p => position === 'start' || position === 'end' ? p.elementRef.nativeElement.clientWidth : p.elementRef.nativeElement.clientHeight);
const positions = ['start', 'end', 'top', 'bottom'];
var paddings = positions.map(pos => max(getPositionSizes(pos)));
this._contentPosition = {
left: this._isRtl ? paddings[1] : paddings[0],
right: this._isRtl ? paddings[0] : paddings[1],
top: paddings[2],
bottom: paddings[3],
};
}
else {
this._contentPosition = { top: 0, right: 0, bottom: 0, left: 0 };
}
}
get _animationTrigger() {
const { bottom, left, top, right } = this._contentPosition;
return {
value: this._animationState,
params: {
padding: `${top}px ${right}px ${bottom}px ${left}px`,
}
};
}
}
PanelsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: PanelsComponent, deps: [{ token: i1.Directionality }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
PanelsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: PanelsComponent, selector: "jss-panels", outputs: { layoutChange: "layoutChange" }, queries: [{ propertyName: "_panels", predicate: PanelComponent }], exportAs: ["jssPanels"], ngImport: i0, template: "<ng-content select=\"jss-panel\"></ng-content>\r\n<div class=\"jss-panels-content\" [@t]=\"_animationTrigger\">\r\n <ng-content></ng-content>\r\n</div>", styles: [":host{display:block;position:relative;overflow:hidden}\n"], animations: [
trigger('t', [
state('0', style({
padding: '{{padding}}',
height: '100%'
}), { params: { padding: '' } }),
state('1', style({
padding: '{{padding}}',
height: '100%'
}), { params: { padding: '' } }),
transition('0 <=> 1', [
SIDENAV_ANIMATE,
])
]),
] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: PanelsComponent, decorators: [{
type: Component,
args: [{ selector: 'jss-panels', exportAs: 'jssPanels', animations: [
trigger('t', [
state('0', style({
padding: '{{padding}}',
height: '100%'
}), { params: { padding: '' } }),
state('1', style({
padding: '{{padding}}',
height: '100%'
}), { params: { padding: '' } }),
transition('0 <=> 1', [
SIDENAV_ANIMATE,
])
]),
], template: "<ng-content select=\"jss-panel\"></ng-content>\r\n<div class=\"jss-panels-content\" [@t]=\"_animationTrigger\">\r\n <ng-content></ng-content>\r\n</div>", styles: [":host{display:block;position:relative;overflow:hidden}\n"] }]
}], ctorParameters: function () { return [{ type: i1.Directionality }, { type: undefined, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }]; }, propDecorators: { layoutChange: [{
type: Output
}], _panels: [{
type: ContentChildren,
args: [PanelComponent]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3BhbmVscy9wYW5lbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcGFuZWxzL3BhbmVscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQ2EsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFTLE1BQU0sRUFBRSxXQUFXLEVBQy9GLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBdUI5QyxNQUFNLE9BQU8sZUFBZTtJQVcxQixZQUNVLElBQW9CLEVBQ1AsV0FBZ0I7UUFEN0IsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFYcEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUkzRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixxQkFBZ0IsR0FBMEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFTekYsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJ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QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPdXRwdXQsIFBMQVRGT1JNX0lELCBRdWVyeUxpc3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFuZWxQb3NpdGlvbiwgUGFuZWxzQ29udGVudFBvc2l0aW9uIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgU0lERU5BVl9BTklNQVRFIH0gZnJvbSAnLi9hbmltYXRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdqc3MtcGFuZWxzJyxcclxuICBleHBvcnRBczogJ2pzc1BhbmVscycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhbmVscy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcGFuZWxzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcigndCcsIFtcclxuICAgICAgc3RhdGUoJzAnLCBzdHlsZSh7XHJcbiAgICAgICAgcGFkZGluZzogJ3t7cGFkZGluZ319JyxcclxuICAgICAgICBoZWlnaHQ6ICcxMDAlJ1xyXG4gICAgICB9KSwgeyBwYXJhbXM6IHsgcGFkZGluZzogJycgfSB9KSxcclxuICAgICAgc3RhdGUoJzEnLCBzdHlsZSh7XHJcbiAgICAgICAgcGFkZGluZzogJ3t7cGFkZGluZ319JyxcclxuICAgICAgICBoZWlnaHQ6ICcxMDAlJ1xyXG4gICAgICB9KSwgeyBwYXJhbXM6IHsgcGFkZGluZzogJycgfSB9KSxcclxuICAgICAgdHJhbnNpdGlvbignMCA8PT4gMScsIFtcclxuICAgICAgICBTSURFTkFWX0FOSU1BVEUsXHJcbiAgICAgIF0pXHJcbiAgICBdKSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYW5lbHNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcclxuICBAT3V0cHV0KCkgbGF5b3V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYW5lbHNDb250ZW50UG9zaXRpb24+KCk7XHJcbiAgQENvbnRlbnRDaGlsZHJlbihQYW5lbENvbXBvbmVudCkgcHJpdmF0ZSBfcGFuZWxzITogUXVlcnlMaXN0PFBhbmVsQ29tcG9uZW50PjtcclxuICBwcml2YXRlIF9pc0Jyb3dzZXI6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfaXNSdGw6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfYW5pbWF0aW9uU3RhdGUgPSBmYWxzZTtcclxuICBwcml2YXRlIF9jb250ZW50UG9zaXRpb246IFBhbmVsc0NvbnRlbnRQb3NpdGlvbiA9IHsgdG9wOiAwLCBib3R0b206IDAsIGxlZnQ6IDAsIHJpZ2h0OiAwIH07XHJcbiAgcHVibGljIGdldCBjb250ZW50UG9zaXRpb24oKTogUGFuZWxzQ29udGVudFBvc2l0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250ZW50UG9zaXRpb247XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHksXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBfcGxhdGZvcm1JZDogYW55KSB7XHJcblxyXG4gICAgdGhpcy5faXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIoX3BsYXRmb3JtSWQpO1xyXG4gICAgdGhpcy5faXNSdGwgPSB0aGlzLl9kaXIudmFsdWUgPT09ICdydGwnO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMuY29tcHV0ZUNvbnRlbnRQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5fYW5pbWF0aW9uU3RhdGUgPSAhdGhpcy5fYW5pbWF0aW9uU3RhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXB1dGVDb250ZW50UG9zaXRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5faXNCcm93c2VyKSB7XHJcbiAgICAgIGNvbnN0IGZpeGVkUGFuZWxzID0gdGhpcy5fcGFuZWxzLmZpbHRlcihwID0+IHAuc2hvdyAmJiAhcC5vdmVyKTtcclxuICAgICAgY29uc3QgbWF4ID0gKGl0ZW1zOiBudW1iZXJbXSkgPT4gaXRlbXMubGVuZ3RoID09PSAwID8gMCA6IE1hdGgubWF4KC4uLml0ZW1zKTtcclxuICAgICAgY29uc3QgZ2V0UG9zaXRpb25TaXplcyA9IChwb3NpdGlvbjogUGFuZWxQb3NpdGlvbik6IG51bWJlcltdID0+IGZpeGVkUGFuZWxzXHJcbiAgICAgICAgICAuZmlsdGVyKHAgPT4gcC5wb3NpdGlvbiA9PT0gcG9zaXRpb24pXHJcbiAgICAgICAgICAubWFwKHAgPT4gcG9zaXRpb24gPT09ICdzdGFydCcgfHwgcG9zaXRpb24gPT09ICdlbmQnID8gcC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggOiBwLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQpO1xyXG5cclxuICAgICAgY29uc3QgcG9zaXRpb25zOiBQYW5lbFBvc2l0aW9uW10gPSBbJ3N0YXJ0JywgJ2VuZCcsICd0b3AnLCAnYm90dG9tJ107XHJcbiAgICAgIHZhciBwYWRkaW5ncyA9IHBvc2l0aW9ucy5tYXAocG9zID0+IG1heChnZXRQb3NpdGlvblNpemVzKHBvcykpKTtcclxuICAgICAgdGhpcy5fY29udGVudFBvc2l0aW9uID0ge1xyXG4gICAgICAgIGxlZnQ6IHRoaXMuX2lzUnRsID8gcGFkZGluZ3NbMV0gOiBwYWRkaW5nc1swXSxcclxuICAgICAgICByaWdodDogdGhpcy5faXNSdGwgPyBwYWRkaW5nc1swXSA6IHBhZGRpbmdzWzFdLFxyXG4gICAgICAgIHRvcDogcGFkZGluZ3NbMl0sXHJcbiAgICAgICAgYm90dG9tOiBwYWRkaW5nc1szXSxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2NvbnRlbnRQb3NpdGlvbiA9IHsgdG9wOiAwLCByaWdodDogMCwgYm90dG9tOiAwLCBsZWZ0OiAwIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgX2FuaW1hdGlvblRyaWdnZXIoKSB7XHJcbiAgICBjb25zdCB7IGJvdHRvbSwgbGVmdCwgdG9wLCByaWdodCB9ID0gdGhpcy5fY29udGVudFBvc2l0aW9uO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdmFsdWU6IHRoaXMuX2FuaW1hdGlvblN0YXRlLFxyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBwYWRkaW5nOiBgJHt0b3B9cHggJHtyaWdodH1weCAke2JvdHRvbX1weCAke2xlZnR9cHhgLFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJqc3MtcGFuZWxcIj48L25nLWNvbnRlbnQ+XHJcbjxkaXYgY2xhc3M9XCJqc3MtcGFuZWxzLWNvbnRlbnRcIiBbQHRdPVwiX2FuaW1hdGlvblRyaWdnZXJcIj5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PiJdfQ==