@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
235 lines (187 loc) • 8.19 kB
JavaScript
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/ // 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__) {
module.exports = __webpack_require__(1287);
/***/ }),
/***/ 3:
/***/ (function(module, exports) {
module.exports = function() { throw new Error("define cannot be used indirect"); };
/***/ }),
/***/ 1006:
/***/ (function(module, exports) {
module.exports = require("./kendo.core");
/***/ }),
/***/ 1287:
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(f, define){
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(1006) ], __WEBPACK_AMD_DEFINE_FACTORY__ = (f), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
})(function(){
var __meta__ = { // jshint ignore:line
id: "responsive-panel",
name: "Responsive Panel",
category: "web",
description: "The Responsive Panel widget allows a panel of content to be hidden on mobile devices, available through a toggle button.",
depends: [ "core" ]
};
(function ($, undefined) {
var proxy = $.proxy;
var NS = ".kendoResponsivePanel";
var OPEN = "open";
var CLOSE = "close";
var ACTIVATE_EVENTS = "click" + NS +" touchstart" + NS + " touchend" + NS;
var Widget = kendo.ui.Widget;
var ResponsivePanel = Widget.extend({
init: function(element, options) {
Widget.fn.init.call(this, element, options);
this._guid = "_" + kendo.guid();
this._toggleHandler = proxy(this._toggleButtonClick, this);
this._closeHandler = proxy(this._close, this);
$(document.documentElement).on(ACTIVATE_EVENTS, this.options.toggleButton, this._toggleHandler);
this._registerBreakpoint();
this.element
.addClass("k-rpanel k-rpanel-" + this.options.orientation + " " + this._guid);
this._resizeHandler = proxy(this.resize, this, true);
$(window).on("resize" + NS, this._resizeHandler);
},
_mediaQuery:
"@media (max-width: #= breakpoint-1 #px) {" +
".#= guid #.k-rpanel-animate.k-rpanel-left," +
".#= guid #.k-rpanel-animate.k-rpanel-right {" +
"-webkit-transition: -webkit-transform .2s ease-out;" +
"-ms-transition: -ms-transform .2s ease-out;" +
"transition: transform .2s ease-out;" +
"} " +
".#= guid #.k-rpanel-top {" +
"overflow: hidden;" +
"}" +
".#= guid #.k-rpanel-animate.k-rpanel-top {" +
"-webkit-transition: max-height .2s linear;" +
"-ms-transition: max-height .2s linear;" +
"transition: max-height .2s linear;" +
"}" +
"} " +
"@media (min-width: #= breakpoint #px) {" +
"#= toggleButton # { display: none; } " +
".#= guid #.k-rpanel-left { float: left; } " +
".#= guid #.k-rpanel-right { float: right; } " +
".#= guid #.k-rpanel-left, .#= guid #.k-rpanel-right {" +
"position: relative;" +
"-webkit-transform: translateX(0);" +
"-ms-transform: translateX(0);" +
"transform: translateX(0);" +
"-webkit-transform: translateX(0) translateZ(0);" +
"-ms-transform: translateX(0) translateZ(0);" +
"transform: translateX(0) translateZ(0);" +
"} " +
".k-ie9 .#= guid #.k-rpanel-left { left: 0; } " +
".#= guid #.k-rpanel-top { max-height: none; }" +
"}",
_registerBreakpoint: function() {
var options = this.options;
this._registerStyle(kendo.template(this._mediaQuery)({
breakpoint: options.breakpoint,
toggleButton: options.toggleButton,
guid: this._guid
}));
},
_registerStyle: function(cssText) {
var head = $("head,body")[0];
var style = document.createElement('style');
head.appendChild(style);
if (style.styleSheet){
style.styleSheet.cssText = cssText;
} else {
style.appendChild(document.createTextNode(cssText));
}
},
options: {
name: "ResponsivePanel",
orientation: "left",
toggleButton: ".k-rpanel-toggle",
breakpoint: 640,
autoClose: true
},
events: [
OPEN,
CLOSE
],
_resize: function() {
this.element.removeClass("k-rpanel-animate k-rpanel-expanded");
$(document.documentElement).off(ACTIVATE_EVENTS, this._closeHandler);
},
_toggleButtonClick: function(e) {
e.preventDefault();
if(e.type == "touchend") {
return;
}
if (this.element.hasClass("k-rpanel-expanded")) {
this.close();
} else {
this.open();
}
},
open: function() {
if (!this.trigger(OPEN)) {
this.element.addClass("k-rpanel-animate k-rpanel-expanded");
if (this.options.autoClose) {
$(document.documentElement).on(ACTIVATE_EVENTS, this._closeHandler);
}
}
},
close: function() {
if (!this.trigger(CLOSE)) {
this.element.addClass("k-rpanel-animate").removeClass("k-rpanel-expanded");
$(document.documentElement).off(ACTIVATE_EVENTS, this._closeHandler);
}
},
_close: function(e) {
var prevented = e.isDefaultPrevented();
var container = $(e.target).closest(this.options.toggleButton + ",.k-rpanel");
if (!container.length && !prevented) {
this.close();
}
},
destroy: function() {
Widget.fn.destroy.call(this);
$(window).off("resize" + NS, this._resizeHandler);
$(document.documentElement).off(ACTIVATE_EVENTS, this._closeHandler);
}
});
kendo.ui.plugin(ResponsivePanel);
})(window.kendo.jQuery);
return window.kendo;
}, __webpack_require__(3));
/***/ })
/******/ });