@modeltables/fontawesome-vuetify 1.1.2 → 1.2.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.
@@ -2,9 +2,10 @@
2
2
  import { faHashtag } from '@fortawesome/free-solid-svg-icons';
3
3
  import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
4
4
  import { isDateTime, isNumber, isString } from '../helpers/instances';
5
- import Date from '../headerFilters/Date.vue';
6
- import Number from '../headerFilters/Number.vue';
7
- import Text from '../headerFilters/Text.vue';
5
+ import Date from '@/components/headerFilters/Date.vue';
6
+ import Number from '@/components/headerFilters/Number.vue';
7
+ import Text from '@/components/headerFilters/Text.vue';
8
+ import { TableOptions } from '@/components/models/tablemodels';
8
9
 
9
10
  export default {
10
11
  components: {
@@ -26,9 +27,10 @@ export default {
26
27
  type: Boolean,
27
28
  required: true
28
29
  },
29
- key: {
30
- type: String,
31
- required: false
30
+ options: {
31
+ type: TableOptions,
32
+ required: true,
33
+ default: () => new TableOptions()
32
34
  },
33
35
  prop: {
34
36
  type: String,
@@ -48,6 +50,11 @@ export default {
48
50
  isDateTime: isDateTime
49
51
  }
50
52
  },
53
+ watch: {
54
+ key(newVal: any) {
55
+ this.key = newVal;
56
+ },
57
+ },
51
58
  methods: {
52
59
  filterValue(event: any, filter: any){
53
60
  this.$emit('filterValue', event, filter);
@@ -59,7 +66,7 @@ export default {
59
66
  }
60
67
  </script>
61
68
  <template>
62
- <span v-if="prop == key!">
69
+ <span v-if="prop == options.Key!">
63
70
  <FontAwesomeIcon :icon="hashTag"></FontAwesomeIcon>
64
71
  </span>
65
72
  <span v-else>
@@ -6,7 +6,7 @@
6
6
  required: true
7
7
  },
8
8
  filter: {
9
- type: Object,
9
+ type: Number,
10
10
  required: true
11
11
  },
12
12
  prop: {
@@ -15,6 +15,7 @@
15
15
  }
16
16
  },
17
17
  data() {
18
+ console.log(this.filter);
18
19
  return {
19
20
  data: this.data,
20
21
  filter: this.filter,
@@ -1,7 +1,7 @@
1
1
  /*! @licence MIT */
2
2
 
3
- export { default as TableView } from "./table/TableView.vue";
4
- export { HeaderModel, PaginatonModel, PaginatedResponse } from './models/tablemodels';
3
+ export { default as TableView } from "@/components/table/TableView.vue";
4
+ export { HeaderModel, PaginatonModel, PaginatedResponse, TableOptions } from '@/components/models/tablemodels';
5
5
 
6
6
  /*!
7
7
  * Vuetify Labs v3.4.0 by vuetify - https://vuetifyjs.com
@@ -18,3 +18,8 @@ export declare class PaginatedResponse<T> {
18
18
  TotalCount?: number;
19
19
  Items: Array<T>;
20
20
  }
21
+
22
+ export declare class TableOptions {
23
+ Key?: string;
24
+ Name?: string;
25
+ }
@@ -24,3 +24,10 @@ export class PaginatedResponse {
24
24
  this.Items = [];
25
25
  }
26
26
  }
27
+
28
+ export class TableOptions {
29
+ constructor() {
30
+ this.Key = "Id";
31
+ this.Name = undefined;
32
+ }
33
+ }
@@ -17,4 +17,9 @@ export class PaginatedResponse<T>{
17
17
  CurrentPage?: number;
18
18
  TotalCount?: number;
19
19
  Items: Array<T> = []
20
+ }
21
+
22
+ export class TableOptions{
23
+ Key?: string;
24
+ Name?: string;
20
25
  }
@@ -1,11 +1,17 @@
1
1
  <script lang="ts">
2
2
  import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
3
3
  import { faCaretDown, faCaretUp } from '@fortawesome/free-solid-svg-icons';
4
+ import { TableOptions } from '@/components/models/tablemodels';
4
5
  export default {
5
6
  components: {
6
7
  FontAwesomeIcon
7
8
  },
8
9
  props: {
10
+ options: {
11
+ type: TableOptions,
12
+ required: true,
13
+ default: () => new TableOptions()
14
+ },
9
15
  prop: {
10
16
  type: Object,
11
17
  required: true
@@ -17,12 +23,18 @@ export default {
17
23
  },
18
24
  data() {
19
25
  return {
26
+ key: this.key,
20
27
  prop: this.prop,
21
28
  index: this.index,
22
29
  carretDown: faCaretDown,
23
30
  carretUp: faCaretUp
24
31
  }
25
32
  },
33
+ watch: {
34
+ key(newVal: any) {
35
+ this.key = newVal;
36
+ },
37
+ },
26
38
  methods: {
27
39
  sort(event: any, prop: any, index: number){
28
40
  this.$emit('sort', event, prop, index);
@@ -2,17 +2,17 @@
2
2
  import { ref } from 'vue'
3
3
  import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
4
4
  import { faRefresh, faSearch } from '@fortawesome/free-solid-svg-icons';
5
- import { HeaderModel } from './../models/tablemodels';
6
- import { PaginatonModel } from './../models/tablemodels';
7
- import { change, Id, load, rowClick, search } from '../helpers/resources';
8
- import Date from '../headerFilters/Date.vue';
9
- import Search from '../search/SearchView.vue';
10
- import Text from '../headerFilters/Text.vue';
11
- import Number from '../headerFilters/Number.vue';
12
- import Filters from '../headerFilters/Filters.vue';
13
- import SortView from '../sort/SortView.vue';
14
- import PaginationView from '../pagination/PaginationView.vue';
15
- import DataItem from './data/ItemView.vue';
5
+ import { HeaderModel, TableOptions } from '@/components/models/tablemodels';
6
+ import { PaginatonModel } from '@/components/models/tablemodels';
7
+ import { change, load, rowClick, search } from '@/components/helpers/resources';
8
+ import Date from '@/components/headerFilters/Date.vue';
9
+ import Search from '@/components/search/SearchView.vue';
10
+ import Text from '@/components/headerFilters/Text.vue';
11
+ import Number from '@/components/headerFilters/Number.vue';
12
+ import Filters from '@/components/headerFilters/Filters.vue';
13
+ import SortView from '@/components/sort/SortView.vue';
14
+ import PaginationView from '@/components/pagination/PaginationView.vue';
15
+ import DataItem from '@/components/table/data/ItemView.vue';
16
16
 
17
17
  export default {
18
18
  props: {
@@ -20,9 +20,10 @@ export default {
20
20
  type: Array<HeaderModel>,
21
21
  default: () => []
22
22
  },
23
- key: {
24
- type: String,
25
- default: () => 'Id'
23
+ options: {
24
+ type: TableOptions,
25
+ required: false,
26
+ default: () => new TableOptions()
26
27
  },
27
28
  name: {
28
29
  type: String
@@ -108,12 +109,13 @@ export default {
108
109
  },
109
110
  emits: [change, load, rowClick, search],
110
111
  data() {
112
+ console.log(this.options);
111
113
  return {
112
114
  dataheader: this.dataheader,
113
115
  dataItems: this.dataItems,
114
116
  dialog: false,
115
117
  new: true,
116
- key: this.key ?? Id,
118
+ options: this.options,
117
119
  name: this.name,
118
120
  currentId: this.currentId,
119
121
  currentItem: this.currentItem,
@@ -167,7 +169,7 @@ export default {
167
169
  if(!this.crud){
168
170
  this.rowClick(item);
169
171
  }else{
170
- this.currentId = item[this.key!];
172
+ this.currentId = item[this.options.Key!];
171
173
  this.$emit(change, item);
172
174
  }
173
175
  },
@@ -191,7 +193,7 @@ export default {
191
193
  isNumber(n: any) {
192
194
  return !isNaN(parseFloat(n)) && !isNaN(n - 0)
193
195
  },
194
- options(event: any){
196
+ optionschange(event: any){
195
197
  this.page = event!.page;
196
198
  this.filters.CurrentPage = this.page;
197
199
  this.search();
@@ -261,7 +263,7 @@ export default {
261
263
  :loading="loading"
262
264
  :v-bind:model-value="modelValue"
263
265
  :items="dataItems"
264
- @update:options="options($event)"
266
+ @update:options="optionschange($event)"
265
267
  :items-per-page="perPage"
266
268
  :page="page"
267
269
  hide-default-header
@@ -284,7 +286,7 @@ export default {
284
286
  :item="item"
285
287
  :filters="filters"
286
288
  :showFilters="showFilters"
287
- :key="key"
289
+ :options="options"
288
290
  :prop="prop"
289
291
  @filterValue="filterValue($event, filters[prop])">
290
292
  </Filters>
@@ -295,7 +297,7 @@ export default {
295
297
  <DataItem
296
298
  :item="item"
297
299
  :prop="prop"
298
- :key="key"
300
+ :options="options"
299
301
  :index="index">
300
302
  </DataItem>
301
303
  </td>
@@ -1,5 +1,7 @@
1
1
  <script lang="ts">
2
- import { isDateTime, toDate } from '../../helpers/instances';
2
+ import { isDateTime, toDate } from '@/components/helpers/instances';
3
+ import { TableOptions } from '@/components/models/tablemodels';
4
+
3
5
  export default {
4
6
  props: {
5
7
  item: {
@@ -14,9 +16,10 @@
14
16
  type: String,
15
17
  required: true
16
18
  },
17
- key: {
18
- type: String,
19
- required: false
19
+ options: {
20
+ type: TableOptions,
21
+ required: false,
22
+ default: () => new TableOptions()
20
23
  }
21
24
  },
22
25
  watch: {
@@ -35,7 +38,7 @@
35
38
  item: this.item,
36
39
  index: this.index,
37
40
  prop: this.prop,
38
- key: this.key,
41
+ options: this.options,
39
42
  isDateTime: isDateTime,
40
43
  toDate: toDate
41
44
  }
@@ -44,7 +47,7 @@
44
47
 
45
48
  </script>
46
49
  <template>
47
- <span v-if="prop == key!">
50
+ <span v-if="prop == options.Key!">
48
51
  {{ index + 1 }}
49
52
  </span>
50
53
  <span v-else-if="isDateTime(item[prop])">