tracked-instance 1.0.21 → 1.0.23
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/index.mjs +24 -14
- package/dist/types/utils.d.ts +5 -4
- package/package.json +6 -4
package/dist/index.mjs
CHANGED
|
@@ -1333,13 +1333,14 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
|
|
|
1333
1333
|
}
|
|
1334
1334
|
var baseClone_default = baseClone;
|
|
1335
1335
|
|
|
1336
|
-
// node_modules/lodash-es/
|
|
1336
|
+
// node_modules/lodash-es/cloneDeepWith.js
|
|
1337
1337
|
var CLONE_DEEP_FLAG2 = 1;
|
|
1338
1338
|
var CLONE_SYMBOLS_FLAG2 = 4;
|
|
1339
|
-
function
|
|
1340
|
-
|
|
1339
|
+
function cloneDeepWith(value, customizer) {
|
|
1340
|
+
customizer = typeof customizer == "function" ? customizer : void 0;
|
|
1341
|
+
return baseClone_default(value, CLONE_DEEP_FLAG2 | CLONE_SYMBOLS_FLAG2, customizer);
|
|
1341
1342
|
}
|
|
1342
|
-
var
|
|
1343
|
+
var cloneDeepWith_default = cloneDeepWith;
|
|
1343
1344
|
|
|
1344
1345
|
// node_modules/lodash-es/_hasPath.js
|
|
1345
1346
|
function hasPath(object, path, hasFunc) {
|
|
@@ -1494,6 +1495,14 @@ var createNestedRef = (source, handler) => customRef((track, trigger) => {
|
|
|
1494
1495
|
}
|
|
1495
1496
|
};
|
|
1496
1497
|
});
|
|
1498
|
+
var cloneDeep = (inputValue) => cloneDeepWith_default(inputValue, (value) => {
|
|
1499
|
+
if (value instanceof Date) {
|
|
1500
|
+
return new Date(value.getTime());
|
|
1501
|
+
}
|
|
1502
|
+
if (value instanceof File) {
|
|
1503
|
+
return value;
|
|
1504
|
+
}
|
|
1505
|
+
});
|
|
1497
1506
|
|
|
1498
1507
|
// src/tracked-instance.ts
|
|
1499
1508
|
var ArrayInOriginalData = class {
|
|
@@ -1589,22 +1598,22 @@ function useTrackedInstance(initialData) {
|
|
|
1589
1598
|
return result;
|
|
1590
1599
|
}
|
|
1591
1600
|
}));
|
|
1592
|
-
const _data = createNestedRef({ root:
|
|
1601
|
+
const _data = createNestedRef({ root: cloneDeep(initialData) }, (parentThree) => ({
|
|
1593
1602
|
set(target, property, value, receiver) {
|
|
1594
1603
|
const path = parentThree.concat({ target, property, receiver });
|
|
1595
1604
|
const oldValue = target[property];
|
|
1596
1605
|
const triggerChangingArrayItems = () => {
|
|
1597
|
-
const
|
|
1606
|
+
const arrayInOriginalData = get_default(
|
|
1598
1607
|
_originalData.value,
|
|
1599
1608
|
path.map((i) => i.property)
|
|
1600
1609
|
);
|
|
1601
|
-
const
|
|
1602
|
-
if (value <
|
|
1603
|
-
for (let i = value; i <
|
|
1610
|
+
const originalDataValue = arrayInOriginalData?.length || oldValue;
|
|
1611
|
+
if (value < originalDataValue) {
|
|
1612
|
+
for (let i = value; i < originalDataValue; i++) {
|
|
1604
1613
|
delete receiver[i];
|
|
1605
1614
|
}
|
|
1606
|
-
} else if (
|
|
1607
|
-
for (let i =
|
|
1615
|
+
} else if (originalDataValue < value) {
|
|
1616
|
+
for (let i = originalDataValue; i < value; i++) {
|
|
1608
1617
|
receiver[i] = void 0;
|
|
1609
1618
|
}
|
|
1610
1619
|
}
|
|
@@ -1616,10 +1625,11 @@ function useTrackedInstance(initialData) {
|
|
|
1616
1625
|
} else {
|
|
1617
1626
|
snapshotValueToOriginalData(_originalData.value, path, value);
|
|
1618
1627
|
}
|
|
1619
|
-
return Reflect.set(target, property,
|
|
1628
|
+
return Reflect.set(target, property, cloneDeep(value), receiver);
|
|
1620
1629
|
},
|
|
1621
1630
|
deleteProperty(target, property) {
|
|
1622
|
-
|
|
1631
|
+
const path = parentThree.concat({ target, property });
|
|
1632
|
+
snapshotValueToOriginalData(_originalData.value, path, void 0);
|
|
1623
1633
|
return Reflect.deleteProperty(target, property);
|
|
1624
1634
|
}
|
|
1625
1635
|
}));
|
|
@@ -1646,7 +1656,7 @@ function useTrackedInstance(initialData) {
|
|
|
1646
1656
|
});
|
|
1647
1657
|
const changedData = computed(() => _changedData.value.root);
|
|
1648
1658
|
const loadData = (newData) => {
|
|
1649
|
-
_data.value = { root:
|
|
1659
|
+
_data.value = { root: cloneDeep(newData) };
|
|
1650
1660
|
_originalData.value = {};
|
|
1651
1661
|
};
|
|
1652
1662
|
const reset = () => {
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -9,7 +9,8 @@ export interface NestedProxyPathItem {
|
|
|
9
9
|
export declare const isObject: (value: unknown) => boolean;
|
|
10
10
|
export declare const isEmpty: (value: object) => boolean;
|
|
11
11
|
export declare const iterateObject: (source: Record<string, any>, params?: {
|
|
12
|
-
goDeepCondition?: (
|
|
13
|
-
includeParent?: boolean
|
|
14
|
-
}) => Generator<[string[], any], void,
|
|
15
|
-
export declare const createNestedRef: <Source extends Record<string, any>>(source: Source, handler: <InnerSource extends Record<string, any>>(path: NestedProxyPathItem[]) => ProxyHandler<InnerSource>) => import("vue").Ref<Source>;
|
|
12
|
+
goDeepCondition?: (path: string[], value: any) => boolean;
|
|
13
|
+
includeParent?: boolean;
|
|
14
|
+
}) => Generator<[string[], any], void, any>;
|
|
15
|
+
export declare const createNestedRef: <Source extends Record<string, any>>(source: Source, handler: <InnerSource extends Record<string, any>>(path: NestedProxyPathItem[]) => ProxyHandler<InnerSource>) => import("vue").Ref<Source, Source>;
|
|
16
|
+
export declare const cloneDeep: (inputValue: any) => any;
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tracked-instance",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.23",
|
|
4
4
|
"description": "Build large forms and track all changes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "tsc && esbuild ./src/index.ts --bundle --external:vue --outfile=./dist/index.mjs --format=esm",
|
|
8
|
+
"test-ui": "vitest --ui",
|
|
8
9
|
"test": "vitest run"
|
|
9
10
|
},
|
|
10
11
|
"main": "./dist/index.mjs",
|
|
@@ -14,9 +15,10 @@
|
|
|
14
15
|
],
|
|
15
16
|
"devDependencies": {
|
|
16
17
|
"@types/lodash-es": "^4.17.12",
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
18
|
+
"@vitest/ui": "^3.0.5",
|
|
19
|
+
"typescript": "^5.7.3",
|
|
20
|
+
"vitest": "^3.0.5",
|
|
21
|
+
"vue": "^3.5.13"
|
|
20
22
|
},
|
|
21
23
|
"peerDependencies": {
|
|
22
24
|
"vue": "^3.0.0"
|