feat:node-modules

This commit is contained in:
houjunxiang
2025-11-24 10:26:18 +08:00
parent 753766893b
commit 8a3e48d856
8825 changed files with 567399 additions and 1 deletions

22
node_modules/delegate/.editorconfig generated vendored Normal file
View File

@@ -0,0 +1,22 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# http://editorconfig.org
root = true
[*]
# Change these settings to your own preference
indent_style = space
indent_size = 4
# We recommend you to keep these unchanged
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
[{package.json,bower.json}]
indent_size = 2

3
node_modules/delegate/.travis.yml generated vendored Normal file
View File

@@ -0,0 +1,3 @@
language: node_js
node_js:
- stable

29
node_modules/delegate/demo/delegate.html generated vendored Normal file
View File

@@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Delegate</title>
</head>
<body>
<!-- 1. Write some markup -->
<ul>
<li><button>Item 1</button></li>
<li><button>Item 2</button></li>
<li><button>Item 3</button></li>
<li><button>Item 4</button></li>
<li><button>Item 5</button></li>
</ul>
<!-- 2. Include library -->
<script src="../dist/delegate.js"></script>
<!-- 3. Add event delegation -->
<script>
var ul = document.querySelector('ul');
delegate(ul, 'button', 'click', function(e) {
console.log(e.target);
});
</script>
</body>
</html>

37
node_modules/delegate/demo/multiple.html generated vendored Normal file
View File

@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Delegate</title>
</head>
<body>
<!-- 1. Write some markup -->
<ul>
<li><button>Item 1</button></li>
<li><button>Item 2</button></li>
<li><button>Item 3</button></li>
<li><button>Item 4</button></li>
<li><button>Item 5</button></li>
</ul>
<ul>
<li><span>Item 6</span></li>
<li><span>Item 7</span></li>
</ul>
<!-- 2. Include library -->
<script src="../dist/delegate.js"></script>
<!-- 3. Add event delegation -->
<script>
var ul = document.querySelector('ul');
delegate(ul, 'button', 'click', function(e) {
console.log(e.target);
});
delegate(document.body, 'span', 'click', function(e) {
console.log(e.target);
});
</script>
</body>
</html>

31
node_modules/delegate/demo/undelegate.html generated vendored Normal file
View File

@@ -0,0 +1,31 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Undelegate</title>
</head>
<body>
<!-- 1. Write some markup -->
<ul>
<li><button>Item 1</button></li>
<li><button>Item 2</button></li>
<li><button>Item 3</button></li>
<li><button>Item 4</button></li>
<li><button>Item 5</button></li>
</ul>
<!-- 2. Include library -->
<script src="../dist/delegate.js"></script>
<!-- 3. Remove event delegation -->
<script>
var ul = document.querySelector('ul');
var delegation = delegate(ul, 'li button', 'click', function(e) {
console.log(e.target);
});
delegation.destroy();
</script>
</body>
</html>

80
node_modules/delegate/dist/delegate.js generated vendored Normal file
View File

@@ -0,0 +1,80 @@
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.delegate = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var DOCUMENT_NODE_TYPE = 9;
/**
* A polyfill for Element.matches()
*/
if (typeof Element !== 'undefined' && !Element.prototype.matches) {
var proto = Element.prototype;
proto.matches = proto.matchesSelector ||
proto.mozMatchesSelector ||
proto.msMatchesSelector ||
proto.oMatchesSelector ||
proto.webkitMatchesSelector;
}
/**
* Finds the closest parent that matches a selector.
*
* @param {Element} element
* @param {String} selector
* @return {Function}
*/
function closest (element, selector) {
while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
if (element.matches(selector)) return element;
element = element.parentNode;
}
}
module.exports = closest;
},{}],2:[function(require,module,exports){
var closest = require('./closest');
/**
* Delegates event to a selector.
*
* @param {Element} element
* @param {String} selector
* @param {String} type
* @param {Function} callback
* @param {Boolean} useCapture
* @return {Object}
*/
function delegate(element, selector, type, callback, useCapture) {
var listenerFn = listener.apply(this, arguments);
element.addEventListener(type, listenerFn, useCapture);
return {
destroy: function() {
element.removeEventListener(type, listenerFn, useCapture);
}
}
}
/**
* Finds closest match and invokes callback.
*
* @param {Element} element
* @param {String} selector
* @param {String} type
* @param {Function} callback
* @return {Function}
*/
function listener(element, selector, type, callback) {
return function(e) {
e.delegateTarget = closest(e.target, selector);
if (e.delegateTarget) {
callback.call(element, e);
}
}
}
module.exports = delegate;
},{"./closest":1}]},{},[2])(2)
});

24
node_modules/delegate/karma.conf.js generated vendored Normal file
View File

