@cocreate/utils 1.42.0 → 1.42.2
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/dist/cjs/ObjectId.js +54 -0
- package/dist/cjs/attributes.js +64 -0
- package/dist/cjs/checkValue.js +26 -0
- package/dist/cjs/clickedElement.js +48 -0
- package/dist/cjs/core.js +33 -0
- package/dist/cjs/createUpdate.js +188 -0
- package/dist/cjs/cssPath.js +60 -0
- package/dist/cjs/dataQuery.js +280 -0
- package/dist/cjs/dom.js +29 -0
- package/dist/cjs/domParser.js +44 -0
- package/dist/cjs/dotNotationToObject.js +103 -0
- package/dist/cjs/escapeHtml.js +25 -0
- package/dist/cjs/getRelativePath.js +39 -0
- package/dist/cjs/getValueFromObject.js +41 -0
- package/dist/cjs/index.js +112 -0
- package/dist/cjs/init-browser.js +4 -0
- package/dist/cjs/isValidDate.js +32 -0
- package/dist/cjs/objectToDotNotation.js +53 -0
- package/dist/cjs/objectToSearchParams.js +42 -0
- package/dist/cjs/operators copy.js +562 -0
- package/dist/cjs/operators.js +480 -0
- package/dist/cjs/parseTextToHtml.js +27 -0
- package/dist/cjs/queryElements.js +155 -0
- package/dist/cjs/safeParse.js +169 -0
- package/dist/cjs/uid.js +34 -0
- package/dist/esm/ObjectId.js +35 -0
- package/dist/esm/attributes.js +45 -0
- package/dist/esm/checkValue.js +7 -0
- package/dist/esm/clickedElement.js +29 -0
- package/dist/esm/core.js +14 -0
- package/dist/esm/createUpdate.js +185 -0
- package/dist/esm/cssPath.js +41 -0
- package/dist/esm/dataQuery.js +261 -0
- package/dist/esm/dom.js +10 -0
- package/dist/esm/domParser.js +25 -0
- package/dist/esm/dotNotationToObject.js +84 -0
- package/dist/esm/escapeHtml.js +6 -0
- package/dist/esm/getRelativePath.js +20 -0
- package/dist/esm/getValueFromObject.js +22 -0
- package/dist/esm/index.js +93 -0
- package/dist/esm/init-browser.js +4 -0
- package/dist/esm/isValidDate.js +13 -0
- package/dist/esm/objectToDotNotation.js +34 -0
- package/dist/esm/objectToSearchParams.js +23 -0
- package/dist/esm/operators copy.js +543 -0
- package/dist/esm/operators.js +461 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/parseTextToHtml.js +8 -0
- package/dist/esm/queryElements.js +136 -0
- package/dist/esm/safeParse.js +150 -0
- package/dist/esm/uid.js +15 -0
- package/package.json +9 -111
- package/src/index.js +3 -3
- package/src/operators copy.js +687 -0
- package/src/operators.js +407 -526
- package/.github/FUNDING.yml +0 -3
- package/.github/workflows/automated.yml +0 -44
- package/.github/workflows/manual.yml +0 -44
- package/CHANGELOG.md +0 -2075
- package/CoCreate.config.js +0 -23
- package/demo/index.html +0 -23
- package/docs/index.html +0 -331
- package/prettier.config.js +0 -16
- package/release.config.js +0 -22
- package/webpack.config.js +0 -65
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var ObjectId_exports = {};
|
|
19
|
+
__export(ObjectId_exports, {
|
|
20
|
+
ObjectId: () => ObjectId
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(ObjectId_exports);
|
|
23
|
+
let counter = 0;
|
|
24
|
+
function ObjectId(inputId) {
|
|
25
|
+
if (inputId && /^[0-9a-fA-F]{24}$/.test(inputId)) {
|
|
26
|
+
return {
|
|
27
|
+
timestamp: inputId.substring(0, 8),
|
|
28
|
+
processId: inputId.substring(8, 20),
|
|
29
|
+
counter: inputId.substring(20),
|
|
30
|
+
toString: function() {
|
|
31
|
+
return this.timestamp + this.processId + this.counter;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
} else if (inputId) {
|
|
35
|
+
throw new Error("Invalid ObjectId provided.");
|
|
36
|
+
}
|
|
37
|
+
const timestampHex = Math.floor(
|
|
38
|
+
new Date((/* @__PURE__ */ new Date()).toISOString()).getTime() / 1e3
|
|
39
|
+
).toString(16).padStart(8, "0");
|
|
40
|
+
const processIdHex = Math.floor(Math.random() * 17592186044416).toString(16).padStart(12, "0");
|
|
41
|
+
counter = (counter + 1) % 1e4;
|
|
42
|
+
if (counter < 2) {
|
|
43
|
+
counter = Math.floor(Math.random() * (5e3 - 100 + 1)) + 100;
|
|
44
|
+
}
|
|
45
|
+
const counterHex = counter.toString(16).padStart(4, "0");
|
|
46
|
+
return {
|
|
47
|
+
timestamp: timestampHex,
|
|
48
|
+
processId: processIdHex,
|
|
49
|
+
counter: counterHex,
|
|
50
|
+
toString: function() {
|
|
51
|
+
return this.timestamp + this.processId + this.counter;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var attributes_exports = {};
|
|
19
|
+
__export(attributes_exports, {
|
|
20
|
+
getAttributeNames: () => getAttributeNames,
|
|
21
|
+
getAttributes: () => getAttributes,
|
|
22
|
+
setAttributeNames: () => setAttributeNames
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(attributes_exports);
|
|
25
|
+
function getAttributes(el) {
|
|
26
|
+
if (!el) return;
|
|
27
|
+
let attributes = window.CoCreateConfig.attributes;
|
|
28
|
+
let object = {};
|
|
29
|
+
for (let attribute of el.attributes) {
|
|
30
|
+
let variable = attributes[attribute.name];
|
|
31
|
+
if (variable) {
|
|
32
|
+
object[variable] = el.getAttribute(attribute.name);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return object;
|
|
36
|
+
}
|
|
37
|
+
function getAttributeNames(variables) {
|
|
38
|
+
let reversedObject = {};
|
|
39
|
+
for (const key of Object.keys(CoCreateConfig.attributes)) {
|
|
40
|
+
reversedObject[CoCreateConfig.attributes[key]] = key;
|
|
41
|
+
}
|
|
42
|
+
let attributes = [];
|
|
43
|
+
for (const variable of variables) {
|
|
44
|
+
let attribute = reversedObject[variable];
|
|
45
|
+
if (attribute) attributes.push(attribute);
|
|
46
|
+
}
|
|
47
|
+
return attributes;
|
|
48
|
+
}
|
|
49
|
+
function setAttributeNames(attributes, overWrite) {
|
|
50
|
+
let reversedObject = {};
|
|
51
|
+
for (const key of Object.keys(CoCreateConfig.attributes)) {
|
|
52
|
+
reversedObject[CoCreateConfig.attributes[key]] = key;
|
|
53
|
+
}
|
|
54
|
+
for (const attribute of Object.keys(attributes)) {
|
|
55
|
+
const variable = attributes[attribute];
|
|
56
|
+
if (!reversedObject[variable] || overWrite != false)
|
|
57
|
+
reversedObject[variable] = attribute;
|
|
58
|
+
}
|
|
59
|
+
let revertObject = {};
|
|
60
|
+
for (const key of Object.keys(reversedObject)) {
|
|
61
|
+
revertObject[reversedObject[key]] = key;
|
|
62
|
+
}
|
|
63
|
+
CoCreateConfig.attributes = revertObject;
|
|
64
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var checkValue_exports = {};
|
|
19
|
+
__export(checkValue_exports, {
|
|
20
|
+
checkValue: () => checkValue
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(checkValue_exports);
|
|
23
|
+
function checkValue(value) {
|
|
24
|
+
if (/{{\s*([\w\W]+)\s*}}/g.test(value)) return false;
|
|
25
|
+
else return true;
|
|
26
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var clickedElement_exports = {};
|
|
19
|
+
__export(clickedElement_exports, {
|
|
20
|
+
clickedElement: () => clickedElement
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(clickedElement_exports);
|
|
23
|
+
function clickedElement() {
|
|
24
|
+
document.addEventListener("click", (e) => {
|
|
25
|
+
document.clickedElement = e.target;
|
|
26
|
+
});
|
|
27
|
+
try {
|
|
28
|
+
let frames = document.querySelectorAll("iframe");
|
|
29
|
+
for (let frame of frames) {
|
|
30
|
+
try {
|
|
31
|
+
let frameDocument = frame.contentDocument;
|
|
32
|
+
if (!frameDocument.clickedElementListenerAdded) {
|
|
33
|
+
frameDocument.addEventListener("click", (e) => {
|
|
34
|
+
frameDocument.clickedElement = e.target;
|
|
35
|
+
});
|
|
36
|
+
frameDocument.clickedElementListenerAdded = true;
|
|
37
|
+
}
|
|
38
|
+
} catch (iframeError) {
|
|
39
|
+
console.log(
|
|
40
|
+
`Cross-origin frame handling failed for: ${frame}`,
|
|
41
|
+
iframeError
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
} catch (e) {
|
|
46
|
+
console.log("Top-level frame document handling failed:", e);
|
|
47
|
+
}
|
|
48
|
+
}
|
package/dist/cjs/core.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var core_exports = {};
|
|
19
|
+
__export(core_exports, {
|
|
20
|
+
ObjectId: () => import_ObjectId.ObjectId,
|
|
21
|
+
checkValue: () => import_checkValue.checkValue,
|
|
22
|
+
getRelativePath: () => import_getRelativePath.getRelativePath,
|
|
23
|
+
isValidDate: () => import_isValidDate.isValidDate,
|
|
24
|
+
objectToSearchParams: () => import_objectToSearchParams.objectToSearchParams,
|
|
25
|
+
uid: () => import_uid.uid
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(core_exports);
|
|
28
|
+
var import_getRelativePath = require("./getRelativePath.js");
|
|
29
|
+
var import_ObjectId = require("./ObjectId.js");
|
|
30
|
+
var import_uid = require("./uid.js");
|
|
31
|
+
var import_checkValue = require("./checkValue.js");
|
|
32
|
+
var import_isValidDate = require("./isValidDate.js");
|
|
33
|
+
var import_objectToSearchParams = require("./objectToSearchParams.js");
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var createUpdate_exports = {};
|
|
19
|
+
__export(createUpdate_exports, {
|
|
20
|
+
createUpdate: () => createUpdate,
|
|
21
|
+
dotNotationToObject: () => import_dotNotationToObject.dotNotationToObject,
|
|
22
|
+
getValueFromObject: () => import_getValueFromObject.getValueFromObject,
|
|
23
|
+
objectToDotNotation: () => import_objectToDotNotation.objectToDotNotation
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(createUpdate_exports);
|
|
26
|
+
var import_dotNotationToObject = require("./dotNotationToObject.js");
|
|
27
|
+
var import_objectToDotNotation = require("./objectToDotNotation.js");
|
|
28
|
+
var import_getValueFromObject = require("./getValueFromObject.js");
|
|
29
|
+
function isEqualArray(arr1, arr2) {
|
|
30
|
+
if (arr1.length !== arr2.length) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
for (let i = 0; i < arr1.length; i++) {
|
|
34
|
+
if (!isEqualObject(arr1[i], arr2[i])) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
function isEqualObject(obj1, obj2) {
|
|
41
|
+
const keys1 = Object.keys(obj1);
|
|
42
|
+
const keys2 = Object.keys(obj2);
|
|
43
|
+
if (keys1.length !== keys2.length) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
for (const key of keys1) {
|
|
47
|
+
if (obj1[key] !== obj2[key]) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
function dotNotationToObjectUpdate(data, object = {}) {
|
|
54
|
+
try {
|
|
55
|
+
for (const key of Object.keys(data)) {
|
|
56
|
+
let newObject = object;
|
|
57
|
+
let keys = key.replace(/\[(\d+)\]/g, ".$1").split(".").map((k) => isNaN(k) ? k : Number(k));
|
|
58
|
+
let value = data[key];
|
|
59
|
+
let operator;
|
|
60
|
+
if (keys[0].startsWith("$")) operator = keys.shift();
|
|
61
|
+
let length = keys.length - 1;
|
|
62
|
+
for (let i = 0; i < keys.length; i++) {
|
|
63
|
+
if (length == i) {
|
|
64
|
+
if (operator) {
|
|
65
|
+
let operators = [
|
|
66
|
+
"$rename",
|
|
67
|
+
"$inc",
|
|
68
|
+
"$push",
|
|
69
|
+
"$each",
|
|
70
|
+
"$splice",
|
|
71
|
+
"$unset",
|
|
72
|
+
"$delete",
|
|
73
|
+
"$slice",
|
|
74
|
+
"$pop",
|
|
75
|
+
"$shift",
|
|
76
|
+
"$addToSet",
|
|
77
|
+
"$pull"
|
|
78
|
+
];
|
|
79
|
+
if (!operators.includes(operator)) continue;
|
|
80
|
+
if (operator === "$rename") {
|
|
81
|
+
newObject[value] = newObject[keys[i]];
|
|
82
|
+
delete newObject[keys[i]];
|
|
83
|
+
} else if (operator === "$delete" || operator === "$unset" || operator === "$slice") {
|
|
84
|
+
if (typeof keys[i] === "number") {
|
|
85
|
+
newObject.splice(keys[i], 1);
|
|
86
|
+
} else {
|
|
87
|
+
delete newObject[keys[i]];
|
|
88
|
+
}
|
|
89
|
+
} else if (operator === "$shift") {
|
|
90
|
+
newObject[keys[i]].shift();
|
|
91
|
+
} else if (operator === "$pop") {
|
|
92
|
+
newObject[keys[i]].pop();
|
|
93
|
+
} else if (operator === "$addToSet") {
|
|
94
|
+
if (!newObject[keys[i]]) newObject[keys[i]] = [];
|
|
95
|
+
let exists;
|
|
96
|
+
if (Array.isArray(value)) {
|
|
97
|
+
exists = newObject[keys[i]].some(
|
|
98
|
+
(item) => Array.isArray(item) && isEqualArray(item, value)
|
|
99
|
+
);
|
|
100
|
+
} else if (typeof value === "object" && value !== null) {
|
|
101
|
+
exists = newObject[keys[i]].some(
|
|
102
|
+
(item) => typeof item === "object" && isEqualObject(item, value)
|
|
103
|
+
);
|
|
104
|
+
} else {
|
|
105
|
+
exists = newObject[keys[i]].includes(value);
|
|
106
|
+
}
|
|
107
|
+
if (!exists) newObject[keys[i]].push(value);
|
|
108
|
+
} else if (operator === "$pull") {
|
|
109
|
+
if (!newObject[keys[i]]) continue;
|
|
110
|
+
if (Array.isArray(value)) {
|
|
111
|
+
newObject[keys[i]] = newObject[keys[i]].filter(
|
|
112
|
+
(item) => !Array.isArray(item) || !isEqualArray(item, value)
|
|
113
|
+
);
|
|
114
|
+
} else if (typeof value === "object" && value !== null) {
|
|
115
|
+
newObject[keys[i]] = newObject[keys[i]].filter(
|
|
116
|
+
(item) => typeof item !== "object" || !isEqualObject(item, value)
|
|
117
|
+
);
|
|
118
|
+
} else {
|
|
119
|
+
newObject[keys[i]] = newObject[keys[i]].filter(
|
|
120
|
+
(item) => item !== value
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
} else if (operator === "$push" || operator === "$splice") {
|
|
124
|
+
if (typeof keys[i] === "number" && newObject.length >= keys[i])
|
|
125
|
+
newObject.splice(keys[i], 0, value);
|
|
126
|
+
else if (newObject[keys[i]]) newObject[keys[i]].push(value);
|
|
127
|
+
else newObject[keys[i]] = [value];
|
|
128
|
+
} else if (operator === "$each") {
|
|
129
|
+
if (!Array.isArray(value)) value = [value];
|
|
130
|
+
if (typeof keys[i] === "number")
|
|
131
|
+
newObject.splice(keys[i], 0, ...value);
|
|
132
|
+
else newObject[keys[i]].push(...value);
|
|
133
|
+
} else if (operator === "$inc") {
|
|
134
|
+
if (!newObject[keys[i]] || typeof newObject[keys[i]] !== "number")
|
|
135
|
+
newObject[keys[i]] = value;
|
|
136
|
+
else newObject[keys[i]] += value;
|
|
137
|
+
}
|
|
138
|
+
} else if (value === void 0) {
|
|
139
|
+
if (typeof keys[i] === "number") newObject.splice(keys[i], 1);
|
|
140
|
+
else delete newObject[keys[i]];
|
|
141
|
+
} else if (typeof keys[i] === "number") {
|
|
142
|
+
newObject.splice(keys[i], 0, value);
|
|
143
|
+
} else {
|
|
144
|
+
newObject[keys[i]] = value;
|
|
145
|
+
}
|
|
146
|
+
} else if (typeof keys[i + 1] === "number" && !Array.isArray(newObject[keys[i]])) {
|
|
147
|
+
newObject[keys[i]] = [];
|
|
148
|
+
} else {
|
|
149
|
+
newObject[keys[i]] = newObject[keys[i]] || {};
|
|
150
|
+
}
|
|
151
|
+
newObject = newObject[keys[i]];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return object;
|
|
155
|
+
} catch (error) {
|
|
156
|
+
console.log("Error converting dot notation to object", error);
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function createUpdate(update, data, globalOpertors) {
|
|
161
|
+
let operatorKeys = {};
|
|
162
|
+
if (globalOpertors) operatorKeys = { ...globalOpertors };
|
|
163
|
+
Object.keys(data).forEach((key) => {
|
|
164
|
+
if (key.startsWith("$")) {
|
|
165
|
+
if (!key.includes("."))
|
|
166
|
+
for (let oldkey of Object.keys(data[key]))
|
|
167
|
+
operatorKeys[key + "." + oldkey] = data[key][oldkey];
|
|
168
|
+
else operatorKeys[key] = data[key];
|
|
169
|
+
} else if (typeof data[key] === "string" && data[key].startsWith("$")) {
|
|
170
|
+
operatorKeys[data[key] + "." + key] = data[key];
|
|
171
|
+
} else if (key.endsWith("]")) {
|
|
172
|
+
const regex = /^(.*(?:\[\d+\].*?)?)\[(.*?)\](?:\[\])?$/;
|
|
173
|
+
const match = key.match(regex);
|
|
174
|
+
if (match[2] === "") operatorKeys["$push." + match[1]] = data[key];
|
|
175
|
+
else {
|
|
176
|
+
let index = parseInt(match[2], 10);
|
|
177
|
+
if (Number.isNaN(index))
|
|
178
|
+
operatorKeys[match[2] + "." + match[1]] = data[key];
|
|
179
|
+
else operatorKeys[key] = data[key];
|
|
180
|
+
}
|
|
181
|
+
} else if (key.includes(".")) {
|
|
182
|
+
operatorKeys[key] = data[key];
|
|
183
|
+
} else if (data[key] === void 0) {
|
|
184
|
+
delete update[key];
|
|
185
|
+
} else update[key] = data[key];
|
|
186
|
+
});
|
|
187
|
+
return dotNotationToObjectUpdate(operatorKeys, update);
|
|
188
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var cssPath_exports = {};
|
|
19
|
+
__export(cssPath_exports, {
|
|
20
|
+
cssPath: () => cssPath
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(cssPath_exports);
|
|
23
|
+
function cssPath(node, container) {
|
|
24
|
+
let pathSplits = [];
|
|
25
|
+
do {
|
|
26
|
+
if (!node || !node.tagName) return false;
|
|
27
|
+
let pathSplit = node.tagName.toLowerCase();
|
|
28
|
+
if (node.id) {
|
|
29
|
+
pathSplit += "#" + node.id;
|
|
30
|
+
node = "";
|
|
31
|
+
} else {
|
|
32
|
+
let eid = node.getAttribute("eid");
|
|
33
|
+
if (eid && !/{{\s*([\w\W]+)\s*}}/g.test(eid)) {
|
|
34
|
+
pathSplit += `[eid="${eid}"]`;
|
|
35
|
+
node = "";
|
|
36
|
+
} else if (node.parentNode && node.parentNode.children.length > 1) {
|
|
37
|
+
let children = [];
|
|
38
|
+
for (let child of node.parentNode.children) {
|
|
39
|
+
if (child.tagName == node.tagName) children.push(child);
|
|
40
|
+
}
|
|
41
|
+
let index = Array.prototype.indexOf.call(children, node);
|
|
42
|
+
pathSplit += `:nth-of-type(${index + 1})`;
|
|
43
|
+
}
|
|
44
|
+
node = node.parentNode;
|
|
45
|
+
if (node == null || node.tagName == "HTML" || node.tagName == "BODY" || node.tagName == "DOM-PARSER" || node.nodeName == "#document" || node.hasAttribute("contenteditable"))
|
|
46
|
+
node = "";
|
|
47
|
+
}
|
|
48
|
+
pathSplits.unshift(pathSplit);
|
|
49
|
+
} while (node);
|
|
50
|
+
let path = pathSplits.join(" > ");
|
|
51
|
+
if (path && path.includes("<")) {
|
|
52
|
+
let index = path.lastIndexOf(" >");
|
|
53
|
+
if (index != -1) path = path.slice(0, index);
|
|
54
|
+
else {
|
|
55
|
+
index = path.lastIndexOf("<");
|
|
56
|
+
path = path.slice(0, index);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return path;
|
|
60
|
+
}
|