@xwiki/cristal-dsvuetify 0.25.0 → 1.0.0

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.
Files changed (48) hide show
  1. package/dist/{index-D7wZ4Kvq.js → index-CkeFEgm6.js} +8741 -8708
  2. package/dist/index-CkeFEgm6.js.map +1 -0
  3. package/dist/index.es.js +6 -8
  4. package/dist/index.umd.js +12 -14
  5. package/dist/index.umd.js.map +1 -1
  6. package/dist/translations-CXVK8zyA.js +21 -0
  7. package/dist/{translations-BVK9UR9x.js.map → translations-CXVK8zyA.js.map} +1 -1
  8. package/dist/vue/form/x-text-field.vue.d.ts +16 -1
  9. package/dist/vue/x-tree.vue.d.ts +19 -14
  10. package/dist/{x-checkbox-CN6QxF3B.js → x-checkbox-CxPnLGd0.js} +5 -5
  11. package/dist/{x-checkbox-CN6QxF3B.js.map → x-checkbox-CxPnLGd0.js.map} +1 -1
  12. package/dist/{x-file-input-CkjbGsMG.js → x-file-input-CEz4Wmf4.js} +3 -3
  13. package/dist/{x-file-input-CkjbGsMG.js.map → x-file-input-CEz4Wmf4.js.map} +1 -1
  14. package/dist/{x-form-dk8EltHS.js → x-form-SvpVocOb.js} +2 -2
  15. package/dist/{x-form-dk8EltHS.js.map → x-form-SvpVocOb.js.map} +1 -1
  16. package/dist/x-menu-DUp-JvdG.js +31 -0
  17. package/dist/{x-menu-CZMwPcag.js.map → x-menu-DUp-JvdG.js.map} +1 -1
  18. package/dist/{x-select-CpWujZTj.js → x-select-BduzHCet.js} +6 -6
  19. package/dist/{x-select-CpWujZTj.js.map → x-select-BduzHCet.js.map} +1 -1
  20. package/dist/x-text-field-CvC6id2f.js +50 -0
  21. package/dist/{x-text-field-wiH4MWRR.js.map → x-text-field-CvC6id2f.js.map} +1 -1
  22. package/dist/x-tree-CbliYwVw.js +70 -0
  23. package/dist/x-tree-CbliYwVw.js.map +1 -0
  24. package/langs/translation-de.json +1 -3
  25. package/langs/translation-en.json +1 -3
  26. package/langs/translation-fr.json +1 -3
  27. package/package.json +15 -15
  28. package/src/components/vuetifyDesignSystemLoader.ts +0 -10
  29. package/src/vue/css/style.css +1 -0
  30. package/src/vue/form/x-text-field.vue +5 -1
  31. package/src/vue/x-menu.vue +1 -1
  32. package/src/vue/x-tree.vue +24 -5
  33. package/dist/index-D7wZ4Kvq.js.map +0 -1
  34. package/dist/index.es-BOA77_Kh.js +0 -10
  35. package/dist/index.es-BOA77_Kh.js.map +0 -1
  36. package/dist/translations-BVK9UR9x.js +0 -27
  37. package/dist/vue/form/x-navigation-tree-select.vue.d.ts +0 -14
  38. package/dist/vue/x-navigation-tree.vue.d.ts +0 -5
  39. package/dist/x-menu-CZMwPcag.js +0 -31
  40. package/dist/x-navigation-tree-BkJKd5J2.js +0 -188
  41. package/dist/x-navigation-tree-BkJKd5J2.js.map +0 -1
  42. package/dist/x-navigation-tree-select-VRsQSFA3.js +0 -109
  43. package/dist/x-navigation-tree-select-VRsQSFA3.js.map +0 -1
  44. package/dist/x-text-field-wiH4MWRR.js +0 -45
  45. package/dist/x-tree-CkUElkU9.js +0 -51
  46. package/dist/x-tree-CkUElkU9.js.map +0 -1
  47. package/src/vue/form/x-navigation-tree-select.vue +0 -146
  48. package/src/vue/x-navigation-tree.vue +0 -355
@@ -17,13 +17,13 @@
17
17
  Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18
18
  02110-1301 USA, or see the FSF site: http://www.fsf.org.
19
19
  -->
20
- <script setup lang="ts">
20
+ <script setup lang="ts" generic="T extends DisplayableTreeNode">
21
21
  import { ref, watch } from "vue";
22
22
  import { VTreeview } from "vuetify/components/VTreeview";
23
23
  import type { DisplayableTreeNode, TreeProps } from "@xwiki/platform-dsapi";
24
24
  import type { Ref } from "vue";
25
25
 
26
- defineProps<TreeProps>();
26
+ const props = defineProps<TreeProps<T>>();
27
27
  const opened = defineModel("opened", { default: [], type: Array<string> });
28
28
  const activated = defineModel<string | undefined>("activated");
29
29
 
@@ -42,6 +42,11 @@ function updateActivated(newActivatedNode: DisplayableTreeNode) {
42
42
  activated.value = newActivatedNode.id;
43
43
  }
44
44
  }
45
+
46
+ async function lazyLoadChildrenWrapper(node: unknown) {
47
+ // We need this wrapper because our props are more specific than Vuetify's.
48
+ await props.lazyLoadChildren!(node as T);
49
+ }
45
50
  </script>
46
51
 
47
52
  <template>
@@ -49,15 +54,29 @@ function updateActivated(newActivatedNode: DisplayableTreeNode) {
49
54
  density="compact"
50
55
  :activated="activatedNodes"
51
56
  :items="showRootNode ? [rootNode] : rootNode.children"
57
+ :load-children="lazyLoadChildren ? lazyLoadChildrenWrapper : undefined"
52
58
  activatable
53
59
  active-strategy="independent"
54
60
  item-value="id"
55
- :opened="opened"
56
- @update:opened="($event) => (opened = $event as string[])"
61
+ v-model:opened="opened as string[]"
62
+ @update:opened="($event: string[]) => (opened = $event)"
57
63
  @update:activated="resetActivated"
58
64
  >
59
65
  <template #title="{ item }">
60
- <a :href="item.url" @click="updateActivated(item)">{{ item.label }}</a>
66
+ <a
67
+ v-if="nodeClickAction"
68
+ :href="item.url"
69
+ @click.prevent="
70
+ async () => {
71
+ updateActivated(item);
72
+ await nodeClickAction!(item as T);
73
+ }
74
+ "
75
+ >{{ item.label }}</a
76
+ >
77
+ <a v-else :href="item.url" @click="updateActivated(item)">{{
78
+ item.label
79
+ }}</a>
61
80
  </template>
62
81
  </v-treeview>
63
82
  </template>