521 lines
57 KiB
JavaScript
521 lines
57 KiB
JavaScript
|
import { animate, animation, style, transition, trigger, useAnimation } from '@angular/animations';
|
||
|
import { CommonModule, DOCUMENT } from '@angular/common';
|
||
|
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Inject, Input, NgModule, Output, ViewEncapsulation, booleanAttribute, numberAttribute } from '@angular/core';
|
||
|
import { PrimeTemplate, SharedModule } from 'primeng/api';
|
||
|
import { DomHandler } from 'primeng/dom';
|
||
|
import { TimesIcon } from 'primeng/icons/times';
|
||
|
import { RippleModule } from 'primeng/ripple';
|
||
|
import { ZIndexUtils } from 'primeng/utils';
|
||
|
import * as i0 from "@angular/core";
|
||
|
import * as i1 from "primeng/api";
|
||
|
import * as i2 from "@angular/common";
|
||
|
import * as i3 from "primeng/ripple";
|
||
|
const showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}')]);
|
||
|
const hideAnimation = animation([animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))]);
|
||
|
/**
|
||
|
* Sidebar is a panel component displayed as an overlay at the edges of the screen.
|
||
|
* @group Components
|
||
|
*/
|
||
|
export class Sidebar {
|
||
|
document;
|
||
|
el;
|
||
|
renderer;
|
||
|
cd;
|
||
|
config;
|
||
|
/**
|
||
|
* Target element to attach the dialog, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
|
||
|
* @group Props
|
||
|
*/
|
||
|
appendTo;
|
||
|
/**
|
||
|
* Whether to block scrolling of the document when sidebar is active.
|
||
|
* @group Props
|
||
|
*/
|
||
|
blockScroll = false;
|
||
|
/**
|
||
|
* Inline style of the component.
|
||
|
* @group Props
|
||
|
*/
|
||
|
style;
|
||
|
/**
|
||
|
* Style class of the component.
|
||
|
* @group Props
|
||
|
*/
|
||
|
styleClass;
|
||
|
/**
|
||
|
* Aria label of the close icon.
|
||
|
* @group Props
|
||
|
*/
|
||
|
ariaCloseLabel;
|
||
|
/**
|
||
|
* Whether to automatically manage layering.
|
||
|
* @group Props
|
||
|
*/
|
||
|
autoZIndex = true;
|
||
|
/**
|
||
|
* Base zIndex value to use in layering.
|
||
|
* @group Props
|
||
|
*/
|
||
|
baseZIndex = 0;
|
||
|
/**
|
||
|
* Whether an overlay mask is displayed behind the sidebar.
|
||
|
* @group Props
|
||
|
*/
|
||
|
modal = true;
|
||
|
/**
|
||
|
* Whether to dismiss sidebar on click of the mask.
|
||
|
* @group Props
|
||
|
*/
|
||
|
dismissible = true;
|
||
|
/**
|
||
|
* Whether to display the close icon.
|
||
|
* @group Props
|
||
|
*/
|
||
|
showCloseIcon = true;
|
||
|
/**
|
||
|
* Specifies if pressing escape key should hide the sidebar.
|
||
|
* @group Props
|
||
|
*/
|
||
|
closeOnEscape = true;
|
||
|
/**
|
||
|
* Transition options of the animation.
|
||
|
* @group Props
|
||
|
*/
|
||
|
transitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';
|
||
|
/**
|
||
|
* Specifies the visibility of the dialog.
|
||
|
* @group Props
|
||
|
*/
|
||
|
get visible() {
|
||
|
return this._visible;
|
||
|
}
|
||
|
set visible(val) {
|
||
|
this._visible = val;
|
||
|
}
|
||
|
/**
|
||
|
* Specifies the position of the sidebar, valid values are "left", "right", "bottom" and "top".
|
||
|
* @group Props
|
||
|
*/
|
||
|
get position() {
|
||
|
return this._position;
|
||
|
}
|
||
|
set position(value) {
|
||
|
this._position = value;
|
||
|
switch (value) {
|
||
|
case 'left':
|
||
|
this.transformOptions = 'translate3d(-100%, 0px, 0px)';
|
||
|
break;
|
||
|
case 'right':
|
||
|
this.transformOptions = 'translate3d(100%, 0px, 0px)';
|
||
|
break;
|
||
|
case 'bottom':
|
||
|
this.transformOptions = 'translate3d(0px, 100%, 0px)';
|
||
|
break;
|
||
|
case 'top':
|
||
|
this.transformOptions = 'translate3d(0px, -100%, 0px)';
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
* Adds a close icon to the header to hide the dialog.
|
||
|
* @group Props
|
||
|
*/
|
||
|
get fullScreen() {
|
||
|
return this._fullScreen;
|
||
|
}
|
||
|
set fullScreen(value) {
|
||
|
this._fullScreen = value;
|
||
|
if (value)
|
||
|
this.transformOptions = 'none';
|
||
|
}
|
||
|
templates;
|
||
|
/**
|
||
|
* Callback to invoke when dialog is shown.
|
||
|
* @group Emits
|
||
|
*/
|
||
|
onShow = new EventEmitter();
|
||
|
/**
|
||
|
* Callback to invoke when dialog is hidden.
|
||
|
* @group Emits
|
||
|
*/
|
||
|
onHide = new EventEmitter();
|
||
|
/**
|
||
|
* Callback to invoke when dialog visibility is changed.
|
||
|
* @param {boolean} value - Visible value.
|
||
|
* @group Emits
|
||
|
*/
|
||
|
visibleChange = new EventEmitter();
|
||
|
initialized;
|
||
|
_visible;
|
||
|
_position = 'left';
|
||
|
_fullScreen = false;
|
||
|
container;
|
||
|
transformOptions = 'translate3d(-100%, 0px, 0px)';
|
||
|
mask;
|
||
|
maskClickListener;
|
||
|
documentEscapeListener;
|
||
|
animationEndListener;
|
||
|
contentTemplate;
|
||
|
headerTemplate;
|
||
|
footerTemplate;
|
||
|
closeIconTemplate;
|
||
|
headlessTemplate;
|
||
|
constructor(document, el, renderer, cd, config) {
|
||
|
this.document = document;
|
||
|
this.el = el;
|
||
|
this.renderer = renderer;
|
||
|
this.cd = cd;
|
||
|
this.config = config;
|
||
|
}
|
||
|
ngAfterViewInit() {
|
||
|
this.initialized = true;
|
||
|
}
|
||
|
ngAfterContentInit() {
|
||
|
this.templates?.forEach((item) => {
|
||
|
switch (item.getType()) {
|
||
|
case 'content':
|
||
|
this.contentTemplate = item.template;
|
||
|
break;
|
||
|
case 'header':
|
||
|
this.headerTemplate = item.template;
|
||
|
break;
|
||
|
case 'footer':
|
||
|
this.footerTemplate = item.template;
|
||
|
break;
|
||
|
case 'closeicon':
|
||
|
this.closeIconTemplate = item.template;
|
||
|
break;
|
||
|
case 'headless':
|
||
|
this.headlessTemplate = item.template;
|
||
|
break;
|
||
|
default:
|
||
|
this.contentTemplate = item.template;
|
||
|
break;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
onKeyDown(event) {
|
||
|
if (event.code === 'Escape') {
|
||
|
this.hide(false);
|
||
|
}
|
||
|
}
|
||
|
show() {
|
||
|
if (this.autoZIndex) {
|
||
|
ZIndexUtils.set('modal', this.container, this.baseZIndex || this.config.zIndex.modal);
|
||
|
}
|
||
|
if (this.modal) {
|
||
|
this.enableModality();
|
||
|
}
|
||
|
this.onShow.emit({});
|
||
|
this.visibleChange.emit(true);
|
||
|
}
|
||
|
hide(emit = true) {
|
||
|
if (emit) {
|
||
|
this.onHide.emit({});
|
||
|
}
|
||
|
if (this.modal) {
|
||
|
this.disableModality();
|
||
|
}
|
||
|
}
|
||
|
close(event) {
|
||
|
this.hide();
|
||
|
this.visibleChange.emit(false);
|
||
|
event.preventDefault();
|
||
|
}
|
||
|
enableModality() {
|
||
|
if (!this.mask) {
|
||
|
this.mask = this.renderer.createElement('div');
|
||
|
this.renderer.setStyle(this.mask, 'zIndex', String(parseInt(this.container.style.zIndex) - 1));
|
||
|
DomHandler.addMultipleClasses(this.mask, 'p-component-overlay p-sidebar-mask p-component-overlay p-component-overlay-enter');
|
||
|
if (this.dismissible) {
|
||
|
this.maskClickListener = this.renderer.listen(this.mask, 'click', (event) => {
|
||
|
if (this.dismissible) {
|
||
|
this.close(event);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
this.renderer.appendChild(this.document.body, this.mask);
|
||
|
if (this.blockScroll) {
|
||
|
DomHandler.blockBodyScroll();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
disableModality() {
|
||
|
if (this.mask) {
|
||
|
DomHandler.addClass(this.mask, 'p-component-overlay-leave');
|
||
|
this.animationEndListener = this.renderer.listen(this.mask, 'animationend', this.destroyModal.bind(this));
|
||
|
}
|
||
|
}
|
||
|
destroyModal() {
|
||
|
this.unbindMaskClickListener();
|
||
|
if (this.mask) {
|
||
|
this.renderer.removeChild(this.document.body, this.mask);
|
||
|
}
|
||
|
if (this.blockScroll) {
|
||
|
DomHandler.unblockBodyScroll();
|
||
|
}
|
||
|
this.unbindAnimationEndListener();
|
||
|
this.mask = null;
|
||
|
}
|
||
|
onAnimationStart(event) {
|
||
|
switch (event.toState) {
|
||
|
case 'visible':
|
||
|
this.container = event.element;
|
||
|
this.appendContainer();
|
||
|
this.show();
|
||
|
if (this.closeOnEscape) {
|
||
|
this.bindDocumentEscapeListener();
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
onAnimationEnd(event) {
|
||
|
switch (event.toState) {
|
||
|
case 'void':
|
||
|
this.hide(false);
|
||
|
ZIndexUtils.clear(this.container);
|
||
|
this.unbindGlobalListeners();
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
appendContainer() {
|
||
|
if (this.appendTo) {
|
||
|
if (this.appendTo === 'body')
|
||
|
this.renderer.appendChild(this.document.body, this.container);
|
||
|
else
|
||
|
DomHandler.appendChild(this.container, this.appendTo);
|
||
|
}
|
||
|
}
|
||
|
bindDocumentEscapeListener() {
|
||
|
const documentTarget = this.el ? this.el.nativeElement.ownerDocument : this.document;
|
||
|
this.documentEscapeListener = this.renderer.listen(documentTarget, 'keydown', (event) => {
|
||
|
if (event.which == 27) {
|
||
|
if (parseInt(this.container.style.zIndex) === ZIndexUtils.get(this.container)) {
|
||
|
this.close(event);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
unbindDocumentEscapeListener() {
|
||
|
if (this.documentEscapeListener) {
|
||
|
this.documentEscapeListener();
|
||
|
this.documentEscapeListener = null;
|
||
|
}
|
||
|
}
|
||
|
unbindMaskClickListener() {
|
||
|
if (this.maskClickListener) {
|
||
|
this.maskClickListener();
|
||
|
this.maskClickListener = null;
|
||
|
}
|
||
|
}
|
||
|
unbindGlobalListeners() {
|
||
|
this.unbindMaskClickListener();
|
||
|
this.unbindDocumentEscapeListener();
|
||
|
}
|
||
|
unbindAnimationEndListener() {
|
||
|
if (this.animationEndListener && this.mask) {
|
||
|
this.animationEndListener();
|
||
|
this.animationEndListener = null;
|
||
|
}
|
||
|
}
|
||
|
ngOnDestroy() {
|
||
|
this.initialized = false;
|
||
|
if (this.visible && this.modal) {
|
||
|
this.destroyModal();
|
||
|
}
|
||
|
if (this.appendTo && this.container) {
|
||
|
this.renderer.appendChild(this.el.nativeElement, this.container);
|
||
|
}
|
||
|
if (this.container && this.autoZIndex) {
|
||
|
ZIndexUtils.clear(this.container);
|
||
|
}
|
||
|
this.container = null;
|
||
|
this.unbindGlobalListeners();
|
||
|
this.unbindAnimationEndListener();
|
||
|
}
|
||
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: Sidebar, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
|
||
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.7", type: Sidebar, selector: "p-sidebar", inputs: { appendTo: "appendTo", blockScroll: ["blockScroll", "blockScroll", booleanAttribute], style: "style", styleClass: "styleClass", ariaCloseLabel: "ariaCloseLabel", autoZIndex: ["autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: ["baseZIndex", "baseZIndex", numberAttribute], modal: ["modal", "modal", booleanAttribute], dismissible: ["dismissible", "dismissible", booleanAttribute], showCloseIcon: ["showCloseIcon", "showCloseIcon", booleanAttribute], closeOnEscape: ["closeOnEscape", "closeOnEscape", booleanAttribute], transitionOptions: "transitionOptions", visible: "visible", position: "position", fullScreen: "fullScreen" }, outputs: { onShow: "onShow", onHide: "onHide", visibleChange: "visibleChange" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], ngImport: i0, template: `
|
||
|
<div
|
||
|
#container
|
||
|
[ngClass]="{
|
||
|
'p-sidebar': true,
|
||
|
'p-sidebar-active': visible,
|
||
|
'p-sidebar-left': position === 'left' && !fullScreen,
|
||
|
'p-sidebar-right': position === 'right' && !fullScreen,
|
||
|
'p-sidebar-top': position === 'top' && !fullScreen,
|
||
|
'p-sidebar-bottom': position === 'bottom' && !fullScreen,
|
||
|
'p-sidebar-full': fullScreen
|
||
|
}"
|
||
|
*ngIf="visible"
|
||
|
[@panelState]="{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }"
|
||
|
(@panelState.start)="onAnimationStart($event)"
|
||
|
(@panelState.done)="onAnimationEnd($event)"
|
||
|
[ngStyle]="style"
|
||
|
[class]="styleClass"
|
||
|
role="complementary"
|
||
|
[attr.data-pc-name]="'sidebar'"
|
||
|
[attr.data-pc-section]="'root'"
|
||
|
(keydown)="onKeyDown($event)"
|
||
|
>
|
||
|
<ng-container *ngIf="headlessTemplate; else notHeadless">
|
||
|
<ng-container *ngTemplateOutlet="headlessTemplate"></ng-container>
|
||
|
</ng-container>
|
||
|
<ng-template #notHeadless>
|
||
|
<div class="p-sidebar-header" [attr.data-pc-section]="'header'">
|
||
|
<ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
|
||
|
<button
|
||
|
type="button"
|
||
|
class="p-sidebar-close p-sidebar-icon p-link"
|
||
|
(click)="close($event)"
|
||
|
(keydown.enter)="close($event)"
|
||
|
[attr.aria-label]="ariaCloseLabel"
|
||
|
*ngIf="showCloseIcon"
|
||
|
pRipple
|
||
|
[attr.data-pc-section]="'closebutton'"
|
||
|
[attr.data-pc-group-section]="'iconcontainer'"
|
||
|
>
|
||
|
<TimesIcon *ngIf="!closeIconTemplate" [styleClass]="'p-sidebar-close-icon'" [attr.data-pc-section]="'closeicon'" />
|
||
|
<span *ngIf="closeIconTemplate" class="p-sidebar-close-icon" [attr.data-pc-section]="'closeicon'">
|
||
|
<ng-template *ngTemplateOutlet="closeIconTemplate"></ng-template>
|
||
|
</span>
|
||
|
</button>
|
||
|
</div>
|
||
|
<div class="p-sidebar-content" [attr.data-pc-section]="'content'">
|
||
|
<ng-content></ng-content>
|
||
|
<ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
|
||
|
</div>
|
||
|
<ng-container *ngIf="footerTemplate">
|
||
|
<div class="p-sidebar-footer" [attr.data-pc-section]="'footer'">
|
||
|
<ng-container *ngTemplateOutlet="footerTemplate"></ng-container>
|
||
|
</div>
|
||
|
</ng-container>
|
||
|
</ng-template>
|
||
|
</div>
|
||
|
`, isInline: true, styles: ["@layer primeng{.p-sidebar{position:fixed;transition:transform .3s;display:flex;flex-direction:column}.p-sidebar-content{position:relative;overflow-y:auto;flex-grow:1}.p-sidebar-header{display:flex;align-items:center}.p-sidebar-footer{margin-top:auto}.p-sidebar-icon{display:flex;align-items:center;justify-content:center;margin-left:auto}.p-sidebar-left{top:0;left:0;width:20rem;height:100%}.p-sidebar-right{top:0;right:0;width:20rem;height:100%}.p-sidebar-top{top:0;left:0;width:100%;height:10rem}.p-sidebar-bottom{bottom:0;left:0;width:100%;height:10rem}.p-sidebar-full{width:100%;height:100%;top:0;left:0;-webkit-transition:none;transition:none}.p-sidebar-left.p-sidebar-sm,.p-sidebar-right.p-sidebar-sm{width:20rem}.p-sidebar-left.p-sidebar-md,.p-sidebar-right.p-sidebar-md{width:40rem}.p-sidebar-left.p-sidebar-lg,.p-sidebar-right.p-sidebar-lg{width:60rem}.p-sidebar-top.p-sidebar-sm,.p-sidebar-bottom.p-sidebar-sm{height:10rem}.p-sidebar-top.p-sidebar-md,.p-sidebar-bottom.p-sidebar-md{height:20rem}.p-sidebar-top.p-sidebar-lg,.p-sidebar-bottom.p-sidebar-lg{height:30rem}@media screen and (max-width: 64em){.p-sidebar-left.p-sidebar-lg,.p-sidebar-left.p-sidebar-md,.p-sidebar-right.p-sidebar-lg,.p-sidebar-right.p-sidebar-md{width:20rem}}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => i3.Ripple), selector: "[pRipple]" }, { kind: "component", type: i0.forwardRef(() => TimesIcon), selector: "TimesIcon" }], animations: [trigger('panelState', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
||
|
}
|
||
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: Sidebar, decorators: [{
|
||
|
type: Component,
|
||
|
args: [{ selector: 'p-sidebar', template: `
|
||
|
<div
|
||
|
#container
|
||
|
[ngClass]="{
|
||
|
'p-sidebar': true,
|
||
|
'p-sidebar-active': visible,
|
||
|
'p-sidebar-left': position === 'left' && !fullScreen,
|
||
|
'p-sidebar-right': position === 'right' && !fullScreen,
|
||
|
'p-sidebar-top': position === 'top' && !fullScreen,
|
||
|
'p-sidebar-bottom': position === 'bottom' && !fullScreen,
|
||
|
'p-sidebar-full': fullScreen
|
||
|
}"
|
||
|
*ngIf="visible"
|
||
|
[@panelState]="{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }"
|
||
|
(@panelState.start)="onAnimationStart($event)"
|
||
|
(@panelState.done)="onAnimationEnd($event)"
|
||
|
[ngStyle]="style"
|
||
|
[class]="styleClass"
|
||
|
role="complementary"
|
||
|
[attr.data-pc-name]="'sidebar'"
|
||
|
[attr.data-pc-section]="'root'"
|
||
|
(keydown)="onKeyDown($event)"
|
||
|
>
|
||
|
<ng-container *ngIf="headlessTemplate; else notHeadless">
|
||
|
<ng-container *ngTemplateOutlet="headlessTemplate"></ng-container>
|
||
|
</ng-container>
|
||
|
<ng-template #notHeadless>
|
||
|
<div class="p-sidebar-header" [attr.data-pc-section]="'header'">
|
||
|
<ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
|
||
|
<button
|
||
|
type="button"
|
||
|
class="p-sidebar-close p-sidebar-icon p-link"
|
||
|
(click)="close($event)"
|
||
|
(keydown.enter)="close($event)"
|
||
|
[attr.aria-label]="ariaCloseLabel"
|
||
|
*ngIf="showCloseIcon"
|
||
|
pRipple
|
||
|
[attr.data-pc-section]="'closebutton'"
|
||
|
[attr.data-pc-group-section]="'iconcontainer'"
|
||
|
>
|
||
|
<TimesIcon *ngIf="!closeIconTemplate" [styleClass]="'p-sidebar-close-icon'" [attr.data-pc-section]="'closeicon'" />
|
||
|
<span *ngIf="closeIconTemplate" class="p-sidebar-close-icon" [attr.data-pc-section]="'closeicon'">
|
||
|
<ng-template *ngTemplateOutlet="closeIconTemplate"></ng-template>
|
||
|
</span>
|
||
|
</button>
|
||
|
</div>
|
||
|
<div class="p-sidebar-content" [attr.data-pc-section]="'content'">
|
||
|
<ng-content></ng-content>
|
||
|
<ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
|
||
|
</div>
|
||
|
<ng-container *ngIf="footerTemplate">
|
||
|
<div class="p-sidebar-footer" [attr.data-pc-section]="'footer'">
|
||
|
<ng-container *ngTemplateOutlet="footerTemplate"></ng-container>
|
||
|
</div>
|
||
|
</ng-container>
|
||
|
</ng-template>
|
||
|
</div>
|
||
|
`, animations: [trigger('panelState', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
||
|
class: 'p-element'
|
||
|
}, styles: ["@layer primeng{.p-sidebar{position:fixed;transition:transform .3s;display:flex;flex-direction:column}.p-sidebar-content{position:relative;overflow-y:auto;flex-grow:1}.p-sidebar-header{display:flex;align-items:center}.p-sidebar-footer{margin-top:auto}.p-sidebar-icon{display:flex;align-items:center;justify-content:center;margin-left:auto}.p-sidebar-left{top:0;left:0;width:20rem;height:100%}.p-sidebar-right{top:0;right:0;width:20rem;height:100%}.p-sidebar-top{top:0;left:0;width:100%;height:10rem}.p-sidebar-bottom{bottom:0;left:0;width:100%;height:10rem}.p-sidebar-full{width:100%;height:100%;top:0;left:0;-webkit-transition:none;transition:none}.p-sidebar-left.p-sidebar-sm,.p-sidebar-right.p-sidebar-sm{width:20rem}.p-sidebar-left.p-sidebar-md,.p-sidebar-right.p-sidebar-md{width:40rem}.p-sidebar-left.p-sidebar-lg,.p-sidebar-right.p-sidebar-lg{width:60rem}.p-sidebar-top.p-sidebar-sm,.p-sidebar-bottom.p-sidebar-sm{height:10rem}.p-sidebar-top.p-sidebar-md,.p-sidebar-bottom.p-sidebar-md{height:20rem}.p-sidebar-top.p-sidebar-lg,.p-sidebar-bottom.p-sidebar-lg{height:30rem}@media screen and (max-width: 64em){.p-sidebar-left.p-sidebar-lg,.p-sidebar-left.p-sidebar-md,.p-sidebar-right.p-sidebar-lg,.p-sidebar-right.p-sidebar-md{width:20rem}}}\n"] }]
|
||
|
}], ctorParameters: () => [{ type: Document, decorators: [{
|
||
|
type: Inject,
|
||
|
args: [DOCUMENT]
|
||
|
}] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.PrimeNGConfig }], propDecorators: { appendTo: [{
|
||
|
type: Input
|
||
|
}], blockScroll: [{
|
||
|
type: Input,
|
||
|
args: [{ transform: booleanAttribute }]
|
||
|
}], style: [{
|
||
|
type: Input
|
||
|
}], styleClass: [{
|
||
|
type: Input
|
||
|
}], ariaCloseLabel: [{
|
||
|
type: Input
|
||
|
}], autoZIndex: [{
|
||
|
type: Input,
|
||
|
args: [{ transform: booleanAttribute }]
|
||
|
}], baseZIndex: [{
|
||
|
type: Input,
|
||
|
args: [{ transform: numberAttribute }]
|
||
|
}], modal: [{
|
||
|
type: Input,
|
||
|
args: [{ transform: booleanAttribute }]
|
||
|
}], dismissible: [{
|
||
|
type: Input,
|
||
|
args: [{ transform: booleanAttribute }]
|
||
|
}], showCloseIcon: [{
|
||
|
type: Input,
|
||
|
args: [{ transform: booleanAttribute }]
|
||
|
}], closeOnEscape: [{
|
||
|
type: Input,
|
||
|
args: [{ transform: booleanAttribute }]
|
||
|
}], transitionOptions: [{
|
||
|
type: Input
|
||
|
}], visible: [{
|
||
|
type: Input
|
||
|
}], position: [{
|
||
|
type: Input
|
||
|
}], fullScreen: [{
|
||
|
type: Input
|
||
|
}], templates: [{
|
||
|
type: ContentChildren,
|
||
|
args: [PrimeTemplate]
|
||
|
}], onShow: [{
|
||
|
type: Output
|
||
|
}], onHide: [{
|
||
|
type: Output
|
||
|
}], visibleChange: [{
|
||
|
type: Output
|
||
|
}] } });
|
||
|
export class SidebarModule {
|
||
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SidebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
||
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.7", ngImport: i0, type: SidebarModule, declarations: [Sidebar], imports: [CommonModule, RippleModule, SharedModule, TimesIcon], exports: [Sidebar, SharedModule] });
|
||
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SidebarModule, imports: [CommonModule, RippleModule, SharedModule, TimesIcon, SharedModule] });
|
||
|
}
|
||
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SidebarModule, decorators: [{
|
||
|
type: NgModule,
|
||
|
args: [{
|
||
|
imports: [CommonModule, RippleModule, SharedModule, TimesIcon],
|
||
|
exports: [Sidebar, SharedModule],
|
||
|
declarations: [Sidebar]
|
||
|
}]
|
||
|
}] });
|
||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9zaWRlYmFyL3NpZGViYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBR0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUVSLE1BQU0sRUFJTixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFpQixhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQUU1QyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVoSCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxF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
|