dedsudiyu 3 mēneši atpakaļ
revīzija
b1b0722b5b
4 mainītis faili ar 1084 papildinājumiem un 0 dzēšanām
  1. 141 0
      index.html
  2. 939 0
      static/clipboard.js
  3. BIN
      static/favicon.ico
  4. 4 0
      static/jquery-3.2.0.min.js

+ 141 - 0
index.html

@@ -0,0 +1,141 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="UTF-8">
+		<link href="static/favicon.ico" rel="SHORTCUT ICON">
+		<title>实验室安全智能监测与控制系统</title>
+	</head>
+	<body>
+		<div class="main">
+			<img class="logo_img" />
+			<p class="title">实验室安全检测控制系统</p>
+			<div class="skip" onclick="weixinFun()">
+				<p>前往微信打开</p>
+			</div>
+			<!--        <div class="copy">无法打开时,请复制链接到默认浏览器 <button class="btn" >复制链接</button></div>-->
+		</div>
+	</body>
+	<script type="text/javascript" src="./static/jquery-3.2.0.min.js"></script>
+	<script type="text/javascript" src="./static/clipboard.js"></script>
+</html>
+<script type="text/javascript">
+	//let baseURL='https://lab.zjznai.com/labSystem/'
+	//let baseURL='https://wxqt.neu.edu.cn/api/'
+	//let baseURL='http://192.168.1.43/labSystem/'
+	let baseURL = 'https://labcontrol.nwafu.edu.cn/api/'
+	var urlScheme = "";
+	//获取login
+	$.ajax({
+		type: "get",
+		url: baseURL + 'auth/configInfo?type=1,2,4',
+		headers: {
+			'Content-Type': 'application/json;charset=utf8'
+		},
+		dataType: "json",
+		success: function(res) {
+			let list = JSON.parse(res.data)
+			let newData = {};
+			list.forEach((item) => {
+				let obj = JSON.parse(item.configValue)
+				newData = {
+					...newData,
+					...obj
+				}
+			})
+			$(".logo_img").attr("src", baseURL + newData.circularLogo)
+		}
+	});
+	//3. 实例化clipboard
+	var clipboard = new ClipboardJS('.btn', {
+		text: function() {
+			return urlScheme;
+		},
+	});
+
+	function getQueryString(name) {
+		const url_string = window.location.href; // window.location.href
+		const url = new URL(url_string);
+		return url.searchParams.get(name);
+	}
+
+	function weixinFun() {
+		location.href = getQueryString('urlScheme')
+	}
+	//获取地址栏urlScheme
+	urlScheme = getQueryString('urlScheme')
+	//console.log(getQueryString('id')) // mick
+	//console.log(getQueryString('urlScheme')) // 20
+</script>
+<style>
+	* {
+		padding: 0;
+		margin: 0;
+		box-sizing: border-box;
+	}
+
+	body {
+		background: #fff;
+	}
+
+	.main {
+		width: 750px;
+		margin: auto;
+		text-align: center;
+
+	}
+
+	.logo_img {
+		width: 150px;
+		height: 150px;
+		margin-top: 276px;
+	}
+
+	.title {
+		font-size: 24px;
+		font-family: Microsoft YaHei-Bold, Microsoft YaHei;
+		font-weight: 700;
+		color: #333333;
+		line-height: 24px;
+		margin-top: 46px;
+	}
+
+	.skip {
+		width: 100%;
+		display: flex;
+		justify-content: center;
+		margin-top: 180px;
+	}
+
+	.skip>p {
+		width: 400px;
+		height: 80px;
+		background: #0183FA;
+		border-radius: 10px 10px 10px 10px;
+		font-size: 28px;
+		font-family: PingFang SC-Medium, PingFang SC;
+		font-weight: 400;
+		color: #FFFFFF;
+		line-height: 80px;
+		text-align: center;
+	}
+
+	.copy {
+		font-size: 28px;
+		font-family: PingFang SC-Medium, PingFang SC;
+		font-weight: 400;
+		color: #333333;
+		line-height: 30px;
+		margin-top: 66px;
+	}
+
+	.copy .btn {
+		font-size: 28px;
+		font-family: PingFang SC-Medium, PingFang SC;
+		font-weight: 400;
+		color: #0183FA;
+		line-height: 30px;
+		margin-left: 20px;
+		border: none;
+		background: none;
+	}
+</style>

