Comparing version 0.1.7 to 0.1.8
@@ -22,4 +22,3 @@ var cooking = require('cooking'); | ||
cooking.add('externals.vue', 'vue'); | ||
cooking.remove('plugin.UglifyJs'); | ||
module.exports = cooking.resolve(); | ||
module.exports = cooking.resolve(); |
@@ -10,5 +10,10 @@ var cooking = require('cooking'); | ||
publicPath: '/example/dist/', | ||
template: false, | ||
template: './example/index.html', | ||
devServer: false, | ||
devServer: { | ||
port: 8700, | ||
hostname: require('my-local-ip')(), | ||
publicPath: '/', | ||
log: false | ||
}, | ||
@@ -15,0 +20,0 @@ extends: ['vue', 'lint'] |
496
lib/index.js
@@ -1,496 +0,2 @@ | ||
(function webpackUniversalModuleDefinition(root, factory) { | ||
if(typeof exports === 'object' && typeof module === 'object') | ||
module.exports = factory(require("vue")); | ||
else if(typeof define === 'function' && define.amd) | ||
define("VuePopup", ["vue"], factory); | ||
else if(typeof exports === 'object') | ||
exports["VuePopup"] = factory(require("vue")); | ||
else | ||
root["VuePopup"] = factory(root["vue"]); | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_4__) { | ||
return /******/ (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__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _vue = __webpack_require__(4); | ||
var _vue2 = _interopRequireDefault(_vue); | ||
var _util = __webpack_require__(2); | ||
var _popupManager = __webpack_require__(1); | ||
var _popupManager2 = _interopRequireDefault(_popupManager); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
__webpack_require__(3); | ||
var idSeed = 1; | ||
var transitions = []; | ||
var hookTransition = function hookTransition(transition) { | ||
if (transitions.indexOf(transition) !== -1) return; | ||
var getVueInstance = function getVueInstance(element) { | ||
var instance = element.__vue__; | ||
if (!instance) { | ||
var textNode = element.previousSibling; | ||
if (textNode.__vue__) { | ||
instance = textNode.__vue__; | ||
} | ||
} | ||
return instance; | ||
}; | ||
_vue2.default.transition(transition, { | ||
afterEnter: function afterEnter(el) { | ||
var instance = getVueInstance(el); | ||
if (instance) { | ||
instance.doAfterOpen && instance.doAfterOpen(); | ||
} | ||
}, | ||
afterLeave: function afterLeave(el) { | ||
var instance = getVueInstance(el); | ||
if (instance) { | ||
instance.doAfterClose && instance.doAfterClose(); | ||
} | ||
} | ||
}); | ||
}; | ||
var getDOM = function getDOM(dom) { | ||
if (dom.nodeType === 3) { | ||
return dom.nextElementSibling; | ||
} | ||
return dom; | ||
}; | ||
exports.default = { | ||
props: { | ||
visible: { | ||
type: Boolean, | ||
twoWay: true, | ||
default: false | ||
}, | ||
transition: { | ||
type: String, | ||
default: '' | ||
}, | ||
openDelay: {}, | ||
closeDelay: {}, | ||
zIndex: {}, | ||
modal: { | ||
type: Boolean, | ||
default: false | ||
}, | ||
modalClass: {}, | ||
closeOnPressEscape: { | ||
type: Boolean, | ||
default: false | ||
}, | ||
closeOnClickModal: { | ||
type: Boolean, | ||
default: false | ||
} | ||
}, | ||
created: function created() { | ||
if (this.transition) { | ||
hookTransition(this.transition); | ||
} | ||
}, | ||
compiled: function compiled() { | ||
this._popupId = 'popup-' + idSeed++; | ||
_popupManager2.default.register(this._popupId, this); | ||
}, | ||
beforeDestroy: function beforeDestroy() { | ||
_popupManager2.default.deregister(this._popupId); | ||
_popupManager2.default.closeModal(this._popupId); | ||
}, | ||
data: function data() { | ||
return { | ||
rendered: false | ||
}; | ||
}, | ||
watch: { | ||
visible: function visible(val) { | ||
var _this = this; | ||
if (val) { | ||
if (this._opening) return; | ||
if (!this.rendered) { | ||
this.rendered = true; | ||
_vue2.default.nextTick(function () { | ||
_this.open(); | ||
}); | ||
} else { | ||
this.open(); | ||
} | ||
} else { | ||
this.close(); | ||
} | ||
} | ||
}, | ||
methods: { | ||
open: function open(options) { | ||
var _this2 = this; | ||
if (!this.rendered) { | ||
this.rendered = true; | ||
this.visible = true; | ||
return; | ||
} | ||
var props = (0, _util.merge)({}, this, options); | ||
if (this._closeTimer) { | ||
clearTimeout(this._closeTimer); | ||
this._closeTimer = null; | ||
} | ||
clearTimeout(this._openTimer); | ||
var openDelay = Number(props.openDelay); | ||
if (openDelay > 0) { | ||
this._openTimer = setTimeout(function () { | ||
_this2._openTimer = null; | ||
_this2.doOpen(props); | ||
}, openDelay); | ||
} else { | ||
this.doOpen(props); | ||
} | ||
}, | ||
doOpen: function doOpen(props) { | ||
if (this.willOpen && !this.willOpen()) return; | ||
this._opening = true; | ||
this.visible = true; | ||
var dom = getDOM(this.$el); | ||
var modal = props.modal; | ||
if (modal) { | ||
if (this._closing) { | ||
_popupManager2.default.closeModal(this._popupId); | ||
this._closing = false; | ||
} | ||
_popupManager2.default.openModal(this._popupId, _popupManager2.default.nextZIndex(), dom, props.modalClass); | ||
} | ||
if (getComputedStyle(dom).position === 'static') { | ||
dom.style.position = 'absolute'; | ||
} | ||
var zIndex = props.zIndex; | ||
if (modal) { | ||
dom.style.zIndex = _popupManager2.default.nextZIndex(); | ||
} else if (zIndex) { | ||
dom.style.zIndex = zIndex; | ||
} | ||
this.onOpen && this.onOpen(); | ||
if (!this.transition) { | ||
this.doAfterOpen(); | ||
} | ||
}, | ||
doAfterOpen: function doAfterOpen() { | ||
this._opening = false; | ||
}, | ||
close: function close() { | ||
var _this3 = this; | ||
if (this.willClose && !this.willClose()) return; | ||
if (this._openTimer !== null) { | ||
clearTimeout(this._openTimer); | ||
this._openTimer = null; | ||
} | ||
clearTimeout(this._closeTimer); | ||
var closeDelay = Number(this.closeDelay); | ||
if (closeDelay > 0) { | ||
this._closeTimer = setTimeout(function () { | ||
_this3._closeTimer = null; | ||
_this3.doClose(); | ||
}, closeDelay); | ||
} else { | ||
this.doClose(); | ||
} | ||
}, | ||
doClose: function doClose() { | ||
this.visible = false; | ||
this._closing = true; | ||
this.onClose && this.onClose(); | ||
if (!this.transition) { | ||
this.doAfterClose(); | ||
} | ||
}, | ||
doAfterClose: function doAfterClose() { | ||
_popupManager2.default.closeModal(this._popupId); | ||
this._closing = false; | ||
} | ||
} | ||
}; | ||
/***/ }, | ||
/* 1 */ | ||
/***/ function(module, exports) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var getModal = function getModal() { | ||
var modalDom = PopupManager.modalDom; | ||
if (!modalDom) { | ||
modalDom = document.createElement('div'); | ||
PopupManager.modalDom = modalDom; | ||
modalDom.addEventListener('touchmove', function (event) { | ||
event.preventDefault(); | ||
event.stopPropagation(); | ||
}); | ||
modalDom.addEventListener('click', function () { | ||
PopupManager.doOnModalClick && PopupManager.doOnModalClick(); | ||
}); | ||
} | ||
return modalDom; | ||
}; | ||
var instances = {}; | ||
var PopupManager = { | ||
zIndex: 1000, | ||
getInstance: function getInstance(id) { | ||
return instances[id]; | ||
}, | ||
register: function register(id, instance) { | ||
if (id && instance) { | ||
instances[id] = instance; | ||
} | ||
}, | ||
deregister: function deregister(id) { | ||
if (id) { | ||
instances[id] = null; | ||
delete instances[id]; | ||
} | ||
}, | ||
nextZIndex: function nextZIndex() { | ||
return PopupManager.zIndex++; | ||
}, | ||
modalStack: [], | ||
doOnModalClick: function doOnModalClick() { | ||
var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1]; | ||
if (!topItem) return; | ||
var instance = PopupManager.getInstance(topItem.id); | ||
if (instance && instance.closeOnClickModal) { | ||
instance.close(); | ||
} | ||
}, | ||
openModal: function openModal(id, zIndex, dom, modalClass) { | ||
if (!id || zIndex === undefined) return; | ||
var modalStack = this.modalStack; | ||
for (var i = 0, j = modalStack.length; i < j; i++) { | ||
var item = modalStack[i]; | ||
if (item.id === id) { | ||
return; | ||
} | ||
} | ||
var modalDom = getModal(); | ||
modalDom.classList.add('v-modal'); | ||
modalDom.classList.add('v-modal-enter'); | ||
if (modalClass) { | ||
var classArr = modalClass.trim().split(/\s+/); | ||
classArr.forEach(function (item) { | ||
return modalDom.classList.add(item); | ||
}); | ||
} | ||
setTimeout(function () { | ||
modalDom.classList.remove('v-modal-enter'); | ||
}, 200); | ||
if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) { | ||
dom.parentNode.appendChild(modalDom); | ||
} else { | ||
document.body.appendChild(modalDom); | ||
} | ||
if (zIndex) { | ||
modalDom.style.zIndex = zIndex; | ||
} | ||
modalDom.style.display = ''; | ||
this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass }); | ||
}, | ||
closeModal: function closeModal(id) { | ||
var modalStack = this.modalStack; | ||
var modalDom = getModal(); | ||
if (modalStack.length > 0) { | ||
var topItem = modalStack[modalStack.length - 1]; | ||
if (topItem.id === id) { | ||
if (topItem.modalClass) { | ||
var classArr = topItem.modalClass.trim().split(/\s+/); | ||
classArr.forEach(function (item) { | ||
return modalDom.classList.remove(item); | ||
}); | ||
} | ||
modalStack.pop(); | ||
if (modalStack.length > 0) { | ||
modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex; | ||
} | ||
} else { | ||
for (var i = modalStack.length - 1; i >= 0; i--) { | ||
if (modalStack[i].id === id) { | ||
modalStack.splice(i, 1); | ||
break; | ||
} | ||
} | ||
} | ||
} | ||
if (modalStack.length === 0) { | ||
modalDom.classList.add('v-modal-leave'); | ||
setTimeout(function () { | ||
if (modalStack.length === 0) { | ||
if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom); | ||
modalDom.style.display = 'none'; | ||
} | ||
modalDom.classList.remove('v-modal-leave'); | ||
}, 200); | ||
} | ||
} | ||
}; | ||
window.addEventListener('keydown', function (event) { | ||
if (event.keyCode === 27) { | ||
if (PopupManager.modalStack.length > 0) { | ||
var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1]; | ||
if (!topItem) return; | ||
var instance = PopupManager.getInstance(topItem.id); | ||
if (instance.closeOnPressEscape) { | ||
instance.close(); | ||
} | ||
} | ||
} | ||
}); | ||
exports.default = PopupManager; | ||
/***/ }, | ||
/* 2 */ | ||
/***/ function(module, exports) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.merge = merge; | ||
function merge(target) { | ||
for (var i = 1, j = arguments.length; i < j; i++) { | ||
var source = arguments[i]; | ||
for (var prop in source) { | ||
if (source.hasOwnProperty(prop)) { | ||
var value = source[prop]; | ||
if (value !== undefined) { | ||
target[prop] = value; | ||
} | ||
} | ||
} | ||
} | ||
return target; | ||
} | ||
/***/ }, | ||
/* 3 */ | ||
/***/ function(module, exports) { | ||
// removed by extract-text-webpack-plugin | ||
/***/ }, | ||
/* 4 */ | ||
/***/ function(module, exports) { | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_4__; | ||
/***/ } | ||
/******/ ]) | ||
}); | ||
; | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("vue")):"function"==typeof define&&define.amd?define("VuePopup",["vue"],t):"object"==typeof exports?exports.VuePopup=t(require("vue")):e.VuePopup=t(e.vue)}(this,function(e){return function(e){function t(n){if(o[n])return o[n].exports;var i=o[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var o={};return t.m=e,t.c=o,t.p="",t(0)}([function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var i=o(4),s=n(i),l=o(2),r=o(1),d=n(r);o(3);var a=1,u=[],c=function(e){if(-1===u.indexOf(e)){var t=function(e){var t=e.__vue__;if(!t){var o=e.previousSibling;o.__vue__&&(t=o.__vue__)}return t};s["default"].transition(e,{afterEnter:function(e){var o=t(e);o&&o.doAfterOpen&&o.doAfterOpen()},afterLeave:function(e){var o=t(e);o&&o.doAfterClose&&o.doAfterClose()}})}},f=function(e){return 3===e.nodeType?e.nextElementSibling:e};t["default"]={props:{visible:{type:Boolean,twoWay:!0,"default":!1},transition:{type:String,"default":""},openDelay:{},closeDelay:{},zIndex:{},modal:{type:Boolean,"default":!1},modalClass:{},closeOnPressEscape:{type:Boolean,"default":!1},closeOnClickModal:{type:Boolean,"default":!1}},created:function(){this.transition&&c(this.transition)},compiled:function(){this._popupId="popup-"+a++,d["default"].register(this._popupId,this)},beforeDestroy:function(){d["default"].deregister(this._popupId),d["default"].closeModal(this._popupId)},data:function(){return{bodyOverflow:null,rendered:!1}},watch:{visible:function(e){var t=this;if(e){if(this._opening)return;this.rendered?this.open():(this.rendered=!0,s["default"].nextTick(function(){t.open()}))}else this.close()}},methods:{open:function(e){var t=this;if(!this.rendered)return this.rendered=!0,void(this.visible=!0);var o=(0,l.merge)({},this,e);this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null),clearTimeout(this._openTimer);var n=Number(o.openDelay);n>0?this._openTimer=setTimeout(function(){t._openTimer=null,t.doOpen(o)},n):this.doOpen(o)},doOpen:function(e){if(!this.willOpen||this.willOpen()){this._opening=!0,this.visible=!0;var t=f(this.$el),o=e.modal;o&&(this._closing&&(d["default"].closeModal(this._popupId),this._closing=!1),d["default"].openModal(this._popupId,d["default"].nextZIndex(),t,e.modalClass),this.bodyOverflow||(this.bodyOverflow=document.body.style.overflow),document.body.style.overflow="hidden"),"static"===getComputedStyle(t).position&&(t.style.position="absolute");var n=e.zIndex;o?t.style.zIndex=d["default"].nextZIndex():n&&(t.style.zIndex=n),this.onOpen&&this.onOpen(),this.transition||this.doAfterOpen()}},doAfterOpen:function(){this._opening=!1},close:function(){var e=this;if(!this.willClose||this.willClose()){null!==this._openTimer&&(clearTimeout(this._openTimer),this._openTimer=null),clearTimeout(this._closeTimer);var t=Number(this.closeDelay);t>0?this._closeTimer=setTimeout(function(){e._closeTimer=null,e.doClose()},t):this.doClose()}},doClose:function(){this.visible=!1,this._closing=!0,this.onClose&&this.onClose(),this.modal&&(document.body.style.overflow=this.bodyOverflow),this.transition||this.doAfterClose()},doAfterClose:function(){d["default"].closeModal(this._popupId),this._closing=!1}}}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){var e=i.modalDom;return e||(e=document.createElement("div"),i.modalDom=e,e.addEventListener("touchmove",function(e){e.preventDefault(),e.stopPropagation()}),e.addEventListener("click",function(){i.doOnModalClick&&i.doOnModalClick()})),e},n={},i={zIndex:1e3,getInstance:function(e){return n[e]},register:function(e,t){e&&t&&(n[e]=t)},deregister:function(e){e&&(n[e]=null,delete n[e])},nextZIndex:function(){return i.zIndex++},modalStack:[],doOnModalClick:function(){var e=i.modalStack[i.modalStack.length-1];if(e){var t=i.getInstance(e.id);t&&t.closeOnClickModal&&t.close()}},openModal:function(e,t,n,i){if(e&&void 0!==t){for(var s=this.modalStack,l=0,r=s.length;r>l;l++){var d=s[l];if(d.id===e)return}var a=o();if(a.classList.add("v-modal"),a.classList.add("v-modal-enter"),i){var u=i.trim().split(/\s+/);u.forEach(function(e){return a.classList.add(e)})}setTimeout(function(){a.classList.remove("v-modal-enter")},200),n&&n.parentNode&&11!==n.parentNode.nodeType?n.parentNode.appendChild(a):document.body.appendChild(a),t&&(a.style.zIndex=t),a.style.display="",this.modalStack.push({id:e,zIndex:t,modalClass:i})}},closeModal:function(e){var t=this.modalStack,n=o();if(t.length>0){var i=t[t.length-1];if(i.id===e){if(i.modalClass){var s=i.modalClass.trim().split(/\s+/);s.forEach(function(e){return n.classList.remove(e)})}t.pop(),t.length>0&&(n.style.zIndex=t[t.length-1].zIndex)}else for(var l=t.length-1;l>=0;l--)if(t[l].id===e){t.splice(l,1);break}}0===t.length&&(n.classList.add("v-modal-leave"),setTimeout(function(){0===t.length&&(n.parentNode&&n.parentNode.removeChild(n),n.style.display="none"),n.classList.remove("v-modal-leave")},200))}};window.addEventListener("keydown",function(e){if(27===e.keyCode&&i.modalStack.length>0){var t=i.modalStack[i.modalStack.length-1];if(!t)return;var o=i.getInstance(t.id);o.closeOnPressEscape&&o.close()}}),t["default"]=i},function(e,t){"use strict";function o(e){for(var t=1,o=arguments.length;o>t;t++){var n=arguments[t];for(var i in n)if(n.hasOwnProperty(i)){var s=n[i];void 0!==s&&(e[i]=s)}}return e}Object.defineProperty(t,"__esModule",{value:!0}),t.merge=o},function(e,t){},function(t,o){t.exports=e}])}); | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "vue-popup", | ||
"version": "0.1.7", | ||
"version": "0.1.8", | ||
"description": "A popup mixin for vue.js", | ||
@@ -12,3 +12,4 @@ "private": false, | ||
"prepublish": "cooking build --no-color", | ||
"deploy": "cooking build --no-color" | ||
"deploy": "cooking build --no-color", | ||
"page": "cooking build -c cooking.example.conf.js -p && gh-pages -d example/dist --remote origin" | ||
}, | ||
@@ -23,6 +24,9 @@ "repository": { | ||
}, | ||
"author": "yi.shyang@ele.me", | ||
"author": "baiyaaaaa", | ||
"license": "MIT", | ||
"dependencies": {}, | ||
"devDependencies": {} | ||
"devDependencies": { | ||
"gh-pages": "^0.11.0", | ||
"my-local-ip": "^1.0.0" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
44826
2
58
2