tracked-instance 1.0.19 → 1.0.20

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 CHANGED
@@ -1675,39 +1675,40 @@ function useTrackedInstance(initialData) {
1675
1675
  }
1676
1676
 
1677
1677
  // src/collection.ts
1678
- import { computed as computed2, ref, shallowRef, triggerRef } from "vue";
1678
+ import { computed as computed2, markRaw, ref } from "vue";
1679
1679
  var useCollection = (createItemMeta = () => void 0) => {
1680
- const items = shallowRef([]);
1680
+ const items = ref([]);
1681
1681
  const isDirty = computed2(
1682
- () => items.value.some(({ instance, isRemoved, isNew }) => instance.isDirty.value || isNew.value || isRemoved.value)
1682
+ () => items.value.some(({
1683
+ instance,
1684
+ isRemoved,
1685
+ isNew
1686
+ }) => instance.isDirty.value || isNew.value || isRemoved.value)
1683
1687
  );
1684
1688
  const createItem = (item, isNew) => {
1685
1689
  const instance = useTrackedInstance(item);
1686
- return {
1690
+ return markRaw({
1687
1691
  isRemoved: ref(false),
1688
1692
  isNew: ref(isNew),
1689
1693
  instance,
1690
1694
  meta: createItemMeta(instance)
1691
- };
1695
+ });
1692
1696
  };
1693
1697
  const add = (item, index = items.value.length) => {
1694
1698
  const newItem = createItem(item, true);
1695
1699
  items.value.splice(index, 0, newItem);
1696
- triggerRef(items);
1697
1700
  return newItem;
1698
1701
  };
1699
1702
  const remove = (index, isHardRemove = false) => {
1700
1703
  const item = items.value[index];
1701
1704
  if (item.isNew.value || isHardRemove) {
1702
1705
  items.value.splice(index, 1);
1703
- triggerRef(items);
1704
1706
  } else {
1705
1707
  items.value[index].isRemoved.value = true;
1706
1708
  }
1707
1709
  };
1708
1710
  const loadData = (loadedItems) => {
1709
1711
  items.value = loadedItems.map((item) => createItem(item, false));
1710
- triggerRef(items);
1711
1712
  };
1712
1713
  const reset = () => {
1713
1714
  items.value = items.value.filter(({ isNew }) => !isNew.value);
@@ -1715,7 +1716,6 @@ var useCollection = (createItemMeta = () => void 0) => {
1715
1716
  item.isRemoved.value = false;
1716
1717
  item.instance.reset();
1717
1718
  }
1718
- triggerRef(items);
1719
1719
  };
1720
1720
  return {
1721
1721
  items,
@@ -1,13 +1,13 @@
1
- import { ComputedRef, Ref, ShallowRef } from 'vue';
1
+ import { ComputedRef, Raw, Ref } from 'vue';
2
2
  import { TrackedInstance } from './tracked-instance';
3
- export interface CollectionItem<Item, Meta = undefined> {
3
+ export type CollectionItem<Item, Meta = undefined> = Raw<{
4
4
  instance: TrackedInstance<Item>;
5
5
  meta: Meta;
6
6
  isRemoved: Ref<boolean>;
7
7
  isNew: Ref<boolean>;
8
- }
8
+ }>;
9
9
  export interface Collection<Item, Meta = undefined> {
10
- items: ShallowRef<CollectionItem<Item, Meta>[]>;
10
+ items: Ref<CollectionItem<Item, Meta>[]>;
11
11
  isDirty: ComputedRef<boolean>;
12
12
  add: (item: Item, afterIndex?: number) => CollectionItem<Item, Meta>;
13
13
  remove: (index: number, isHardRemove?: boolean) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tracked-instance",
3
- "version": "1.0.19",
3
+ "version": "1.0.20",
4
4
  "description": "Build large forms and track all changes",
5
5
  "type": "module",
6
6
  "scripts": {