soiz commited on
Commit
de7487c
·
verified ·
1 Parent(s): ada97f6

Update cl.js

Browse files
Files changed (1) hide show
  1. cl.js +51 -41
cl.js CHANGED
@@ -1,4 +1,11 @@
1
  (function() {
 
 
 
 
 
 
 
2
  var s;
3
  if (!document.querySelector('style.EVALDOTJSSTYLETHING')) {
4
  s = document.createElement("style");
@@ -10,10 +17,10 @@
10
  width: 500px;
11
  height: 350px;
12
  background: rgba(0,0,0,0.8);
13
- top: 50px;
14
  left: 0;
15
  right: 0;
16
- margin: auto;
17
  font-size: 0;
18
  z-index: 100000;
19
  }
@@ -84,23 +91,31 @@
84
  evalcontainer > evaloutput > evaloutputentry.EVALLOG::before {
85
  content: "";
86
  }
87
- .close-button {
88
  position: absolute;
89
- top: 10px;
90
  right: 10px;
91
- background: rgba(255, 0, 0, 0.8);
92
- color: white;
93
- border: none;
94
- padding: 5px;
95
  cursor: pointer;
96
- z-index: 100001; /* above the container */
97
  }
98
  `;
99
  document.head.appendChild(s);
100
  }
 
101
  if (!document.querySelector('evalcontainer')) {
102
  s = document.createElement("evalcontainer");
103
  var output = document.createElement("evaloutput");
 
 
 
 
 
 
 
 
 
104
 
105
  function createOutputEntry(words) {
106
  var t = document.createElement("evaloutputentry");
@@ -108,18 +123,11 @@
108
  t.className = 'EVALLOG';
109
  output.appendChild(t);
110
  }
 
111
  createOutputEntry('To close this window, do evaljs.close();');
112
  createOutputEntry('To clear, do evaljs.clear();');
113
  s.appendChild(output);
114
 
115
- var closeButton = document.createElement("button");
116
- closeButton.className = 'close-button';
117
- closeButton.textContent = '×';
118
- closeButton.onclick = function() {
119
- evaljs.close();
120
- };
121
- s.appendChild(closeButton);
122
-
123
  var textarea = document.createElement("textarea");
124
  textarea.className = 'EVALTEXTAREA';
125
  textarea.focus();
@@ -158,7 +166,7 @@
158
  t.classList.add('EVALSTRING');
159
  break;
160
  }
161
- } catch (e) {
162
  evaloutput = e;
163
  t.classList.add('EVALERROR');
164
  }
@@ -172,8 +180,6 @@
172
  };
173
  s.appendChild(textarea);
174
  document.body.appendChild(s);
175
-
176
- // Initialize evaljs object
177
  evaljs = {
178
  window: s,
179
  clear() {
@@ -184,27 +190,6 @@
184
  }
185
  };
186
 
187
- // Interact.js for drag-and-drop functionality
188
- interact(s)
189
- .draggable({
190
- onmove: dragMoveListener
191
- });
192
-
193
- function dragMoveListener(event) {
194
- var target = event.target,
195
- // keep the dragged position in the data-x/data-y attributes
196
- x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx,
197
- y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy;
198
-
199
- // translate the element
200
- target.style.transform = 'translate(' + x + 'px, ' + y + 'px)';
201
-
202
- // update the position attributes
203
- target.setAttribute('data-x', x);
204
- target.setAttribute('data-y', y);
205
- }
206
-
207
- // Adjust console methods
208
  function merp(u, t) {
209
  switch (typeof u) {
210
  case 'object':
@@ -233,6 +218,7 @@
233
  }
234
  return u;
235
  }
 
236
  console.log = function() {
237
  for (var i = 0; i < arguments.length; i++) {
238
  var t = document.createElement("evaloutputentry"), u = arguments[i];
@@ -242,6 +228,7 @@
242
  output.appendChild(t);
243
  }
244
  };
 
245
  console.warn = function() {
246
  for (var i = 0; i < arguments.length; i++) {
247
  var t = document.createElement("evaloutputentry"), u = arguments[i];
@@ -252,6 +239,7 @@
252
  output.appendChild(t);
253
  }
254
  };
 
255
  console.error = function() {
256
  for (var i = 0; i < arguments.length; i++) {
257
  var t = document.createElement("evaloutputentry"), u = arguments[i];
@@ -262,5 +250,27 @@
262
  output.appendChild(t);
263
  }
264
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
  }
266
  }());
 
1
  (function() {
2
+ // Load interact.js dynamically if it is not already loaded
3
+ if (!window.interact) {
4
+ var script = document.createElement("script");
5
+ script.src = "https://cdn.jsdelivr.net/npm/interactjs/dist/interact.min.js";
6
+ document.head.appendChild(script);
7
+ }
8
+
9
  var s;
10
  if (!document.querySelector('style.EVALDOTJSSTYLETHING')) {
11
  s = document.createElement("style");
 
17
  width: 500px;
18
  height: 350px;
19
  background: rgba(0,0,0,0.8);
20
+ top: 0;
21
  left: 0;
22
  right: 0;
23
+ margin: 50px auto;
24
  font-size: 0;
25
  z-index: 100000;
26
  }
 
91
  evalcontainer > evaloutput > evaloutputentry.EVALLOG::before {
92
  content: "";
93
  }
94
+ .eval-close-button {
95
  position: absolute;
96
+ top: 5px;
97
  right: 10px;
98
+ font-size: 18px;
99
+ color: #fff;
 
 
100
  cursor: pointer;
101
+ font-weight: bold;
102
  }
103
  `;
104
  document.head.appendChild(s);
105
  }
106
+
107
  if (!document.querySelector('evalcontainer')) {
108
  s = document.createElement("evalcontainer");
109
  var output = document.createElement("evaloutput");
110
+
111
+ // Create close button
112
+ var closeButton = document.createElement("span");
113
+ closeButton.innerHTML = "×";
114
+ closeButton.className = "eval-close-button";
115
+ closeButton.onclick = function() {
116
+ evaljs.close();
117
+ };
118
+ s.appendChild(closeButton);
119
 
120
  function createOutputEntry(words) {
121
  var t = document.createElement("evaloutputentry");
 
123
  t.className = 'EVALLOG';
124
  output.appendChild(t);
125
  }
126
+
127
  createOutputEntry('To close this window, do evaljs.close();');
128
  createOutputEntry('To clear, do evaljs.clear();');
129
  s.appendChild(output);
130
 
 
 
 
 
 
 
 
 
131
  var textarea = document.createElement("textarea");
132
  textarea.className = 'EVALTEXTAREA';
133
  textarea.focus();
 
166
  t.classList.add('EVALSTRING');
167
  break;
168
  }
169
+ } catch(e) {
170
  evaloutput = e;
171
  t.classList.add('EVALERROR');
172
  }
 
