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 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/cloneDeep.js
1336
+ // node_modules/lodash-es/cloneDeepWith.js
1337
1337
  var CLONE_DEEP_FLAG2 = 1;
1338
1338
  var CLONE_SYMBOLS_FLAG2 = 4;
1339
- function cloneDeep(value) {
1340
- return baseClone_default(value, CLONE_DEEP_FLAG2 | CLONE_SYMBOLS_FLAG2);
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 cloneDeep_default = cloneDeep;
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: cloneDeep_default(initialData) }, (parentThree) => ({
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, cloneDeep_default(value), receiver);
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: cloneDeep_default(newData) };
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
- return markRaw({
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>[]>;
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tracked-instance",
3
- "version": "1.0.20",
3
+ "version": "1.0.22",
4
4
  "description": "Build large forms and track all changes",
5
5
  "type": "module",
6
6
  "scripts": {