@dative-gpi/foundation-core-components 0.0.118 → 0.0.120

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.
@@ -4,12 +4,12 @@
4
4
  />
5
5
  <FSDataTableUI
6
6
  v-else
7
- :headers="innerHeaders"
8
- :mode="innerMode"
9
- :sortBy="innerSortBy"
10
- :rowsPerPage="innerRowsPerPage"
11
- :filters="innerFilters"
12
- :page="innerPage"
7
+ :headers="table.headers"
8
+ :mode="table.mode"
9
+ :sortBy="table.sortBy"
10
+ :rowsPerPage="table.rowsPerPage"
11
+ :filters="table.filters"
12
+ :page="table.page"
13
13
  @update:headers="updateHeaders"
14
14
  @update:mode="updateMode"
15
15
  @update:sortBy="updateSortBy"
@@ -31,12 +31,11 @@
31
31
  </template>
32
32
 
33
33
  <script lang="ts">
34
- import { defineComponent, onUnmounted, ref, Ref, watch } from "vue";
35
- import { useRouter } from "vue-router";
34
+ import { defineComponent, onUnmounted, ref, watch } from "vue";
36
35
 
37
36
  import { useUserOrganisationTable, useUpdateUserOrganisationTable } from "@dative-gpi/foundation-core-services/composables";
38
- import { FSDataTableColumn, FSDataTableFilter, FSDataTableOrder } from "@dative-gpi/foundation-shared-components/models";
39
- import { useDebounce } from "@dative-gpi/foundation-shared-components/composables";
37
+ import { FSDataTable, FSDataTableColumn, FSDataTableFilter, FSDataTableOrder } from "@dative-gpi/foundation-shared-components/models";
38
+ import { useDebounce, useTables } from "@dative-gpi/foundation-shared-components/composables";
40
39
 
41
40
  import FSLoadDataTable from "@dative-gpi/foundation-shared-components/components/lists/FSLoadDataTable.vue";
42
41
  import FSDataTableUI from "@dative-gpi/foundation-shared-components/components/lists/FSDataTableUI.vue";
