@modeltables/fontawesome-vuetify 1.0.2 → 1.0.4

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.
@@ -0,0 +1,90 @@
1
+ <script lang="ts">
2
+ import { faHashtag } from '@fortawesome/free-solid-svg-icons';
3
+ import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
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';
8
+
9
+ export default {
10
+ components: {
11
+ Date,
12
+ Number,
13
+ Text,
14
+ FontAwesomeIcon
15
+ },
16
+ props: {
17
+ item: {
18
+ type: Object,
19
+ required: true
20
+ },
21
+ filters: {
22
+ type: Object,
23
+ required: true
24
+ },
25
+ showFilters: {
26
+ type: Boolean,
27
+ required: true
28
+ },
29
+ key: {
30
+ type: String,
31
+ required: false
32
+ },
33
+ prop: {
34
+ type: String,
35
+ required: true
36
+ }
37
+ },
38
+ data() {
39
+ return {
40
+ item: this.item,
41
+ index: this.index,
42
+ filters: this.filters,
43
+ showFilters: this.showFilters,
44
+ key: this.key,
45
+ hashTag: faHashtag,
46
+ isString: isString,
47
+ isNumber: isNumber,
48
+ isDateTime: isDateTime
49
+ }
50
+ },
51
+ methods: {
52
+ filterValue(event: any, filter: any){
53
+ this.$emit('filterValue', event, filter);
54
+ },
55
+ filterDate(event: any, filter: any){
56
+ this.$emit('filterValue', event, filter);
57
+ }
58
+ }
59
+ }
60
+ </script>
61
+ <template>
62
+ <span v-if="prop == key!">
63
+ <FontAwesomeIcon :icon="hashTag"></FontAwesomeIcon>
64
+ </span>
65
+ <span v-else>
66
+ <div v-if="isNumber(item[prop])">
67
+ <Number
68
+ :filter="filters[prop]"
69
+ :prop="prop":data="filters"
70
+ @filterValue="filterValue($event, filters[prop])">
71
+ </Number>
72
+ </div>
73
+ <div v-else-if="isDateTime(item[prop])">
74
+ <Date
75
+ :data="filters"
76
+ :filter="filters[prop]"
77
+ :prop="prop"
78
+ @filterValue="filterDate($event, filters[prop])">
79
+ </Date>
80
+ </div>
81
+ <div v-else-if="isString(item[prop])">
82
+ <Text
83
+ :data="filters"
84
+ :filter="filters[prop]"
85
+ :prop="prop"
86
+ @filterValue="filterValue($event, filters[prop])">
87
+ </Text>
88
+ </div>
89
+ </span>
90
+ </template>
@@ -0,0 +1,20 @@
1
+ export const isNumber = (n: any) => {
2
+ return !isNaN(parseFloat(n)) && !isNaN(n - 0)
3
+ }
4
+
5
+ export const isDateTime = (d: any) =>{
6
+ if(/^[\d]{4}-[\d]{2}-[\d]{2}T[\d]{2}:[\d]{2}:[\d]{2}.[\d]+$/.test(d)){
7
+ let datetime = new window.Date(d);
8
+ return datetime instanceof window.Date;
9
+ }
10
+ return false;
11
+ }
12
+
13
+ export const isString = (s: any) =>{
14
+ return typeof s === 'string' || s instanceof String;
15
+ }
16
+
17
+ export const toDate = (value: any) => {
18
+ const date = new Date(value);
19
+ return date.toLocaleDateString() + ' ' + date.toLocaleTimeString();
20
+ }
@@ -0,0 +1,41 @@
1
+ <script lang="ts">
2
+ import { faRefresh, faSearch } from '@fortawesome/free-solid-svg-icons';
3
+ import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
4
+
5
+ export default {
6
+ components: {
7
+ FontAwesomeIcon: FontAwesomeIcon
8
+ },
9
+ props: {
10
+ showFilters: {
11
+ type: Boolean,
12
+ required: true
13
+ }
14
+ },
15
+ data() {
16
+ return {
17
+ showFilters: this.showFilters,
18
+ faSearch: faSearch,
19
+ reload: faRefresh
20
+ }
21
+ },
22
+ methods: {
23
+ search(){
24
+ this.$emit('search');
25
+ },
26
+ refresh(){
27
+ this.$emit('refresh');
28
+ }
29
+ }
30
+ }
31
+ </script>
32
+
33
+ <template>
34
+ <v-btn @click="search()" style="margin-right: 10px" color="#1697f6" v-if="showFilters" v-tooltip="'Search'">
35
+ <FontAwesomeIcon :icon="faSearch"></FontAwesomeIcon>
36
+ </v-btn>
37
+ <v-btn @click="refresh()" style="margin-right: 10px" color="#1697f6" v-if="showFilters" v-tooltip="'Refresh'">
38
+ <FontAwesomeIcon :icon="reload"></FontAwesomeIcon>
39
+ </v-btn>
40
+
41
+ </template>
@@ -1,15 +1,17 @@
1
1
  <script lang="ts">
