jqx-es 1.1.8 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Bundle/jqx.browser.min.js +19 -14
- package/Bundle/jqx.min.js +19 -14
- package/README.md +11 -13
- package/package.json +1 -1
- package/src/DOMCleanup.js +4 -5
- package/src/HandlerFactory.js +3 -4
- package/src/JQxExtensionHelpers.js +58 -54
- package/src/JQxLog.js +147 -119
- package/src/JQxMethods.js +73 -36
- package/src/Popup.js +16 -6
- package/src/Utilities.js +2 -5
package/package.json
CHANGED
package/src/DOMCleanup.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { truncate2SingleStr, IS } from "./JQxExtensionHelpers.js";
|
|
1
|
+
import { truncate2SingleStr, IS, debugLog } from "./JQxExtensionHelpers.js";
|
|
2
2
|
import cleanupTagInfo from "./HTMLTags.js";
|
|
3
3
|
import {ATTRS} from "./EmbedResources.js";
|
|
4
|
-
import {debugLog} from "./JQxLog.js";
|
|
5
4
|
import {escHtml} from "./Utilities.js";
|
|
6
5
|
|
|
7
6
|
let logElementCreationErrors2Console = true;
|
|
@@ -31,7 +30,7 @@ const cleanupHtml = el2Clean => {
|
|
|
31
30
|
rawHTML: el2Clean?.parentElement?.getHTML() ?? `no html`,
|
|
32
31
|
removed: { },
|
|
33
32
|
}
|
|
34
|
-
|
|
33
|
+
|
|
35
34
|
if (IS(el2Clean, HTMLElement)) {
|
|
36
35
|
[...el2Clean.childNodes].forEach(child => {
|
|
37
36
|
if (child?.children?.length) {
|
|
@@ -58,11 +57,11 @@ const cleanupHtml = el2Clean => {
|
|
|
58
57
|
}
|
|
59
58
|
});
|
|
60
59
|
}
|
|
61
|
-
|
|
60
|
+
|
|
62
61
|
const allowed = elementCheck(child) ||
|
|
63
62
|
child.constructor === CharacterData ||
|
|
64
63
|
child.constructor === Comment;
|
|
65
|
-
|
|
64
|
+
|
|
66
65
|
if (!allowed) {
|
|
67
66
|
const tag = (child?.outerHTML || child?.textContent).trim();
|
|
68
67
|
let tagValue = truncate2SingleStr(tag, 60) ?? `EMPTY`;
|
package/src/HandlerFactory.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {isNonEmptyString} from "./Utilities.js";
|
|
1
|
+
import { isNonEmptyString } from "./Utilities.js";
|
|
3
2
|
const handlerStore = {};
|
|
4
3
|
const shouldCaptureEventTypes = [
|
|
5
4
|
`load`, `unload`, `scroll`, `focus`, `blur`, `DOMNodeRemovedFromDocument`,
|
|
6
5
|
`DOMNodeInsertedIntoDocument`, `loadstart`, `progress`, `error`, `abort`,
|
|
7
6
|
`load`, `loadend`, `pointerenter`, `pointerleave`, `readystatechange`];
|
|
8
7
|
const getCapture = eventType => !!(shouldCaptureEventTypes.find(t => t === eventType));
|
|
9
|
-
export {handlerStore as listeners, HandleFactory as default};
|
|
8
|
+
export { handlerStore as listeners, HandleFactory as default };
|
|
10
9
|
|
|
11
|
-
function HandleFactory() {
|
|
10
|
+
function HandleFactory(jqx) {
|
|
12
11
|
return function(spec) { /*NODOC*/
|
|
13
12
|
let {eventType, selector, callback, name, capture, once, canRemove} = spec;
|
|
14
13
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { createElementFromHtmlString, insertPositions, inject2DOMTree, cleanupHtml
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { createElementFromHtmlString, insertPositions, inject2DOMTree, cleanupHtml } from "./DOM.js";
|
|
2
|
+
import logFactory from "./JQxLog.js";
|
|
3
|
+
import allMethodsFactory from "./JQxMethods.js";
|
|
4
4
|
import PopupFactory from "./Popup.js";
|
|
5
|
-
import {listeners, default as HandleFactory} from "./HandlerFactory.js";
|
|
5
|
+
import { listeners, default as HandleFactory } from "./HandlerFactory.js";
|
|
6
6
|
import tagLib from "./HTMLTags.js";
|
|
7
7
|
import {
|
|
8
8
|
randomString, toDashedNotation, IS, truncateHtmlStr, tagFNFactory as $T,
|
|
@@ -10,8 +10,10 @@ import {
|
|
|
10
10
|
isNonEmptyString, resolveEventTypeParameter,
|
|
11
11
|
} from "./Utilities.js";
|
|
12
12
|
let static4Docs = {};
|
|
13
|
+
let instanceGetters, instanceMethods, $, systemLogger, debugLogger;
|
|
14
|
+
|
|
13
15
|
const {
|
|
14
|
-
|
|
16
|
+
isCommentOrTextNode, isNode,
|
|
15
17
|
isHtmlString, isArrayOfHtmlElements, isArrayOfHtmlStrings, ElemArray2HtmlString,
|
|
16
18
|
input2Collection, setCollectionFromCssSelector, addHandlerId, cssRuleEdit,
|
|
17
19
|
addFn, elems4Docs } = smallHelpersFactory();
|
|
@@ -20,8 +22,6 @@ const {
|
|
|
20
22
|
function smallHelpersFactory() {
|
|
21
23
|
const cssRuleEdit = styleFactory( { createWithId: `JQxStylesheet` } );
|
|
22
24
|
const addFn = (name, fn) => instanceMethods[name] = (self, ...params) => fn(self, ...params);
|
|
23
|
-
const instanceMethods = allMethods.instanceExtensions;
|
|
24
|
-
const instanceGetters = allMethods.factoryExtensions;
|
|
25
25
|
const isCommentOrTextNode = elem => IS(elem, Comment, Text);
|
|
26
26
|
const isNode = input => IS(input, Text, HTMLElement, Comment);
|
|
27
27
|
const isComment = input => IS(input, Comment);
|
|
@@ -60,10 +60,9 @@ function smallHelpersFactory() {
|
|
|
60
60
|
.sort( (a, b) => a.localeCompare(b));
|
|
61
61
|
|
|
62
62
|
return {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
addFn, elems4Docs };
|
|
63
|
+
isCommentOrTextNode, isNode, isComment, isText, isHtmlString, isArrayOfHtmlElements,
|
|
64
|
+
isArrayOfHtmlStrings, ElemArray2HtmlString, input2Collection, setCollectionFromCssSelector,
|
|
65
|
+
addHandlerId, cssRuleEdit, addFn, elems4Docs };
|
|
67
66
|
}
|
|
68
67
|
|
|
69
68
|
function proxify(instance) {
|
|
@@ -148,14 +147,12 @@ function virtualFactory(jqx) {
|
|
|
148
147
|
|
|
149
148
|
function combineObjectSources(...sources) {
|
|
150
149
|
const result = {};
|
|
151
|
-
|
|
152
150
|
for (const source of sources) {
|
|
153
151
|
const descriptors = Object.getOwnPropertyDescriptors(source);
|
|
154
152
|
for (const [key, descriptor] of Object.entries(descriptors)) {
|
|
155
153
|
!(key in result) && Object.defineProperty(result, key, descriptor);
|
|
156
154
|
}
|
|
157
155
|
}
|
|
158
|
-
|
|
159
156
|
return result;
|
|
160
157
|
}
|
|
161
158
|
|
|
@@ -166,7 +163,6 @@ function tagNotAllowed(tagName) {
|
|
|
166
163
|
|
|
167
164
|
function tagGetterFactory(tagName, cando, jqx, webComponentTagName) {
|
|
168
165
|
tagName = toDashedNotation(webComponentTagName || tagName.toLowerCase());
|
|
169
|
-
|
|
170
166
|
return {
|
|
171
167
|
get() {
|
|
172
168
|
return (...args) => {
|
|
@@ -182,7 +178,6 @@ function tagGetterFactory(tagName, cando, jqx, webComponentTagName) {
|
|
|
182
178
|
function addGetters(tag, cando, jqx, webComponentTagName) {
|
|
183
179
|
tag = tag.toLowerCase();
|
|
184
180
|
const jqxGetterForThisTag = tagGetterFactory(tag, cando, jqx, webComponentTagName);
|
|
185
|
-
|
|
186
181
|
return webComponentTagName
|
|
187
182
|
? { [webComponentTagName]: jqxGetterForThisTag, [toCamelcase(webComponentTagName)]: jqxGetterForThisTag, }
|
|
188
183
|
: { [tag]: jqxGetterForThisTag, [tag.toUpperCase()]: jqxGetterForThisTag, };
|
|
@@ -223,10 +218,6 @@ function delegateCaptureFactory(listen) {
|
|
|
223
218
|
canRemove = IS(canRemove, Boolean) ? canRemove : false;
|
|
224
219
|
const params = { eventType: typesResolved, selector: selector || origin, capture,
|
|
225
220
|
name: specifiedName, once, canRemove};
|
|
226
|
-
const doHandle = handler => {
|
|
227
|
-
params.name = specifiedName;
|
|
228
|
-
IS(handler, Function) && listen({...params, callback: handler});
|
|
229
|
-
}
|
|
230
221
|
switch(true) {
|
|
231
222
|
case IS(typesResolved, Array) && typesResolved.length > 0:
|
|
232
223
|
for (const type of typesResolved) {
|
|
@@ -234,8 +225,12 @@ function delegateCaptureFactory(listen) {
|
|
|
234
225
|
for (const handler of handlers) { doHandle(handler); }
|
|
235
226
|
}
|
|
236
227
|
return;
|
|
237
|
-
default:
|
|
238
|
-
|
|
228
|
+
default: for (const handler of handlers) { doHandle(handler); }
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function doHandle(handler) {
|
|
232
|
+
params.name = specifiedName;
|
|
233
|
+
IS(handler, Function) && listen({...params, callback: handler});
|
|
239
234
|
}
|
|
240
235
|
}
|
|
241
236
|
}
|
|
@@ -248,51 +243,58 @@ function getNamedListener(type, name) {
|
|
|
248
243
|
}
|
|
249
244
|
}
|
|
250
245
|
|
|
246
|
+
function popupGetter(jqx) {
|
|
247
|
+
if (!jqx.activePopup) {
|
|
248
|
+
Object.defineProperty(
|
|
249
|
+
jqx, `activePopup`, {
|
|
250
|
+
value: PopupFactory(jqx),
|
|
251
|
+
enumerable: false
|
|
252
|
+
} );
|
|
253
|
+
}
|
|
254
|
+
return jqx.activePopup;
|
|
255
|
+
}
|
|
256
|
+
|
|
251
257
|
function staticMethodsFactory(jqx) {
|
|
258
|
+
const { debugLog, Log, systemLog } = logFactory(jqx);
|
|
259
|
+
const { factoryExtensions, instanceExtensions } = allMethodsFactory(jqx);
|
|
260
|
+
systemLogger = systemLog;
|
|
261
|
+
debugLogger = debugLog;
|
|
262
|
+
instanceGetters = factoryExtensions;
|
|
263
|
+
instanceMethods = instanceExtensions;
|
|
264
|
+
$ = jqx;
|
|
252
265
|
const editCssRule = (ruleOrSelector, ruleObject) => cssRuleEdit(ruleOrSelector, ruleObject);
|
|
253
266
|
const allowProhibit = allowances(jqx);
|
|
254
|
-
const handle = HandleFactory();
|
|
267
|
+
const handle = HandleFactory(jqx);
|
|
255
268
|
const capturedHandling = delegateCaptureFactory(handle);
|
|
269
|
+
|
|
256
270
|
return {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
271
|
+
log(...args) { Log(`fromStatic`, ...args); },
|
|
272
|
+
editCssRules(...rules) { for (const rule of rules) { cssRuleEdit(rule); } },
|
|
273
|
+
createStyle(id) { return styleFactory({createWithId: id || `jqx${randomString()}`}); },
|
|
274
|
+
editStylesheet(id) { return styleFactory({createWithId: id || `jqx${randomString()}`}); },
|
|
275
|
+
text(str, isComment = false) { return isComment ? jqx.comment(str) : document.createTextNode(str); },
|
|
276
|
+
node(selector, root = document) { return root.querySelector(selector, root); },
|
|
277
|
+
nodes(selector, root = document) {return [...root.querySelectorAll(selector, root)]; },
|
|
278
|
+
get editCssRule() { return editCssRule; },
|
|
279
|
+
get getNamedListener() { return getNamedListener; },
|
|
280
|
+
get debugLog() { return debugLog },
|
|
281
|
+
get virtual() { return virtualFactory(jqx); },
|
|
282
|
+
get allowTag() { return allowProhibit.allow; },
|
|
283
|
+
get prohibitTag() { return allowProhibit.prohibit; },
|
|
284
|
+
get removeCssRule() { return cssRemove; },
|
|
285
|
+
get removeCssRules() { return cssRemove; },
|
|
286
|
+
get delegate() { return delegateFactory(capturedHandling); },
|
|
287
|
+
get delegateCaptured() { return capturedHandling; } ,
|
|
288
|
+
get handle() { return capturedHandling; },
|
|
260
289
|
get at() { return insertPositions; },
|
|
261
|
-
editCssRules: (...rules) => { for (const rule of rules) { cssRuleEdit(rule); } },
|
|
262
|
-
editCssRule,
|
|
263
290
|
get setStyle() { /*deprecated*/return editCssRule; },
|
|
264
|
-
getNamedListener,
|
|
265
|
-
delegate: delegateFactory(capturedHandling),
|
|
266
|
-
delegateCaptured: capturedHandling,
|
|
267
|
-
handle: capturedHandling,
|
|
268
|
-
virtual: virtualFactory(jqx),
|
|
269
291
|
get fn() { return addFn; },
|
|
270
|
-
allowTag: allowProhibit.allow,
|
|
271
|
-
prohibitTag: allowProhibit.prohibit,
|
|
272
292
|
get lenient() { return tagLib.allowUnknownHtmlTags; },
|
|
273
293
|
get IS() { return IS; },
|
|
274
|
-
get Popup() {
|
|
275
|
-
if (!jqx.activePopup) {
|
|
276
|
-
Object.defineProperty(
|
|
277
|
-
jqx, `activePopup`, {
|
|
278
|
-
value: PopupFactory(jqx),
|
|
279
|
-
enumerable: false
|
|
280
|
-
} );
|
|
281
|
-
}
|
|
282
|
-
return jqx.activePopup;
|
|
283
|
-
},
|
|
284
|
-
popup: () => jqx.Popup,
|
|
285
|
-
createStyle: id => styleFactory({createWithId: id || `jqx${randomString()}`}),
|
|
286
|
-
editStylesheet: id => styleFactory({createWithId: id || `jqx${randomString()}`}),
|
|
287
|
-
removeCssRule: cssRemove,
|
|
288
|
-
removeCssRules: cssRemove,
|
|
289
|
-
text: (str, isComment = false) => isComment ? jqx.comment(str) : document.createTextNode(str),
|
|
290
|
-
node: (selector, root = document) => root.querySelector(selector, root),
|
|
291
|
-
nodes: (selector, root = document) => [...root.querySelectorAll(selector, root)],
|
|
294
|
+
get Popup() { return popupGetter(jqx); },
|
|
292
295
|
};
|
|
293
296
|
}
|
|
294
297
|
/* endregion functions */
|
|
295
|
-
|
|
296
298
|
export {
|
|
297
299
|
hex2RGBA,
|
|
298
300
|
addHandlerId,
|
|
@@ -314,8 +316,10 @@ export {
|
|
|
314
316
|
addJQxStaticMethods,
|
|
315
317
|
createElementFromHtmlString,
|
|
316
318
|
insertPositions,
|
|
317
|
-
systemLog,
|
|
319
|
+
systemLogger as systemLog,
|
|
320
|
+
debugLogger as debugLog,
|
|
318
321
|
IS,
|
|
319
322
|
static4Docs,
|
|
320
323
|
elems4Docs,
|
|
324
|
+
$ as jqx,
|
|
321
325
|
};
|
package/src/JQxLog.js
CHANGED
|
@@ -1,144 +1,172 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {createElementFromHtmlString, element2DOM, insertPositions} from "./DOM.js";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
let
|
|
7
|
-
let
|
|
8
|
-
let
|
|
9
|
-
let
|
|
10
|
-
let
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
const setStyling4Log = setStyle => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (logStyling) {
|
|
18
|
-
setStyling4Log(editLogRule);
|
|
19
|
-
}
|
|
20
|
-
const jqx_logger_element_name = useHtml ? `div` : `pre`;
|
|
21
|
-
const loggingFieldSet = `<div id="logBox"><div class="legend"><div></div></div><${
|
|
22
|
-
jqx_logger_element_name} id="jqx_logger"></${jqx_logger_element_name}></div>`;
|
|
23
|
-
element2DOM(createElementFromHtmlString(loggingFieldSet), undefined, insertPositions.AfterBegin);
|
|
24
|
-
return jqx.node(logBoxTextBoxId);
|
|
25
|
-
};
|
|
1
|
+
import { logTime } from "./Utilities.js";
|
|
2
|
+
import { createElementFromHtmlString, element2DOM, insertPositions } from "./DOM.js";
|
|
3
|
+
import { logStyling } from "./EmbedResources.js";
|
|
4
|
+
|
|
5
|
+
function logFactory(jqx) {
|
|
6
|
+
let logSystem = false;
|
|
7
|
+
let useLogging = false;
|
|
8
|
+
let log2Console = true;
|
|
9
|
+
let reverseLogging = false;
|
|
10
|
+
let useHtml = true;
|
|
11
|
+
let editLogRules;
|
|
12
|
+
const getLogBox = () => jqx(`#logBox`);
|
|
13
|
+
const logBoxTextBoxId = `#jqx_logger`;
|
|
14
|
+
const setStyling4Log = setStyle => {
|
|
15
|
+
logStyling?.forEach(selector => setStyle(selector));
|
|
16
|
+
};
|
|
26
17
|
|
|
27
|
-
const decodeForConsole = something => IS(something, String) &&
|
|
28
|
-
|
|
18
|
+
const decodeForConsole = something => jqx.IS(something, String) &&
|
|
19
|
+
Object.assign(document.createElement(`textarea`), {innerHTML: something}).textContent || something;
|
|
20
|
+
|
|
21
|
+
function createLogElement(jqx) {
|
|
22
|
+
// note: jqx is not fully proxified here ...
|
|
23
|
+
const jqx_logger_element_name = useHtml ? `div` : `pre`;
|
|
24
|
+
const loggingFieldSet = `
|
|
25
|
+
<div id="logBox">
|
|
26
|
+
<div class="legend">
|
|
27
|
+
<div><!--legend text--></div>
|
|
28
|
+
</div>
|
|
29
|
+
<${jqx_logger_element_name} id="jqx_logger"></${jqx_logger_element_name}>`;
|
|
30
|
+
const logBoxElement = createElementFromHtmlString(loggingFieldSet);
|
|
31
|
+
element2DOM(logBoxElement, undefined, insertPositions.AfterBegin);
|
|
32
|
+
return jqx.node(logBoxTextBoxId);
|
|
33
|
+
}
|
|
29
34
|
|
|
30
|
-
const Log = (...args) => {
|
|
35
|
+
const Log = (...args) => {
|
|
31
36
|
const isInstanceLog = args[0] === `fromStatic`;
|
|
37
|
+
|
|
38
|
+
if (!jqx.node(`#JQxLogCSS`)) {
|
|
39
|
+
editLogRules = jqx.editStylesheet(`JQxLogCSS`);
|
|
40
|
+
for (const rule of logStyling) { editLogRules(rule); }
|
|
41
|
+
}
|
|
42
|
+
|
|
32
43
|
args = isInstanceLog ? args.slice(1) : args;
|
|
33
|
-
|
|
44
|
+
|
|
45
|
+
if (isInstanceLog && !useLogging) {
|
|
34
46
|
return args.forEach(arg => console.info(`${logTime()} ✔ ${decodeForConsole(arg)}`));
|
|
35
47
|
}
|
|
36
48
|
|
|
37
49
|
if (!useLogging) { return; }
|
|
38
50
|
|
|
39
|
-
if (!log2Console && !jqx.node(`#logBox`)) {
|
|
40
|
-
editLogRule = jqx.createStyle(`JQxLogCSS`);
|
|
41
|
-
createLogElement();
|
|
42
|
-
}
|
|
51
|
+
if (!log2Console && !jqx.node(`#logBox`)) { createLogElement(jqx); }
|
|
43
52
|
|
|
44
|
-
const logLine = arg => `${IS(arg, Object) ? JSON.stringify(arg, null, 2) : arg}\n`;
|
|
53
|
+
const logLine = arg => `${jqx.IS(arg, Object) ? JSON.stringify(arg, null, 2) : arg}\n`;
|
|
45
54
|
|
|
46
|
-
args.forEach(
|
|
55
|
+
args.forEach(arg => log2Console
|
|
47
56
|
? console.info(`${logTime()} ✔ ${decodeForConsole(arg)}`)
|
|
48
57
|
: jqx.node(`#jqx_logger`).insertAdjacentHTML(
|
|
49
|
-
|
|
50
|
-
|
|
58
|
+
reverseLogging ? `afterbegin` : `beforeend`,
|
|
59
|
+
`<div class="entry">${logTime()} ${logLine(arg.replace(/\n/g, `<br>`))}</div>`)
|
|
51
60
|
);
|
|
52
|
-
};
|
|
61
|
+
};
|
|
53
62
|
|
|
54
|
-
const logActive = {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
63
|
+
const logActive = {
|
|
64
|
+
on() {
|
|
65
|
+
useLogging = true;
|
|
66
|
+
Log(`Logging activated (CSS in style#JQxLogCSS)`);
|
|
67
|
+
},
|
|
68
|
+
off() {
|
|
69
|
+
useLogging = false;
|
|
70
|
+
console.log(`${logTime()} ✔ Logging deactivated`)
|
|
71
|
+
},
|
|
72
|
+
}
|
|
58
73
|
|
|
59
|
-
const setSystemLog = {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
if (!getLogBox().isEmpty) {
|
|
81
|
-
setSystemLog.off();
|
|
82
|
-
Log(`Debug logging stopped`);
|
|
83
|
-
getLogBox()?.removeClass(`visible`);
|
|
84
|
-
}
|
|
85
|
-
logActive.off();
|
|
86
|
-
return debugLog;
|
|
87
|
-
},
|
|
88
|
-
toConsole: {
|
|
74
|
+
const setSystemLog = {
|
|
75
|
+
on() {
|
|
76
|
+
logSystem = true;
|
|
77
|
+
},
|
|
78
|
+
off() {
|
|
79
|
+
logSystem = false;
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const systemLog = (...logTxt) => logSystem && Log(...logTxt);
|
|
84
|
+
|
|
85
|
+
const debugLog = {
|
|
86
|
+
get isConsole() {
|
|
87
|
+
return log2Console === true;
|
|
88
|
+
},
|
|
89
|
+
get isOn() {
|
|
90
|
+
return useLogging;
|
|
91
|
+
},
|
|
92
|
+
isVisible: function () {
|
|
93
|
+
return jqx(`#jqx_logger`).is(`visible`);
|
|
94
|
+
},
|
|
89
95
|
on() {
|
|
90
|
-
|
|
91
|
-
|
|
96
|
+
logActive.on();
|
|
97
|
+
setSystemLog.on();
|
|
98
|
+
if (!log2Console) {
|
|
99
|
+
getLogBox()?.addClass(`visible`);
|
|
100
|
+
}
|
|
101
|
+
Log(`Debug logging started. Every call to [jqx instance] is logged`);
|
|
92
102
|
return debugLog;
|
|
93
103
|
},
|
|
94
104
|
off() {
|
|
95
|
-
|
|
96
|
-
|
|
105
|
+
if (!getLogBox().isEmpty) {
|
|
106
|
+
setSystemLog.off();
|
|
107
|
+
Log(`Debug logging stopped`);
|
|
108
|
+
getLogBox()?.removeClass(`visible`);
|
|
109
|
+
}
|
|
110
|
+
logActive.off();
|
|
97
111
|
return debugLog;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
getLogBox()?.remove();
|
|
104
|
-
console.clear();
|
|
105
|
-
console.log(`${logTime()} logging completely disabled and all entries removed`);
|
|
106
|
-
return debugLog;
|
|
107
|
-
},
|
|
108
|
-
log: function(...args) {
|
|
109
|
-
Log(...args);
|
|
110
|
-
return debugLog;
|
|
111
|
-
},
|
|
112
|
-
hide() {
|
|
113
|
-
getLogBox()?.removeClass(`visible`);
|
|
114
|
-
return debugLog;
|
|
115
|
-
},
|
|
116
|
-
show: () => {
|
|
117
|
-
getLogBox()?.addClass(`visible`);
|
|
118
|
-
return debugLog;
|
|
119
|
-
},
|
|
120
|
-
get reversed() {
|
|
121
|
-
return {
|
|
122
|
-
on: () => {
|
|
123
|
-
reverseLogging = true;
|
|
124
|
-
Log(`Reverse logging set: now logging bottom to top (latest first)`);
|
|
125
|
-
jqx(`#logBox .legend`).addClass(`reversed`);
|
|
112
|
+
},
|
|
113
|
+
toConsole: {
|
|
114
|
+
on() {
|
|
115
|
+
log2Console = true;
|
|
116
|
+
Log(`Started logging to console`);
|
|
126
117
|
return debugLog;
|
|
127
118
|
},
|
|
128
|
-
off
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
Log(`Reverse logging reset: now logging chronological (latest last)`);
|
|
119
|
+
off() {
|
|
120
|
+
Log(`Stopped logging to console (except error messages)`);
|
|
121
|
+
log2Console = false;
|
|
132
122
|
return debugLog;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
remove() {
|
|
126
|
+
logActive.off();
|
|
127
|
+
setSystemLog.off();
|
|
128
|
+
getLogBox()?.remove();
|
|
129
|
+
console.clear();
|
|
130
|
+
console.log(`${logTime()} logging completely disabled and all entries removed`);
|
|
131
|
+
return debugLog;
|
|
132
|
+
},
|
|
133
|
+
log: function (...args) {
|
|
134
|
+
Log(...args);
|
|
135
|
+
return debugLog;
|
|
136
|
+
},
|
|
137
|
+
hide() {
|
|
138
|
+
getLogBox()?.removeClass(`visible`);
|
|
139
|
+
return debugLog;
|
|
140
|
+
},
|
|
141
|
+
show: () => {
|
|
142
|
+
getLogBox()?.addClass(`visible`);
|
|
143
|
+
return debugLog;
|
|
144
|
+
},
|
|
145
|
+
get reversed() {
|
|
146
|
+
return {
|
|
147
|
+
on: () => {
|
|
148
|
+
reverseLogging = true;
|
|
149
|
+
Log(`Reverse logging set: now logging bottom to top (latest first)`);
|
|
150
|
+
jqx(`#logBox .legend`).addClass(`reversed`);
|
|
151
|
+
return debugLog;
|
|
152
|
+
},
|
|
153
|
+
off: () => {
|
|
154
|
+
reverseLogging = false;
|
|
155
|
+
jqx(`#logBox .legend`).removeClass(`reversed`);
|
|
156
|
+
Log(`Reverse logging reset: now logging chronological (latest last)`);
|
|
157
|
+
return debugLog;
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
},
|
|
161
|
+
clear() {
|
|
162
|
+
jqx(logBoxTextBoxId).text(``);
|
|
163
|
+
console.clear();
|
|
164
|
+
Log(`Logging cleared`);
|
|
165
|
+
return debugLog;
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
return { Log, debugLog, systemLog };
|
|
170
|
+
}
|
|
143
171
|
|
|
144
|
-
export
|
|
172
|
+
export default logFactory;
|