diff --git a/src/views/treetable/TreeTableColResizeDemo.vue b/src/views/treetable/TreeTableColResizeDemo.vue
index 38a7777f0..2f674c7e6 100644
--- a/src/views/treetable/TreeTableColResizeDemo.vue
+++ b/src/views/treetable/TreeTableColResizeDemo.vue
@@ -25,6 +25,50 @@
+
+
+
+
+
+
+<h3>Fit Mode</h3>
+<TreeTable :value="nodes" :resizableColumns="true" columnResizeMode="fit">
+ <Column field="name" header="Name" :expander="true"></Column>
+ <Column field="size" header="Size"></Column>
+ <Column field="type" header="Type"></Column>
+</TreeTable>
+
+<h3>Expand Mdoe</h3>
+<TreeTable :value="nodes" :resizableColumns="true" columnResizeMode="expand">
+ <Column field="name" header="Name" :expander="true"></Column>
+ <Column field="size" header="Size"></Column>
+ <Column field="type" header="Type"></Column>
+</TreeTable>
+
+
+
+
+import NodeService from '../../service/NodeService';
+
+export default {
+ data() {
+ return {
+ nodes: null
+ }
+ },
+ nodeService: null,
+ created() {
+ this.nodeService = new NodeService();
+ },
+ mounted() {
+ this.nodeService.getTreeTableNodes().then(data => this.nodes = data);
+ }
+}
+
+
+
+
+
diff --git a/src/views/treetable/TreeTableColToggleDemo.vue b/src/views/treetable/TreeTableColToggleDemo.vue
index a7dbebdd5..b72a9abb5 100644
--- a/src/views/treetable/TreeTableColToggleDemo.vue
+++ b/src/views/treetable/TreeTableColToggleDemo.vue
@@ -21,13 +21,59 @@
-
+
+
+
+
+
+<TreeTable :value="nodes">
+ <template #header>
+ <div style="text-align:left">
+ <MultiSelect v-model="columns" :options="columnOptions" optionLabel="header" placeholder="Select Columns" style="width: 20em"/>
+ </div>
+ </template>
+ <Column field="name" header="Name" :expander="true"></Column>
+ <Column v-for="col of columns" :field="col.field" :header="col.header" :key="col.field"></Column>
+</TreeTable>
+
+
+
+
+import NodeService from '../../service/NodeService';
+
+export default {
+ data() {
+ return {
+ nodes: null,
+ columnOptions: null,
+ columns: null
+ }
+ },
+ nodeService: null,
+ created() {
+ this.nodeService = new NodeService();
+
+ this.columns = [
+ {field: 'size', header: 'Size'},
+ {field: 'type', header: 'Type'}
+ ];
+
+ this.columnOptions = [...this.columns];
+ },
+ mounted() {
+ this.nodeService.getTreeTableNodes().then(data => this.nodes = data);
+ }
+}
+
+
+
+
+
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/views/treetable/TreeTablePaginatorDemo.vue b/src/views/treetable/TreeTablePaginatorDemo.vue
index d1901af09..ddd7ece6c 100644
--- a/src/views/treetable/TreeTablePaginatorDemo.vue
+++ b/src/views/treetable/TreeTablePaginatorDemo.vue
@@ -16,6 +16,59 @@
+
+
+
+
+
+
+<TreeTable :value="nodes" :paginator="true" :rows="10">
+ <Column field="name" header="Name" :expander="true"></Column>
+ <Column field="size" header="Size"></Column>
+ <Column field="type" header="Type"></Column>
+</TreeTable>
+
+
+
+
+export default {
+ data() {
+ return {
+ nodes: null
+ }
+ },
+ created() {
+ let files = [];
+ for(let i = 0; i < 50; i++) {
+ let node = {
+ key: i,
+ data: {
+ name: 'Item ' + i,
+ size: Math.floor(Math.random() * 1000) + 1 + 'kb',
+ type: 'Type ' + i
+ },
+ children: [
+ {
+ key: i + ' - 0',
+ data: {
+ name: 'Item ' + i + ' - 0',
+ size: Math.floor(Math.random() * 1000) + 1 + 'kb',
+ type: 'Type ' + i
+ }
+ }
+ ]
+ };
+
+ files.push(node);
+ }
+
+ this.nodes = files;
+ }
+}
+
+
+
+
@@ -28,7 +81,6 @@ export default {
nodes: null
}
},
- nodeService: null,
created() {
let files = [];
for(let i = 0; i < 50; i++) {
diff --git a/src/views/treetable/TreeTableResponsiveDemo.vue b/src/views/treetable/TreeTableResponsiveDemo.vue
index f6f90fc9f..c98b9f1c0 100644
--- a/src/views/treetable/TreeTableResponsiveDemo.vue
+++ b/src/views/treetable/TreeTableResponsiveDemo.vue
@@ -25,6 +25,70 @@
+
+
+
+
+
+
+<TreeTable :value="nodes" class="p-treetable-responsive">
+ <template #header>
+ Responsive
+ </template>
+ <Column field="name" header="Name" :expander="true">
+ <template #body="slotProps">
+ {{slotProps.node.data.name}}
+ <span class="sm-visible">{{slotProps.node.data.size}}</span>
+ <span class="sm-visible">{{slotProps.node.data.type}}</span>
+ </template>
+ </Column>
+ <Column field="size" header="Size" headerClass="sm-invisible" bodyClass="sm-invisible"></Column>
+ <Column field="type" header="Type" headerClass="sm-invisible" bodyClass="sm-invisible"></Column>
+</TreeTable>
+
+
+
+
+import NodeService from '../../service/NodeService';
+
+export default {
+ data() {
+ return {
+ nodes: null
+ }
+ },
+ nodeService: null,
+ created() {
+ this.nodeService = new NodeService();
+ },
+ mounted() {
+ this.nodeService.getTreeTableNodes().then(data => this.nodes = data);
+ }
+}
+
+
+
+.sm-visible {
+ display: none;
+}
+
+@media screen and (max-width: 40em) {
+ /deep/ {
+ .sm-invisible {
+ display: none;
+ }
+
+ .sm-visible {
+ display: inline;
+ margin-right: .5em;
+ }
+ }
+}
+
+
+
+
+
diff --git a/src/views/treetable/TreeTableSelectionDemo.vue b/src/views/treetable/TreeTableSelectionDemo.vue
index 9194bf575..f2a54789e 100644
--- a/src/views/treetable/TreeTableSelectionDemo.vue
+++ b/src/views/treetable/TreeTableSelectionDemo.vue
@@ -47,13 +47,88 @@
-
+
+
+
+
+
+<h3>Single Selection</h3>
+<TreeTable :value="nodes" selectionMode="single" :selectionKeys.sync="selectedKey1">
+ <Column field="name" header="Name" :expander="true"></Column>
+ <Column field="size" header="Size"></Column>
+ <Column field="type" header="Type"></Column>
+</TreeTable>
+
+<h3>Multiple Selection with MetaKey</h3>
+<TreeTable :value="nodes" selectionMode="multiple" :selectionKeys.sync="selectedKeys1">
+ <Column field="name" header="Name" :expander="true"></Column>
+ <Column field="size" header="Size"></Column>
+ <Column field="type" header="Type"></Column>
+</TreeTable>
+
+<h3>Multiple Selection without MetaKey</h3>
+<TreeTable :value="nodes" selectionMode="multiple" :selectionKeys.sync="selectedKeys2" :metaKeySelection="false">
+ <Column field="name" header="Name" :expander="true"></Column>
+ <Column field="size" header="Size"></Column>
+ <Column field="type" header="Type"></Column>
+</TreeTable>
+
+<h3>Checkbox Selection</h3>
+<TreeTable :value="nodes" selectionMode="checkbox" :selectionKeys.sync="selectedKeys3">
+ <Column field="name" header="Name" :expander="true"></Column>
+ <Column field="size" header="Size"></Column>
+ <Column field="type" header="Type"></Column>
+</TreeTable>
+
+<h3>Events</h3>
+<TreeTable :value="nodes" selectionMode="single" :selectionKeys.sync="selectedKey2"
+ @node-select="onNodeSelect" @node-unselect="onNodeUnselect">
+ <Column field="name" header="Name" :expander="true"></Column>
+ <Column field="size" header="Size"></Column>
+ <Column field="type" header="Type"></Column>
+</TreeTable>
+
+
+
+
+import NodeService from '../../service/NodeService';
+
+export default {
+ data() {
+ return {
+ selectedKey1: null,
+ selectedKey2: null,
+ selectedKeys1: null,
+ selectedKeys2: null,
+ selectedKeys3: null,
+ nodes: null
+ }
+ },
+ nodeService: null,
+ created() {
+ this.nodeService = new NodeService();
+ },
+ mounted() {
+ this.nodeService.getTreeTableNodes().then(data => this.nodes = data);
+ },
+ methods: {
+ onNodeSelect(node) {
+ this.$toast.add({severity:'success', summary: 'Node Selected', detail: node.data.name, life: 3000});
+ },
+ onNodeUnselect(node) {
+ this.$toast.add({severity:'success', summary: 'Node Unselected', detail: node.data.name, life: 3000});
+ }
+ }
+}
+
+
+
+
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/views/treetable/TreeTableSortDemo.vue b/src/views/treetable/TreeTableSortDemo.vue
index 2a52192a9..2a1048a2e 100644
--- a/src/views/treetable/TreeTableSortDemo.vue
+++ b/src/views/treetable/TreeTableSortDemo.vue
@@ -24,6 +24,50 @@
+
+
+
+
+
+
+<h3>Single Column Sorting</h3>
+<TreeTable :value="nodes" sortMode="single">
+ <Column field="name" header="Name" :expander="true" :sortable="true"></Column>
+ <Column field="size" header="Size" :sortable="true"></Column>
+ <Column field="type" header="Type" :sortable="true"></Column>
+</TreeTable>
+
+<h3>Multiple Column Sorting</h3>
+<TreeTable :value="nodes" sortMode="multiple">
+ <Column field="name" header="Name" :expander="true" :sortable="true"></Column>
+ <Column field="size" header="Size" :sortable="true"></Column>
+ <Column field="type" header="Type" :sortable="true"></Column>
+</TreeTable>
+
+
+
+
+import NodeService from '../../service/NodeService';
+
+export default {
+ data() {
+ return {
+ nodes: null
+ }
+ },
+ nodeService: null,
+ created() {
+ this.nodeService = new NodeService();
+ },
+ mounted() {
+ this.nodeService.getTreeTableNodes().then(data => this.nodes = data);
+ }
+}
+
+
+
+
+
diff --git a/src/views/treetable/TreeTableTemplatingDemo.vue b/src/views/treetable/TreeTableTemplatingDemo.vue
index ef7d1caa4..076a0b7b2 100644
--- a/src/views/treetable/TreeTableTemplatingDemo.vue
+++ b/src/views/treetable/TreeTableTemplatingDemo.vue
@@ -34,59 +34,78 @@
-
+
+
+
+
+
+<TreeTable :value="nodes">
+ <template #header>
+ FileSystem
+ </template>
+ <Column field="name" header="Name" :expander="true"></Column>
+ <Column field="size" header="Size"></Column>
+ <Column field="type" header="Type"></Column>
+ <Column headerStyle="width: 8em" bodyStyle="text-align: center">
+ <template #header>
+ <Button type="button" icon="pi pi-cog"></Button>
+ </template>
+ <template #body="slotProps">
+ <Button type="button" icon="pi pi-search" class="p-button-success" style="margin-right: .5em"></Button>
+ <Button type="button" icon="pi pi-pencil" class="p-button-warning"></Button>
+ </template>
+ </Column>
+ <template #footer>
+ <div style="text-align:left">
+ <Button icon="pi pi-refresh" />
+ </div>
+ </template>
+</TreeTable>
+
+
+
+
+import NodeService from '../../service/NodeService';
+
+export default {
+ data() {
+ return {
+ nodes: null,
+ }
+ },
+ nodeService: null,
+ created() {
+ this.nodeService = new NodeService();
+ },
+ mounted() {
+ this.nodeService.getTreeTableNodes().then(data => this.nodes = data);
+ }
+}
+
+
+
+