New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ng2-material-dropdown

Package Overview
Dependencies
Maintainers
1
Versions
87
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ng2-material-dropdown - npm Package Compare versions

Comparing version 0.8.0 to 0.8.1

bundles/ng2-material-dropdown.umd.js

1332

dist/ng2-dropdown.bundle.js

@@ -1,708 +0,632 @@

(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("@angular/core"), require("@angular/common"));
else if(typeof define === 'function' && define.amd)
define(["@angular/core", "@angular/common"], factory);
else if(typeof exports === 'object')
exports["ng2-dropdown"] = factory(require("@angular/core"), require("@angular/common"));
else
root["ng2-dropdown"] = factory(root["@angular/core"], root["@angular/common"]);
})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_16__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common')) :
typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common'], factory) :
(factory((global['ng2-material-dropdown'] = {}),global.ng.core,global.ng.common));
}(this, (function (exports,core,common) { 'use strict';
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
var Ng2DropdownButton = (function () {
/**
* @param {?} element
*/
function Ng2DropdownButton(element) {
this.element = element;
this.onMenuToggled = new core.EventEmitter();
this.showCaret = true;
}
/**
* \@name toggleMenu
* @desc emits event to toggle menu
* @return {?}
*/
Ng2DropdownButton.prototype.toggleMenu = function () {
this.onMenuToggled.emit(true);
};
/**
* \@name getPosition
* @desc returns position of the button
* @return {?}
*/
Ng2DropdownButton.prototype.getPosition = function () {
return this.element.nativeElement.getBoundingClientRect();
};
return Ng2DropdownButton;
}());
Ng2DropdownButton.decorators = [
{ type: core.Component, args: [{
selector: 'ng2-dropdown-button',
styles: ["\n .ng2-dropdown-button {\n font-family: \"Roboto\", \"Helvetica Neue\", Helvetica, Arial;\n background: #fff;\n padding: 0.45rem 0.25rem;\n font-size: 14px;\n letter-spacing: 0.08rem;\n color: #444;\n outline: 0;\n cursor: pointer;\n font-weight: 400;\n border: none;\n border-bottom: 1px solid #efefef;\n text-align: left;\n min-width: 100px;\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n max-width: 150px; }\n\n .ng2-dropdown-button:hover {\n color: #222; }\n\n .ng2-dropdown-button:active,\n .ng2-dropdown-button:focus {\n color: #222;\n border-bottom: 2px solid #2196F3; }\n\n .ng2-dropdown-button__label {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 95%;\n flex: 1 1 95%; }\n\n .ng2-dropdown-button__caret {\n width: 12px;\n height: 12px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 6%;\n flex: 1 1 6%; }\n\n :host-context(.ng2-dropdown-button--icon) .ng2-dropdown-button {\n border: none;\n min-width: 40px;\n width: 40px;\n border-radius: 100%;\n -webkit-transition: all 0.2s;\n transition: all 0.2s;\n text-align: center;\n height: 40px;\n padding: 0.5em; }\n\n :host-context(.ng2-dropdown-button--icon) .ng2-dropdown-button:active {\n background: rgba(0, 0, 0, 0.2); }\n "],
template: "\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=\"\u0421\u043B\u043E\u0439_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 "
},] },
];
/**
* @nocollapse
*/
Ng2DropdownButton.ctorParameters = function () { return [
{ type: core.ElementRef, },
]; };
Ng2DropdownButton.propDecorators = {
'onMenuToggled': [{ type: core.Output },],
'showCaret': [{ type: core.Input },],
};
var KEYS = {
BACKSPACE: 9,
PREV: 38,
NEXT: 40,
ENTER: 13,
ESCAPE: 27
};
/**
* \@name onSwitchNext
* @param index
* @param items
* @param state
*/
var onSwitchNext = function (index, items, state$$1) {
if (index < items.length - 1) {
state$$1.select(items[index + 1], true);
}
};
/**
* \@name onSwitchPrev
* @param index
* @param items
* @param state
*/
var onSwitchPrev = function (index, items, state$$1) {
if (index > 0) {
state$$1.select(items[index - 1], true);
}
};
/**
* \@name onBackspace
* @param index
* @param items
* @param state
*/
var onBackspace = function (index, items, state$$1) {
if (index < items.length - 1) {
state$$1.select(items[index + 1], true);
}
else {
state$$1.select(items[0], true);
}
};
/**
* @this {?}
* @return {?}
*/
function onEscape() {
this.hide();
}
/**
* \@name onItemClicked
* @param index
* @param items
* @param state
*/
var onItemClicked = function (index, items, state$$1) {
return state$$1.selectedItem ? state$$1.selectedItem.click() : undefined;
};
var ACTIONS = (_a = {}, _a[KEYS.BACKSPACE] = onBackspace, _a[KEYS.PREV] = onSwitchPrev, _a[KEYS.NEXT] = onSwitchNext, _a[KEYS.ENTER] = onItemClicked, _a[KEYS.ESCAPE] = onEscape, _a);
/**
* @param {?} event
* @return {?}
*/
function arrowKeysHandler(event) {
if ([38, 40].indexOf(event.keyCode) > -1) {
event.preventDefault();
}
}
var Ng2DropdownState = (function () {
function Ng2DropdownState() {
this.onItemSelected = new core.EventEmitter();
this.onItemClicked = new core.EventEmitter();
}
Object.defineProperty(Ng2DropdownState.prototype, "selectedItem", {
/**
* \@name selectedItem
* @desc getter for _selectedItem
* @return {?}
*/
get: function () {
return this._selectedItem;
},
enumerable: true,
configurable: true
});
/**
* \@name selects a menu item and emits event
* @param {?} item {Ng2MenuItem}
* @param {?=} dispatchEvent {boolean}
* @return {?}
*/
Ng2DropdownState.prototype.select = function (item, dispatchEvent) {
if (dispatchEvent === void 0) { dispatchEvent = true; }
this._selectedItem = item;
if (!dispatchEvent) {
return;
}
item.focus();
this.onItemSelected.emit(item);
};
/**
* \@name unselect
* @desc sets _selectedItem as undefined
* @return {?}
*/
Ng2DropdownState.prototype.unselect = function () {
this._selectedItem = undefined;
};
return Ng2DropdownState;
}());
var DropdownStateService = (function () {
function DropdownStateService() {
this.menuState = {
isVisible: /** @type {?} */ (false),
/**
* @return {?}
*/
toString: function () {
return this.isVisible === true ? 'visible' : 'hidden';
}
};
this.dropdownState = new Ng2DropdownState();
}
return DropdownStateService;
}());
DropdownStateService.decorators = [
{ type: core.Injectable },
];
/**
* @nocollapse
*/
DropdownStateService.ctorParameters = function () { return []; };
var Ng2MenuItem = (function () {
/**
* @param {?} state
* @param {?} element
* @param {?} renderer
*/
function Ng2MenuItem(state$$1, element, renderer) {
this.state = state$$1;
this.element = element;
this.renderer = renderer;
/**
* \@preventClose
* @desc if true, clicking on the item won't close the dropdown
*/
this.preventClose = false;
}
Object.defineProperty(Ng2MenuItem.prototype, "isSelected", {
/**
* \@name isSelected
* @desc returns current selected item
* @return {?}
*/
get: function () {
return this === this.state.dropdownState.selectedItem;
},
enumerable: true,
configurable: true
});
/**
* \@name click
* @desc emits select event
* @param {?=} $event
* @return {?}
*/
Ng2MenuItem.prototype.select = function ($event) {
this.state.dropdownState.select(this, true);
if ($event) {
$event.stopPropagation();
$event.preventDefault();
}
};
/**
* \@name click
* @desc emits click event
* @return {?}
*/
Ng2MenuItem.prototype.click = function () {
this.state.dropdownState.onItemClicked.emit(this);
};
/**
* \@name focus
* @return {?}
*/
Ng2MenuItem.prototype.focus = function () {
this.renderer.invokeElementMethod(this.element.nativeElement.children[0], 'focus');
};
return Ng2MenuItem;
}());
Ng2MenuItem.decorators = [
{ type: core.Component, args: [{
selector: 'ng2-menu-item',
styles: ["\n .ng2-menu-item {\n font-family: \"Roboto\", \"Helvetica Neue\", Helvetica, Arial;\n background: #fff;\n color: rgba(0, 0, 0, 0.87);\n cursor: pointer;\n font-size: 0.9em;\n text-transform: none;\n font-weight: 400;\n letter-spacing: 0.03em;\n height: 48px;\n line-height: 48px;\n padding: 0.3em 1.25rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n -webkit-transition: background 0.25s;\n transition: background 0.25s; }\n\n .ng2-menu-item--selected {\n background: rgba(158, 158, 158, 0.2);\n outline: 0; }\n\n .ng2-menu-item:focus {\n outline: 0; }\n\n .ng2-menu-item:active {\n background: rgba(158, 158, 158, 0.4); }\n\n :host(ng2-menu-item) /deep/ [ng2-menu-item-icon] {\n vertical-align: middle;\n font-size: 28px;\n width: 1.5em;\n height: 30px;\n color: rgba(0, 0, 0, 0.44); }\n "],
template: "\n <div 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 <ng-content></ng-content>\n </div>\n "
},] },
];
/**
* @nocollapse
*/
Ng2MenuItem.ctorParameters = function () { return [
{ type: DropdownStateService, },
{ type: core.ElementRef, },
{ type: core.Renderer, },
]; };
Ng2MenuItem.propDecorators = {
'preventClose': [{ type: core.Input },],
'value': [{ type: core.Input },],
};
var Ng2DropdownMenu = (function () {
/**
* @param {?} state
* @param {?} element
* @param {?} renderer
*/
function Ng2DropdownMenu(state$$1, element, renderer) {
this.state = state$$1;
this.element = element;
this.renderer = renderer;
/**
* \@name width
*/
this.width = 4;
/**
* \@description if set to true, the first element of the dropdown will be automatically focused
* \@name focusFirstElement
*/
this.focusFirstElement = true;
/**
* \@name appendToBody
*/
this.appendToBody = true;
this.listeners = {
arrowHandler: undefined,
handleKeypress: undefined
};
}
/**
* \@name show
* \@shows menu and selects first item
* @return {?}
*/
Ng2DropdownMenu.prototype.show = function () {
var /** @type {?} */ dc = typeof document !== 'undefined' ? document : undefined;
var /** @type {?} */ wd = typeof window !== 'undefined' ? window : undefined;
// update state
this.state.menuState.isVisible = true;
// setting handlers
this.listeners.handleKeypress = this.renderer.listen(dc.body, 'keydown', this.handleKeypress.bind(this));
this.listeners.arrowHandler = this.renderer.listen(wd, 'keydown', arrowKeysHandler);
};
/**
* \@name hide
* @desc hides menu
* @return {?}
*/
Ng2DropdownMenu.prototype.hide = function () {
this.state.menuState.isVisible = false;
// reset selected item state
this.state.dropdownState.unselect();
// call function to unlisten
this.listeners.arrowHandler ? this.listeners.arrowHandler() : undefined;
this.listeners.handleKeypress ? this.listeners.handleKeypress() : undefined;
};
/**
* \@name updatePosition
* @desc updates the menu position every time it is toggled
* @param {?} position {ClientRect}
* @return {?}
*/
Ng2DropdownMenu.prototype.updatePosition = function (position) {
this.position = position;
this.ngDoCheck();
};
/**
* \@name handleKeypress
* @desc executes functions on keyPress based on the key pressed
* @param {?} $event
* @return {?}
*/
Ng2DropdownMenu.prototype.handleKeypress = function ($event) {
var /** @type {?} */ key = $event.keyCode;
var /** @type {?} */ items = this.items.toArray();
var /** @type {?} */ index = items.indexOf(this.state.dropdownState.selectedItem);
if (!ACTIONS.hasOwnProperty(key)) {
return;
}
ACTIONS[key].call(this, index, items, this.state.dropdownState);
};
/**
* \@name getMenuElement
* @return {?}
*/
Ng2DropdownMenu.prototype.getMenuElement = function () {
return this.element.nativeElement.children[0];
};
/**
* \@name calcPositionOffset
* @param {?} position
* @return {?}
*/
Ng2DropdownMenu.prototype.calcPositionOffset = function (position) {
var /** @type {?} */ wd = typeof window !== 'undefined' ? window : undefined;
var /** @type {?} */ dc = typeof document !== 'undefined' ? document : undefined;
if (!wd || !dc || !position) {
return;
}
var /** @type {?} */ element = this.getMenuElement();
var /** @type {?} */ supportPageOffset = wd.pageXOffset !== undefined;
var /** @type {?} */ isCSS1Compat = ((dc.compatMode || '') === 'CSS1Compat');
var /** @type {?} */ x = supportPageOffset ? wd.pageXOffset : isCSS1Compat ?
dc.documentElement.scrollLeft : dc.body.scrollLeft;
var /** @type {?} */ y = supportPageOffset ? wd.pageYOffset : isCSS1Compat ?
dc.documentElement.scrollTop : dc.body.scrollTop;
var _a = this.applyOffset(position.top + (this.appendToBody ? y - 15 : 0) + "px", position.left + x - 5 + "px"), top = _a.top, left = _a.left;
var /** @type {?} */ clientWidth = element.clientWidth;
var /** @type {?} */ clientHeight = element.clientHeight;
var /** @type {?} */ marginFromBottom = parseInt(top) + clientHeight + (this.appendToBody ? 0 : y - 15);
var /** @type {?} */ marginFromRight = parseInt(left) + clientWidth;
var /** @type {?} */ windowScrollHeight = wd.innerHeight + wd.scrollY;
var /** @type {?} */ windowScrollWidth = wd.innerWidth + wd.scrollX;
if (marginFromBottom >= windowScrollHeight) {
top = parseInt(top.replace('px', '')) - clientHeight + "px";
}
if (marginFromRight >= windowScrollWidth) {
var /** @type {?} */ marginRight = marginFromRight - windowScrollWidth + 30;
left = parseInt(left.replace('px', '')) - marginRight + "px";
}
return { top: top, left: left };
};
/**
* @param {?} top
* @param {?} left
* @return {?}
*/
Ng2DropdownMenu.prototype.applyOffset = function (top, left) {
if (!this.offset) {
return { top: top, left: left };
}
var /** @type {?} */ offset = this.offset.split(' ');
if (!offset[1]) {
offset[1] = '0';
}
top = parseInt(top.replace('px', '')) + parseInt(offset[0]) + "px";
left = parseInt(left.replace('px', '')) + parseInt(offset[1]) + "px";
return { top: top, left: left };
};
/**
* @return {?}
*/
Ng2DropdownMenu.prototype.ngOnInit = function () {
var /** @type {?} */ dc = typeof document !== 'undefined' ? document : undefined;
if (this.appendToBody) {
// append menu element to the body
dc.body.appendChild(this.element.nativeElement);
}
};
/**
* @return {?}
*/
Ng2DropdownMenu.prototype.ngDoCheck = function () {
if (this.state.menuState.isVisible && this.position) {
var /** @type {?} */ element = this.getMenuElement();
var /** @type {?} */ position = this.calcPositionOffset(this.position);
if (position) {
this.renderer.setElementStyle(element, 'top', position.top);
this.renderer.setElementStyle(element, 'left', position.left);
}
// select first item unless user disabled this option
if (this.focusFirstElement &&
this.items.first &&
!this.state.dropdownState.selectedItem) {
this.state.dropdownState.select(this.items.first, false);
}
}
};
/**
* @return {?}
*/
Ng2DropdownMenu.prototype.ngOnDestroy = function () {
var /** @type {?} */ elem = this.element.nativeElement;
elem.parentNode.removeChild(elem);
if (this.listeners.handleKeypress) {
this.listeners.handleKeypress();
}
};
return Ng2DropdownMenu;
}());
Ng2DropdownMenu.decorators = [
{ type: core.Component, args: [{
selector: 'ng2-dropdown-menu',
styles: ["\n .ng2-dropdown-menu {\n z-index: 100;\n overflow-y: auto;\n -webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3);\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3);\n position: absolute;\n padding: 0.5em 0;\n background: #fff;\n border-radius: 1px;\n max-height: 400px;\n width: 260px;\n min-height: 0;\n display: block; }\n\n .ng2-dropdown-menu.ng2-dropdown-menu--inside-element {\n position: fixed; }\n\n .ng2-dropdown-menu.ng2-dropdown-menu--width--2 {\n width: 200px; }\n\n .ng2-dropdown-menu.ng2-dropdown-menu--width--4 {\n width: 260px; }\n\n .ng2-dropdown-menu.ng2-dropdown-menu--width--6 {\n width: 320px; }\n\n .ng2-dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n overflow: hidden; }\n\n :host /deep/ .ng2-menu-divider {\n height: 1px;\n min-height: 1px;\n max-height: 1px;\n width: 100%;\n display: block;\n background: #f9f9f9; }\n "],
template: "\n <!-- MENU -->\n <div class='ng2-dropdown-menu ng2-dropdown-menu---width--{{ width }}'\n [class.ng2-dropdown-menu--inside-element]=\"!appendToBody\"\n [class.ng2-dropdown-menu--open]=\"state.menuState.isVisible\"\n [@fade]=\"state.menuState.toString()\">\n <div class=\"ng2-dropdown-menu__options-container\"\n [@opacity]=\"state.menuState.toString()\">\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- BACKDROP -->\n <div class=\"ng2-dropdown-backdrop\" *ngIf=\"state.menuState.isVisible\" (click)=\"hide()\"></div>\n ",
animations: [
core.trigger('fade', [
core.state('visible', core.style({ display: 'block', height: '*', width: '*' })),
core.state('hidden', core.style({ display: 'none', overflow: 'hidden', height: 0, width: 0 })),
core.transition('hidden => visible', [
core.animate('250ms ease-in', core.keyframes([
core.style({ opacity: 0, offset: 0 }),
core.style({ opacity: 1, offset: 1, height: '*', width: '*' }),
]))
]),
core.transition('visible => hidden', [
core.animate('350ms ease-out', core.keyframes([
core.style({ opacity: 1, offset: 0 }),
core.style({ opacity: 0, offset: 1, width: '0', height: '0' }),
]))
])
]),
core.trigger('opacity', [
core.transition('hidden => visible', [
core.animate('450ms ease-in', core.keyframes([
core.style({ opacity: 0, offset: 0 }),
core.style({ opacity: 1, offset: 1 }),
]))
]),
core.transition('visible => hidden', [
core.animate('250ms ease-out', core.keyframes([
core.style({ opacity: 1, offset: 0 }),
core.style({ opacity: 0.5, offset: 0.3 }),
core.style({ opacity: 0, offset: 1 }),
]))
])
])
]
},] },
];
/**
* @nocollapse
*/
Ng2DropdownMenu.ctorParameters = function () { return [
{ type: DropdownStateService, },
{ type: core.ElementRef, },
{ type: core.Renderer, },
]; };
Ng2DropdownMenu.propDecorators = {
'width': [{ type: core.Input },],
'focusFirstElement': [{ type: core.Input },],
'offset': [{ type: core.Input },],
'appendToBody': [{ type: core.Input },],
'items': [{ type: core.ContentChildren, args: [Ng2MenuItem,] },],
};
var Ng2Dropdown = (function () {
/**
* @param {?} state
*/
function Ng2Dropdown(state$$1) {
this.state = state$$1;
this.dynamicUpdate = true;
this.onItemClicked = new core.EventEmitter();
this.onItemSelected = new core.EventEmitter();
this.onShow = new core.EventEmitter();
this.onHide = new core.EventEmitter();
}
/**
* \@name toggleMenu
* @desc toggles menu visibility
* @param {?=} position
* @return {?}
*/
Ng2Dropdown.prototype.toggleMenu = function (position) {
if (position === void 0) { position = this.button.getPosition(); }
this.state.menuState.isVisible ? this.hide() : this.show(position);
};
/**
* - hides dropdown
* \@name hide
* @return {?}
*/
Ng2Dropdown.prototype.hide = function () {
this.menu.hide();
this.onHide.emit(this);
};
/**
* - shows dropdown
* \@name show
* @param {?=} position
* @return {?}
*/
Ng2Dropdown.prototype.show = function (position) {
if (position === void 0) { position = this.button.getPosition(); }
this.menu.show();
// update menu position based on its button's
this.menu.updatePosition(position);
this.onShow.emit(this);
};
/**
* \@name scrollListener
* @return {?}
*/
Ng2Dropdown.prototype.scrollListener = function () {
if (this.state.menuState.isVisible && this.button && this.dynamicUpdate) {
this.menu.updatePosition(this.button.getPosition());
}
};
/**
* @return {?}
*/
Ng2Dropdown.prototype.ngOnInit = function () {
var _this = this;
this.state.dropdownState.onItemClicked.subscribe(function (item) {
_this.onItemClicked.emit(item);
if (item.preventClose) {
return;
}
_this.hide.call(_this);
});
if (this.button) {
this.button.onMenuToggled.subscribe(function () {
_this.toggleMenu();
});
}
this.state.dropdownState.onItemSelected.subscribe(function (item) { return _this.onItemSelected.emit(item); });
};
return Ng2Dropdown;
}());
Ng2Dropdown.decorators = [
{ type: core.Component, args: [{
selector: 'ng2-dropdown',
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 ",
providers: [DropdownStateService]
},] },
];
/**
* @nocollapse
*/
Ng2Dropdown.ctorParameters = function () { return [
{ type: DropdownStateService, },
]; };
Ng2Dropdown.propDecorators = {
'button': [{ type: core.ContentChild, args: [Ng2DropdownButton,] },],
'menu': [{ type: core.ContentChild, args: [Ng2DropdownMenu,] },],
'dynamicUpdate': [{ type: core.Input },],
'onItemClicked': [{ type: core.Output },],
'onItemSelected': [{ type: core.Output },],
'onShow': [{ type: core.Output },],
'onHide': [{ type: core.Output },],
'scrollListener': [{ type: core.HostListener, args: ['window:scroll',] },],
};
var Ng2DropdownModule = (function () {
function Ng2DropdownModule() {
}
return Ng2DropdownModule;
}());
Ng2DropdownModule.decorators = [
{ type: core.NgModule, args: [{
exports: [
Ng2MenuItem,
Ng2DropdownButton,
Ng2DropdownMenu,
Ng2Dropdown
],
declarations: [
Ng2Dropdown,
Ng2MenuItem,
Ng2DropdownButton,
Ng2DropdownMenu,
],
imports: [
common.CommonModule
]
},] },
];
/**
* @nocollapse
*/
Ng2DropdownModule.ctorParameters = function () { return []; };
var _a;
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
exports.Ng2Dropdown = Ng2Dropdown;
exports.Ng2DropdownMenu = Ng2DropdownMenu;
exports.Ng2MenuItem = Ng2MenuItem;
exports.Ng2DropdownButton = Ng2DropdownButton;
exports.Ng2DropdownModule = Ng2DropdownModule;
exports.DropdownStateService = DropdownStateService;
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
Object.defineProperty(exports, '__esModule', { value: true });
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var ng2_dropdown_1 = __webpack_require__(1);
exports.Ng2Dropdown = ng2_dropdown_1.Ng2Dropdown;
var ng2_dropdown_menu_1 = __webpack_require__(6);
exports.Ng2DropdownMenu = ng2_dropdown_menu_1.Ng2DropdownMenu;
var ng2_dropdown_button_1 = __webpack_require__(3);
exports.Ng2DropdownButton = ng2_dropdown_button_1.Ng2DropdownButton;
var ng2_menu_item_1 = __webpack_require__(8);
exports.Ng2MenuItem = ng2_menu_item_1.Ng2MenuItem;
var core_1 = __webpack_require__(2);
var common_1 = __webpack_require__(16);
var dropdown_state_service_1 = __webpack_require__(9);
exports.DropdownStateService = dropdown_state_service_1.DropdownStateService;
var Ng2DropdownModule = (function () {
function Ng2DropdownModule() {
}
return Ng2DropdownModule;
}());
Ng2DropdownModule = __decorate([
core_1.NgModule({
exports: [
ng2_menu_item_1.Ng2MenuItem,
ng2_dropdown_button_1.Ng2DropdownButton,
ng2_dropdown_menu_1.Ng2DropdownMenu,
ng2_dropdown_1.Ng2Dropdown
],
declarations: [
ng2_dropdown_1.Ng2Dropdown,
ng2_menu_item_1.Ng2MenuItem,
ng2_dropdown_button_1.Ng2DropdownButton,
ng2_dropdown_menu_1.Ng2DropdownMenu,
],
imports: [
common_1.CommonModule
]
})
], Ng2DropdownModule);
exports.Ng2DropdownModule = Ng2DropdownModule;
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(2);
var ng2_dropdown_button_1 = __webpack_require__(3);
var ng2_dropdown_menu_1 = __webpack_require__(6);
var dropdown_state_service_1 = __webpack_require__(9);
var Ng2Dropdown = (function () {
function Ng2Dropdown(state) {
this.state = state;
this.dynamicUpdate = true;
this.onItemClicked = new core_1.EventEmitter();
this.onItemSelected = new core_1.EventEmitter();
this.onShow = new core_1.EventEmitter();
this.onHide = new core_1.EventEmitter();
}
Ng2Dropdown.prototype.toggleMenu = function (position) {
if (position === void 0) { position = this.button.getPosition(); }
this.state.menuState.isVisible ? this.hide() : this.show(position);
};
Ng2Dropdown.prototype.hide = function () {
this.menu.hide();
this.onHide.emit(this);
};
Ng2Dropdown.prototype.show = function (position) {
if (position === void 0) { position = this.button.getPosition(); }
this.menu.show();
this.menu.updatePosition(position);
this.onShow.emit(this);
};
Ng2Dropdown.prototype.scrollListener = function () {
if (this.state.menuState.isVisible && this.button && this.dynamicUpdate) {
this.menu.updatePosition(this.button.getPosition());
}
};
Ng2Dropdown.prototype.ngOnInit = function () {
var _this = this;
this.state.dropdownState.onItemClicked.subscribe(function (item) {
_this.onItemClicked.emit(item);
if (item.preventClose) {
return;
}
_this.hide.call(_this);
});
if (this.button) {
this.button.onMenuToggled.subscribe(function () {
_this.toggleMenu();
});
}
this.state.dropdownState.onItemSelected.subscribe(function (item) { return _this.onItemSelected.emit(item); });
};
return Ng2Dropdown;
}());
__decorate([
core_1.ContentChild(ng2_dropdown_button_1.Ng2DropdownButton),
__metadata("design:type", ng2_dropdown_button_1.Ng2DropdownButton)
], Ng2Dropdown.prototype, "button", void 0);
__decorate([
core_1.ContentChild(ng2_dropdown_menu_1.Ng2DropdownMenu),
__metadata("design:type", ng2_dropdown_menu_1.Ng2DropdownMenu)
], Ng2Dropdown.prototype, "menu", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", Boolean)
], Ng2Dropdown.prototype, "dynamicUpdate", void 0);
__decorate([
core_1.Output(),
__metadata("design:type", core_1.EventEmitter)
], Ng2Dropdown.prototype, "onItemClicked", void 0);
__decorate([
core_1.Output(),
__metadata("design:type", core_1.EventEmitter)
], Ng2Dropdown.prototype, "onItemSelected", void 0);
__decorate([
core_1.Output(),
__metadata("design:type", core_1.EventEmitter)
], Ng2Dropdown.prototype, "onShow", void 0);
__decorate([
core_1.Output(),
__metadata("design:type", core_1.EventEmitter)
], Ng2Dropdown.prototype, "onHide", void 0);
__decorate([
core_1.HostListener('window:scroll'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], Ng2Dropdown.prototype, "scrollListener", null);
Ng2Dropdown = __decorate([
core_1.Component({
selector: 'ng2-dropdown',
template: __webpack_require__(15),
providers: [dropdown_state_service_1.DropdownStateService]
}),
__metadata("design:paramtypes", [dropdown_state_service_1.DropdownStateService])
], Ng2Dropdown);
exports.Ng2Dropdown = Ng2Dropdown;
/***/ }),
/* 2 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_2__;
/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(2);
var Ng2DropdownButton = (function () {
function Ng2DropdownButton(element) {
this.element = element;
this.onMenuToggled = new core_1.EventEmitter();
this.showCaret = true;
}
Ng2DropdownButton.prototype.toggleMenu = function () {
this.onMenuToggled.emit(true);
};
Ng2DropdownButton.prototype.getPosition = function () {
return this.element.nativeElement.getBoundingClientRect();
};
return Ng2DropdownButton;
}());
__decorate([
core_1.Output(),
__metadata("design:type", core_1.EventEmitter)
], Ng2DropdownButton.prototype, "onMenuToggled", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", Boolean)
], Ng2DropdownButton.prototype, "showCaret", void 0);
Ng2DropdownButton = __decorate([
core_1.Component({
selector: 'ng2-dropdown-button',
styles: [__webpack_require__(4)],
template: __webpack_require__(5)
}),
__metadata("design:paramtypes", [core_1.ElementRef])
], Ng2DropdownButton);
exports.Ng2DropdownButton = Ng2DropdownButton;
/***/ }),
/* 4 */
/***/ (function(module, exports) {
module.exports = ".ng2-dropdown-button {\n font-family: \"Roboto\", \"Helvetica Neue\", Helvetica, Arial;\n background: #fff;\n padding: 0.45rem 0.25rem;\n font-size: 14px;\n letter-spacing: 0.08rem;\n color: #444;\n outline: 0;\n cursor: pointer;\n font-weight: 400;\n border: none;\n border-bottom: 1px solid #efefef;\n text-align: left;\n min-width: 100px;\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n max-width: 150px; }\n\n.ng2-dropdown-button:hover {\n color: #222; }\n\n.ng2-dropdown-button:active, .ng2-dropdown-button:focus {\n color: #222;\n border-bottom: 2px solid #2196F3; }\n\n.ng2-dropdown-button__label {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 95%;\n flex: 1 1 95%; }\n\n.ng2-dropdown-button__caret {\n width: 12px;\n height: 12px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 6%;\n flex: 1 1 6%; }\n\n:host-context(.ng2-dropdown-button--icon) .ng2-dropdown-button {\n border: none;\n min-width: 40px;\n width: 40px;\n border-radius: 100%;\n transition: all 0.2s;\n text-align: center;\n height: 40px;\n padding: 0.5em; }\n\n:host-context(.ng2-dropdown-button--icon) .ng2-dropdown-button:active {\n background: rgba(0, 0, 0, 0.2); }\n"
/***/ }),
/* 5 */
/***/ (function(module, exports) {
module.exports = "<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";
/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(2);
var actions_1 = __webpack_require__(7);
var ng2_menu_item_1 = __webpack_require__(8);
var dropdown_state_service_1 = __webpack_require__(9);
var Ng2DropdownMenu = (function () {
function Ng2DropdownMenu(state, element, renderer) {
this.state = state;
this.element = element;
this.renderer = renderer;
this.width = 4;
this.focusFirstElement = true;
this.appendToBody = true;
this.listeners = {
arrowHandler: undefined,
handleKeypress: undefined
};
}
Ng2DropdownMenu.prototype.show = function () {
var dc = typeof document !== 'undefined' ? document : undefined;
var wd = typeof window !== 'undefined' ? window : undefined;
this.state.menuState.isVisible = true;
this.listeners.handleKeypress = this.renderer.listen(dc.body, 'keydown', this.handleKeypress.bind(this));
this.listeners.arrowHandler = this.renderer.listen(wd, 'keydown', actions_1.arrowKeysHandler);
};
Ng2DropdownMenu.prototype.hide = function () {
this.state.menuState.isVisible = false;
this.state.dropdownState.unselect();
this.listeners.arrowHandler ? this.listeners.arrowHandler() : undefined;
this.listeners.handleKeypress ? this.listeners.handleKeypress() : undefined;
};
Ng2DropdownMenu.prototype.updatePosition = function (position) {
this.position = position;
this.ngDoCheck();
};
Ng2DropdownMenu.prototype.handleKeypress = function ($event) {
var key = $event.keyCode;
var items = this.items.toArray();
var index = items.indexOf(this.state.dropdownState.selectedItem);
if (!actions_1.ACTIONS.hasOwnProperty(key)) {
return;
}
actions_1.ACTIONS[key].call(this, index, items, this.state.dropdownState);
};
Ng2DropdownMenu.prototype.getMenuElement = function () {
return this.element.nativeElement.children[0];
};
Ng2DropdownMenu.prototype.calcPositionOffset = function (position) {
var wd = typeof window !== 'undefined' ? window : undefined;
var dc = typeof document !== 'undefined' ? document : undefined;
if (!wd || !dc || !position) {
return;
}
var element = this.getMenuElement();
var supportPageOffset = wd.pageXOffset !== undefined;
var isCSS1Compat = ((dc.compatMode || '') === 'CSS1Compat');
var x = supportPageOffset ? wd.pageXOffset : isCSS1Compat ?
dc.documentElement.scrollLeft : dc.body.scrollLeft;
var y = supportPageOffset ? wd.pageYOffset : isCSS1Compat ?
dc.documentElement.scrollTop : dc.body.scrollTop;
var _a = this.applyOffset(position.top + (this.appendToBody ? y - 15 : 0) + "px", position.left + x - 5 + "px"), top = _a.top, left = _a.left;
var clientWidth = element.clientWidth;
var clientHeight = element.clientHeight;
var marginFromBottom = parseInt(top) + clientHeight + (this.appendToBody ? 0 : y - 15);
var marginFromRight = parseInt(left) + clientWidth;
var windowScrollHeight = wd.innerHeight + wd.scrollY;
var windowScrollWidth = wd.innerWidth + wd.scrollX;
if (marginFromBottom >= windowScrollHeight) {
top = parseInt(top.replace('px', '')) - clientHeight + "px";
}
if (marginFromRight >= windowScrollWidth) {
var marginRight = marginFromRight - windowScrollWidth + 30;
left = parseInt(left.replace('px', '')) - marginRight + "px";
}
return { top: top, left: left };
};
Ng2DropdownMenu.prototype.applyOffset = function (top, left) {
if (!this.offset) {
return { top: top, left: left };
}
var offset = this.offset.split(' ');
if (!offset[1]) {
offset[1] = '0';
}
top = parseInt(top.replace('px', '')) + parseInt(offset[0]) + "px";
left = parseInt(left.replace('px', '')) + parseInt(offset[1]) + "px";
return { top: top, left: left };
};
Ng2DropdownMenu.prototype.ngOnInit = function () {
var dc = typeof document !== 'undefined' ? document : undefined;
if (this.appendToBody) {
dc.body.appendChild(this.element.nativeElement);
}
};
Ng2DropdownMenu.prototype.ngDoCheck = function () {
if (this.state.menuState.isVisible && this.position) {
var element = this.getMenuElement();
var position = this.calcPositionOffset(this.position);
if (position) {
this.renderer.setElementStyle(element, 'top', position.top);
this.renderer.setElementStyle(element, 'left', position.left);
}
if (this.focusFirstElement &&
this.items.first &&
!this.state.dropdownState.selectedItem) {
this.state.dropdownState.select(this.items.first, false);
}
}
};
Ng2DropdownMenu.prototype.ngOnDestroy = function () {
var elem = this.element.nativeElement;
elem.parentNode.removeChild(elem);
if (this.listeners.handleKeypress) {
this.listeners.handleKeypress();
}
};
return Ng2DropdownMenu;
}());
__decorate([
core_1.Input(),
__metadata("design:type", Number)
], Ng2DropdownMenu.prototype, "width", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", Boolean)
], Ng2DropdownMenu.prototype, "focusFirstElement", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", String)
], Ng2DropdownMenu.prototype, "offset", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", Boolean)
], Ng2DropdownMenu.prototype, "appendToBody", void 0);
__decorate([
core_1.ContentChildren(ng2_menu_item_1.Ng2MenuItem),
__metadata("design:type", core_1.QueryList)
], Ng2DropdownMenu.prototype, "items", void 0);
Ng2DropdownMenu = __decorate([
core_1.Component({
selector: 'ng2-dropdown-menu',
styles: [__webpack_require__(13)],
template: __webpack_require__(14),
animations: [
core_1.trigger('fade', [
core_1.state('visible', core_1.style({ display: 'block', height: '*', width: '*' })),
core_1.state('hidden', core_1.style({ display: 'none', overflow: 'hidden', height: 0, width: 0 })),
core_1.transition('hidden => visible', [
core_1.animate('250ms ease-in', core_1.keyframes([
core_1.style({ opacity: 0, offset: 0 }),
core_1.style({ opacity: 1, offset: 1, height: '*', width: '*' }),
]))
]),
core_1.transition('visible => hidden', [
core_1.animate('350ms ease-out', core_1.keyframes([
core_1.style({ opacity: 1, offset: 0 }),
core_1.style({ opacity: 0, offset: 1, width: '0', height: '0' }),
]))
])
]),
core_1.trigger('opacity', [
core_1.transition('hidden => visible', [
core_1.animate('450ms ease-in', core_1.keyframes([
core_1.style({ opacity: 0, offset: 0 }),
core_1.style({ opacity: 1, offset: 1 }),
]))
]),
core_1.transition('visible => hidden', [
core_1.animate('250ms ease-out', core_1.keyframes([
core_1.style({ opacity: 1, offset: 0 }),
core_1.style({ opacity: 0.5, offset: 0.3 }),
core_1.style({ opacity: 0, offset: 1 }),
]))
])
])
]
}),
__metadata("design:paramtypes", [dropdown_state_service_1.DropdownStateService,
core_1.ElementRef,
core_1.Renderer])
], Ng2DropdownMenu);
exports.Ng2DropdownMenu = Ng2DropdownMenu;
/***/ }),
/* 7 */
/***/ (function(module, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var KEYS = {
BACKSPACE: 9,
PREV: 38,
NEXT: 40,
ENTER: 13,
ESCAPE: 27
};
var onSwitchNext = function (index, items, state) {
if (index < items.length - 1) {
state.select(items[index + 1], true);
}
};
var onSwitchPrev = function (index, items, state) {
if (index > 0) {
state.select(items[index - 1], true);
}
};
var onBackspace = function (index, items, state) {
if (index < items.length - 1) {
state.select(items[index + 1], true);
}
else {
state.select(items[0], true);
}
};
function onEscape() {
this.hide();
}
;
var onItemClicked = function (index, items, state) {
return state.selectedItem ? state.selectedItem.click() : undefined;
};
exports.ACTIONS = (_a = {},
_a[KEYS.BACKSPACE] = onBackspace,
_a[KEYS.PREV] = onSwitchPrev,
_a[KEYS.NEXT] = onSwitchNext,
_a[KEYS.ENTER] = onItemClicked,
_a[KEYS.ESCAPE] = onEscape,
_a);
function arrowKeysHandler(event) {
if ([38, 40].indexOf(event.keyCode) > -1) {
event.preventDefault();
}
}
exports.arrowKeysHandler = arrowKeysHandler;
var _a;
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(2);
var dropdown_state_service_1 = __webpack_require__(9);
var Ng2MenuItem = (function () {
function Ng2MenuItem(state, element, renderer) {
this.state = state;
this.element = element;
this.renderer = renderer;
this.preventClose = false;
}
Object.defineProperty(Ng2MenuItem.prototype, "isSelected", {
get: function () {
return this === this.state.dropdownState.selectedItem;
},
enumerable: true,
configurable: true
});
Ng2MenuItem.prototype.select = function ($event) {
this.state.dropdownState.select(this, true);
if ($event) {
$event.stopPropagation();
$event.preventDefault();
}
};
Ng2MenuItem.prototype.click = function () {
this.state.dropdownState.onItemClicked.emit(this);
};
Ng2MenuItem.prototype.focus = function () {
this.renderer.invokeElementMethod(this.element.nativeElement.children[0], 'focus');
};
return Ng2MenuItem;
}());
__decorate([
core_1.Input(),
__metadata("design:type", Boolean)
], Ng2MenuItem.prototype, "preventClose", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", Object)
], Ng2MenuItem.prototype, "value", void 0);
Ng2MenuItem = __decorate([
core_1.Component({
selector: 'ng2-menu-item',
styles: [__webpack_require__(11)],
template: __webpack_require__(12)
}),
__metadata("design:paramtypes", [dropdown_state_service_1.DropdownStateService,
core_1.ElementRef,
core_1.Renderer])
], Ng2MenuItem);
exports.Ng2MenuItem = Ng2MenuItem;
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(2);
var ng2_dropdown_state_1 = __webpack_require__(10);
var DropdownStateService = (function () {
function DropdownStateService() {
this.menuState = {
isVisible: false,
toString: function () {
return this.isVisible === true ? 'visible' : 'hidden';
}
};
this.dropdownState = new ng2_dropdown_state_1.Ng2DropdownState();
}
return DropdownStateService;
}());
DropdownStateService = __decorate([
core_1.Injectable()
], DropdownStateService);
exports.DropdownStateService = DropdownStateService;
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(2);
var Ng2DropdownState = (function () {
function Ng2DropdownState() {
this.onItemSelected = new core_1.EventEmitter();
this.onItemClicked = new core_1.EventEmitter();
}
Object.defineProperty(Ng2DropdownState.prototype, "selectedItem", {
get: function () {
return this._selectedItem;
},
enumerable: true,
configurable: true
});
Ng2DropdownState.prototype.select = function (item, dispatchEvent) {
if (dispatchEvent === void 0) { dispatchEvent = true; }
this._selectedItem = item;
if (!dispatchEvent) {
return;
}
item.focus();
this.onItemSelected.emit(item);
};
Ng2DropdownState.prototype.unselect = function () {
this._selectedItem = undefined;
};
return Ng2DropdownState;
}());
exports.Ng2DropdownState = Ng2DropdownState;
/***/ }),
/* 11 */
/***/ (function(module, exports) {
module.exports = ".ng2-menu-item {\n font-family: \"Roboto\", \"Helvetica Neue\", Helvetica, Arial;\n background: #fff;\n color: rgba(0, 0, 0, 0.87);\n cursor: pointer;\n font-size: 0.9em;\n text-transform: none;\n font-weight: 400;\n letter-spacing: 0.03em;\n height: 48px;\n line-height: 48px;\n padding: 0.3em 1.25rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n transition: background 0.25s; }\n\n.ng2-menu-item--selected {\n background: rgba(158, 158, 158, 0.2);\n outline: 0; }\n\n.ng2-menu-item:focus {\n outline: 0; }\n\n.ng2-menu-item:active {\n background: rgba(158, 158, 158, 0.4); }\n\n:host(ng2-menu-item) /deep/ [ng2-menu-item-icon] {\n vertical-align: middle;\n font-size: 28px;\n width: 1.5em;\n height: 30px;\n color: rgba(0, 0, 0, 0.44); }\n"
/***/ }),
/* 12 */
/***/ (function(module, exports) {
module.exports = "<div 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 <ng-content></ng-content>\n</div>\n";
/***/ }),
/* 13 */
/***/ (function(module, exports) {
module.exports = ".ng2-dropdown-menu {\n z-index: 100;\n overflow-y: auto;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3);\n position: absolute;\n padding: 0.5em 0;\n background: #fff;\n border-radius: 1px;\n max-height: 400px;\n width: 260px;\n min-height: 0;\n display: block; }\n\n.ng2-dropdown-menu.ng2-dropdown-menu--inside-element {\n position: fixed; }\n\n.ng2-dropdown-menu.ng2-dropdown-menu--width--2 {\n width: 200px; }\n\n.ng2-dropdown-menu.ng2-dropdown-menu--width--4 {\n width: 260px; }\n\n.ng2-dropdown-menu.ng2-dropdown-menu--width--6 {\n width: 320px; }\n\n.ng2-dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n overflow: hidden; }\n\n:host /deep/ .ng2-menu-divider {\n height: 1px;\n min-height: 1px;\n max-height: 1px;\n width: 100%;\n display: block;\n background: #f9f9f9; }\n"
/***/ }),
/* 14 */
/***/ (function(module, exports) {
module.exports = "<!-- MENU -->\n<div class='ng2-dropdown-menu ng2-dropdown-menu---width--{{ width }}'\n [class.ng2-dropdown-menu--inside-element]=\"!appendToBody\"\n [class.ng2-dropdown-menu--open]=\"state.menuState.isVisible\"\n [@fade]=\"state.menuState.toString()\">\n <div class=\"ng2-dropdown-menu__options-container\"\n [@opacity]=\"state.menuState.toString()\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<!-- BACKDROP -->\n<div class=\"ng2-dropdown-backdrop\" *ngIf=\"state.menuState.isVisible\" (click)=\"hide()\"></div>\n";
/***/ }),
/* 15 */
/***/ (function(module, exports) {
module.exports = "<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";
/***/ }),
/* 16 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_16__;
/***/ })
/******/ ])
});
;
//# sourceMappingURL=ng2-dropdown.map
})));
//# sourceMappingURL=ng2-material-dropdown.umd.js.map

