Icard/angular-clarity-master(work.../node_modules/ng2-material-dropdown/fesm2020/ng2-material-dropdown.mjs.map

1 line
35 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"ng2-material-dropdown.mjs","sources":["../../src/modules/components/button/ng2-dropdown-button.ts","../../src/modules/components/button/template.html","../../src/modules/components/menu/actions.ts","../../src/modules/services/ng2-dropdown-state.ts","../../src/modules/services/dropdown-state.service.ts","../../src/modules/components/menu-item/ng2-menu-item.ts","../../src/modules/components/menu/ng2-dropdown-menu.ts","../../src/modules/components/dropdown/ng2-dropdown.ts","../../src/modules/ng2-dropdown.module.ts","../../ng2-material-dropdown.ts"],"sourcesContent":["import {\n Component,\n Output,\n Input,\n EventEmitter,\n ElementRef\n} from '@angular/core';\n\n@Component({\n selector: 'ng2-dropdown-button',\n styleUrls: [ './style.scss' ],\n templateUrl: './template.html'\n})\nexport class Ng2DropdownButton {\n @Output() public onMenuToggled: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Input() public showCaret: boolean = true;\n\n constructor(private element: ElementRef) {}\n\n /**\n * @name toggleMenu\n * @desc emits event to toggle menu\n */\n public toggleMenu(): void {\n this.onMenuToggled.emit(true);\n }\n\n /**\n * @name getPosition\n * @desc returns position of the button\n */\n public getPosition(): ClientRect {\n return this.element.nativeElement.getBoundingClientRect();\n }\n}\n","<button class='ng2-dropdown-button' type=\"button\" (click)=\"toggleMenu()\" tabindex=\"0s\">\n <span class=\"ng2-dropdown-button__label\">\n <ng-content></ng-content>\n </span>\n\n <span class=\"ng2-dropdown-button__caret\" *ngIf=\"showCaret\">\n <svg enable-background=\"new 0 0 32 32\" height=\"16px\" id=\"Слой_1\" version=\"1.1\" viewBox=\"0 0 32 32\" width=\"16px\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path d=\"M24.285,11.284L16,19.571l-8.285-8.288c-0.395-0.395-1.034-0.395-1.429,0 c-0.394,0.395-0.394,1.035,0,1.43l8.999,9.002l0,0l0,0c0.394,0.395,1.034,0.395,1.428,0l8.999-9.002 c0.394-0.395,0.394-1.036,0-1.431C25.319,10.889,24.679,10.889,24.285,11.284z\" fill=\"#121313\" id=\"Expand_More\"/><g/><g/><g/><g/><g/><g/></svg>\n </span>\n</button>\n","import { Ng2MenuItem } from '../menu-item/ng2-menu-item';\nimport { Ng2DropdownMenu } from './ng2-dropdown-menu';\nimport { Ng2DropdownState } from '../../services/ng2-dropdown-state';\n\nconst KEYS = {\n BACKSPACE: 9,\n PREV: 38,\n NEXT: 40,\n ENTER: 13,\n ESCAPE: 27\n};\n\n/**\n * @name onSwitchNext\n * @param index\n * @param items\n * @param state\n */\nconst onSwitchNext = (index: number, items: Ng2MenuItem[], state: Ng2DropdownState) => {\n if (index < items.length - 1) {\n state.select(items[index + 1], true);\n }\n};\n\n/**\n * @name onSwitchPrev\n * @param index\n * @param items\n * @param state\n */\nconst onSwitchPrev = (index: number, items: Ng2MenuItem[], state: Ng2DropdownState) => {\n if (index > 0) {\n state.select(items[index - 1], true);\n }\n};\n\n/**\n * @name onBackspace\n * @param index\n * @param items\n * @param state\n */\nconst onBackspace = (index: number, items: Ng2MenuItem[], state: Ng2DropdownState) => {\n if (index < items.length - 1) {\n state.select(items[index + 1], true);\n } else {\n state.select(items[0], true);\n }\n};\n\nfunction onEscape(this: Ng2DropdownMenu) {\n this.hide();\n};\n\n/**\n * @name onItemClicked\n * @param index\n * @param items\n * @param state\n */\nconst onItemClicked = (index: number, items: Ng2MenuItem[], state: Ng2DropdownState) => {\n return state.selectedItem ? state.selectedItem.click() : undefined;\n};\n\nexport const ACTIONS = {\n [KEYS.BACKSPACE]: onBackspace,\n [KEYS.PREV]: onSwitchPrev,\n [KEYS.NEXT]: onSwitchNext,\n [KEYS.ENTER]: onItemClicked,\n [KEYS.ESCAPE]: onEscape\n};\n\nexport function arrowKeysHandler(event): void {\n if ([38, 40].indexOf(event.keyCode) > -1) {\n event.preventDefault();\n }\n}\n","import { EventEmitter } from '@angular/core';\nimport { Ng2MenuItem } from '../components/menu-item/ng2-menu-item';\nexport class Ng2DropdownState {\n public onItemSelected: EventEmitter<Ng2MenuItem> = new EventEmitter<\n Ng2MenuItem\n >();\n public onItemClicked: EventEmitter<Ng2MenuItem> = new EventEmitter<\n Ng2MenuItem\n >();\n public onItemDestroyed: EventEmitter<Ng2MenuItem> = new EventEmitter<\n Ng2MenuItem\n >();\n\n private _selectedItem: Ng2MenuItem;\n\n /**\n * @name selectedItem\n * @desc getter for _selectedItem\n */\n public get selectedItem(): Ng2MenuItem {\n return this._selectedItem;\n }\n\n /**\n * @name selects a menu item and emits event\n * @param item\n */\n public select(item: Ng2MenuItem | undefined, dispatchEvent = true): void {\n this._selectedItem = item;\n\n if (!dispatchEvent || !item) {\n return;\n }\n\n item.focus();\n\n this.onItemSelected.emit(item);\n }\n\n /**\n * @name unselect\n * @desc sets _selectedItem as undefined\n */\n public unselect(): void {\n this._selectedItem = undefined;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Ng2DropdownState } from './ng2-dropdown-state';\n\n@Injectable()\nexport class DropdownStateService {\n public menuState = {\n isVisible: false,\n toString(): string {\n return this.isVisible === true ? 'visible' : 'hidden';\n }\n };\n\n public dropdownState = new Ng2DropdownState();\n}\n","import { Component, Input, ElementRef, OnDestroy } from '@angular/core';\nimport { DropdownStateService } from '../../services/dropdown-state.service';\n\n@Component({\n selector: 'ng2-menu-item',\n styleUrls: ['./style.scss'],\n template: `\n <div\n class=\"ng2-menu-item\"\n role=\"button\"\n tabindex=\"0\"\n [class.ng2-menu-item--selected]=\"isSelected\"\n (keydown.enter)=\"click()\"\n (click)=\"click()\"\n (mouseover)=\"select()\"\n >\n <ng-content></ng-content>\n </div>\n `\n})\nexport class Ng2MenuItem implements OnDestroy {\n /**\n * @preventClose\n * @desc if true, clicking on the item won't close the dropdown\n */\n @Input() public preventClose = false;\n\n /**\n * @name value\n * @desc any value associated to the item\n */\n @Input() public value: any;\n\n constructor(\n private state: DropdownStateService,\n private element: ElementRef\n ) {}\n\n public ngOnDestroy(): void {\n this.state.dropdownState.onItemDestroyed.emit(this);\n }\n\n /**\n * @name isSelected\n * @desc returns current selected item\n */\n public get isSelected(): boolean {\n return this === this.state.dropdownState.selectedItem;\n }\n\n /**\n * @name click\n * @desc emits select event\n */\n public select($event?): void {\n this.state.dropdownState.select(this, true);\n\n if ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n\n /**\n * @name click\n * @desc emits click event\n */\n public click(): void {\n this.state.dropdownState.onItemClicked.emit(this);\n }\n\n /**\n * @name focus\n */\n public focus() {\n this.element.nativeElement.children[0].focus();\n }\n}\n","import {\n Component,\n ElementRef,\n Renderer2,\n ContentChildren,\n QueryList,\n Input\n} from '@angular/core';\n\nimport {\n trigger,\n style,\n transition,\n animate,\n keyframes,\n state\n} from '@angular/animations';\n\nimport { ACTIONS, arrowKeysHandler } from './actions';\n\nimport { Ng2MenuItem } from '../menu-item/ng2-menu-item';\nimport { DropdownStateService } from '../../services/dropdown-state.service';\n\n@Component({\n selector: 'ng2-dropdown-menu',\n styleUrls: ['./style.scss'],\n template: `\n <!-- MENU -->\n <div\n class=\"ng2-dropdown-menu ng2-dropdown-menu---width--{{ width }}\"\n [class.ng2-dropdown-menu--inside-element]=\"!appendToBody\"\n [class.ng2-dropdown-menu--open]=\"dropdownState.menuState.isVisible\"\n [style.z-index]=\"zIndex\"\n [@fade]=\"dropdownState.menuState.toString()\"\n >\n <div\n class=\"ng2-dropdown-menu__options-container\"\n [@opacity]=\"dropdownState.menuState.toString()\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- BACKDROP -->\n <div\n class=\"ng2-dropdown-backdrop\"\n *ngIf=\"dropdownState.menuState.isVisible\"\n (click)=\"hide()\"\n ></div>\n `,\n animations: [\n trigger('fade', [\n state('visible', style({ opacity: 1, height: '*', width: '*' })),\n state(\n 'hidden',\n style({ opacity: 0, overflow: 'hidden', height: 0, width: 0 })\n ),\n transition('hidden => visible', [\n animate(\n '250ms ease-in',\n style({ opacity: 1, height: '*', width: '*' })\n )\n ]),\n transition('visible => hidden', [\n animate(\n '350ms ease-out',\n style({ opacity: 0, width: 0, height: 0 })\n )\n ])\n ]),\n trigger('opacity', [\n transition('hidden => visible', [\n animate(\n '450ms ease-in',\n keyframes([\n style({ opacity: 0, offset: 0 }),\n style({ opacity: 1, offset: 1 })\n ])\n )\n ]),\n transition('visible => hidden', [\n animate(\n '250ms ease-out',\n keyframes([\n style({ opacity: 1, offset: 0 }),\n style({ opacity: 0.5, offset: 0.3 }),\n style({ opacity: 0, offset: 1 })\n ])\n )\n ])\n ])\n ]\n})\nexport class Ng2DropdownMenu {\n /**\n * @name width\n */\n @Input() public width = 4;\n\n /**\n * @description if set to true, the first element of the dropdown will be automatically focused\n * @name focusFirstElement\n */\n @Input() public focusFirstElement = true;\n\n /**\n * @description sets dropdown offset from the button\n * @name offset {string} follow format '<number> <number>' ex. '0 20'\n */\n @Input() public offset: string;\n\n /**\n * @name appendToBody\n */\n @Input() public appendToBody = true;\n\n /**\n * @name zIndex\n */\n @Input() public zIndex = 1000;\n\n /**\n * @name items\n */\n @ContentChildren(Ng2MenuItem, { descendants: true })\n public items!: QueryList<Ng2MenuItem>;\n\n private position: ClientRect;\n\n private listeners = {\n arrowHandler: undefined,\n handleKeypress: undefined\n };\n\n constructor(\n public dropdownState: DropdownStateService,\n private element: ElementRef,\n private renderer: Renderer2\n ) {}\n\n /**\n * @name show\n * @shows menu and selects first item\n */\n public show(position?: ClientRect, dynamic = true): void {\n const dc = typeof document !== 'undefined' ? document : undefined;\n const wd = typeof window !== 'undefined' ? window : undefined;\n\n if (!this.dropdownState.menuState.isVisible) {\n // setting handlers\n this.listeners.handleKeypress = this.renderer.listen(\n dc.body,\n 'keydown',\n this.handleKeypress.bind(this)\n );\n this.listeners.arrowHandler = this.renderer.listen(\n wd,\n 'keydown',\n arrowKeysHandler\n );\n }\n\n // update state\n this.dropdownState.menuState.isVisible = true;\n\n if (position) {\n this.updatePosition(position, dynamic);\n }\n }\n\n /**\n * @name hide\n * @desc hides menu\n */\n public hide(): void {\n this.dropdownState.menuState.isVisible = false;\n\n // reset selected item state\n this.dropdownState.dropdownState.unselect();\n\n // call function to unlisten\n this.listeners.arrowHandler && this.listeners.arrowHandler();\n this.listeners.handleKeypress && this.listeners.handleKeypress();\n }\n\n /**\n * @name updatePosition\n * @desc updates the menu position every time it is toggled\n * @param position {ClientRect}\n * @param dynamic {boolean}\n */\n public updatePosition(position: ClientRect, dynamic: boolean): void {\n this.position = position;\n this.updateOnChange(dynamic);\n }\n\n /**\n * @name handleKeypress\n * @desc executes functions on keyPress based on the key pressed\n * @param $event\n */\n public handleKeypress($event): void {\n const key = $event.keyCode;\n const items = this.items.toArray();\n const index = items.indexOf(\n this.dropdownState.dropdownState.selectedItem\n );\n\n if (!ACTIONS.hasOwnProperty(key)) {\n return;\n }\n\n ACTIONS[key].call(this, index, items, this.dropdownState.dropdownState);\n }\n\n /**\n * @name getMenuElement\n */\n private getMenuElement(): Element {\n return this.element.nativeElement.children[0];\n }\n\n /**\n * @name calcPositionOffset\n * @param position\n */\n private calcPositionOffset(position): { top: string; left: string } {\n const wd = typeof window !== 'undefined' ? window : undefined;\n const dc = typeof document !== 'undefined' ? document : undefined;\n\n if (!wd || !dc || !position) {\n return;\n }\n\n const element = this.getMenuElement();\n const supportPageOffset = wd.pageXOffset !== undefined;\n const isCSS1Compat = (dc.compatMode || '') === 'CSS1Compat';\n\n const x = supportPageOffset\n ? wd.pageXOffset\n : isCSS1Compat\n ? dc.documentElement.scrollLeft\n : dc.body.scrollLeft;\n\n const y = supportPageOffset\n ? wd.pageYOffset\n : isCSS1Compat\n ? dc.documentElement.scrollTop\n : dc.body.scrollTop;\n\n let { top, left } = this.applyOffset(\n `${position.top + (this.appendToBody ? y - 15 : 0)}px`,\n `${position.left + x - 5}px`\n );\n\n const clientWidth = element.clientWidth;\n const clientHeight = element.clientHeight;\n\n const marginFromBottom =\n parseInt(top) + clientHeight + (this.appendToBody ? 0 : y - 15);\n const marginFromRight = parseInt(left) + clientWidth;\n\n const windowScrollHeight = wd.innerHeight + wd.scrollY;\n const windowScrollWidth = wd.innerWidth + wd.scrollX;\n\n if (marginFromBottom >= windowScrollHeight) {\n top = `${parseInt(top.replace('px', '')) - clientHeight}px`;\n }\n\n if (marginFromRight >= windowScrollWidth) {\n const marginRight = marginFromRight - windowScrollWidth + 30;\n left = `${parseInt(left.replace('px', '')) - marginRight}px`;\n }\n\n return { top, left };\n }\n\n private applyOffset(\n top: string,\n left: string\n ): { top: string; left: string } {\n if (!this.offset) {\n return { top, left };\n }\n\n const offset = this.offset.split(' ');\n\n if (!offset[1]) {\n offset[1] = '0';\n }\n\n top = `${parseInt(top.replace('px', '')) + parseInt(offset[0])}px`;\n left = `${parseInt(left.replace('px', '')) + parseInt(offset[1])}px`;\n\n return { top, left };\n }\n\n public ngOnInit() {\n const dc = typeof document !== 'undefined' ? document : undefined;\n if (this.appendToBody) {\n // append menu element to the body\n dc.body.appendChild(this.element.nativeElement);\n }\n }\n\n public updateOnChange(dynamic = true) {\n const element = this.getMenuElement();\n const position = this.calcPositionOffset(this.position);\n\n if (position) {\n this.renderer.setStyle(element, 'top', position.top.toString());\n this.renderer.setStyle(element, 'left', position.left.toString());\n }\n\n // select first item unless user disabled this option\n if (\n this.focusFirstElement &&\n this.items.first &&\n !this.dropdownState.dropdownState.selectedItem\n ) {\n this.dropdownState.dropdownState.select(this.items.first, false);\n }\n }\n\n public ngOnDestroy() {\n const elem = this.element.nativeElement;\n elem.parentNode.removeChild(elem);\n\n if (this.listeners.handleKeypress) {\n this.listeners.handleKeypress();\n }\n }\n}\n","import {\n HostListener,\n Component,\n ContentChild,\n Output,\n EventEmitter,\n Input\n} from '@angular/core';\n\nimport { Ng2DropdownButton } from '../button/ng2-dropdown-button';\nimport { Ng2DropdownMenu } from '../menu/ng2-dropdown-menu';\nimport { DropdownStateService } from '../../services/dropdown-state.service';\nimport { Ng2MenuItem } from '../menu-item/ng2-menu-item';\n\n@Component({\n selector: 'ng2-dropdown',\n template: `\n <div class=\"ng2-dropdown-container\">\n <ng-content select=\"ng2-dropdown-button\"></ng-content>\n <ng-content select=\"ng2-dropdown-menu\"></ng-content>\n </div>\n `,\n providers: [DropdownStateService]\n})\nexport class Ng2Dropdown {\n // get children components\n @ContentChild(Ng2DropdownButton, {static: true})\n public button!: Ng2DropdownButton;\n @ContentChild(Ng2DropdownMenu, {static: true})\n public menu!: Ng2DropdownMenu;\n\n @Input() public dynamicUpdate = true;\n\n // outputs\n @Output() public onItemClicked = new EventEmitter<Ng2MenuItem>();\n @Output() public onItemSelected = new EventEmitter<Ng2MenuItem>();\n @Output() public onShow = new EventEmitter<Ng2Dropdown>();\n @Output() public onHide = new EventEmitter<Ng2Dropdown>();\n\n constructor(private state: DropdownStateService) {\n }\n\n public ngOnInit() {\n this.state.dropdownState.onItemClicked.subscribe(item => {\n this.onItemClicked.emit(item);\n\n if (item.preventClose) {\n return;\n }\n\n this.hide.call(this);\n });\n\n if (this.button) {\n this.button.onMenuToggled.subscribe(() => {\n this.toggleMenu();\n });\n }\n\n this.state.dropdownState.onItemSelected.subscribe(item => {\n this.onItemSelected.emit(item);\n });\n\n this.state.dropdownState.onItemDestroyed.subscribe(\n (item: Ng2MenuItem) => {\n let newSelectedItem: Ng2MenuItem | undefined;\n const items = this.menu.items.toArray();\n\n if (item !== this.state.dropdownState.selectedItem) {\n return;\n }\n\n if (this.menu.focusFirstElement) {\n newSelectedItem =\n item === items[0] && items.length > 1\n ? items[1]\n : items[0];\n }\n\n this.state.dropdownState.select(newSelectedItem);\n }\n );\n }\n\n /**\n * @name toggleMenu\n * @desc toggles menu visibility\n */\n public toggleMenu(position = this.button.getPosition()): void {\n this.state.menuState.isVisible ? this.hide() : this.show(position);\n }\n\n /**\n * - hides dropdown\n * @name hide\n */\n public hide(): void {\n this.menu.hide();\n this.onHide.emit(this);\n }\n\n /**\n * - shows dropdown\n * @name show\n * @param position\n */\n public show(position = this.button.getPosition()): void {\n this.menu.show(position, this.dynamicUpdate);\n this.onShow.emit(this);\n }\n\n /**\n * @name scrollListener\n */\n @HostListener('window:scroll')\n public scrollListener() {\n if (this.button && this.dynamicUpdate) {\n this.menu.updatePosition(this.button.getPosition(), true);\n }\n }\n}\n","import { Ng2Dropdown } from './components/dropdown/ng2-dropdown';\nimport { Ng2DropdownMenu } from './components/menu/ng2-dropdown-menu';\nimport { Ng2DropdownButton } from './components/button/ng2-dropdown-button';\nimport { Ng2MenuItem } from './components/menu-item/ng2-menu-item';\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DropdownStateService } from './services/dropdown-state.service';\n\n@NgModule({\n exports: [\n Ng2MenuItem,\n Ng2DropdownButton,\n Ng2DropdownMenu,\n Ng2Dropdown\n ],\n declarations: [\n Ng2Dropdown,\n Ng2MenuItem,\n Ng2DropdownButton,\n Ng2DropdownMenu,\n ],\n imports: [\n CommonModule\n ]\n})\nexport class Ng2DropdownModule {}\n\nexport {\n Ng2Dropdown,\n Ng2DropdownMenu,\n Ng2MenuItem,\n Ng2DropdownButton,\n DropdownStateService\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}