fixed
parent
c22a7adbb0
commit
ca02ac252b
51
src/eve.js
51
src/eve.js
|
@ -1,24 +1,10 @@
|
|||
// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
// ┌────────────────────────────────────────────────────────────┐ \\
|
||||
// │ Eve 0.5.4 - JavaScript Events Library │ \\
|
||||
// ├────────────────────────────────────────────────────────────┤ \\
|
||||
// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\
|
||||
// └────────────────────────────────────────────────────────────┘ \\
|
||||
/**
|
||||
* {}
|
||||
* @author yutent<yutent.io@gmail.com>
|
||||
* @date 2024/03/12 14:42:41
|
||||
*/
|
||||
|
||||
let version = '0.5.4',
|
||||
has = 'hasOwnProperty',
|
||||
let has = 'hasOwnProperty',
|
||||
separator = /[\.\/]/,
|
||||
comaseparator = /\s*,\s*/,
|
||||
wildcard = '*',
|
||||
|
@ -50,9 +36,7 @@ let version = '0.5.4',
|
|||
function (ar) {
|
||||
return ar instanceof Array || objtos.call(ar) == '[object Array]'
|
||||
},
|
||||
/*\
|
||||
* eve
|
||||
[ method ]
|
||||
/*
|
||||
|
||||
* Fires event with given `name`, given scope and other parameters.
|
||||
|
||||
|
@ -61,10 +45,9 @@ let version = '0.5.4',
|
|||
- varargs (...) the rest of arguments will be sent to event handlers
|
||||
|
||||
= (object) array of returned values from the listeners. Array has two methods `.firstDefined()` and `.lastDefined()` to get first or last not `undefined` value.
|
||||
\*/
|
||||
eve = function (name, scope) {
|
||||
*/
|
||||
eve = function (name, scope, ...args) {
|
||||
let oldstop = stop,
|
||||
args = Array.prototype.slice.call(arguments, 2),
|
||||
listeners = eve.listeners(name),
|
||||
z = 0,
|
||||
l,
|
||||
|
@ -124,16 +107,14 @@ let version = '0.5.4',
|
|||
}
|
||||
// Undocumented. Debug only.
|
||||
eve._events = events
|
||||
/*\
|
||||
* eve.listeners
|
||||
[ method ]
|
||||
/*
|
||||
|
||||
* Internal method which gives you array of all event handlers that will be triggered by the given `name`.
|
||||
|
||||
- name (string) name of the event, dot (`.`) or slash (`/`) separated
|
||||
|
||||
= (array) array of event handlers
|
||||
\*/
|
||||
*/
|
||||
eve.listeners = function (name) {
|
||||
let names = isArray(name) ? name : name.split(separator),
|
||||
e = events,
|
||||
|
@ -184,9 +165,7 @@ eve.separator = function (sep) {
|
|||
separator = /[\.\/]/
|
||||
}
|
||||
}
|
||||
/*\
|
||||
* eve.on
|
||||
[ method ]
|
||||
/*
|
||||
**
|
||||
* Binds given event handler with a given name. You can use wildcards “`*`” for the names:
|
||||
| eve.on("*.under.*", f);
|
||||
|
@ -208,16 +187,14 @@ eve.separator = function (sep) {
|
|||
*
|
||||
* If you want to put your handler before non-indexed handlers, specify a negative value.
|
||||
* Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”.
|
||||
\*/
|
||||
*/
|
||||
eve.on = function (name, f) {
|
||||
if (typeof f != 'function') {
|
||||
return function () {}
|
||||
}
|
||||
let names = isArray(name)
|
||||
? isArray(name[0])
|
||||
? name
|
||||
: [name]
|
||||
: Str(name).split(comaseparator)
|
||||
|
||||
for (let i = 0, ii = names.length; i < ii; i++) {
|
||||
;(function (name) {
|
||||
let names = isArray(name) ? name : Str(name).split(separator),
|
||||
|
|
|
@ -10,67 +10,67 @@ export const xlink = 'http://www.w3.org/1999/xlink'
|
|||
export const xmlns = 'http://www.w3.org/2000/svg'
|
||||
|
||||
export const CSS_ATTR = {
|
||||
// 'alignment-baseline': 1,
|
||||
// 'baseline-shift': 1,
|
||||
// clip: 1,
|
||||
// 'clip-path': 1,
|
||||
// 'clip-rule': 1,
|
||||
// color: 1,
|
||||
// 'color-interpolation': 1,
|
||||
// 'color-interpolation-filters': 1,
|
||||
// 'color-profile': 1,
|
||||
// 'color-rendering': 1,
|
||||
// cursor: 1,
|
||||
// direction: 1,
|
||||
// display: 1,
|
||||
// 'dominant-baseline': 1,
|
||||
// 'enable-background': 1,
|
||||
// fill: 1,
|
||||
// 'fill-opacity': 1,
|
||||
// 'fill-rule': 1,
|
||||
// filter: 1,
|
||||
// 'flood-color': 1,
|
||||
// 'flood-opacity': 1,
|
||||
// font: 1,
|
||||
// 'font-family': 1,
|
||||
// 'font-size': 1,
|
||||
// 'font-size-adjust': 1,
|
||||
// 'font-stretch': 1,
|
||||
// 'font-style': 1,
|
||||
// 'font-variant': 1,
|
||||
// 'font-weight': 1,
|
||||
// 'glyph-orientation-horizontal': 1,
|
||||
// 'glyph-orientation-vertical': 1,
|
||||
// 'image-rendering': 1,
|
||||
// kerning: 1,
|
||||
// 'letter-spacing': 1,
|
||||
// 'lighting-color': 1,
|
||||
// marker: 1,
|
||||
// 'marker-end': 1,
|
||||
// 'marker-mid': 1,
|
||||
// 'marker-start': 1,
|
||||
// mask: 1,
|
||||
// opacity: 1,
|
||||
// overflow: 1,
|
||||
// 'pointer-events': 1,
|
||||
// 'shape-rendering': 1,
|
||||
// 'stop-color': 1,
|
||||
// 'stop-opacity': 1,
|
||||
// stroke: 1,
|
||||
// 'stroke-dasharray': 1,
|
||||
// 'stroke-dashoffset': 1,
|
||||
// 'stroke-linecap': 1,
|
||||
// 'stroke-linejoin': 1,
|
||||
// 'stroke-miterlimit': 1,
|
||||
// 'stroke-opacity': 1,
|
||||
// 'stroke-width': 1,
|
||||
// 'text-anchor': 1,
|
||||
// 'text-decoration': 1,
|
||||
// 'text-rendering': 1,
|
||||
// 'unicode-bidi': 1,
|
||||
// visibility: 1,
|
||||
// 'word-spacing': 1,
|
||||
// 'writing-mode': 1
|
||||
'alignment-baseline': 1,
|
||||
'baseline-shift': 1,
|
||||
clip: 1,
|
||||
'clip-path': 1,
|
||||
'clip-rule': 1,
|
||||
color: 1,
|
||||
'color-interpolation': 1,
|
||||
'color-interpolation-filters': 1,
|
||||
'color-profile': 1,
|
||||
'color-rendering': 1,
|
||||
cursor: 1,
|
||||
direction: 1,
|
||||
display: 1,
|
||||
'dominant-baseline': 1,
|
||||
'enable-background': 1,
|
||||
fill: 1,
|
||||
'fill-opacity': 1,
|
||||
'fill-rule': 1,
|
||||
filter: 1,
|
||||
'flood-color': 1,
|
||||
'flood-opacity': 1,
|
||||
font: 1,
|
||||
'font-family': 1,
|
||||
'font-size': 1,
|
||||
'font-size-adjust': 1,
|
||||
'font-stretch': 1,
|
||||
'font-style': 1,
|
||||
'font-variant': 1,
|
||||
'font-weight': 1,
|
||||
'glyph-orientation-horizontal': 1,
|
||||
'glyph-orientation-vertical': 1,
|
||||
'image-rendering': 1,
|
||||
kerning: 1,
|
||||
'letter-spacing': 1,
|
||||
'lighting-color': 1,
|
||||
marker: 1,
|
||||
'marker-end': 1,
|
||||
'marker-mid': 1,
|
||||
'marker-start': 1,
|
||||
mask: 1,
|
||||
opacity: 1,
|
||||
overflow: 1,
|
||||
'pointer-events': 1,
|
||||
'shape-rendering': 1,
|
||||
'stop-color': 1,
|
||||
'stop-opacity': 1,
|
||||
stroke: 1,
|
||||
'stroke-dasharray': 1,
|
||||
'stroke-dashoffset': 1,
|
||||
'stroke-linecap': 1,
|
||||
'stroke-linejoin': 1,
|
||||
'stroke-miterlimit': 1,
|
||||
'stroke-opacity': 1,
|
||||
'stroke-width': 1,
|
||||
'text-anchor': 1,
|
||||
'text-decoration': 1,
|
||||
'text-rendering': 1,
|
||||
'unicode-bidi': 1,
|
||||
visibility: 1,
|
||||
'word-spacing': 1,
|
||||
'writing-mode': 1
|
||||
}
|
||||
|
||||
export const ISURL = /^url\(['"]?([^\)]+?)['"]?\)$/i
|
||||
|
|
|
@ -987,19 +987,19 @@ export class Paper {
|
|||
*/
|
||||
rect(x, y, w, h, rx, ry) {
|
||||
let attr
|
||||
if (ry == null) {
|
||||
if (ry === void 0) {
|
||||
ry = rx
|
||||
}
|
||||
if (is(x, 'object') && x == '[object Object]') {
|
||||
attr = x
|
||||
} else if (x != null) {
|
||||
} else if (x !== void 0) {
|
||||
attr = {
|
||||
x: x,
|
||||
y: y,
|
||||
width: w,
|
||||
height: h
|
||||
}
|
||||
if (rx != null) {
|
||||
if (rx !== void 0) {
|
||||
attr.rx = rx
|
||||
attr.ry = ry
|
||||
}
|
||||
|
@ -1403,7 +1403,6 @@ eve.on('snap.util.getattr', function () {
|
|||
|
||||
eve.on('snap.util.attr', function (value) {
|
||||
let key = eve.nt().split('.').at(-1)
|
||||
let attr = { [key]: value }
|
||||
|
||||
let css = key.replace(/[A-Z]/g, function (letter) {
|
||||
return '-' + letter.toLowerCase()
|
||||
|
@ -1411,6 +1410,6 @@ eve.on('snap.util.attr', function (value) {
|
|||
if (CSS_ATTR[css]) {
|
||||
this.node.style[css] = value == null ? E : value
|
||||
} else {
|
||||
$(this.node, attr)
|
||||
$(this.node, { [css]: value })
|
||||
}
|
||||
})
|
||||
|
|
14
src/utils.js
14
src/utils.js
|
@ -29,21 +29,21 @@ export function is(o, type) {
|
|||
|
||||
export function $(el, attr) {
|
||||
if (attr) {
|
||||
if (el == '#text') {
|
||||
if (el === '#text') {
|
||||
el = doc.createTextNode(attr.text || attr['#text'] || '')
|
||||
}
|
||||
if (el == '#comment') {
|
||||
if (el === '#comment') {
|
||||
el = doc.createComment(attr.text || attr['#text'] || '')
|
||||
}
|
||||
if (typeof el == 'string') {
|
||||
if (typeof el === 'string') {
|
||||
el = $(el)
|
||||
}
|
||||
if (typeof attr == 'string') {
|
||||
if (el.nodeType == 1) {
|
||||
if (attr.slice(0, 6) == 'xlink:') {
|
||||
if (typeof attr === 'string') {
|
||||
if (el.nodeType === 1) {
|
||||
if (attr.slice(0, 6) === 'xlink:') {
|
||||
return el.getAttributeNS(xlink, attr.slice(6))
|
||||
}
|
||||
if (attr.slice(0, 4) == 'xml:') {
|
||||
if (attr.slice(0, 4) === 'xml:') {
|
||||
return el.getAttributeNS(xmlns, attr.slice(4))
|
||||
}
|
||||
return el.getAttribute(attr)
|
||||
|
|
Loading…
Reference in New Issue