180
  };
181
  s.appendChild(textarea);
182
  document.body.appendChild(s);
 
 
183
  evaljs = {
184
  window: s,
185
  clear() {
 
190
  }
191
  };
192
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  function merp(u, t) {
194
  switch (typeof u) {
195
  case 'object':
 
218
  }
219
  return u;
220
  }
221
+
222
  console.log = function() {
223
  for (var i = 0; i < arguments.length; i++) {
224
  var t = document.createElement("evaloutputentry"), u = arguments[i];
 
228
  output.appendChild(t);
229
  }
230
  };
231
+
232
  console.warn = function() {
233
  for (var i = 0; i < arguments.length; i++) {
234
  var t = document.createElement("evaloutputentry"), u = arguments[i];
 
239
  output.appendChild(t);
240
  }
241
  };
242
+
243
  console.error = function() {
244
  for (var i = 0; i < arguments.length; i++) {
245
  var t = document.createElement("evaloutputentry"), u = arguments[i];
 
250
  output.appendChild(t);
251
  }
252
  };
253
+
254
+ // Initialize drag-and-drop using interact.js
255
+ script.onload = function() {
256
+ interact('evalcontainer').draggable({
257
+ modifiers: [
258
+ interact.modifiers.restrictRect({
259
+ restriction: 'parent',
260
+ endOnly: true
261
+ })
262
+ ],
263
+ listeners: {
264
+ move(event) {
265
+ var target = event.target;
266
+ var x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
267
+ var y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy;
268
+ target.style.transform = `translate(${x}px, ${y}px)`;
269
+ target.setAttribute('data-x', x);
270
+ target.setAttribute('data-y', y);
271
+ }
272
+ }
273
+ });
274
+ };
275
  }
276
  }());