2
2
  import { ref } from 'vue'
3
3
  import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
4
- import { faCalendar } from '@fortawesome/free-regular-svg-icons';
5
- import { faRefresh, faSearch, faHashtag } from '@fortawesome/free-solid-svg-icons';
4
+ import { faRefresh, faSearch } from '@fortawesome/free-solid-svg-icons';
6
5
  import { HeaderModel, PaginatonModel } from '../models/table-models';
7
6
  import { change, Id, load, rowClick, search } from '../helpers/resources';
8
7
  import Date from '../headerFilters/Date.vue';
8
+ import Search from '../search/SearchView.vue';
9
9
  import Text from '../headerFilters/Text.vue';
10
10
  import Number from '../headerFilters/Number.vue';
11
+ import Filters from '../headerFilters/Filters.vue';
11
12
  import SortView from '../sort/SortView.vue';
12
13
  import PaginationView from '../pagination/PaginationView.vue';
14
+ import DataItem from './data/ItemView.vue';
13
15
 
14
16
  export default {
15
17
  props: {
@@ -80,7 +82,10 @@ export default {
80
82
  Text: Text,
81
83
  Number: Number,
82
84
  SortView: SortView,
83
- PaginationView: PaginationView
85
+ PaginationView: PaginationView,
86
+ Filters: Filters,
87
+ DataItem: DataItem,
88
+ Search: Search
84
89
  },
85
90
  mounted() {
86
91
  this.firstChange = true;
@@ -102,14 +107,9 @@ export default {
102
107
  }
103
108
  },
104
109
  emits: [change, load, rowClick, search],
105
- setup(props, params) {
106
- const modelValue = ref([]);
107
- return { modelValue };
108
- },
109
110
  data() {
110
111
  return {
111
112
  dataheader: this.dataheader,
112
- calendar: faCalendar,
113
113
  dataItems: this.dataItems,
114
114
  dialog: false,
115
115
  new: true,
@@ -130,7 +130,6 @@ export default {
130
130
  page: this.pagination!.CurrentPage,
131
131
  pageCount: this.pagination!.PageCount,
132
132
  totalCount:this.pagination!.TotalCount,
133
- hashTag: faHashtag,
134
133
  showTime: this.showTime,
135
134
  };
136
135
  },
@@ -192,23 +191,6 @@ export default {
192
191
  isNumber(n: any) {
193
192
  return !isNaN(parseFloat(n)) && !isNaN(n - 0)
194
193
  },
195
- isDateTime(d: any){
196
- if(/^[\d]{4}-[\d]{2}-[\d]{2}T[\d]{2}:[\d]{2}:[\d]{2}.[\d]+$/.test(d)){
197
- let datetime = new window.Date(d);
198
- return datetime instanceof window.Date;
199
- }
200
- return false;
201
- },
202
- isString(s: any){
203
- return typeof s === 'string' || s instanceof String;
204
- },
205
- toDate(d: any){
206
- if(this.showTime){
207
- return (new window.Date(d).toLocaleDateString()) + " " + (new window.Date(d).toLocaleTimeString());
208
- }
209
-
210
- return (new window.Date(d).toLocaleDateString());
211
- },
212
194
  options(event: any){
213
195
  this.page = event!.page;
214
196
  this.filters.CurrentPage = this.page;
@@ -298,47 +280,24 @@ export default {
298
280
  </tr>
299
281
  <tr v-if="index == 0 && showFilters" class="filter-items" >
300
282
  <td v-for="(prop, index) in Object.keys(item)">
301
- <span v-if="prop == key!">
302
- <FontAwesomeIcon :icon="hashTag"></FontAwesomeIcon>
303
- </span>
304
- <span v-else>
305
- <div v-if="isNumber(item[prop])">
306
- <Number
307
- :filter="filters[prop]"
308
- :prop="prop":data="filters"
309
- @filterValue="filterValue($event, filters[prop])">
310
- </Number>
311
- </div>
312
- <div v-else-if="isDateTime(item[prop])">
313
- <Date
314
- :data="filters"
315
- :filter="filters[prop]"
316
- :prop="prop"
317
- @filterValue="filterDate($event, filters[prop])">
318
- </Date>
319
- </div>
320
- <div v-else-if="isString(item[prop])">
321
- <Text
322
- :data="filters"
323
- :filter="filters[prop]"
324
- :prop="prop"
325
- @filterValue="filterValue($event, filters[prop])">
326
- </Text>
327
- </div>
328
- </span>
283
+ <Filters
284
+ :item="item"
285
+ :filters="filters"
286
+ :showFilters="showFilters"
287
+ :key="key"
288
+ :prop="prop"
289
+ @filterValue="filterValue($event, filters[prop])">
290
+ </Filters>
329
291
  </td>
330
- </tr>
292
+ </tr>>
331
293
  <tr @dblclick="updateItem(item, $event)">
332
294
  <td v-for="(prop) in Object.keys(item)">
333
- <span v-if="prop == key!">
334
- {{ index + 1 }}
335
- </span>
336
- <span v-else-if="isDateTime(item[prop])">
337
- {{ toDate(item[prop]) }}
338
- </span>
339
- <span v-else>
340
- {{ item[prop] }}
341
- </span>
295
+ <DataItem
296
+ :item="item"
297
+ :prop="prop"
298
+ :key="key"
299
+ :index="index">
300
+ </DataItem>
342
301
  </td>
343
302
  </tr>
344
303
  </template>
@@ -0,0 +1,45 @@
1
+ <script lang="ts">
2
+ import { isDateTime, toDate } from '../../helpers/instances';
3
+ export default {
4
+ props: {
5
+ item: {
6
+ type: Object,
7
+ required: true
8
+ },
9
+ index: {
10
+ type: Number,
11
+ required: true
12
+ },
13
+ prop: {
14
+ type: String,
15
+ required: true
16
+ },
17
+ key: {
18
+ type: String,
19
+ required: false
20
+ }
21
+ },
22
+ data() {
23
+ return {
24
+ item: this.item,
25
+ index: this.index,
26
+ prop: this.prop,
27
+ key: this.key,
28
+ isDateTime: isDateTime,
29
+ toDate: toDate
30
+ }
31
+ }
32
+ }
33
+
34
+ </script>
35
+ <template>
36
+ <span v-if="prop == key!">
37
+ {{ index + 1 }}
38
+ </span>
39
+ <span v-else-if="isDateTime(item[prop])">
40
+ {{ toDate(item[prop]) }}
41
+ </span>
42
+ <span v-else>
43
+ {{ item[prop] }}
44
+ </span>
45
+ </template>