+ 939 - 0
static/clipboard.js

@@ -0,0 +1,939 @@
+/*!
+ * clipboard.js v2.0.1
+ * https://zenorocha.github.io/clipboard.js
+ *
+ * Licensed MIT © Zeno Rocha
+ */
+(function webpackUniversalModuleDefinition(root, factory) {
+    if(typeof exports === 'object' && typeof module === 'object')
+        module.exports = factory();
+    else if(typeof define === 'function' && define.amd)
+        define([], factory);
+    else if(typeof exports === 'object')
+        exports["ClipboardJS"] = factory();
+    else
+        root["ClipboardJS"] = factory();
+})(this, function() {
+    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 = "";
+        /******/
+        /******/ 	// Load entry module and return exports
+        /******/ 	return __webpack_require__(__webpack_require__.s = 3);
+        /******/ })
+        /************************************************************************/
+        /******/ ([
+            /* 0 */
+            /***/ (function(module, exports, __webpack_require__) {
+
+                var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
+                    if (true) {
+                        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(7)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
+                            __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
+                                (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
+                        __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+                    } else if (typeof exports !== "undefined") {
+                        factory(module, require('select'));
+                    } else {
+                        var mod = {
+                            exports: {}
+                        };
+                        factory(mod, global.select);
+                        global.clipboardAction = mod.exports;
+                    }
+                })(this, function (module, _select) {
+                    'use strict';
+
+                    var _select2 = _interopRequireDefault(_select);
+
+                    function _interopRequireDefault(obj) {
+                        return obj && obj.__esModule ? obj : {
+                            default: obj
+                        };
+                    }
+
+                    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;
+                    };
+
+                    function _classCallCheck(instance, Constructor) {
+                        if (!(instance instanceof Constructor)) {
+                            throw new TypeError("Cannot call a class as a function");
+                        }
+                    }
+
+                    var _createClass = function () {
+                        function defineProperties(target, props) {
+                            for (var i = 0; i < props.length; i++) {
+                                var descriptor = props[i];
+                                descriptor.enumerable = descriptor.enumerable || false;
+                                descriptor.configurable = true;
+                                if ("value" in descriptor) descriptor.writable = true;
+                                Object.defineProperty(target, descriptor.key, descriptor);
+                            }
+                        }
+
+                        return function (Constructor, protoProps, staticProps) {
+                            if (protoProps) defineProperties(Constructor.prototype, protoProps);
+                            if (staticProps) defineProperties(Constructor, staticProps);
+                            return Constructor;
+                        };
+                    }();
+
+                    var ClipboardAction = function () {
+                        /**
+                         * @param {Object} options
+                         */
+                        function ClipboardAction(options) {
+                            _classCallCheck(this, ClipboardAction);
+
+                            this.resolveOptions(options);
+                            this.initSelection();
+                        }
+
+                        /**
+                         * Defines base properties passed from constructor.
+                         * @param {Object} options
+                         */
+
+
+                        _createClass(ClipboardAction, [{
+                            key: 'resolveOptions',
+                            value: function resolveOptions() {
+                                var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+                                this.action = options.action;
+                                this.container = options.container;
+                                this.emitter = options.emitter;
+                                this.target = options.target;
+                                this.text = options.text;
+                                this.trigger = options.trigger;
+
+                                this.selectedText = '';
+                            }
+                        }, {
+                            key: 'initSelection',
+                            value: function initSelection() {
+                                if (this.text) {
+                                    this.selectFake();
+                                } else if (this.target) {
+                                    this.selectTarget();
+                                }
+                            }
+                        }, {
+                            key: 'selectFake',
+                            value: function selectFake() {
+                                var _this = this;
+
+                                var isRTL = document.documentElement.getAttribute('dir') == 'rtl';
+
+                                this.removeFake();
+
+                                this.fakeHandlerCallback = function () {
+                                    return _this.removeFake();
+                                };
+                                this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;
+
+                                this.fakeElem = document.createElement('textarea');
+                                // Prevent zooming on iOS
+                                this.fakeElem.style.fontSize = '12pt';
+                                // Reset box model
+                                this.fakeElem.style.border = '0';
+                                this.fakeElem.style.padding = '0';
+                                this.fakeElem.style.margin = '0';
+                                // Move element out of screen horizontally
+                                this.fakeElem.style.position = 'absolute';
+                                this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';
+                                // Move element to the same position vertically
+                                var yPosition = window.pageYOffset || document.documentElement.scrollTop;
+                                this.fakeElem.style.top = yPosition + 'px';
+
+                                this.fakeElem.setAttribute('readonly', '');
+                                this.fakeElem.value = this.text;
+
+                                this.container.appendChild(this.fakeElem);
+
+                                this.selectedText = (0, _select2.default)(this.fakeElem);
+                                this.copyText();
+                            }
+                        }, {
+                            key: 'removeFake',
+                            value: function removeFake() {
+                                if (this.fakeHandler) {
+                                    this.container.removeEventListener('click', this.fakeHandlerCallback);
+                                    this.fakeHandler = null;
+                                    this.fakeHandlerCallback = null;
+                                }
+
+                                if (this.fakeElem) {
+                                    this.container.removeChild(this.fakeElem);
+                                    this.fakeElem = null;
+                                }
+                            }
+                        }, {
+                            key: 'selectTarget',
+                            value: function selectTarget() {
+                                this.selectedText = (0, _select2.default)(this.target);
+                                this.copyText();
+                            }
+                        }, {
+                            key: 'copyText',
+                            value: function copyText() {
+                                var succeeded = void 0;
+
+                                try {
+                                    succeeded = document.execCommand(this.action);
+                                } catch (err) {
+                                    succeeded = false;
+                                }
+
+                                this.handleResult(succeeded);
+                            }
+                        }, {
+                            key: 'handleResult',
+                            value: function handleResult(succeeded) {
+                                this.emitter.emit(succeeded ? 'success' : 'error', {
+                                    action: this.action,
+                                    text: this.selectedText,
+                                    trigger: this.trigger,
+                                    clearSelection: this.clearSelection.bind(this)
+                                });
+                            }
+                        }, {
+                            key: 'clearSelection',
+                            value: function clearSelection() {
+                                if (this.trigger) {
+                                    this.trigger.focus();
+                                }
+
+                                window.getSelection().removeAllRanges();
+                            }
+                        }, {
+                            key: 'destroy',
+                            value: function destroy() {
+                                this.removeFake();
+                            }
+                        }, {
+                            key: 'action',
+                            set: function set() {
+                                var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';
+
+                                this._action = action;
+
+                                if (this._action !== 'copy' && this._action !== 'cut') {
+                                    throw new Error('Invalid "action" value, use either "copy" or "cut"');
+                                }
+                            },
+                            get: function get() {
+                                return this._action;
+                            }
+                        }, {
+                            key: 'target',
+                            set: function set(target) {
+                                if (target !== undefined) {
+                                    if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {
+                                        if (this.action === 'copy' && target.hasAttribute('disabled')) {
+                                            throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
+                                        }
+
+                                        if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
+                                            throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
+                                        }
+
+                                        this._target = target;
+                                    } else {
+                                        throw new Error('Invalid "target" value, use a valid Element');
+                                    }
+                                }
+                            },
+                            get: function get() {
+                                return this._target;
+                            }
+                        }]);
+
+                        return ClipboardAction;
+                    }();
+
+                    module.exports = ClipboardAction;
+                });
+
+                /***/ }),
+            /* 1 */
+            /***/ (function(module, exports, __webpack_require__) {
+
+                var is = __webpack_require__(6);
+                var delegate = __webpack_require__(5);
+
+                /**
+                 * Validates all params and calls the right
+                 * listener function based on its target type.
+                 *
+                 * @param {String|HTMLElement|HTMLCollection|NodeList} target
+                 * @param {String} type
+                 * @param {Function} callback
+                 * @return {Object}
+                 */
+                function listen(target, type, callback) {
+                    if (!target && !type && !callback) {
+                        throw new Error('Missing required arguments');
+                    }
+
+                    if (!is.string(type)) {
+                        throw new TypeError('Second argument must be a String');
+                    }
+
+                    if (!is.fn(callback)) {
+                        throw new TypeError('Third argument must be a Function');
+                    }
+
+                    if (is.node(target)) {
+                        return listenNode(target, type, callback);
+                    }
+                    else if (is.nodeList(target)) {
+                        return listenNodeList(target, type, callback);
+                    }
+                    else if (is.string(target)) {
+                        return listenSelector(target, type, callback);
+                    }
+                    else {
+                        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');
+                    }
+                }
+
+                /**
+                 * Adds an event listener to a HTML element
+                 * and returns a remove listener function.
+                 *
+                 * @param {HTMLElement} node
+                 * @param {String} type
+                 * @param {Function} callback
+                 * @return {Object}
+                 */
+                function listenNode(node, type, callback) {
+                    node.addEventListener(type, callback);
+
+                    return {
+                        destroy: function() {
+                            node.removeEventListener(type, callback);
+                        }
+                    }
+                }
+
+                /**
+                 * Add an event listener to a list of HTML elements
+                 * and returns a remove listener function.
+                 *
+                 * @param {NodeList|HTMLCollection} nodeList
+                 * @param {String} type
+                 * @param {Function} callback
+                 * @return {Object}
+                 */
+                function listenNodeList(nodeList, type, callback) {
+                    Array.prototype.forEach.call(nodeList, function(node) {
+                        node.addEventListener(type, callback);
+                    });
+
+                    return {
+                        destroy: function() {
+                            Array.prototype.forEach.call(nodeList, function(node) {
+                                node.removeEventListener(type, callback);
+                            });
+                        }
+                    }
+                }
+
+                /**
+                 * Add an event listener to a selector
+                 * and returns a remove listener function.
+                 *
+                 * @param {String} selector
+                 * @param {String} type
+                 * @param {Function} callback
+                 * @return {Object}
+                 */
+                function listenSelector(selector, type, callback) {
+                    return delegate(document.body, selector, type, callback);
+                }
+
+                module.exports = listen;
+
+
+                /***/ }),
+            /* 2 */
+            /***/ (function(module, exports) {
+
+                function E () {
+                    // Keep this empty so it's easier to inherit from
+                    // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
+                }
+
+                E.prototype = {
+                    on: function (name, callback, ctx) {
+                        var e = this.e || (this.e = {});
+
+                        (e[name] || (e[name] = [])).push({
+                            fn: callback,
+                            ctx: ctx
+                        });
+
+                        return this;
+                    },
+
+                    once: function (name, callback, ctx) {
+                        var self = this;
+                        function listener () {
+                            self.off(name, listener);
+                            callback.apply(ctx, arguments);
+                        };
+
+                        listener._ = callback
+                        return this.on(name, listener, ctx);
+                    },
+
+                    emit: function (name) {
+                        var data = [].slice.call(arguments, 1);
+                        var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
+                        var i = 0;
+                        var len = evtArr.length;
+
+                        for (i; i < len; i++) {
+                            evtArr[i].fn.apply(evtArr[i].ctx, data);
+                        }
+
+                        return this;
+                    },
+
+                    off: function (name, callback) {
+                        var e = this.e || (this.e = {});
+                        var evts = e[name];
+                        var liveEvents = [];
+
+                        if (evts && callback) {
+                            for (var i = 0, len = evts.length; i < len; i++) {
+                                if (evts[i].fn !== callback && evts[i].fn._ !== callback)
+                                    liveEvents.push(evts[i]);
+                            }
+                        }
+
+                        // Remove event from queue to prevent memory leak
+                        // Suggested by https://github.com/lazd
+                        // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
+
+                        (liveEvents.length)
+                            ? e[name] = liveEvents
+                            : delete e[name];
+
+                        return this;
+                    }
+                };
+
+                module.exports = E;
+
+
+                /***/ }),
+            /* 3 */
+            /***/ (function(module, exports, __webpack_require__) {
+
+                var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
+                    if (true) {
+                        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(0), __webpack_require__(2), __webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
+                            __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
+                                (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
+                        __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+                    } else if (typeof exports !== "undefined") {
+                        factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));
+                    } else {
+                        var mod = {
+                            exports: {}
+                        };
+                        factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);
+                        global.clipboard = mod.exports;
+                    }
+                })(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {
+                    'use strict';
+
+                    var _clipboardAction2 = _interopRequireDefault(_clipboardAction);
+
+                    var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);
+
+                    var _goodListener2 = _interopRequireDefault(_goodListener);
+
+                    function _interopRequireDefault(obj) {
+                        return obj && obj.__esModule ? obj : {
+                            default: obj
+                        };
+                    }
+
+                    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;
+                    };
+
+                    function _classCallCheck(instance, Constructor) {
+                        if (!(instance instanceof Constructor)) {
+                            throw new TypeError("Cannot call a class as a function");
+                        }
+                    }
+
+                    var _createClass = function () {
+                        function defineProperties(target, props) {
+                            for (var i = 0; i < props.length; i++) {
+                                var descriptor = props[i];
+                                descriptor.enumerable = descriptor.enumerable || false;
+                                descriptor.configurable = true;
+                                if ("value" in descriptor) descriptor.writable = true;
+                                Object.defineProperty(target, descriptor.key, descriptor);
+                            }
+                        }
+
+                        return function (Constructor, protoProps, staticProps) {
+                            if (protoProps) defineProperties(Constructor.prototype, protoProps);
+                            if (staticProps) defineProperties(Constructor, staticProps);
+                            return Constructor;
+                        };
+                    }();
+
+                    function _possibleConstructorReturn(self, call) {
+                        if (!self) {
+                            throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+                        }
+
+                        return call && (typeof call === "object" || typeof call === "function") ? call : self;
+                    }
+
+                    function _inherits(subClass, superClass) {
+                        if (typeof superClass !== "function" && superClass !== null) {
+                            throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
+                        }
+
+                        subClass.prototype = Object.create(superClass && superClass.prototype, {
+                            constructor: {
+                                value: subClass,
+                                enumerable: false,
+                                writable: true,
+                                configurable: true
+                            }
+                        });
+                        if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
+                    }
+
+                    var Clipboard = function (_Emitter) {
+                        _inherits(Clipboard, _Emitter);
+
+                        /**
+                         * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
+                         * @param {Object} options
+                         */
+                        function Clipboard(trigger, options) {
+                            _classCallCheck(this, Clipboard);
+
+                            var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));
+
+                            _this.resolveOptions(options);
+                            _this.listenClick(trigger);
+                            return _this;
+                        }
+
+                        /**
+                         * Defines if attributes would be resolved using internal setter functions
+                         * or custom functions that were passed in the constructor.
+                         * @param {Object} options
+                         */
+
+
+                        _createClass(Clipboard, [{
+                            key: 'resolveOptions',
+                            value: function resolveOptions() {
+                                var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+                                this.action = typeof options.action === 'function' ? options.action : this.defaultAction;
+                                this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;
+                                this.text = typeof options.text === 'function' ? options.text : this.defaultText;
+                                this.container = _typeof(options.container) === 'object' ? options.container : document.body;
+                            }
+                        }, {
+                            key: 'listenClick',
+                            value: function listenClick(trigger) {
+                                var _this2 = this;
+
+                                this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {
+                                    return _this2.onClick(e);
+                                });
+                            }
+                        }, {
+                            key: 'onClick',
+                            value: function onClick(e) {
+                                var trigger = e.delegateTarget || e.currentTarget;
+
+                                if (this.clipboardAction) {
+                                    this.clipboardAction = null;
+                                }
+
+                                this.clipboardAction = new _clipboardAction2.default({
+                                    action: this.action(trigger),
+                                    target: this.target(trigger),
+                                    text: this.text(trigger),
+                                    container: this.container,
+                                    trigger: trigger,
+                                    emitter: this
+                                });
+                            }
+                        }, {
+                            key: 'defaultAction',
+                            value: function defaultAction(trigger) {
+                                return getAttributeValue('action', trigger);
+                            }
+                        }, {
+                            key: 'defaultTarget',
+                            value: function defaultTarget(trigger) {
+                                var selector = getAttributeValue('target', trigger);
+
+                                if (selector) {
+                                    return document.querySelector(selector);
+                                }
+                            }
+                        }, {
+                            key: 'defaultText',
+                            value: function defaultText(trigger) {
+                                return getAttributeValue('text', trigger);
+                            }
+                        }, {
+                            key: 'destroy',
+                            value: function destroy() {
+                                this.listener.destroy();
+
+                                if (this.clipboardAction) {
+                                    this.clipboardAction.destroy();
+                                    this.clipboardAction = null;
+                                }
+                            }
+                        }], [{
+                            key: 'isSupported',
+                            value: function isSupported() {
+                                var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
+
+                                var actions = typeof action === 'string' ? [action] : action;
+                                var support = !!document.queryCommandSupported;
+
+                                actions.forEach(function (action) {
+                                    support = support && !!document.queryCommandSupported(action);
+                                });
+
+                                return support;
+                            }
+                        }]);
+
+                        return Clipboard;
+                    }(_tinyEmitter2.default);
+
+                    /**
+                     * Helper function to retrieve attribute value.
+                     * @param {String} suffix
+                     * @param {Element} element
+                     */
+                    function getAttributeValue(suffix, element) {
+                        var attribute = 'data-clipboard-' + suffix;
+
+                        if (!element.hasAttribute(attribute)) {
+                            return;
+                        }
+
+                        return element.getAttribute(attribute);
+                    }
+
+                    module.exports = Clipboard;
+                });
+
+                /***/ }),
+            /* 4 */
+            /***/ (function(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 (typeof element.matches === 'function' &&
+                            element.matches(selector)) {
+                            return element;
+                        }
+                        element = element.parentNode;
+                    }
+                }
+
+                module.exports = closest;
+
+
+                /***/ }),
+            /* 5 */
+            /***/ (function(module, exports, __webpack_require__) {
+
+                var closest = __webpack_require__(4);
+
+                /**
+                 * 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);
+                        }
+                    }
+                }
+
+                /**
+                 * Delegates event to a selector.
+                 *
+                 * @param {Element|String|Array} [elements]
+                 * @param {String} selector
+                 * @param {String} type
+                 * @param {Function} callback
+                 * @param {Boolean} useCapture
+                 * @return {Object}
+                 */
+                function delegate(elements, selector, type, callback, useCapture) {
+                    // Handle the regular Element usage
+                    if (typeof elements.addEventListener === 'function') {
+                        return _delegate.apply(null, arguments);
+                    }
+
+                    // Handle Element-less usage, it defaults to global delegation
+                    if (typeof type === 'function') {
+                        // Use `document` as the first parameter, then apply arguments
+                        // This is a short way to .unshift `arguments` without running into deoptimizations
+                        return _delegate.bind(null, document).apply(null, arguments);
+                    }
+
+                    // Handle Selector-based usage
+                    if (typeof elements === 'string') {
+                        elements = document.querySelectorAll(elements);
+                    }
+
+                    // Handle Array-like based usage
+                    return Array.prototype.map.call(elements, function (element) {
+                        return _delegate(element, selector, type, callback, 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;
+
+
+                /***/ }),
+            /* 6 */
+            /***/ (function(module, exports) {
+
+                /**
+                 * Check if argument is a HTML element.
+                 *
+                 * @param {Object} value
+                 * @return {Boolean}
+                 */
+                exports.node = function(value) {
+                    return value !== undefined
+                        && value instanceof HTMLElement
+                        && value.nodeType === 1;
+                };
+
+                /**
+                 * Check if argument is a list of HTML elements.
+                 *
+                 * @param {Object} value
+                 * @return {Boolean}
+                 */
+                exports.nodeList = function(value) {
+                    var type = Object.prototype.toString.call(value);
+
+                    return value !== undefined
+                        && (type === '[object NodeList]' || type === '[object HTMLCollection]')
+                        && ('length' in value)
+                        && (value.length === 0 || exports.node(value[0]));
+                };
+
+                /**
+                 * Check if argument is a string.
+                 *
+                 * @param {Object} value
+                 * @return {Boolean}
+                 */
+                exports.string = function(value) {
+                    return typeof value === 'string'
+                        || value instanceof String;
+                };
+
+                /**
+                 * Check if argument is a function.
+                 *
+                 * @param {Object} value
+                 * @return {Boolean}
+                 */
+                exports.fn = function(value) {
+                    var type = Object.prototype.toString.call(value);
+
+                    return type === '[object Function]';
+                };
+
+
+                /***/ }),
+            /* 7 */
+            /***/ (function(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;
+
+
+                /***/ })
+            /******/ ]);
+});

BIN
static/favicon.ico


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 4 - 0
static/jquery-3.2.0.min.js