aboutsummaryrefslogtreecommitdiff
path: root/node_modules/select
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/select')
-rw-r--r--node_modules/select/.editorconfig22
-rw-r--r--node_modules/select/.npmignore1
-rw-r--r--node_modules/select/.travis.yml3
-rw-r--r--node_modules/select/bower.json13
-rw-r--r--node_modules/select/demo/contenteditable.html26
-rw-r--r--node_modules/select/demo/dropdown.html30
-rw-r--r--node_modules/select/demo/editable.html26
-rw-r--r--node_modules/select/demo/multiple.html28
-rw-r--r--node_modules/select/demo/nested.html34
-rw-r--r--node_modules/select/demo/non-editable.html26
-rw-r--r--node_modules/select/dist/select.js47
-rw-r--r--node_modules/select/karma.conf.js23
-rw-r--r--node_modules/select/package.json29
-rw-r--r--node_modules/select/readme.md49
-rw-r--r--node_modules/select/src/select.js43
-rw-r--r--node_modules/select/test/select.js93
16 files changed, 493 insertions, 0 deletions
diff --git a/node_modules/select/.editorconfig b/node_modules/select/.editorconfig
new file mode 100644
index 00000000..0f1d01bd
--- /dev/null
+++ b/node_modules/select/.editorconfig
@@ -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
diff --git a/node_modules/select/.npmignore b/node_modules/select/.npmignore
new file mode 100644
index 00000000..b512c09d
--- /dev/null
+++ b/node_modules/select/.npmignore
@@ -0,0 +1 @@
+node_modules \ No newline at end of file
diff --git a/node_modules/select/.travis.yml b/node_modules/select/.travis.yml
new file mode 100644
index 00000000..833d09d1
--- /dev/null
+++ b/node_modules/select/.travis.yml
@@ -0,0 +1,3 @@
+language: node_js
+node_js:
+ - stable
diff --git a/node_modules/select/bower.json b/node_modules/select/bower.json
new file mode 100644
index 00000000..281b34ca
--- /dev/null
+++ b/node_modules/select/bower.json
@@ -0,0 +1,13 @@
+{
+ "name": "select",
+ "version": "1.1.0",
+ "description": "Programmatically select the text of a HTML element",
+ "license": "MIT",
+ "main": "dist/select.js",
+ "keywords": [
+ "range",
+ "select",
+ "selecting",
+ "selection"
+ ]
+}
diff --git a/node_modules/select/demo/contenteditable.html b/node_modules/select/demo/contenteditable.html
new file mode 100644
index 00000000..47f9b993
--- /dev/null
+++ b/node_modules/select/demo/contenteditable.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title>contenteditable</title>
+</head>
+<body>
+ <!-- 1. Define some markup -->
+ <button type="button">Select</button>
+ <p contenteditable>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio totam adipisci, saepe ad vero dignissimos laborum non eum eveniet aperiam, consequuntur repellendus architecto inventore iusto blanditiis quasi commodi voluptatum vitae!</p>
+
+ <!-- 2. Include library -->
+ <script src="../dist/select.js"></script>
+
+ <!-- 3. Select! -->
+ <script>
+ var p = document.querySelector('p');
+ var button = document.querySelector('button');
+
+ button.addEventListener('click', function(e) {
+ var selected = select(p);
+ console.log(selected);
+ });
+ </script>
+</body>
+</html>
diff --git a/node_modules/select/demo/dropdown.html b/node_modules/select/demo/dropdown.html
new file mode 100644
index 00000000..aa739d58
--- /dev/null
+++ b/node_modules/select/demo/dropdown.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title>dropdown</title>
+</head>
+<body>
+ <!-- 1. Define some markup -->
+ <button type="button">Select</button>
+ <select>
+ <option>Option 1</option>
+ <option selected>Option 2</option>
+ <option>Option 3</option>
+ </select>
+
+ <!-- 2. Include library -->
+ <script src="../dist/select.js"></script>
+
+ <!-- 3. Select! -->
+ <script>
+ var dropdown = document.querySelector('select');
+ var button = document.querySelector('button');
+
+ button.addEventListener('click', function(e) {
+ var selected = select(dropdown);
+ console.log(selected);
+ });
+ </script>
+</body>
+</html>
diff --git a/node_modules/select/demo/editable.html b/node_modules/select/demo/editable.html
new file mode 100644
index 00000000..f51d9c29
--- /dev/null
+++ b/node_modules/select/demo/editable.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title>editable</title>
+</head>
+<body>
+ <!-- 1. Define some markup -->
+ <button type="button">Select</button>
+ <input type="text" value="Lorem ipsum">
+
+ <!-- 2. Include library -->
+ <script src="../dist/select.js"></script>
+
+ <!-- 3. Select! -->
+ <script>
+ var input = document.querySelector('input');
+ var button = document.querySelector('button');
+
+ button.addEventListener('click', function(e) {
+ var selected = select(input);
+ console.log(selected);
+ });
+ </script>
+</body>
+</html>
diff --git a/node_modules/select/demo/multiple.html b/node_modules/select/demo/multiple.html
new file mode 100644
index 00000000..a19ae7df
--- /dev/null
+++ b/node_modules/select/demo/multiple.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title>multiple</title>
+</head>
+<body>
+ <!-- 1. Define some markup -->
+ <button type="button">Select</button>
+ <input type="text" value="Lorem ipsum">
+ <textarea>Lorem ipsum</textarea>
+
+ <!-- 2. Include library -->
+ <script src="../dist/select.js"></script>
+
+ <!-- 3. Select! -->
+ <script>
+ var input = document.querySelector('input');
+ var textarea = document.querySelector('textarea');
+ var button = document.querySelector('button');
+
+ button.addEventListener('click', function(e) {
+ console.log(select(input));
+ console.log(select(textarea));
+ });
+ </script>
+</body>
+</html>
diff --git a/node_modules/select/demo/nested.html b/node_modules/select/demo/nested.html
new file mode 100644
index 00000000..11e11f3b
--- /dev/null
+++ b/node_modules/select/demo/nested.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title>non-editable</title>
+</head>
+<body>
+ <!-- 1. Define some markup -->
+ <button type="button">Select</button>
+ <div>
+ <p>Item 1</p>
+ <p>Item 2</p>
+ <ul>
+ <li>Item 3</li>
+ <li>Item 4</li>
+ <li>Item 5</li>
+ </ul>
+ </div>
+
+ <!-- 2. Include library -->
+ <script src="../dist/select.js"></script>
+
+ <!-- 3. Select! -->
+ <script>
+ var div = document.querySelector('div');
+ var button = document.querySelector('button');
+
+ button.addEventListener('click', function(e) {
+ var selected = select(div);
+ console.log(selected);
+ });
+ </script>
+</body>
+</html>
diff --git a/node_modules/select/demo/non-editable.html b/node_modules/select/demo/non-editable.html
new file mode 100644
index 00000000..2c34be93
--- /dev/null
+++ b/node_modules/select/demo/non-editable.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title>non-editable</title>
+</head>
+<body>
+ <!-- 1. Define some markup -->
+ <button type="button">Select</button>
+ <p>Lorem ipsum</p>
+
+ <!-- 2. Include library -->
+ <script src="../dist/select.js"></script>
+
+ <!-- 3. Select! -->
+ <script>
+ var p = document.querySelector('p');
+ var button = document.querySelector('button');
+
+ button.addEventListener('click', function(e) {
+ var selected = select(p);
+ console.log(selected);
+ });
+ </script>
+</body>
+</html>
diff --git a/node_modules/select/dist/select.js b/node_modules/select/dist/select.js
new file mode 100644
index 00000000..c3bdfe27
--- /dev/null
+++ b/node_modules/select/dist/select.js
@@ -0,0 +1,47 @@
+(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.select = 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){
+function select(element) {
+ var selectedText;
+
+ if (element.nodeName === 'SELECT') {
+ element.focus();
+
+ selectedText = element.value;
+ }
+ else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
+ var isReadOnly = element.hasAttribute('readonly');
+
+ if (!isReadOnly) {
+ element.setAttribute('readonly', '');
+ }
+
+ element.select();
+ element.setSelectionRange(0, element.value.length);
+
+ if (!isReadOnly) {
+ element.removeAttribute('readonly');
+ }
+
+ selectedText = element.value;
+ }
+ else {
+ if (element.hasAttribute('contenteditable')) {
+ element.focus();
+ }
+
+ var selection = window.getSelection();
+ var range = document.createRange();
+
+ range.selectNodeContents(element);
+ selection.removeAllRanges();
+ selection.addRange(range);
+
+ selectedText = selection.toString();
+ }
+
+ return selectedText;
+}
+
+module.exports = select;
+
+},{}]},{},[1])(1)
+}); \ No newline at end of file
diff --git a/node_modules/select/karma.conf.js b/node_modules/select/karma.conf.js
new file mode 100644
index 00000000..e48b4c23
--- /dev/null
+++ b/node_modules/select/karma.conf.js
@@ -0,0 +1,23 @@
+module.exports = function(karma) {
+ karma.set({
+ plugins: ['karma-browserify', 'karma-chai', 'karma-mocha', 'karma-phantomjs-launcher'],
+
+ frameworks: ['browserify', 'chai', 'mocha'],
+
+ files: [
+ 'src/**/*.js',
+ 'test/**/*.js'
+ ],
+
+ preprocessors: {
+ 'src/**/*.js' : ['browserify'],
+ 'test/**/*.js': ['browserify']
+ },
+
+ browserify: {
+ debug: true
+ },
+
+ browsers: ['PhantomJS']
+ });
+}
diff --git a/node_modules/select/package.json b/node_modules/select/package.json
new file mode 100644
index 00000000..e4f218dc
--- /dev/null
+++ b/node_modules/select/package.json
@@ -0,0 +1,29 @@
+{
+ "name": "select",
+ "description": "Programmatically select the text of a HTML element",
+ "version": "1.1.2",
+ "license": "MIT",
+ "main": "src/select.js",
+ "repository": "zenorocha/select",
+ "keywords": [
+ "range",
+ "select",
+ "selecting",
+ "selection"
+ ],
+ "devDependencies": {
+ "browserify": "^14.0.0",
+ "chai": "^3.3.0",
+ "karma": "^1.4.1",
+ "karma-browserify": "^5.1.1",
+ "karma-chai": "^0.1.0",
+ "karma-mocha": "^1.3.0",
+ "karma-phantomjs-launcher": "^1.0.2",
+ "mocha": "^3.2.0",
+ "phantomjs": "^2.1.7"
+ },
+ "scripts": {
+ "build": "browserify src/select.js -s select -o dist/select.js",
+ "test": "karma start --single-run"
+ }
+}
diff --git a/node_modules/select/readme.md b/node_modules/select/readme.md
new file mode 100644
index 00000000..abbc7a56
--- /dev/null
+++ b/node_modules/select/readme.md
@@ -0,0 +1,49 @@
+# select
+
+[![Build Status](http://img.shields.io/travis/zenorocha/select/master.svg?style=flat)](https://travis-ci.org/zenorocha/select)
+
+Programmatically select the text of a HTML element.
+
+## Install
+
+You can get it on npm.
+
+```
+npm install select --save
+```
+
+Or bower, too.
+
+```
+bower install select --save
+```
+
+If you're not into package management, just [download a ZIP](https://github.com/zenorocha/select/archive/master.zip) file.
+
+## Usage
+
+### Standalone
+
+```html
+<script src="dist/select.js"></script>
+```
+
+```js
+var input = document.querySelector('input');
+var result = select(input);
+```
+
+### Browserify
+
+```js
+var select = require('select');
+```
+
+```js
+var input = document.querySelector('input');
+var result = select(input);
+```
+
+## License
+
+[MIT License](http://zenorocha.mit-license.org/) © Zeno Rocha
diff --git a/node_modules/select/src/select.js b/node_modules/select/src/select.js
new file mode 100644
index 00000000..3e36485a
--- /dev/null
+++ b/node_modules/select/src/select.js
@@ -0,0 +1,43 @@
+function select(element) {
+ var selectedText;
+
+ if (element.nodeName === 'SELECT') {
+ element.focus();
+
+ selectedText = element.value;
+ }
+ else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
+ var isReadOnly = element.hasAttribute('readonly');
+
+ if (!isReadOnly) {
+ element.setAttribute('readonly', '');
+ }
+
+ element.select();
+ element.setSelectionRange(0, element.value.length);
+
+ if (!isReadOnly) {
+ element.removeAttribute('readonly');
+ }
+
+ selectedText = element.value;
+ }
+ else {
+ if (element.hasAttribute('contenteditable')) {
+ element.focus();
+ }
+
+ var selection = window.getSelection();
+ var range = document.createRange();
+
+ range.selectNodeContents(element);
+ selection.removeAllRanges();
+ selection.addRange(range);
+
+ selectedText = selection.toString();
+ }
+
+ return selectedText;
+}
+
+module.exports = select;
diff --git a/node_modules/select/test/select.js b/node_modules/select/test/select.js
new file mode 100644
index 00000000..604dc945
--- /dev/null
+++ b/node_modules/select/test/select.js
@@ -0,0 +1,93 @@
+var select = require('../src/select');
+
+describe('select editable elements', function() {
+ before(function() {
+ global.input = document.createElement('input');
+ global.input.value = 'lorem ipsum';
+
+ global.textarea = document.createElement('textarea');
+ global.textarea.value = 'lorem ipsum';
+
+ document.body.appendChild(global.input);
+ document.body.appendChild(global.textarea);
+ });
+
+ after(function() {
+ document.body.innerHTML = '';
+ });
+
+ it('should return the selected text on input', function() {
+ var result = select(global.input);
+ assert.equal(result, global.input.value);
+ });
+
+ it('should return the selected text on textarea', function() {
+ var result = select(global.textarea);
+ assert.equal(result, global.textarea.value);
+ });
+});
+
+describe('select non-editable element with no children', function() {
+ before(function() {
+ global.paragraph = document.createElement('p');
+ global.paragraph.textContent = 'lorem ipsum';
+
+ document.body.appendChild(global.paragraph);
+ });
+
+ after(function() {
+ document.body.innerHTML = '';
+ });
+
+ it('should return the selected text', function() {
+ var result = select(global.paragraph);
+ assert.equal(result, global.paragraph.textContent);
+ });
+});
+
+describe('select non-editable element with child node', function() {
+ before(function() {
+ global.li = document.createElement('li');
+ global.li.textContent = 'lorem ipsum';
+
+ global.ul = document.createElement('ul');
+ global.ul.appendChild(global.li);
+
+ document.body.appendChild(global.ul);
+ });
+
+ after(function() {
+ document.body.innerHTML = '';
+ });
+
+ it('should return the selected text', function() {
+ var result = select(global.ul);
+ assert.equal(result, global.ul.textContent);
+ });
+});
+
+describe('select non-editable svg element w/ multiple text children', function() {
+ before(function() {
+ global.text1 = document.createElement('text');
+ global.text1.textContent = 'lorem ipsum';
+
+ global.text2 = document.createElement('text');
+ global.text2.textContent = 'dolor zet';
+
+ global.svg = document.createElement('svg');
+ global.svg.appendChild(global.text1);
+ global.svg.appendChild(global.text2);
+
+ document.body.appendChild(global.svg);
+ });
+
+ after(function() {
+ document.body.innerHTML = '';
+ });
+
+ it('should return the selected text', function() {
+ var result = select(global.svg);
+ assert.equal(result, global.text1.textContent +
+ global.text2.textContent);
+ });
+});