@@ -0,0 +1,24 @@
module.exports = function(karma) {
karma.set({
plugins: ['karma-browserify', 'karma-chai', 'karma-sinon', 'karma-mocha', 'karma-phantomjs-launcher'],
frameworks: ['browserify', 'chai', 'sinon', 'mocha'],
files: [
'src/**/*.js',
'test/**/*.js',
'./node_modules/phantomjs-polyfill/bind-polyfill.js'
],
preprocessors: {
'src/**/*.js' : ['browserify'],
'test/**/*.js': ['browserify']
},
browserify: {
debug: true
},
browsers: ['PhantomJS']
});
}

31
node_modules/delegate/package.json generated vendored Normal file
View File

@@ -0,0 +1,31 @@
{
"name": "delegate",
"description": "Lightweight event delegation",
"version": "3.2.0",
"repository": "zenorocha/delegate",
"license": "MIT",
"main": "src/delegate.js",
"keywords": [
"event",
"delegate",
"delegation"
],
"devDependencies": {
"browserify": "^13.1.0",
"chai": "^3.5.0",
"karma": "^1.3.0",
"karma-browserify": "^5.1.0",
"karma-chai": "^0.1.0",
"karma-mocha": "^1.2.0",
"karma-phantomjs-launcher": "^1.0.2",
"karma-sinon": "^1.0.4",
"mocha": "^3.1.2",
"phantomjs-polyfill": "0.0.2",
"simulant": "^0.2.2",
"sinon": "^1.17.6"
},
"scripts": {
"build": "browserify src/delegate.js -s delegate -o dist/delegate.js",
"test": "karma start --single-run"
}
}

99
node_modules/delegate/readme.md generated vendored Normal file
View File

@@ -0,0 +1,99 @@
# delegate
Lightweight event delegation.
## Install
You can get it on npm.
```
npm install delegate --save
```
If you're not into package management, just [download a ZIP](https://github.com/zenorocha/delegate/archive/master.zip) file.
## Setup
###### Node (Browserify)
```js
var delegate = require('delegate');
```
###### Browser (Standalone)
```html
<script src="dist/delegate.js"></script>
```
## Usage
### Add event delegation
#### With the default base (`document`)
```js
delegate('.btn', 'click', function(e) {
console.log(e.delegateTarget);
}, false);
```
#### With an element as base
```js
delegate(document.body, '.btn', 'click', function(e) {
console.log(e.delegateTarget);
}, false);
```
#### With a selector (of existing elements) as base
```js
delegate('.container', '.btn', 'click', function(e) {
console.log(e.delegateTarget);
}, false);
```
#### With an array/array-like of elements as base
```js
delegate(document.querySelectorAll('.container'), '.btn', 'click', function(e) {
console.log(e.delegateTarget);
}, false);
```
### Remove event delegation
#### With a single base element (default or specified)
```js
var delegation = delegate(document.body, '.btn', 'click', function(e) {
console.log(e.delegateTarget);
}, false);
delegation.destroy();
```
#### With multiple elements (via selector or array)
Note: selectors are always treated as multiple elements, even if one or none are matched. `delegate()` will return an array.
```js
var delegations = delegate('.container', '.btn', 'click', function(e) {
console.log(e.delegateTarget);
}, false);
delegations.forEach(function (delegation) {
delegation.destroy();
});
```
## Browser Support
| <img src="https://clipboardjs.com/assets/images/chrome.png" width="48px" height="48px" alt="Chrome logo"> | <img src="https://clipboardjs.com/assets/images/edge.png" width="48px" height="48px" alt="Edge logo"> | <img src="https://clipboardjs.com/assets/images/firefox.png" width="48px" height="48px" alt="Firefox logo"> | <img src="https://clipboardjs.com/assets/images/ie.png" width="48px" height="48px" alt="Internet Explorer logo"> | <img src="https://clipboardjs.com/assets/images/opera.png" width="48px" height="48px" alt="Opera logo"> | <img src="https://clipboardjs.com/assets/images/safari.png" width="48px" height="48px" alt="Safari logo"> |
|:---:|:---:|:---:|:---:|:---:|:---:|
| Latest ✔ | Latest ✔ | Latest ✔ | 9+ ✔ | Latest ✔ | Latest ✔ |
## License
[MIT License](http://zenorocha.mit-license.org/) © Zeno Rocha

33
node_modules/delegate/src/closest.js generated vendored Normal file
View File

@@ -0,0 +1,33 @@
var DOCUMENT_NODE_TYPE = 9;
/**
* A polyfill for Element.matches()
*/
if (typeof Element !== 'undefined' && !Element.prototype.matches) {
var proto = Element.prototype;
proto.matches = proto.matchesSelector ||
proto.mozMatchesSelector ||
proto.msMatchesSelector ||
proto.oMatchesSelector ||
proto.webkitMatchesSelector;
}
/**
* Finds the closest parent that matches a selector.
*
* @param {Element} element
* @param {String} selector
* @return {Function}
*/
function closest (element, selector) {
while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
if (typeof element.matches === 'function' &&
element.matches(selector)) {
return element;
}
element = element.parentNode;
}
}
module.exports = closest;

Some files were not shown because too many files have changed in this diff Show More