md2
Version:
Angular2 based Material Design components, directives and services are Accordion, Autocomplete, Chips(Tags), Collapse, Colorpicker, Data Table, Datepicker, Dialog(Modal), Menu, Multiselect, Select, Tabs, Tags(Chips), Toast and Tooltip.
91 lines • 4.43 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
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);
};
import { Injectable, isDevMode } from '@angular/core';
import { HammerGestureConfig } from '@angular/platform-browser';
/* Adjusts configuration of our gesture library, Hammer. */
var GestureConfig = (function (_super) {
__extends(GestureConfig, _super);
function GestureConfig() {
var _this = _super.call(this) || this;
_this._hammer = typeof window !== 'undefined' ? window.Hammer : null;
/* List of new event names to add to the gesture support list */
_this.events = _this._hammer ? [
'longpress',
'slide',
'slidestart',
'slideend',
'slideright',
'slideleft'
] : [];
if (!_this._hammer && isDevMode()) {
console.warn('Could not find HammerJS. Certain Angular Material ' +
'components may not work correctly.');
}
return _this;
}
/**
* Builds Hammer instance manually to add custom recognizers that match the Material Design spec.
*
* Our gesture names come from the Material Design gestures spec:
* https://www.google.com/design/spec/patterns/gestures.html#gestures-touch-mechanics
*
* More information on default recognizers can be found in Hammer docs:
* http://hammerjs.github.io/recognizer-pan/
* http://hammerjs.github.io/recognizer-press/
*
* @param element Element to which to assign the new HammerJS gestures.
* @returns Newly-created HammerJS instance.
*/
GestureConfig.prototype.buildHammer = function (element) {
var mc = new this._hammer(element);
// Default Hammer Recognizers.
var pan = new this._hammer.Pan();
var swipe = new this._hammer.Swipe();
var press = new this._hammer.Press();
// Notice that a HammerJS recognizer can only depend on one other recognizer once.
// Otherwise the previous `recognizeWith` will be dropped.
// TODO: Confirm threshold numbers with Material Design UX Team
var slide = this._createRecognizer(pan, { event: 'slide', threshold: 0 }, swipe);
var longpress = this._createRecognizer(press, { event: 'longpress', time: 500 });
// Overwrite the default `pan` event to use the swipe event.
pan.recognizeWith(swipe);
// Add customized gestures to Hammer manager
mc.add([swipe, press, pan, slide, longpress]);
return mc;
};
/** Creates a new recognizer, without affecting the default recognizers of HammerJS */
GestureConfig.prototype._createRecognizer = function (base, options) {
var inheritances = [];
for (var _i = 2; _i < arguments.length; _i++) {
inheritances[_i - 2] = arguments[_i];
}
var recognizer = new base.constructor(options);
inheritances.push(base);
inheritances.forEach(function (item) { return recognizer.recognizeWith(item); });
return recognizer;
};
return GestureConfig;
}(HammerGestureConfig));
GestureConfig = __decorate([
Injectable(),
__metadata("design:paramtypes", [])
], GestureConfig);
export { GestureConfig };
//# sourceMappingURL=gesture-config.js.map