PluginProbe
Filter Everything — WordPress & WooCommerce Filters / 1.9.7
Filter Everything — WordPress & WooCommerce Filters v1.9.7
1.9.7 1.9.6 1.9.5 1.9.4 1.9.3 1.9.2.2 1.9.2.1 trunk 1.2.1 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.4.1 1.4.4 1.4.5 1.4.8 1.4.9 1.5.0 1.5.1 1.6.0 1.6.1 1.6.2 All 52 releases
filter-everything / assets / js / js-element-picker / element-picker.bundle.js

element-picker.bundle.js in Filter Everything — WordPress & WooCommerce Filters 1.9.7, at assets/js/js-element-picker/element-picker.bundle.js

179 lines 7.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*!
2 * js-element-picker v1.0.1
3 * JavaScript and TypeScript library for selecting elements on a web page.
4 *
5 * @author maxion03
6 * @license ISC
7 * @repository https://github.com/MaxioN03/js-element-picker
8 *
9 * Bundled with Browserify
10 */
11 (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.ElementPicker = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
12 "use strict";
13 var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15 return new (P || (P = Promise))(function (resolve, reject) {
16 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19 step((generator = generator.apply(thisArg, _arguments || [])).next());
20 });
21 };
22 Object.defineProperty(exports, "__esModule", { value: true });
23 exports.ElementPicker = void 0;
24 const WrapperDrawer_1 = require("./WrapperDrawer");
25 class ElementPicker {
26 constructor(props) {
27 this.initialized = false;
28 this.previousTarget = null;
29 this.wrapperDrawer = null;
30 this.container = null;
31 this.onTargetChange = null;
32 this.onClick = null;
33 if (document.readyState === 'loading') {
34 document.addEventListener('DOMContentLoaded', () => {
35 this.initialize(props);
36 });
37 }
38 else {
39 this.initialize(props);
40 }
41 }
42 initialize(props) {
43 const { picking, container, overlayDrawer, onTargetChange, onClick } = props !== null && props !== void 0 ? props : {};
44 this.container = container !== null && container !== void 0 ? container : document;
45 this.wrapperDrawer = new WrapperDrawer_1.WrapperDrawer(overlayDrawer);
46 if (onTargetChange) {
47 this.onTargetChange = onTargetChange;
48 }
49 if (onClick) {
50 this.onClick = onClick;
51 }
52 this.handleMouseMove = this.handleMouseMove.bind(this);
53 this.handleClick = this.handleClick.bind(this);
54 if (picking) {
55 this.startPicking();
56 }
57 this.initialized = true;
58 }
59 handleMouseMove(event) {
60 var _a, _b, _c;
61 const target = event.target;
62 const { x, y, width, height } = target === null || target === void 0 ? void 0 : target.getBoundingClientRect();
63 if (target !== this.previousTarget) {
64 if (!this.checkElementIfOddGlobal(target)) {
65 (_a = this.wrapperDrawer) === null || _a === void 0 ? void 0 : _a.draw({ x, y, width, height }, event);
66 (_b = this.onTargetChange) === null || _b === void 0 ? void 0 : _b.call(this, target, event);
67 }
68 else {
69 (_c = this.wrapperDrawer) === null || _c === void 0 ? void 0 : _c.draw(null, null);
70 }
71 this.previousTarget = target;
72 }
73 }
74 handleClick(event) {
75 var _a;
76 event.stopPropagation();
77 event.preventDefault();
78 (_a = this.onClick) === null || _a === void 0 ? void 0 : _a.call(this, event.target, event);
79 }
80 waitForInitialization() {
81 const CHECK_INTERVAl = 100;
82 return new Promise((resolve) => {
83 if (this.initialized) {
84 resolve(true);
85 }
86 else {
87 const waitForInitializedInterval = setInterval(() => {
88 if (this.initialized) {
89 clearInterval(waitForInitializedInterval);
90 resolve(true);
91 }
92 }, CHECK_INTERVAl);
93 }
94 });
95 }
96 checkElementIfOddGlobal(element) {
97 return element === document.documentElement || element === document.body;
98 }
99 startPicking() {
100 return __awaiter(this, void 0, void 0, function* () {
101 yield this.waitForInitialization();
102 const container = this.container;
103 container.addEventListener('click', this.handleClick, false);
104 container.addEventListener('mousemove', this.handleMouseMove, false);
105 });
106 }
107 stopPicking() {
108 return __awaiter(this, void 0, void 0, function* () {
109 var _a;
110 yield this.waitForInitialization();
111 const container = this.container;
112 container.removeEventListener('click', this.handleClick, false);
113 container.removeEventListener('mousemove', this.handleMouseMove, false);
114 (_a = this.wrapperDrawer) === null || _a === void 0 ? void 0 : _a.draw(null, null);
115 });
116 }
117 }
118 exports.ElementPicker = ElementPicker;
119
120 },{"./WrapperDrawer":2}],2:[function(require,module,exports){
121 "use strict";
122 Object.defineProperty(exports, "__esModule", { value: true });
123 exports.WrapperDrawer = void 0;
124 class WrapperDrawer {
125 constructor(overlayDrawer) {
126 this.wrapper = null;
127 this.overlayDrawer = null;
128 this.defaultOverlayDrawer = () => {
129 const defaultOverlay = document.createElement('div');
130 defaultOverlay.setAttribute('data-testid', 'default-overlay');
131 defaultOverlay.style.width = '100%';
132 defaultOverlay.style.height = '100%';
133 defaultOverlay.style.background = 'rgba(0, 0, 255, 0.5)';
134 return defaultOverlay;
135 };
136 this.initialize();
137 document.body.appendChild(this.wrapper);
138 this.overlayDrawer = overlayDrawer !== null && overlayDrawer !== void 0 ? overlayDrawer : this.defaultOverlayDrawer;
139 }
140 initialize() {
141 this.wrapper = document.createElement('div');
142 this.wrapper.style.position = 'fixed';
143 this.wrapper.style.display = 'none';
144 this.wrapper.style.pointerEvents = 'none';
145 this.wrapper.style.zIndex = '99999';
146 }
147 draw(position, event) {
148 var _a;
149 if (!this.wrapper) {
150 return;
151 }
152 this.wrapper.innerHTML = '';
153 const overlay = (_a = this.overlayDrawer) === null || _a === void 0 ? void 0 : _a.call(this, position, event);
154 this.wrapper.append(overlay);
155 if (position) {
156 const { x, y, width, height } = position;
157 this.wrapper.style.left = `${x}px`;
158 this.wrapper.style.top = `${y}px`;
159 this.wrapper.style.width = `${width}px`;
160 this.wrapper.style.height = `${height}px`;
161 this.wrapper.style.display = 'block';
162 }
163 else {
164 this.wrapper.style.display = 'none';
165 }
166 }
167 }
168 exports.WrapperDrawer = WrapperDrawer;
169
170 },{}],3:[function(require,module,exports){
171 "use strict";
172 Object.defineProperty(exports, "__esModule", { value: true });
173 exports.ElementPicker = void 0;
174 const ElementPicker_1 = require("./ElementPicker");
175 Object.defineProperty(exports, "ElementPicker", { enumerable: true, get: function () { return ElementPicker_1.ElementPicker; } });
176
177 },{"./ElementPicker":1}]},{},[3])(3)
178 });
179