UNPKG

22.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["sidenav/sidenav.ts"],"names":[],"mappings":"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","file":"sidenav/sidenav.js","sourcesContent":["import {\n NgModule,\n ModuleWithProviders,\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n Optional,\n Output,\n QueryList,\n ChangeDetectionStrategy,\n EventEmitter,\n Renderer,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {Dir, MdError, BooleanFieldValue} from '@angular2-material/core';\n\n/** Exception thrown when two MdSidenav are matching the same side. */\nexport class MdDuplicatedSidenavError extends MdError {\n constructor(align: string) {\n super(`A sidenav was already declared for 'align=\"${align}\"'`);\n }\n}\n\n/**\n * <md-sidenav> component.\n *\n * This component corresponds to the drawer of the sidenav.\n *\n * Please refer to README.md for examples on how to use it.\n */\n@Component({\n moduleId: module.id,\n selector: 'md-sidenav',\n template: '<ng-content></ng-content>',\n host: {\n '(transitionend)': '_onTransitionEnd($event)',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MdSidenav {\n /** Alignment of the sidenav (direction neutral); whether 'start' or 'end'. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Mode of the sidenav; whether 'over' or 'side'. */\n @Input() mode: 'over' | 'push' | 'side' = 'over';\n\n /** Whether the sidenav is opened. */\n @Input('opened') @BooleanFieldValue() private _opened: boolean = false;\n\n /** Event emitted when the sidenav is being opened. Use this to synchronize animations. */\n @Output('open-start') onOpenStart = new EventEmitter<void>();\n\n /** Event emitted when the sidenav is fully opened. */\n @Output('open') onOpen = new EventEmitter<void>();\n\n /** Event emitted when the sidenav is being closed. Use this to synchronize animations. */\n @Output('close-start') onCloseStart = new EventEmitter<void>();\n\n /** Event emitted when the sidenav is fully closed. */\n @Output('close') onClose = new EventEmitter<void>();\n\n\n /**\n * @param _elementRef The DOM element reference. Used for transition and width calculation.\n * If not available we do not hook on transitions.\n */\n constructor(private _elementRef: ElementRef) {}\n\n /**\n * Whether the sidenav is opened. We overload this because we trigger an event when it\n * starts or end.\n */\n get opened(): boolean { return this._opened; }\n set opened(v: boolean) {\n this.toggle(v);\n }\n\n\n /** Open this sidenav, and return a Promise that will resolve when it's fully opened (or get\n * rejected if it didn't). */\n open(): Promise<void> {\n return this.toggle(true);\n }\n\n /**\n * Close this sidenav, and return a Promise that will resolve when it's fully closed (or get\n * rejected if it didn't).\n */\n close(): Promise<void> {\n return this.toggle(false);\n }\n\n /**\n * Toggle this sidenav. This is equivalent to calling open() when it's already opened, or\n * close() when it's closed.\n * @param isOpen\n */\n toggle(isOpen: boolean = !this.opened): Promise<void> {\n // Shortcut it if we're already opened.\n if (isOpen === this.opened) {\n if (!this._transition) {\n return Promise.resolve(null);\n } else {\n return isOpen ? this._openPromise : this._closePromise;\n }\n }\n\n this._opened = isOpen;\n this._transition = true;\n\n if (isOpen) {\n this.onOpenStart.emit(null);\n } else {\n this.onCloseStart.emit(null);\n }\n\n if (isOpen) {\n if (this._openPromise == null) {\n this._openPromise = new Promise((resolve, reject) => {\n this._openPromiseResolve = resolve;\n this._openPromiseReject = reject;\n });\n }\n return this._openPromise;\n } else {\n if (this._closePromise == null) {\n this._closePromise = new Promise((resolve, reject) => {\n this._closePromiseResolve = resolve;\n this._closePromiseReject = reject;\n });\n }\n return this._closePromise;\n }\n }\n\n\n /**\n * When transition has finished, set the internal state for classes and emit the proper event.\n * The event passed is actually of type TransitionEvent, but that type is not available in\n * Android so we use any.\n */\n _onTransitionEnd(transitionEvent: TransitionEvent) {\n if (transitionEvent.target == this._elementRef.nativeElement\n // Simpler version to check for prefixes.\n && transitionEvent.propertyName.endsWith('transform')) {\n this._transition = false;\n if (this._opened) {\n if (this._openPromise != null) {\n this._openPromiseResolve();\n }\n if (this._closePromise != null) {\n this._closePromiseReject();\n }\n\n this.onOpen.emit(null);\n } else {\n if (this._closePromise != null) {\n this._closePromiseResolve();\n }\n if (this._openPromise != null) {\n this._openPromiseReject();\n }\n\n this.onClose.emit(null);\n }\n\n this._openPromise = null;\n this._closePromise = null;\n }\n }\n\n @HostBinding('class.md-sidenav-closing') get _isClosing() {\n return !this._opened && this._transition;\n }\n @HostBinding('class.md-sidenav-opening') get _isOpening() {\n return this._opened && this._transition;\n }\n @HostBinding('class.md-sidenav-closed') get _isClosed() {\n return !this._opened && !this._transition;\n }\n @HostBinding('class.md-sidenav-opened') get _isOpened() {\n return this._opened && !this._transition;\n }\n @HostBinding('class.md-sidenav-end') get _isEnd() {\n return this.align == 'end';\n }\n @HostBinding('class.md-sidenav-side') get _modeSide() {\n return this.mode == 'side';\n }\n @HostBinding('class.md-sidenav-over') get _modeOver() {\n return this.mode == 'over';\n }\n @HostBinding('class.md-sidenav-push') get _modePush() {\n return this.mode == 'push';\n }\n\n /** TODO: internal (needed by MdSidenavLayout). */\n get _width() {\n if (this._elementRef.nativeElement) {\n return this._elementRef.nativeElement.offsetWidth;\n }\n return 0;\n }\n\n private _transition: boolean = false;\n private _openPromise: Promise<void>;\n private _openPromiseResolve: () => void;\n private _openPromiseReject: () => void;\n private _closePromise: Promise<void>;\n private _closePromiseResolve: () => void;\n private _closePromiseReject: () => void;\n}\n\n/**\n * <md-sidenav-layout> component.\n *\n * This is the parent component to one or two <md-sidenav>s that validates the state internally\n * and coordinate the backdrop and content styling.\n */\n@Component({\n moduleId: module.id,\n selector: 'md-sidenav-layout',\n // Do not use ChangeDetectionStrategy.OnPush. It does not work for this component because\n // technically it is a sibling of MdSidenav (on the content tree) and isn't updated when MdSidenav\n // changes its state.\n templateUrl: 'sidenav.html',\n styleUrls: [\n 'sidenav.css',\n 'sidenav-transitions.css',\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MdSidenavLayout implements AfterContentInit {\n @ContentChildren(MdSidenav) _sidenavs: QueryList<MdSidenav>;\n\n get start() { return this._start; }\n get end() { return this._end; }\n\n /** The sidenav at the start/end alignment, independent of direction. */\n private _start: MdSidenav;\n private _end: MdSidenav;\n\n /**\n * The sidenav at the left/right. When direction changes, these will change as well.\n * They're used as aliases for the above to set the left/right style properly.\n * In LTR, _left == _start and _right == _end.\n * In RTL, _left == _end and _right == _start.\n */\n private _left: MdSidenav;\n private _right: MdSidenav;\n\n constructor(@Optional() private _dir: Dir, private _element: ElementRef,\n private _renderer: Renderer) {\n // If a `Dir` directive exists up the tree, listen direction changes and update the left/right\n // properties to point to the proper start/end.\n if (_dir != null) {\n _dir.dirChange.subscribe(() => this._validateDrawers());\n }\n }\n\n /** TODO: internal */\n ngAfterContentInit() {\n // On changes, assert on consistency.\n this._sidenavs.changes.subscribe(() => this._validateDrawers());\n this._sidenavs.forEach((sidenav: MdSidenav) => this._watchSidenavToggle(sidenav));\n this._validateDrawers();\n }\n\n /*\n * Subscribes to sidenav events in order to set a class on the main layout element when the sidenav\n * is open and the backdrop is visible. This ensures any overflow on the layout element is properly\n * hidden.\n */\n private _watchSidenavToggle(sidenav: MdSidenav): void {\n if (!sidenav || sidenav.mode === 'side') { return; }\n sidenav.onOpen.subscribe(() => this._setLayoutClass(sidenav, true));\n sidenav.onClose.subscribe(() => this._setLayoutClass(sidenav, false));\n }\n\n /* Toggles the 'md-sidenav-opened' class on the main 'md-sidenav-layout' element. */\n private _setLayoutClass(sidenav: MdSidenav, bool: boolean): void {\n this._renderer.setElementClass(this._element.nativeElement, 'md-sidenav-opened', bool);\n }\n\n /** Validate the state of the sidenav children components. */\n private _validateDrawers() {\n this._start = this._end = null;\n\n // Ensure that we have at most one start and one end sidenav.\n this._sidenavs.forEach(sidenav => {\n if (sidenav.align == 'end') {\n if (this._end != null) {\n throw new MdDuplicatedSidenavError('end');\n }\n this._end = sidenav;\n } else {\n if (this._start != null) {\n throw new MdDuplicatedSidenavError('start');\n }\n this._start = sidenav;\n }\n });\n\n this._right = this._left = null;\n\n // Detect if we're LTR or RTL.\n if (this._dir == null || this._dir.value == 'ltr') {\n this._left = this._start;\n this._right = this._end;\n } else {\n this._left = this._end;\n this._right = this._start;\n }\n }\n\n _closeModalSidenav() {\n if (this._start != null && this._start.mode != 'side') {\n this._start.close();\n }\n if (this._end != null && this._end.mode != 'side') {\n this._end.close();\n }\n }\n\n _isShowingBackdrop(): boolean {\n return (this._isSidenavOpen(this._start) && this._start.mode != 'side')\n || (this._isSidenavOpen(this._end) && this._end.mode != 'side');\n }\n\n private _isSidenavOpen(side: MdSidenav): boolean {\n return side != null && side.opened;\n }\n\n /**\n * Return the width of the sidenav, if it's in the proper mode and opened.\n * This may relayout the view, so do not call this often.\n * @param sidenav\n * @param mode\n */\n private _getSidenavEffectiveWidth(sidenav: MdSidenav, mode: string): number {\n return (this._isSidenavOpen(sidenav) && sidenav.mode == mode) ? sidenav._width : 0;\n }\n\n _getMarginLeft() {\n return this._getSidenavEffectiveWidth(this._left, 'side');\n }\n\n _getMarginRight() {\n return this._getSidenavEffectiveWidth(this._right, 'side');\n }\n\n _getPositionLeft() {\n return this._getSidenavEffectiveWidth(this._left, 'push');\n }\n\n _getPositionRight() {\n return this._getSidenavEffectiveWidth(this._right, 'push');\n }\n\n /**\n * Returns the horizontal offset for the content area. There should never be a value for both\n * left and right, so by subtracting the right value from the left value, we should always get\n * the appropriate offset.\n */\n _getPositionOffset() {\n return this._getPositionLeft() - this._getPositionRight();\n }\n\n /**\n * This is using [ngStyle] rather than separate [style...] properties because [style.transform]\n * doesn't seem to work right now.\n */\n _getStyles() {\n return {\n marginLeft: `${this._getMarginLeft()}px`,\n marginRight: `${this._getMarginRight()}px`,\n transform: `translate3d(${this._getPositionOffset()}px, 0, 0)`\n };\n }\n}\n\n\n@NgModule({\n imports: [CommonModule],\n exports: [MdSidenavLayout, MdSidenav],\n declarations: [MdSidenavLayout, MdSidenav],\n})\nexport class MdSidenavModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: MdSidenavModule,\n providers: []\n };\n }\n}\n"],"sourceRoot":"/source/"}
\No newline at end of file