@@ -1,99 +0,1 @@

{
"name": "ng2-material-dropdown",
"version": "0.8.0",
"description": "Angular material-like dropdown component",
"scripts": {
"prepublish": "npm run build",
"build": "tsc && npm run moveassets && npm run ngc && webpack --colors --progress --display-error-details --display-cached",
"watch": "npm run build -- --watch",
"server": "webpack-dev-server --config webpack.demo.js --inline --colors --progress --display-error-details --display-cached --port 3005 --content-base demo",
"start": "npm run server",
"test": "karma start karma.conf.js --single-run",
"ngc": "ngc -p ./tsconfig.aot.json",
"moveassets": "rsync -a --include='*.scss' --include='*.html' --include='*/' --exclude='*' ./src/ ./dist/src"
},
"author": {
"name": "Giancarlo Buomprisco",
"email": "giancarlopsk@gmail.com"
},
"contributors": [],
"license": "MIT",
"devDependencies": {
"@angular/animations": "^4.3.0",
"@angular/common": "^4.3.0",
"@angular/compiler": "^4.3.0",
"@angular/compiler-cli": "^4.3.0",
"@angular/core": "^4.3.0",
"@angular/forms": "^4.3.0",
"@angular/http": "^4.3.0",
"@angular/platform-browser": "^4.3.0",
"@angular/platform-browser-dynamic": "^4.3.0",
"@types/es6-collections": "^0.5.29",
"@types/es6-shim": "0.0.22-alpha",
"@types/jasmine": "^2.2.34",
"@types/node": "^6.0.39",
"angular2-template-loader": "0.6.0",
"autoprefixer": "^6.3.7",
"awesome-typescript-loader": "3.0.0-beta.10",
"core-js": "^2.2.0",
"css-loader": "^0.23.1",
"es6-promise": "3.0.2",
"es6-shim": "0.35.0",
"file-loader": "^0.9.0",
"html-loader": "^0.4.3",
"jasmine": "^2.4.1",
"karma": "^0.13.22",
"karma-chrome-launcher": "^0.2.3",
"karma-coverage": "^1.0.0",
"karma-jasmine": "^0.3.8",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "1.7.0",
"node-sass": "^3.8.0",
"postcss-loader": "^0.9.1",
"precss": "^1.4.0",
"protractor": "^3.3.0",
"raw-loader": "^0.5.1",
"reflect-metadata": "0.1.2",
"rxjs": "5.0.3",
"sass-loader": "^3.2.1",
"source-map-loader": "^0.1.5",
"style-loader": "^0.13.1",
"svg-url-loader": "^1.0.3",
"ts-helpers": "1.1.1",
"ts-node": "^0.7.3",
"tslint": "^3.5.0",
"typescript": "2.2.1",
"typings": "~1.0.3",
"url-loader": "^0.5.7",
"webpack": "^1.14.0",
"webpack-dev-server": "^1.16.2",
"webpack-merge": "^0.8.4",
"zone.js": "0.8.5"
},
"dependencies": {},
"keywords": [
"angular 2",
"angular 2 material dropdown",
"angular 2 component dropdown",
"angular 2 dropdown",
"angular 2 menu"
],
"repository": {
"type": "git",
"url": "https://github.com/Gbuomprisco/ng2-material-dropdown"
},
"bugs": {
"url": "https://github.com/Gbuomprisco/ng2-material-dropdown/issues"
},
"homepage": "https://github.com/Gbuomprisco/ng2-material-dropdown",
"main": "./dist/ng2-dropdown.bundle.js",
"files": [
"dist",
"tsconfig.json",
"tsconfig.aot.json",
"index.ts"
],
"exclude": [
"**/*.spec.ts"
]
}
{"name":"ng2-material-dropdown","version":"0.8.1","description":"Angular material-like dropdown component","scripts":{"release":"npm run build && npm publish dist","postrelease":"rm -rf dist","build":"ng-packagr && mkdir ./dist/dist && cp ./dist/bundles/ng2-material-dropdown.umd.js ./dist/dist/ng2-dropdown.bundle.js","server":"webpack-dev-server --config webpack.demo.js --inline --colors --progress --display-error-details --display-cached --port 3005 --content-base demo","start":"npm run server","test":"karma start karma.conf.js --single-run"},"author":{"name":"Giancarlo Buomprisco","email":"giancarlopsk@gmail.com"},"contributors":[],"license":"MIT","devDependencies":{"@angular/animations":"^4.3.0","@angular/common":"^4.3.0","@angular/compiler":"^4.3.0","@angular/compiler-cli":"^4.3.0","@angular/core":"^4.3.0","@angular/forms":"^4.3.0","@angular/http":"^4.3.0","@angular/platform-browser":"^4.3.0","@angular/platform-browser-dynamic":"^4.3.0","@types/es6-collections":"^0.5.29","@types/es6-shim":"0.0.22-alpha","@types/jasmine":"^2.2.34","@types/node":"^6.0.39","angular2-template-loader":"0.6.0","autoprefixer":"^6.3.7","awesome-typescript-loader":"3.0.0-beta.10","core-js":"^2.2.0","css-loader":"^0.23.1","es6-promise":"3.0.2","es6-shim":"0.35.0","file-loader":"^0.9.0","html-loader":"^0.4.3","jasmine":"^2.4.1","karma":"^0.13.22","karma-chrome-launcher":"^0.2.3","karma-coverage":"^1.0.0","karma-jasmine":"^0.3.8","karma-sourcemap-loader":"^0.3.7","karma-webpack":"1.7.0","ng-packagr":"^1.6.0","node-sass":"^3.8.0","postcss-loader":"^0.9.1","precss":"^1.4.0","protractor":"^3.3.0","raw-loader":"^0.5.1","reflect-metadata":"0.1.2","rxjs":"5.0.3","sass-loader":"^3.2.1","source-map-loader":"^0.1.5","style-loader":"^0.13.1","svg-url-loader":"^1.0.3","ts-helpers":"1.1.1","ts-node":"^0.7.3","tslint":"^3.5.0","typescript":"~2.3.4","typings":"~1.0.3","url-loader":"^0.5.7","webpack":"^1.14.0","webpack-dev-server":"^1.16.2","webpack-merge":"^0.8.4","zone.js":"0.8.5"},"dependencies":{},"keywords":["angular 2","angular 2 material dropdown","angular 2 component dropdown","angular 2 dropdown","angular 2 menu"],"repository":{"type":"git","url":"https://github.com/Gbuomprisco/ng2-material-dropdown"},"bugs":{"url":"https://github.com/Gbuomprisco/ng2-material-dropdown/issues"},"homepage":"https://github.com/Gbuomprisco/ng2-material-dropdown","main":"bundles/ng2-material-dropdown.umd.js","files":["dist","tsconfig.json","tsconfig.aot.json","index.ts"],"exclude":["**/*.spec.ts"],"$schema":"./node_modules/ng-packagr/package.schema.json","module":"ng2-material-dropdown.es5.js","es2015":"ng2-material-dropdown.js","typings":"ng2-material-dropdown.d.ts","metadata":"ng2-material-dropdown.metadata.json"}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc