tracked-instance 1.0.20 → 1.0.22
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/README.md +1 -0
- package/dist/index.mjs +23 -9
- package/dist/types/collection.d.ts +1 -0
- package/dist/types/utils.d.ts +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -280,5 +280,6 @@ interface CollectionItem {
|
|
|
280
280
|
isRemoved: Ref<boolean>
|
|
281
281
|
isNew: Ref<boolean> //weather is new instance. Field can be changed manually or changed in loadData in second argument
|
|
282
282
|
meta: Record<string, any>
|
|
283
|
+
remove: (isHardRemove?: boolean) => void
|
|
283
284
|
}
|
|
284
285
|
```
|
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,7 +1598,7 @@ 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];
|
|
@@ -1616,7 +1625,7 @@ 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
|
setOriginalDataValue(_originalData.value, parentThree.concat({ target, property }));
|
|
@@ -1646,7 +1655,7 @@ function useTrackedInstance(initialData) {
|
|
|
1646
1655
|
});
|
|
1647
1656
|
const changedData = computed(() => _changedData.value.root);
|
|
1648
1657
|
const loadData = (newData) => {
|
|
1649
|
-
_data.value = { root:
|
|
1658
|
+
_data.value = { root: cloneDeep(newData) };
|
|
1650
1659
|
_originalData.value = {};
|
|
1651
1660
|
};
|
|
1652
1661
|
const reset = () => {
|
|
@@ -1687,12 +1696,17 @@ var useCollection = (createItemMeta = () => void 0) => {
|
|
|
1687
1696
|
);
|
|
1688
1697
|
const createItem = (item, isNew) => {
|
|
1689
1698
|
const instance = useTrackedInstance(item);
|
|
1690
|
-
|
|
1699
|
+
const collectionItem = markRaw({
|
|
1691
1700
|
isRemoved: ref(false),
|
|
1692
1701
|
isNew: ref(isNew),
|
|
1693
1702
|
instance,
|
|
1694
|
-
meta: createItemMeta(instance)
|
|
1703
|
+
meta: createItemMeta(instance),
|
|
1704
|
+
remove: (isHardRemove = false) => {
|
|
1705
|
+
const index = items.value.indexOf(collectionItem);
|
|
1706
|
+
remove(index, isHardRemove);
|
|
1707
|
+
}
|
|
1695
1708
|
});
|
|
1709
|
+
return collectionItem;
|
|
1696
1710
|
};
|
|
1697
1711
|
const add = (item, index = items.value.length) => {
|
|
1698
1712
|
const newItem = createItem(item, true);
|
|
@@ -5,6 +5,7 @@ export type CollectionItem<Item, Meta = undefined> = Raw<{
|
|
|
5
5
|
meta: Meta;
|
|
6
6
|
isRemoved: Ref<boolean>;
|
|
7
7
|
isNew: Ref<boolean>;
|
|
8
|
+
remove: (isHardRemoved?: boolean) => void;
|
|
8
9
|
}>;
|
|
9
10
|
export interface Collection<Item, Meta = undefined> {
|
|
10
11
|
items: Ref<CollectionItem<Item, Meta>[]>;
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -13,3 +13,4 @@ export declare const iterateObject: (source: Record<string, any>, params?: {
|
|
|
13
13
|
includeParent?: boolean | undefined;
|
|
14
14
|
}) => Generator<[string[], any], void, unknown>;
|
|
15
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>;
|
|
16
|
+
export declare const cloneDeep: (inputValue: any) => any;
|