@@ -61,99 +60,93 @@ export default defineComponent({
61
60
  setup(props) {
62
61
  const { get: getUserOrganisationTable, getting: gettingUserOrganisationTable, entity: userOrganisationTable } = useUserOrganisationTable();
63
62
  const { update: updateUserOrganisationTable } = useUpdateUserOrganisationTable();
63
+ const { getTable, setTable } = useTables();
64
64
  const { debounce, cancel } = useDebounce();
65
- const router = useRouter();
66
65
 
67
- const innerHeaders: Ref<FSDataTableColumn[]> = ref([]);
68
- const innerSortBy: Ref<FSDataTableOrder | null> = ref(null);
69
- const innerMode: Ref<"table" | "iterator"> = ref("table");
70
- const innerRowsPerPage = ref(10);
71
-
72
- const innerFilters = ref<{ [key: string]: FSDataTableFilter[] }>({});
73
- const innerPage = ref(1);
66
+ const table = ref<FSDataTable | null>({
67
+ headers: [],
68
+ mode: "table",
69
+ sortBy: null,
70
+ rowsPerPage: 10,
71
+ filters: {},
72
+ page: 1
73
+ });
74
74
 
75
75
  const reset = (): void => {
76
- if (router && router.currentRoute.value.meta[props.tableCode]) {
77
- const meta = router.currentRoute.value.meta[props.tableCode] as any;
78
- innerHeaders.value = meta.columns;
79
- innerRowsPerPage.value = meta.rowsPerPage;
80
- innerSortBy.value = meta.sortBy;
81
- innerMode.value = meta.mode;
82
-
83
- innerFilters.value = meta.filters;
84
- innerPage.value = meta.page;
76
+ if (getTable(props.tableCode)) {
77
+ table.value = getTable(props.tableCode);
85
78
  }
86
79
  else if (userOrganisationTable.value) {
87
- innerHeaders.value = userOrganisationTable.value.columns;
88
- innerRowsPerPage.value = userOrganisationTable.value.rowsPerPage;
89
- if (userOrganisationTable.value.sortByKey && userOrganisationTable.value.sortByOrder) {
90
- innerSortBy.value = {
80
+ table.value = {
81
+ headers: userOrganisationTable.value.columns,
82
+ sortBy: {
91
83
  key: userOrganisationTable.value.sortByKey,
92
84
  order: userOrganisationTable.value.sortByOrder
93
- };
94
- }
95
- innerMode.value = userOrganisationTable.value.mode;
85
+ },
86
+ mode: userOrganisationTable.value.mode,
87
+ rowsPerPage: userOrganisationTable.value.rowsPerPage,
88
+ filters: {},
89
+ page: 1
90
+ };
96
91
  }
97
92
  };
98
93
 
99
94
  const updateHeaders = (value: FSDataTableColumn[]): void => {
100
- innerHeaders.value = value;
101
- debounce(updateTable, props.debounceTime);
95
+ if (table.value) {
96
+ table.value.headers = value;
97
+ debounce(updateTable, props.debounceTime);
98
+ }
102
99
  };
103
100
 
104
101
  const updateMode = (value: "table" | "iterator"): void => {
105
- innerMode.value = value;
106
- debounce(updateTable, props.debounceTime);
102
+ if (table.value) {
103
+ table.value.mode = value;
104
+ debounce(updateTable, props.debounceTime);
105
+ }
107
106
  };
108
107
 
109
108
  const updateSortBy = (value: FSDataTableOrder | null): void => {
110
- innerSortBy.value = value;
111
- debounce(updateTable, props.debounceTime);
109
+ if (table.value) {
110
+ table.value.sortBy = value;
111
+ debounce(updateTable, props.debounceTime);
112
+ }
112
113
  };
113
114
 
114
115
  const updateRowsPerPage = (value: -1 | 10 | 30): void => {
115
- innerRowsPerPage.value = value;
116
- debounce(updateTable, props.debounceTime);
116
+ if (table.value) {
117
+ table.value.rowsPerPage = value;
118
+ debounce(updateTable, props.debounceTime);
119
+ }
117
120
  };
118
121
 
119
122
  const updateFilters = (value: { [key: string]: FSDataTableFilter[] }): void => {
120
- innerFilters.value = value;
121
- updateRouter();
123
+ if (table.value) {
124
+ table.value.filters = value;
125
+ setTable(props.tableCode, table.value);
126
+ }
122
127
  };
123
128
 
124
129
  const updatePage = (value: number): void => {
125
- innerPage.value = value;
126
- updateRouter();
130
+ if (table.value) {
131
+ table.value.page = value;
132
+ setTable(props.tableCode, table.value);
133
+ }
127
134
  };
128
135
 
129
136
  const updateTable = (): void => {
130
- updateRouter();
131
- updateUserOrganisationTable(props.tableCode, {
132
- columns: innerHeaders.value.map(column => ({
133
- columnId: column.columnId,
134
- hidden: column.hidden,
135
- index: column.index
136
- })),
137
- rowsPerPage: innerRowsPerPage.value,
138
- sortByKey: innerSortBy.value?.key ?? null,
139
- sortByOrder: innerSortBy.value?.order ?? null,
140
- mode: innerMode.value
141
- });
142
- };
143
-
144
- const updateRouter = (): void => {
145
- if (router) {
146
- router.currentRoute.value.meta = {
147
- ...router.currentRoute.value.meta,
148
- [props.tableCode]: {
149
- columns: innerHeaders.value,
150
- filters: innerFilters.value,
151
- rowsPerPage: innerRowsPerPage.value,
152
- sortBy: innerSortBy.value,
153
- mode: innerMode.value,
154
- page: innerPage.value
155
- }
156
- };
137
+ if (table.value) {
138
+ setTable(props.tableCode, table.value);
139
+ updateUserOrganisationTable(props.tableCode, {
140
+ columns: table.value.headers.map(column => ({
141
+ columnId: column.columnId,
142
+ hidden: column.hidden,
143
+ index: column.index
144
+ })),
145
+ rowsPerPage: table.value.rowsPerPage,
146
+ sortByKey: table.value.sortBy?.key ?? null,
147
+ sortByOrder: table.value.sortBy?.order ?? null,
148
+ mode: table.value.mode
149
+ });
157
150
  }
158
151
  };
159
152
 
@@ -174,12 +167,7 @@ export default defineComponent({
174
167
 
175
168
  return {
176
169
  gettingUserOrganisationTable,
177
- innerRowsPerPage,
178
- innerFilters,
179
- innerHeaders,
180
- innerSortBy,
181
- innerMode,
182
- innerPage,
170
+ table,
183
171
  updateRowsPerPage,
184
172
  updateFilters,
185
173
  updateHeaders,
@@ -7,11 +7,12 @@
7
7
  />
8
8
  <FSDashboardOrganisationTileUI
9
9
  v-else-if="entity"
10
- :label="entity.label"
11
10
  :code="entity.code"
12
- :bottomColor="entity.colors"
13
11
  :icon="entity.icon"
12
+ :label="entity.label"
13
+ :imageId="entity.imageId"
14
14
  :editable="$props.editable"
15
+ :bottomColor="entity.colors"
15
16
  :modelValue="$props.modelValue"
16
17
  @update:modelValue="(value) => $emit('update:modelValue', value)"
17
18
  v-bind="$attrs"
@@ -7,11 +7,12 @@
7
7
  />
8
8
  <FSDashboardOrganisationTypeTileUI
9
9
  v-else-if="entity"
10
- :label="entity.label"
11
10
  :code="entity.code"
12
- :bottomColor="entity.colors"
13
11
  :icon="entity.icon"
12
+ :label="entity.label"
13
+ :imageId="entity.imageId"
14
14
  :editable="$props.editable"
15
+ :bottomColor="entity.colors"
15
16
  :modelValue="$props.modelValue"
16
17
  @update:modelValue="(value) => $emit('update:modelValue', value)"
17
18
  v-bind="$attrs"
@@ -7,11 +7,12 @@
7
7
  />
8
8
  <FSDashboardShallowTileUI
9
9
  v-else-if="entity"
10
- :label="entity.label"
11
- :code="entity.code"
12
- :bottomColor="entity.colors"
13
10
  :icon="entity.icon"
11
+ :code="entity.code"
12
+ :label="entity.label"
13
+ :imageId="entity.imageId"
14
14
  :editable="$props.editable"
15
+ :bottomColor="entity.colors"
15
16
  :modelValue="$props.modelValue"
16
17
  @update:modelValue="(value) => $emit('update:modelValue', value)"
17
18
  v-bind="$attrs"
@@ -11,6 +11,7 @@
11
11
  :code="entity.code"
12
12
  :bottomColor="entity.colors"
13
13
  :icon="entity.icon"
14
+ :imageId="entity.imageId"
14
15
  :editable="$props.editable"
15
16
  :modelValue="$props.modelValue"
16
17
  @update:modelValue="(value) => $emit('update:modelValue', value)"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dative-gpi/foundation-core-components",
3
3
  "sideEffects": false,
4
- "version": "0.0.118",
4
+ "version": "0.0.120",
5
5
  "description": "",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -10,11 +10,11 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@dative-gpi/foundation-core-domain": "0.0.118",
14
- "@dative-gpi/foundation-core-services": "0.0.118",
15
- "@dative-gpi/foundation-shared-components": "0.0.118",
16
- "@dative-gpi/foundation-shared-domain": "0.0.118",
17
- "@dative-gpi/foundation-shared-services": "0.0.118",
13
+ "@dative-gpi/foundation-core-domain": "0.0.120",
14
+ "@dative-gpi/foundation-core-services": "0.0.120",
15
+ "@dative-gpi/foundation-shared-components": "0.0.120",
16
+ "@dative-gpi/foundation-shared-domain": "0.0.120",
17
+ "@dative-gpi/foundation-shared-services": "0.0.120",
18
18
  "color": "^4.2.3",
19
19
  "vue": "^3.4.23",
20
20
  "vuedraggable": "^4.1.0"
@@ -24,5 +24,5 @@
24
24
  "sass": "^1.69.5",
25
25
  "sass-loader": "^13.3.2"
26
26
  },
27
- "gitHead": "76a8d1b854de1eb1d0d914d4c15da28b5306e27f"
27
+ "gitHead": "faba41cbb99b47b855fbce6d40925eec86611d3d"
28
28
  }