vue-js-popover
Advanced tools
Comparing version 1.1.7 to 1.1.8
@@ -1,883 +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(["vue"], factory); | ||
else if(typeof exports === 'object') | ||
exports["vue-js-popover"] = factory(require("vue")); | ||
else | ||
root["vue-js-popover"] = factory(root["vue"]); | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_13__) { | ||
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] = { | ||
/******/ i: moduleId, | ||
/******/ l: false, | ||
/******/ exports: {} | ||
/******/ }; | ||
/******/ | ||
/******/ // Execute the module function | ||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
/******/ | ||
/******/ // Flag the module as loaded | ||
/******/ module.l = 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; | ||
/******/ | ||
/******/ // identity function for calling harmony imports with the correct context | ||
/******/ __webpack_require__.i = function(value) { return value; }; | ||
/******/ | ||
/******/ // define getter function for harmony exports | ||
/******/ __webpack_require__.d = function(exports, name, getter) { | ||
/******/ if(!__webpack_require__.o(exports, name)) { | ||
/******/ Object.defineProperty(exports, name, { | ||
/******/ configurable: false, | ||
/******/ enumerable: true, | ||
/******/ get: getter | ||
/******/ }); | ||
/******/ } | ||
/******/ }; | ||
/******/ | ||
/******/ // getDefaultExport function for compatibility with non-harmony modules | ||
/******/ __webpack_require__.n = function(module) { | ||
/******/ var getter = module && module.__esModule ? | ||
/******/ function getDefault() { return module['default']; } : | ||
/******/ function getModuleExports() { return module; }; | ||
/******/ __webpack_require__.d(getter, 'a', getter); | ||
/******/ return getter; | ||
/******/ }; | ||
/******/ | ||
/******/ // Object.prototype.hasOwnProperty.call | ||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | ||
/******/ | ||
/******/ // __webpack_public_path__ | ||
/******/ __webpack_require__.p = "/dist/"; | ||
/******/ | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(__webpack_require__.s = 6); | ||
/******/ }) | ||
/************************************************************************/ | ||
/******/ ([ | ||
/* 0 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.events = undefined; | ||
var _vue = __webpack_require__(13); | ||
var _vue2 = _interopRequireDefault(_vue); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var events = exports.events = new _vue2.default(); | ||
/***/ }), | ||
/* 1 */ | ||
/***/ (function(module, exports) { | ||
// this module is a runtime utility for cleaner component module output and will | ||
// be included in the final webpack user bundle | ||
module.exports = function normalizeComponent ( | ||
rawScriptExports, | ||
compiledTemplate, | ||
scopeId, | ||
cssModules | ||
) { | ||
var esModule | ||
var scriptExports = rawScriptExports = rawScriptExports || {} | ||
// ES6 modules interop | ||
var type = typeof rawScriptExports.default | ||
if (type === 'object' || type === 'function') { | ||
esModule = rawScriptExports | ||
scriptExports = rawScriptExports.default | ||
} | ||
// Vue.extend constructor export interop | ||
var options = typeof scriptExports === 'function' | ||
? scriptExports.options | ||
: scriptExports | ||
// render functions | ||
if (compiledTemplate) { | ||
options.render = compiledTemplate.render | ||
options.staticRenderFns = compiledTemplate.staticRenderFns | ||
} | ||
// scopedId | ||
if (scopeId) { | ||
options._scopeId = scopeId | ||
} | ||
// inject cssModules | ||
if (cssModules) { | ||
var computed = Object.create(options.computed || null) | ||
Object.keys(cssModules).forEach(function (key) { | ||
var module = cssModules[key] | ||
computed[key] = function () { return module } | ||
}) | ||
options.computed = computed | ||
} | ||
return { | ||
esModule: esModule, | ||
exports: scriptExports, | ||
options: options | ||
} | ||
} | ||
/***/ }), | ||
/* 2 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
/* styles */ | ||
__webpack_require__(10) | ||
var Component = __webpack_require__(1)( | ||
/* script */ | ||
__webpack_require__(4), | ||
/* template */ | ||
null, | ||
/* scopeId */ | ||
null, | ||
/* cssModules */ | ||
null | ||
) | ||
module.exports = Component.exports | ||
/***/ }), | ||
/* 3 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
var Component = __webpack_require__(1)( | ||
/* script */ | ||
__webpack_require__(5), | ||
/* template */ | ||
__webpack_require__(9), | ||
/* scopeId */ | ||
null, | ||
/* cssModules */ | ||
null | ||
) | ||
module.exports = Component.exports | ||
/***/ }), | ||
/* 4 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
var _bus = __webpack_require__(0); | ||
var pointerSize = 6; | ||
var directions = { | ||
left: [-1, 0], | ||
right: [1, 0], | ||
top: [0, 1], | ||
bottom: [0, -1] | ||
}; | ||
exports.default = { | ||
name: 'Popover', | ||
render: function render(createElement) { | ||
if (!this.visible) { | ||
return; | ||
} | ||
return createElement('div', { | ||
class: this.className, | ||
style: this.style, | ||
attrs: { | ||
'data-popover': this.name | ||
}, | ||
on: { | ||
click: function click(event) { | ||
event.stopPropagation(); | ||
} | ||
}, | ||
ref: 'dropdown' | ||
}, this.$slots.default); | ||
}, | ||
props: { | ||
name: { | ||
type: String, | ||
required: true | ||
}, | ||
width: { | ||
type: Number, | ||
default: 180 | ||
}, | ||
pointer: { | ||
type: Boolean, | ||
default: true | ||
}, | ||
event: { | ||
type: String, | ||
default: 'click' | ||
}, | ||
anchor: { | ||
type: Number, | ||
default: 0.5, | ||
validator: function validator(v) { | ||
return v >= 0 && v <= 1; | ||
} | ||
} | ||
}, | ||
data: function data() { | ||
return { | ||
visible: false, | ||
positionClass: '', | ||
position: { | ||
left: 0, | ||
top: 0 | ||
} | ||
}; | ||
}, | ||
mounted: function mounted() { | ||
_bus.events.$on(this.showEventName, this.showEventListener); | ||
_bus.events.$on(this.hideEventName, this.hideEventListener); | ||
}, | ||
beforeDestroy: function beforeDestroy() { | ||
_bus.events.$off(this.showEventName, this.showEventListener); | ||
_bus.events.$off(this.hideEventName, this.hideEventListener); | ||
}, | ||
computed: { | ||
showEventName: function showEventName() { | ||
return 'show:' + this.event; | ||
}, | ||
hideEventName: function hideEventName() { | ||
return 'hide:' + this.event; | ||
}, | ||
className: function className() { | ||
return ['vue-popover', this.pointer && this.positionClass]; | ||
}, | ||
style: function style() { | ||
return _extends({ | ||
width: this.width + 'px' | ||
}, this.position); | ||
} | ||
}, | ||
methods: { | ||
showEventListener: function showEventListener(event) { | ||
var _this = this; | ||
if (this.visible) { | ||
_bus.events.$emit(this.hideEventName); | ||
return; | ||
} | ||
this.$nextTick(function () { | ||
var target = event.target, | ||
name = event.name, | ||
position = event.position; | ||
if (name === _this.name) { | ||
var direction = directions[position]; | ||
_this.positionClass = 'dropdown-position-' + position; | ||
_this.visible = true; | ||
_this.$nextTick(function () { | ||
_this.$emit('show', event); | ||
_this.$nextTick(function () { | ||
var position = _this.getDropdownPosition(target, _this.$refs.dropdown, direction); | ||
_this.position = { | ||
left: position.left + 'px', | ||
top: position.top + 'px' | ||
}; | ||
}); | ||
}); | ||
} | ||
}); | ||
}, | ||
hideEventListener: function hideEventListener(event) { | ||
if (this.visible) { | ||
this.visible = false; | ||
this.$emit('hide', event); | ||
} | ||
}, | ||
getDropdownPosition: function getDropdownPosition(target, dropdown, direction) { | ||
var trRect = target.getBoundingClientRect(); | ||
var ddRect = dropdown.getBoundingClientRect(); | ||
var offsetLeft = trRect.left; | ||
var offsetTop = trRect.top; | ||
var shiftY = 0.5 * (ddRect.height + trRect.height); | ||
var centerX = offsetLeft - 0.5 * (ddRect.width - trRect.width); | ||
var centerY = offsetTop + trRect.height - shiftY; | ||
var x = direction[0] * 0.5 * (ddRect.width + trRect.width); | ||
var y = direction[1] * shiftY; | ||
if (this.pointer) { | ||
x += direction[0] * pointerSize; | ||
y += direction[1] * pointerSize; | ||
} | ||
return { | ||
left: centerX + x, | ||
top: centerY - y | ||
}; | ||
} | ||
} | ||
}; | ||
/***/ }), | ||
/* 5 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = { | ||
name: 'Tooltip', | ||
props: { | ||
event: { | ||
type: String, | ||
default: 'hover' | ||
}, | ||
pointer: { | ||
type: Boolean, | ||
default: false | ||
}, | ||
width: { | ||
type: Number, | ||
default: 160 | ||
} | ||
}, | ||
data: function data() { | ||
return { | ||
value: '' | ||
}; | ||
} | ||
}; | ||
/***/ }), | ||
/* 6 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; | ||
var _Popover = __webpack_require__(2); | ||
var _Popover2 = _interopRequireDefault(_Popover); | ||
var _Tooltip = __webpack_require__(3); | ||
var _Tooltip2 = _interopRequireDefault(_Tooltip); | ||
var _bus = __webpack_require__(0); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var defaultPosition = 'bottom'; | ||
var prepareBinding = function prepareBinding(_ref) { | ||
var _ref$arg = _ref.arg, | ||
arg = _ref$arg === undefined ? '' : _ref$arg, | ||
_ref$modifiers = _ref.modifiers, | ||
modifiers = _ref$modifiers === undefined ? {} : _ref$modifiers, | ||
_ref$value = _ref.value, | ||
value = _ref$value === undefined ? {} : _ref$value; | ||
var mods = Object.keys(modifiers); | ||
var name = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.name ? value.name : arg; | ||
var position = mods[0] || value.position || defaultPosition; | ||
return { name: name, position: position, value: value }; | ||
}; | ||
var addClickEventListener = function addClickEventListener(target, params) { | ||
var click = function click(srcEvent) { | ||
_bus.events.$emit('show:click', _extends({}, params, { target: target, srcEvent: srcEvent })); | ||
var handler = function handler(srcEvent) { | ||
_bus.events.$emit('hide:click', _extends({}, params, { target: target, srcEvent: srcEvent })); | ||
document.removeEventListener('click', handler); | ||
}; | ||
document.addEventListener('click', handler); | ||
srcEvent.stopPropagation(); | ||
}; | ||
target.addEventListener('click', click); | ||
target.$popoverRemoveClickHandlers = function () { | ||
target.removeEventListener('click', click); | ||
}; | ||
}; | ||
var addHoverEventListener = function addHoverEventListener(target, params) { | ||
var mouseenter = function mouseenter(srcEvent) { | ||
_bus.events.$emit('show:hover', _extends({}, params, { target: target, srcEvent: srcEvent })); | ||
}; | ||
var mouseleave = function mouseleave(srcEvent) { | ||
_bus.events.$emit('hide:hover', _extends({}, params, { target: target, srcEvent: srcEvent })); | ||
}; | ||
target.addEventListener('mouseenter', mouseenter); | ||
target.addEventListener('mouseleave', mouseleave); | ||
target.$popoverRemoveHoverHandlers = function () { | ||
target.removeEventListener('mouseenter', mouseenter); | ||
target.removeEventListener('mouseleave', mouseleave); | ||
}; | ||
}; | ||
exports.default = { | ||
install: function install(Vue) { | ||
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
document.addEventListener('resize', function (event) { | ||
_bus.events.$emit('hide', { srcEvent: event }); | ||
}); | ||
Vue.component('Popover', _Popover2.default); | ||
Vue.directive('popover', { | ||
bind: function bind(target, binding) { | ||
var params = prepareBinding(binding); | ||
addClickEventListener(target, params); | ||
addHoverEventListener(target, params); | ||
}, | ||
unbind: function unbind(target, binding) { | ||
target.$popoverRemoveHoverHandlers(); | ||
target.$popoverRemoveClickHandlers(); | ||
} | ||
}); | ||
if (params.tooltip) { | ||
if (params.debug) { | ||
console.log('vue-js-popover | tooltip active'); | ||
} | ||
Vue.component('Tooltip', _Tooltip2.default); | ||
} | ||
} | ||
}; | ||
/***/ }), | ||
/* 7 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
exports = module.exports = __webpack_require__(8)(); | ||
// imports | ||
// module | ||
exports.push([module.i, ".vue-popover{display:block;position:absolute;background:#fff;box-shadow:0 4px 20px 0 rgba(52,73,94,.2);padding:5px;border-radius:5px;z-index:998}.vue-popover:before{display:block;position:absolute;width:0;height:0;content:\"\"}.vue-popover.dropdown-position-bottom:before{border-bottom:6px solid #fff;top:-6px;filter:drop-shadow(0 -2px 2px rgba(52,73,94,.1))}.vue-popover.dropdown-position-bottom:before,.vue-popover.dropdown-position-top:before{border-left:6px solid transparent;border-right:6px solid transparent;left:calc(50% - 6px)}.vue-popover.dropdown-position-top:before{border-top:6px solid #fff;bottom:-6px;filter:drop-shadow(0 2px 2px rgba(52,73,94,.1))}.vue-popover.dropdown-position-left:before{border-left:6px solid #fff;right:-6px;filter:drop-shadow(2px 0 2px rgba(52,73,94,.1))}.vue-popover.dropdown-position-left:before,.vue-popover.dropdown-position-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;top:calc(50% - 6px)}.vue-popover.dropdown-position-right:before{border-right:6px solid #fff;left:-6px;filter:drop-shadow(-2px 0 2px rgba(52,73,94,.1))}", ""]); | ||
// exports | ||
/***/ }), | ||
/* 8 */ | ||
/***/ (function(module, exports) { | ||
/* | ||
MIT License http://www.opensource.org/licenses/mit-license.php | ||
Author Tobias Koppers @sokra | ||
*/ | ||
// css base code, injected by the css-loader | ||
module.exports = function() { | ||
var list = []; | ||
// return the list of modules as css string | ||
list.toString = function toString() { | ||
var result = []; | ||
for(var i = 0; i < this.length; i++) { | ||
var item = this[i]; | ||
if(item[2]) { | ||
result.push("@media " + item[2] + "{" + item[1] + "}"); | ||
} else { | ||
result.push(item[1]); | ||
} | ||
} | ||
return result.join(""); | ||
}; | ||
// import a list of modules into the list | ||
list.i = function(modules, mediaQuery) { | ||
if(typeof modules === "string") | ||
modules = [[null, modules, ""]]; | ||
var alreadyImportedModules = {}; | ||
for(var i = 0; i < this.length; i++) { | ||
var id = this[i][0]; | ||
if(typeof id === "number") | ||
alreadyImportedModules[id] = true; | ||
} | ||
for(i = 0; i < modules.length; i++) { | ||
var item = modules[i]; | ||
// skip already imported module | ||
// this implementation is not 100% perfect for weird media query combinations | ||
// when a module is imported multiple times with different media queries. | ||
// I hope this will never occur (Hey this way we have smaller bundles) | ||
if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { | ||
if(mediaQuery && !item[2]) { | ||
item[2] = mediaQuery; | ||
} else if(mediaQuery) { | ||
item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; | ||
} | ||
list.push(item); | ||
} | ||
} | ||
}; | ||
return list; | ||
}; | ||
/***/ }), | ||
/* 9 */ | ||
/***/ (function(module, exports) { | ||
module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; | ||
return _c('popover', { | ||
attrs: { | ||
"name": "tooltip", | ||
"pointer": _vm.pointer, | ||
"width": _vm.width, | ||
"event": _vm.event | ||
}, | ||
on: { | ||
"show": function($event) { | ||
_vm.value = $event.value | ||
} | ||
} | ||
}, [_vm._v("\n " + _vm._s(_vm.value) + "\n")]) | ||
},staticRenderFns: []} | ||
/***/ }), | ||
/* 10 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
// style-loader: Adds some css to the DOM by adding a <style> tag | ||
// load the styles | ||
var content = __webpack_require__(7); | ||
if(typeof content === 'string') content = [[module.i, content, '']]; | ||
if(content.locals) module.exports = content.locals; | ||
// add the styles to the DOM | ||
var update = __webpack_require__(11)("7527e474", content, true); | ||
/***/ }), | ||
/* 11 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
/* | ||
MIT License http://www.opensource.org/licenses/mit-license.php | ||
Author Tobias Koppers @sokra | ||
Modified by Evan You @yyx990803 | ||
*/ | ||
var hasDocument = typeof document !== 'undefined' | ||
if (typeof DEBUG !== 'undefined' && DEBUG) { | ||
if (!hasDocument) { | ||
throw new Error( | ||
'vue-style-loader cannot be used in a non-browser environment. ' + | ||
"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment." | ||
) } | ||
} | ||
var listToStyles = __webpack_require__(12) | ||
/* | ||
type StyleObject = { | ||
id: number; | ||
parts: Array<StyleObjectPart> | ||
} | ||
type StyleObjectPart = { | ||
css: string; | ||
media: string; | ||
sourceMap: ?string | ||
} | ||
*/ | ||
var stylesInDom = {/* | ||
[id: number]: { | ||
id: number, | ||
refs: number, | ||
parts: Array<(obj?: StyleObjectPart) => void> | ||
} | ||
*/} | ||
var head = hasDocument && (document.head || document.getElementsByTagName('head')[0]) | ||
var singletonElement = null | ||
var singletonCounter = 0 | ||
var isProduction = false | ||
var noop = function () {} | ||
// Force single-tag solution on IE6-9, which has a hard limit on the # of <style> | ||
// tags it will allow on a page | ||
var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase()) | ||
module.exports = function (parentId, list, _isProduction) { | ||
isProduction = _isProduction | ||
var styles = listToStyles(parentId, list) | ||
addStylesToDom(styles) | ||
return function update (newList) { | ||
var mayRemove = [] | ||
for (var i = 0; i < styles.length; i++) { | ||
var item = styles[i] | ||
var domStyle = stylesInDom[item.id] | ||
domStyle.refs-- | ||
mayRemove.push(domStyle) | ||
} | ||
if (newList) { | ||
styles = listToStyles(parentId, newList) | ||
addStylesToDom(styles) | ||
} else { | ||
styles = [] | ||
} | ||
for (var i = 0; i < mayRemove.length; i++) { | ||
var domStyle = mayRemove[i] | ||
if (domStyle.refs === 0) { | ||
for (var j = 0; j < domStyle.parts.length; j++) { | ||
domStyle.parts[j]() | ||
} | ||
delete stylesInDom[domStyle.id] | ||
} | ||
} | ||
} | ||
} | ||
function addStylesToDom (styles /* Array<StyleObject> */) { | ||
for (var i = 0; i < styles.length; i++) { | ||
var item = styles[i] | ||
var domStyle = stylesInDom[item.id] | ||
if (domStyle) { | ||
domStyle.refs++ | ||
for (var j = 0; j < domStyle.parts.length; j++) { | ||
domStyle.parts[j](item.parts[j]) | ||
} | ||
for (; j < item.parts.length; j++) { | ||
domStyle.parts.push(addStyle(item.parts[j])) | ||
} | ||
if (domStyle.parts.length > item.parts.length) { | ||
domStyle.parts.length = item.parts.length | ||
} | ||
} else { | ||
var parts = [] | ||
for (var j = 0; j < item.parts.length; j++) { | ||
parts.push(addStyle(item.parts[j])) | ||
} | ||
stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts } | ||
} | ||
} | ||
} | ||
function createStyleElement () { | ||
var styleElement = document.createElement('style') | ||
styleElement.type = 'text/css' | ||
head.appendChild(styleElement) | ||
return styleElement | ||
} | ||
function addStyle (obj /* StyleObjectPart */) { | ||
var update, remove | ||
var styleElement = document.querySelector('style[data-vue-ssr-id~="' + obj.id + '"]') | ||
if (styleElement) { | ||
if (isProduction) { | ||
// has SSR styles and in production mode. | ||
// simply do nothing. | ||
return noop | ||
} else { | ||
// has SSR styles but in dev mode. | ||
// for some reason Chrome can't handle source map in server-rendered | ||
// style tags - source maps in <style> only works if the style tag is | ||
// created and inserted dynamically. So we remove the server rendered | ||
// styles and inject new ones. | ||
styleElement.parentNode.removeChild(styleElement) | ||
} | ||
} | ||
if (isOldIE) { | ||
// use singleton mode for IE9. | ||
var styleIndex = singletonCounter++ | ||
styleElement = singletonElement || (singletonElement = createStyleElement()) | ||
update = applyToSingletonTag.bind(null, styleElement, styleIndex, false) | ||
remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true) | ||
} else { | ||
// use multi-style-tag mode in all other cases | ||
styleElement = createStyleElement() | ||
update = applyToTag.bind(null, styleElement) | ||
remove = function () { | ||
styleElement.parentNode.removeChild(styleElement) | ||
} | ||
} | ||
update(obj) | ||
return function updateStyle (newObj /* StyleObjectPart */) { | ||
if (newObj) { | ||
if (newObj.css === obj.css && | ||
newObj.media === obj.media && | ||
newObj.sourceMap === obj.sourceMap) { | ||
return | ||
} | ||
update(obj = newObj) | ||
} else { | ||
remove() | ||
} | ||
} | ||
} | ||
var replaceText = (function () { | ||
var textStore = [] | ||
return function (index, replacement) { | ||
textStore[index] = replacement | ||
return textStore.filter(Boolean).join('\n') | ||
} | ||
})() | ||
function applyToSingletonTag (styleElement, index, remove, obj) { | ||
var css = remove ? '' : obj.css | ||
if (styleElement.styleSheet) { | ||
styleElement.styleSheet.cssText = replaceText(index, css) | ||
} else { | ||
var cssNode = document.createTextNode(css) | ||
var childNodes = styleElement.childNodes | ||
if (childNodes[index]) styleElement.removeChild(childNodes[index]) | ||
if (childNodes.length) { | ||
styleElement.insertBefore(cssNode, childNodes[index]) | ||
} else { | ||
styleElement.appendChild(cssNode) | ||
} | ||
} | ||
} | ||
function applyToTag (styleElement, obj) { | ||
var css = obj.css | ||
var media = obj.media | ||
var sourceMap = obj.sourceMap | ||
if (media) { | ||
styleElement.setAttribute('media', media) | ||
} | ||
if (sourceMap) { | ||
// https://developer.chrome.com/devtools/docs/javascript-debugging | ||
// this makes source maps inside style tags work properly in Chrome | ||
css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */' | ||
// http://stackoverflow.com/a/26603875 | ||
css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */' | ||
} | ||
if (styleElement.styleSheet) { | ||
styleElement.styleSheet.cssText = css | ||
} else { | ||
while (styleElement.firstChild) { | ||
styleElement.removeChild(styleElement.firstChild) | ||
} | ||
styleElement.appendChild(document.createTextNode(css)) | ||
} | ||
} | ||
/***/ }), | ||
/* 12 */ | ||
/***/ (function(module, exports) { | ||
/** | ||
* Translates the list format produced by css-loader into something | ||
* easier to manipulate. | ||
*/ | ||
module.exports = function listToStyles (parentId, list) { | ||
var styles = [] | ||
var newStyles = {} | ||
for (var i = 0; i < list.length; i++) { | ||
var item = list[i] | ||
var id = item[0] | ||
var css = item[1] | ||
var media = item[2] | ||
var sourceMap = item[3] | ||
var part = { | ||
id: parentId + ':' + i, | ||
css: css, | ||
media: media, | ||
sourceMap: sourceMap | ||
} | ||
if (!newStyles[id]) { | ||
styles.push(newStyles[id] = { id: id, parts: [part] }) | ||
} else { | ||
newStyles[id].parts.push(part) | ||
} | ||
} | ||
return styles | ||
} | ||
/***/ }), | ||
/* 13 */ | ||
/***/ (function(module, exports) { | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_13__; | ||
/***/ }) | ||
/******/ ]); | ||
}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("vue")):"function"==typeof define&&define.amd?define(["vue"],t):"object"==typeof exports?exports["vue-js-popover"]=t(require("vue")):e["vue-js-popover"]=t(e.vue)}(window,function(n){return function(n){var o={};function r(e){if(o[e])return o[e].exports;var t=o[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,r),t.l=!0,t.exports}return r.m=n,r.c=o,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/dist/",r(r.s=5)}([function(e,t,n){var o=n(3);"string"==typeof o&&(o=[[e.i,o,""]]),o.locals&&(e.exports=o.locals);(0,n(6).default)("66dcfc90",o,!0,{})},function(e,t){e.exports=n},function(e,t,n){"use strict";var o=n(0);n.n(o).a},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,".vue-popover{display:block;position:absolute;background:#fff;box-shadow:0px 4px 20px 0px rgba(52,73,94,0.2);padding:5px;border-radius:5px;z-index:998}.vue-popover:before{display:block;position:absolute;width:0;height:0;content:''}.vue-popover.dropdown-position-bottom:before{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;top:-6px;left:calc(50% - 6px);filter:drop-shadow(0px -2px 2px rgba(52,73,94,0.1))}.vue-popover.dropdown-position-top:before{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;bottom:-6px;left:calc(50% - 6px);filter:drop-shadow(0px 2px 2px rgba(52,73,94,0.1))}.vue-popover.dropdown-position-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid #fff;right:-6px;top:calc(50% - 6px);filter:drop-shadow(2px 0px 2px rgba(52,73,94,0.1))}.vue-popover.dropdown-position-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid #fff;left:-6px;top:calc(50% - 6px);filter:drop-shadow(-2px 0px 2px rgba(52,73,94,0.1))}\n",""])},function(e,t,n){"use strict";e.exports=function(n){var s=[];return s.toString=function(){return this.map(function(e){var t=function(e,t){var n=e[1]||"",o=e[3];if(!o)return n;if(t&&"function"==typeof btoa){var r=(s=o,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */"),i=o.sources.map(function(e){return"/*# sourceURL="+o.sourceRoot+e+" */"});return[n].concat(i).concat([r]).join("\n")}var s;return[n].join("\n")}(e,n);return e[2]?"@media "+e[2]+"{"+t+"}":t}).join("")},s.i=function(e,t){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},o=0;o<this.length;o++){var r=this[o][0];null!=r&&(n[r]=!0)}for(o=0;o<e.length;o++){var i=e[o];null!=i[0]&&n[i[0]]||(t&&!i[2]?i[2]=t:t&&(i[2]="("+i[2]+") and ("+t+")"),s.push(i))}},s}},function(e,t,n){"use strict";n.r(t);var o=n(1),g=new(n.n(o).a);var s={left:[-1,0],right:[1,0],top:[0,1],bottom:[0,-1]},r={name:"Popover",render:function(e){if(this.visible)return e("div",{class:this.className,style:this.style,attrs:{"data-popover":this.name},on:{click:function(e){e.stopPropagation()}},ref:"dropdown"},this.$slots.default)},props:{name:{type:String,required:!0},width:{type:Number,default:180},pointer:{type:Boolean,default:!0},event:{type:String,default:"click"},anchor:{type:Number,default:.5,validator:function(e){return 0<=e&&e<=1}}},data:function(){return{visible:!1,positionClass:"",position:{left:0,top:0}}},mounted:function(){g.$on(this.showEventName,this.showEventListener),g.$on(this.hideEventName,this.hideEventListener)},beforeDestroy:function(){g.$off(this.showEventName,this.showEventListener),g.$off(this.hideEventName,this.hideEventListener)},computed:{showEventName:function(){return"show:".concat(this.event)},hideEventName:function(){return"hide:".concat(this.event)},className:function(){return["vue-popover",this.pointer&&this.positionClass]},style:function(){return function(r){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{},t=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),t.forEach(function(e){var t,n,o;t=r,o=i[n=e],n in t?Object.defineProperty(t,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[n]=o})}return r}({width:"".concat(this.width,"px")},this.position)}},methods:{showEventListener:function(r){var i=this;this.visible?g.$emit(this.hideEventName):this.$nextTick(function(){var t=r.target,e=r.name,n=r.position;if(e===i.name){var o=s[n];i.positionClass="dropdown-position-".concat(n),i.visible=!0,i.$nextTick(function(){i.$emit("show",r),i.$nextTick(function(){var e=i.getDropdownPosition(t,i.$refs.dropdown,o);i.position={left:"".concat(e.left,"px"),top:"".concat(e.top,"px")}})})}})},hideEventListener:function(e){this.visible&&(this.visible=!1,this.$emit("hide",e))},getDropdownPosition:function(e,t,n){var o=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,s=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,a=o.left+s,p=o.top+i,u=.5*(r.height+o.height),c=a-.5*(r.width-o.width),l=p+o.height-u,d=.5*n[0]*(r.width+o.width),f=n[1]*u;return this.pointer&&(d+=6*n[0],f+=6*n[1]),{left:c+d,top:l-f}}}};n(2);function i(e,t,n,o,r,i,s,a){var p,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),o&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),s?(p=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=p):r&&(p=a?function(){r.call(this,this.$root.$options.shadowRoot)}:r),p)if(u.functional){u._injectStyles=p;var c=u.render;u.render=function(e,t){return p.call(t),c(e,t)}}else{var l=u.beforeCreate;u.beforeCreate=l?[].concat(l,p):[p]}return{exports:e,options:u}}var a=i(r,void 0,void 0,!1,null,null,null);a.options.__file="Popover.vue";var p=a.exports,u=i({name:"Tooltip",props:{event:{type:String,default:"hover"},pointer:{type:Boolean,default:!1},width:{type:Number,default:160}},data:function(){return{value:""}}},function(){var t=this,e=t.$createElement;return(t._self._c||e)("popover",{attrs:{name:"tooltip",pointer:t.pointer,width:t.width,event:t.event},on:{show:function(e){t.value=e.value}}},[t._v("\n "+t._s(t.value)+"\n")])},[],!1,null,null,null);u.options.__file="Tooltip.vue";var c=u.exports;function y(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(e){l(t,e,n[e])})}return t}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){return(x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.default={install:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};document.addEventListener("resize",function(e){g.$emit("hide",{srcEvent:e})}),e.component("Popover",p),e.directive("popover",{bind:function(e,t){var n,o,r,i,s,a,p,u,c,l,d,f,v,h,m,b=(o=(n=t).arg,r=void 0===o?"":o,i=n.modifiers,s=void 0===i?{}:i,a=n.value,p=void 0===a?{}:a,u=Object.keys(s),{name:"object"===x(p)&&p.name?p.name:r,position:u[0]||p.position||"bottom",value:p});l=b,d=function(e){g.$emit("show:click",y({},l,{target:c,srcEvent:e})),document.addEventListener("click",function e(t){g.$emit("hide:click",y({},l,{target:c,srcEvent:t})),document.removeEventListener("click",e)}),e.stopPropagation()},(c=e).addEventListener("click",d),c.$popoverRemoveClickHandlers=function(){c.removeEventListener("click",d)},v=b,h=function(e){g.$emit("show:hover",y({},v,{target:f,srcEvent:e}))},m=function(e){g.$emit("hide:hover",y({},v,{target:f,srcEvent:e}))},(f=e).addEventListener("mouseenter",h),f.addEventListener("mouseleave",m),f.$popoverRemoveHoverHandlers=function(){f.removeEventListener("mouseenter",h),f.removeEventListener("mouseleave",m)}},unbind:function(e,t){e.$popoverRemoveHoverHandlers(),e.$popoverRemoveClickHandlers()}}),t.tooltip&&(t.debug&&console.log("vue-js-popover | tooltip active"),e.component("Tooltip",c))}}},function(e,t,n){"use strict";function p(e,t){for(var n=[],o={},r=0;r<t.length;r++){var i=t[r],s=i[0],a={id:e+":"+r,css:i[1],media:i[2],sourceMap:i[3]};o[s]?o[s].parts.push(a):n.push(o[s]={id:s,parts:[a]})}return n}n.r(t),n.d(t,"default",function(){return v});var o="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!o)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var u={},r=o&&(document.head||document.getElementsByTagName("head")[0]),i=null,s=0,c=!1,a=function(){},l=null,d="data-vue-ssr-id",f="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function v(s,e,t,n){c=t,l=n||{};var a=p(s,e);return h(a),function(e){for(var t=[],n=0;n<a.length;n++){var o=a[n];(r=u[o.id]).refs--,t.push(r)}e?h(a=p(s,e)):a=[];for(n=0;n<t.length;n++){var r;if(0===(r=t[n]).refs){for(var i=0;i<r.parts.length;i++)r.parts[i]();delete u[r.id]}}}}function h(e){for(var t=0;t<e.length;t++){var n=e[t],o=u[n.id];if(o){o.refs++;for(var r=0;r<o.parts.length;r++)o.parts[r](n.parts[r]);for(;r<n.parts.length;r++)o.parts.push(b(n.parts[r]));o.parts.length>n.parts.length&&(o.parts.length=n.parts.length)}else{var i=[];for(r=0;r<n.parts.length;r++)i.push(b(n.parts[r]));u[n.id]={id:n.id,refs:1,parts:i}}}}function m(){var e=document.createElement("style");return e.type="text/css",r.appendChild(e),e}function b(t){var n,o,e=document.querySelector("style["+d+'~="'+t.id+'"]');if(e){if(c)return a;e.parentNode.removeChild(e)}if(f){var r=s++;e=i||(i=m()),n=x.bind(null,e,r,!1),o=x.bind(null,e,r,!0)}else e=m(),n=function(e,t){var n=t.css,o=t.media,r=t.sourceMap;o&&e.setAttribute("media",o);l.ssrId&&e.setAttribute(d,t.id);r&&(n+="\n/*# sourceURL="+r.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,e),o=function(){e.parentNode.removeChild(e)};return n(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;n(t=e)}else o()}}var g,y=(g=[],function(e,t){return g[e]=t,g.filter(Boolean).join("\n")});function x(e,t,n,o){var r=n?"":o.css;if(e.styleSheet)e.styleSheet.cssText=y(t,r);else{var i=document.createTextNode(r),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(i,s[t]):e.appendChild(i)}}}])}); | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "vue-js-popover", | ||
"description": "Vue.js 2+ popover component", | ||
"version": "1.1.7", | ||
"version": "1.1.8", | ||
"author": "euvl <yev.vlasenko@gmail.com>", | ||
"license": "MIT", | ||
"private": false, | ||
"scripts": { | ||
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules" | ||
"build": "cross-env NODE_ENV=production webpack --mode production --progress --hide-modules" | ||
}, | ||
@@ -18,22 +19,29 @@ "main": "dist/index.js", | ||
}, | ||
"keywords": [ | ||
"vue", | ||
"dropdown", | ||
"tooltip", | ||
"popover", | ||
"menu", | ||
"button" | ||
], | ||
"devDependencies": { | ||
"@babel/core": "^7.2.2", | ||
"@babel/preset-env": "^7.2.3", | ||
"babel-loader": "^8.0.4", | ||
"cross-env": "^5.2.0", | ||
"css-loader": "^2.1.0", | ||
"file-loader": "^3.0.1", | ||
"node-sass": "^4.11.0", | ||
"sass-loader": "^7.1.0", | ||
"uglifyjs-webpack-plugin": "^2.1.1", | ||
"vue": "^2.5.21", | ||
"vue-loader": "^15.4.2", | ||
"vue-template-compiler": "^2.5.21", | ||
"webpack": "^4.28.3", | ||
"webpack-cli": "^3.2.0" | ||
}, | ||
"peerDependencies": { | ||
"vue": "^2.0.0" | ||
}, | ||
"keywords": ["vue", "dropdown", "tooltip", "popover", "menu", "button"], | ||
"devDependencies": { | ||
"babel-core": "^6.0.0", | ||
"babel-loader": "^6.0.0", | ||
"babel-preset-latest": "^6.0.0", | ||
"babel-preset-stage-2": "^6.24.1", | ||
"cross-env": "^3.0.0", | ||
"css-loader": "^0.25.0", | ||
"file-loader": "^0.9.0", | ||
"node-sass": "^4.5.0", | ||
"sass-loader": "^5.0.1", | ||
"vue": "^2.0.0", | ||
"vue-loader": "^11.1.4", | ||
"vue-template-compiler": "^2.0.0", | ||
"webpack": "^2.2.0", | ||
"webpack-dev-server": "^2.2.0" | ||
"vue": "^2.5.21" | ||
} | ||
} |
@@ -0,0 +0,0 @@ [![npm version](https://badge.fury.io/js/vue-js-popover.svg)](https://badge.fury.io/js/vue-js-popover) |
import Vue from 'vue' | ||
export const events = new Vue() |
@@ -0,0 +0,0 @@ import Popover from './Popover.vue' |
@@ -1,3 +0,5 @@ | ||
var path = require('path') | ||
var webpack = require('webpack') | ||
const path = require('path') | ||
const webpack = require('webpack') | ||
const VueLoaderPlugin = require('vue-loader/lib/plugin') | ||
const UglifyJsPlugin = require("uglifyjs-webpack-plugin") | ||
@@ -26,2 +28,6 @@ module.exports = { | ||
{ | ||
test: /\.scss$/, | ||
loader: 'vue-style-loader!css-loader!sass-loader', | ||
}, | ||
{ | ||
test: /\.js$/, | ||
@@ -41,2 +47,16 @@ loader: 'babel-loader', | ||
}, | ||
optimization: { | ||
minimizer: [ | ||
new UglifyJsPlugin({ | ||
sourceMap: true, | ||
parallel: 4, | ||
uglifyOptions: { | ||
warnings: false, | ||
compress: { | ||
warnings: false | ||
}, | ||
}, | ||
}) | ||
] | ||
}, | ||
devServer: { | ||
@@ -51,2 +71,3 @@ historyApiFallback: true, | ||
plugins: [ | ||
new VueLoaderPlugin(), | ||
new webpack.DefinePlugin({ | ||
@@ -53,0 +74,0 @@ 'process.env': { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
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
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
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
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
70611
189
2
1