@itfin/components 2.0.29 → 2.0.30

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itfin/components",
3
- "version": "2.0.29",
3
+ "version": "2.0.30",
4
4
  "author": "Vitalii Savchuk <esvit666@gmail.com>",
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -46,6 +46,7 @@
46
46
  "clipboard": "^2.0.11",
47
47
  "core-js": "^3.7.0",
48
48
  "intersection-observer": "^0.12.2",
49
+ "json5": "^2.2.3",
49
50
  "lodash": "^4.17.20",
50
51
  "luxon": "^3.3.0",
51
52
  "pdfjs-dist": "^2.10.377",
@@ -75,10 +75,12 @@ class itfApp extends Vue {
75
75
  try {
76
76
  await func();
77
77
  } catch (err) {
78
- console.error(err);
79
- this.showError(err.message);
80
- if (errFunc) {
81
- errFunc(err);
78
+ if (err.code !== 'ERR_CANCELED') {
79
+ console.error(err);
80
+ this.showError(err.message);
81
+ if (errFunc) {
82
+ errFunc(err);
83
+ }
82
84
  }
83
85
  }
84
86
  }
@@ -52,7 +52,7 @@
52
52
  </div>
53
53
  <slot name="after-filters"></slot>
54
54
  </div>
55
- <div v-if="loading">
55
+ <div v-if="loading && !visibleFilters.length">
56
56
  <span class="itf-spinner"></span>
57
57
  {{$t('loading')}}
58
58
  </div>
@@ -235,15 +235,7 @@ class FilterPanel extends Vue {
235
235
 
236
236
  this.filters = this.staticFilters ?? [];
237
237
  if (this.endpoint) {
238
- this.loading = true;
239
- await this.$try(async () => {
240
- const payload = this.panel ? this.panel.getPayload() : {};
241
- const {filters, tableSchema} = await this.$axios.$get(this.endpoint, { params: payload });
242
- this.filters = filters;
243
- this.$emit('set-table-schema', tableSchema);
244
- this.loadFiltersValue();
245
- });
246
- this.loading = false;
238
+ this.loadData();
247
239
  } else {
248
240
  this.loadFiltersValue();
249
241
  }
@@ -252,6 +244,21 @@ class FilterPanel extends Vue {
252
244
  }
253
245
  }
254
246
 
247
+ async loadData() {
248
+ this.loading = true;
249
+ await this.$try(async () => {
250
+ const payload = this.panel ? this.panel.getPayload() : {};
251
+ const {filters, tableSchema} = await this.$axios.$get(this.endpoint, {
252
+ preventRaceCondition: true,
253
+ params: payload
254
+ });
255
+ this.filters = filters;
256
+ this.$emit('set-table-schema', tableSchema);
257
+ this.loadFiltersValue();
258
+ });
259
+ this.loading = false;
260
+ }
261
+
255
262
  toggleFilters() {
256
263
  this.showFilters = !this.showFilters;
257
264
  if (this.stateName) {
@@ -1,4 +1,4 @@
1
- <template><svg width="24" height="24" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path fill-rule="evenodd" clip-rule="evenodd" d="M10.0003 15.8337C13.222 15.8337 15.8337 13.222 15.8337 10.0003C15.8337 6.77866 13.222 4.16699 10.0003 4.16699C6.77866 4.16699 4.16699 6.77866 4.16699 10.0003C4.16699 13.222 6.77866 15.8337 10.0003 15.8337ZM7.91697 10.0003C7.91697 8.84973 8.84971 7.91699 10.0003 7.91699C11.1509 7.91699 12.0836 8.84973 12.0836 10.0003C12.0836 11.1509 11.1509 12.0837 10.0003 12.0837C8.84971 12.0837 7.91697 11.1509 7.91697 10.0003ZM10.0003 6.25032C7.92924 6.25032 6.25031 7.92925 6.25031 10.0003C6.25031 12.0714 7.92924 13.7503 10.0003 13.7503C12.0714 13.7503 13.7503 12.0714 13.7503 10.0003C13.7503 7.92925 12.0714 6.25032 10.0003 6.25032Z" fill="currentColor"/>
1
+ <template><svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.1 14.6667V14H6.2V16.6667C6.2 17.4067 6.823 18 7.6 18H17.4C18.177 18 18.8 17.4067 18.8 16.6667V14H13.9V14.6667H11.1ZM18.1 8.66667H15.3V7.33333L13.9 6H11.1L9.7 7.33333V8.66667H6.9C6.13 8.66667 5.5 9.26667 5.5 10V12C5.5 12.74 6.123 13.3333 6.9 13.3333H11.1V12H13.9V13.3333H18.1C18.87 13.3333 19.5 12.7333 19.5 12V10C19.5 9.26667 18.87 8.66667 18.1 8.66667ZM13.9 8.66667H11.1V7.33333H13.9V8.66667Z" fill="currentColor"></path>
3
3
  </svg>
4
4
  </template>
@@ -0,0 +1,4 @@
1
+ <template><svg width="24" height="24" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M10.0003 15.8337C13.222 15.8337 15.8337 13.222 15.8337 10.0003C15.8337 6.77866 13.222 4.16699 10.0003 4.16699C6.77866 4.16699 4.16699 6.77866 4.16699 10.0003C4.16699 13.222 6.77866 15.8337 10.0003 15.8337ZM7.91697 10.0003C7.91697 8.84973 8.84971 7.91699 10.0003 7.91699C11.1509 7.91699 12.0836 8.84973 12.0836 10.0003C12.0836 11.1509 11.1509 12.0837 10.0003 12.0837C8.84971 12.0837 7.91697 11.1509 7.91697 10.0003ZM10.0003 6.25032C7.92924 6.25032 6.25031 7.92925 6.25031 10.0003C6.25031 12.0714 7.92924 13.7503 10.0003 13.7503C12.0714 13.7503 13.7503 12.0714 13.7503 10.0003C13.7503 7.92925 12.0714 6.25032 10.0003 6.25032Z" fill="currentColor"/>
3
+ </svg>
4
+ </template>
@@ -1,511 +1,512 @@
1
1
  export default {
2
- 'airplay': () => import('./components/airplay.vue'),
3
- 'archive': () => import('./components/archive.vue'),
4
2
  'align_horizontal': () => import('./components/align_horizontal.vue'),
5
- 'arrow_down': () => import('./components/arrow_down.vue'),
3
+ 'airplay': () => import('./components/airplay.vue'),
6
4
  'align_vertical': () => import('./components/align_vertical.vue'),
5
+ 'alarm_clock': () => import('./components/alarm_clock.vue'),
6
+ 'archive': () => import('./components/archive.vue'),
7
7
  'angle': () => import('./components/angle.vue'),
8
- 'arrow_left': () => import('./components/arrow_left.vue'),
9
8
  'arrow_bottom_left': () => import('./components/arrow_bottom_left.vue'),
10
- 'arrow_right': () => import('./components/arrow_right.vue'),
11
- 'arrow_left_circle': () => import('./components/arrow_left_circle.vue'),
12
- 'arrow_top_right': () => import('./components/arrow_top_right.vue'),
13
9
  'arrow_bottom_right': () => import('./components/arrow_bottom_right.vue'),
10
+ 'arrow_down_circle': () => import('./components/arrow_down_circle.vue'),
11
+ 'arrow_down': () => import('./components/arrow_down.vue'),
12
+ 'arrow_left': () => import('./components/arrow_left.vue'),
13
+ 'arrow_left_circle': () => import('./components/arrow_left_circle.vue'),
14
+ 'arrow_right': () => import('./components/arrow_right.vue'),
15
+ 'arrow_right_circle': () => import('./components/arrow_right_circle.vue'),
16
+ 'arrow_up_circle': () => import('./components/arrow_up_circle.vue'),
14
17
  'arrow_top_left': () => import('./components/arrow_top_left.vue'),
15
18
  'arrow_up': () => import('./components/arrow_up.vue'),
19
+ 'arrow_top_right': () => import('./components/arrow_top_right.vue'),
20
+ 'backward10': () => import('./components/backward10.vue'),
21
+ 'backward': () => import('./components/backward.vue'),
16
22
  'backspace': () => import('./components/backspace.vue'),
17
- 'battery_charging': () => import('./components/battery_charging.vue'),
18
23
  'audio_wave': () => import('./components/audio_wave.vue'),
19
- 'battery_low': () => import('./components/battery_low.vue'),
20
- 'backward10': () => import('./components/backward10.vue'),
21
24
  'battery_75': () => import('./components/battery_75.vue'),
25
+ 'battery_low': () => import('./components/battery_low.vue'),
22
26
  'bag': () => import('./components/bag.vue'),
23
- 'alarm_clock': () => import('./components/alarm_clock.vue'),
27
+ 'battery_empty': () => import('./components/battery_empty.vue'),
28
+ 'bell_disabled': () => import('./components/bell_disabled.vue'),
29
+ 'battery_charging': () => import('./components/battery_charging.vue'),
30
+ 'bell': () => import('./components/bell.vue'),
24
31
  'battery_full': () => import('./components/battery_full.vue'),
25
- 'bell_snooze': () => import('./components/bell_snooze.vue'),
26
32
  'battery_half': () => import('./components/battery_half.vue'),
27
33
  'bell_ringing': () => import('./components/bell_ringing.vue'),
34
+ 'bell_snooze': () => import('./components/bell_snooze.vue'),
28
35
  'bluetooth': () => import('./components/bluetooth.vue'),
29
36
  'blocked': () => import('./components/blocked.vue'),
37
+ 'book_closed': () => import('./components/book_closed.vue'),
38
+ 'book': () => import('./components/book.vue'),
39
+ 'bookmark': () => import('./components/bookmark.vue'),
40
+ 'bookmark_book': () => import('./components/bookmark_book.vue'),
41
+ 'box_download': () => import('./components/box_download.vue'),
30
42
  'book_text': () => import('./components/book_text.vue'),
31
- 'arrow_down_circle': () => import('./components/arrow_down_circle.vue'),
32
- 'bell_disabled': () => import('./components/bell_disabled.vue'),
33
43
  'box': () => import('./components/box.vue'),
34
- 'arrow_up_circle': () => import('./components/arrow_up_circle.vue'),
35
- 'book_closed': () => import('./components/book_closed.vue'),
36
- 'arrow_right_circle': () => import('./components/arrow_right_circle.vue'),
37
- 'backward': () => import('./components/backward.vue'),
38
- 'bell': () => import('./components/bell.vue'),
39
- 'calendar': () => import('./components/calendar.vue'),
40
- 'box_open': () => import('./components/box_open.vue'),
44
+ 'button_minus': () => import('./components/button_minus.vue'),
41
45
  'browser': () => import('./components/browser.vue'),
42
- 'bookmark': () => import('./components/bookmark.vue'),
43
- 'branch': () => import('./components/branch.vue'),
44
- 'book': () => import('./components/book.vue'),
45
- 'calculator': () => import('./components/calculator.vue'),
46
46
  'briefcase': () => import('./components/briefcase.vue'),
47
- 'button_minus': () => import('./components/button_minus.vue'),
48
- 'box_download': () => import('./components/box_download.vue'),
47
+ 'branch': () => import('./components/branch.vue'),
49
48
  'browser_alt': () => import('./components/browser_alt.vue'),
50
- 'calendar_day': () => import('./components/calendar_day.vue'),
51
- 'calendar_remove': () => import('./components/calendar_remove.vue'),
52
- 'battery_empty': () => import('./components/battery_empty.vue'),
53
- 'bookmark_book': () => import('./components/bookmark_book.vue'),
49
+ 'calendar': () => import('./components/calendar.vue'),
50
+ 'calculator': () => import('./components/calculator.vue'),
51
+ 'calendar_date': () => import('./components/calendar_date.vue'),
54
52
  'calendar_add': () => import('./components/calendar_add.vue'),
53
+ 'calendar_day': () => import('./components/calendar_day.vue'),
55
54
  'calendar_days': () => import('./components/calendar_days.vue'),
55
+ 'calendar_move': () => import('./components/calendar_move.vue'),
56
56
  'calendar_last_day': () => import('./components/calendar_last_day.vue'),
57
- 'card_timeline': () => import('./components/card_timeline.vue'),
58
- 'camera_noflash_alt': () => import('./components/camera_noflash_alt.vue'),
59
- 'camera': () => import('./components/camera.vue'),
57
+ 'calendar_month': () => import('./components/calendar_month.vue'),
58
+ 'camera_noflash': () => import('./components/camera_noflash.vue'),
59
+ 'calendar_remove': () => import('./components/calendar_remove.vue'),
60
60
  'calendar_week': () => import('./components/calendar_week.vue'),
61
+ 'calendar_split': () => import('./components/calendar_split.vue'),
62
+ 'camera_noflash_alt': () => import('./components/camera_noflash_alt.vue'),
61
63
  'camera_alt': () => import('./components/camera_alt.vue'),
62
- 'calendar_date': () => import('./components/calendar_date.vue'),
63
- 'camera_noflash': () => import('./components/camera_noflash.vue'),
64
- 'carousel': () => import('./components/carousel.vue'),
65
64
  'card_view': () => import('./components/card_view.vue'),
65
+ 'camera': () => import('./components/camera.vue'),
66
+ 'capture': () => import('./components/capture.vue'),
67
+ 'carousel': () => import('./components/carousel.vue'),
66
68
  'cast': () => import('./components/cast.vue'),
67
- 'calendar_move': () => import('./components/calendar_move.vue'),
68
- 'chat_add': () => import('./components/chat_add.vue'),
69
- 'check_circle': () => import('./components/check_circle.vue'),
70
69
  'cart': () => import('./components/cart.vue'),
70
+ 'card_timeline': () => import('./components/card_timeline.vue'),
71
+ 'box_open': () => import('./components/box_open.vue'),
72
+ 'button_add': () => import('./components/button_add.vue'),
73
+ 'check_circle_outside': () => import('./components/check_circle_outside.vue'),
74
+ 'chevron_close': () => import('./components/chevron_close.vue'),
75
+ 'chevron_down': () => import('./components/chevron_down.vue'),
71
76
  'chain': () => import('./components/chain.vue'),
77
+ 'chat_add': () => import('./components/chat_add.vue'),
78
+ 'check_circle': () => import('./components/check_circle.vue'),
72
79
  'checkbox_checked': () => import('./components/checkbox_checked.vue'),
73
- 'calendar_split': () => import('./components/calendar_split.vue'),
74
- 'calendar_month': () => import('./components/calendar_month.vue'),
75
- 'chevron_down': () => import('./components/chevron_down.vue'),
76
- 'check_circle_outside': () => import('./components/check_circle_outside.vue'),
80
+ 'chevron_left': () => import('./components/chevron_left.vue'),
81
+ 'checkbox_empty': () => import('./components/checkbox_empty.vue'),
82
+ 'chevron_down_circle': () => import('./components/chevron_down_circle.vue'),
83
+ 'chevron_left_circle': () => import('./components/chevron_left_circle.vue'),
84
+ 'chevron_right_double': () => import('./components/chevron_right_double.vue'),
77
85
  'chevron_left_double': () => import('./components/chevron_left_double.vue'),
78
- 'chevron_right_circle': () => import('./components/chevron_right_circle.vue'),
79
86
  'check': () => import('./components/check.vue'),
80
87
  'chevron_down_double': () => import('./components/chevron_down_double.vue'),
81
- 'checkbox_empty': () => import('./components/checkbox_empty.vue'),
82
- 'chevron_close': () => import('./components/chevron_close.vue'),
83
- 'chevron_up_circle': () => import('./components/chevron_up_circle.vue'),
84
- 'chevron_right': () => import('./components/chevron_right.vue'),
88
+ 'chevron_up': () => import('./components/chevron_up.vue'),
85
89
  'chevron_open': () => import('./components/chevron_open.vue'),
86
- 'chevron_down_circle': () => import('./components/chevron_down_circle.vue'),
87
- 'chevron_right_double': () => import('./components/chevron_right_double.vue'),
88
- 'circle_menu': () => import('./components/circle_menu.vue'),
89
- 'chevron_up_double': () => import('./components/chevron_up_double.vue'),
90
+ 'chevron_right_circle': () => import('./components/chevron_right_circle.vue'),
90
91
  'circle': () => import('./components/circle.vue'),
91
- 'chevron_up': () => import('./components/chevron_up.vue'),
92
- 'chevron_left_circle': () => import('./components/chevron_left_circle.vue'),
93
- 'clipboard_check': () => import('./components/clipboard_check.vue'),
94
- 'clipboard': () => import('./components/clipboard.vue'),
95
- 'clipboard_cross': () => import('./components/clipboard_cross.vue'),
92
+ 'chevron_up_double': () => import('./components/chevron_up_double.vue'),
93
+ 'clipboard_remove': () => import('./components/clipboard_remove.vue'),
94
+ 'chevron_right': () => import('./components/chevron_right.vue'),
95
+ 'chevron_up_circle': () => import('./components/chevron_up_circle.vue'),
96
+ 'circle_menu': () => import('./components/circle_menu.vue'),
96
97
  'circle_split': () => import('./components/circle_split.vue'),
97
- 'chevron_left': () => import('./components/chevron_left.vue'),
98
- 'clipboard_notes': () => import('./components/clipboard_notes.vue'),
99
98
  'clipboard_add': () => import('./components/clipboard_add.vue'),
100
- 'capture': () => import('./components/capture.vue'),
101
- 'clock': () => import('./components/clock.vue'),
102
- 'button_add': () => import('./components/button_add.vue'),
99
+ 'clipboard_check': () => import('./components/clipboard_check.vue'),
103
100
  'clipboard_copy': () => import('./components/clipboard_copy.vue'),
104
- 'clipboard_remove': () => import('./components/clipboard_remove.vue'),
105
- 'cloud_upload': () => import('./components/cloud_upload.vue'),
101
+ 'clipboard_notes': () => import('./components/clipboard_notes.vue'),
102
+ 'clock': () => import('./components/clock.vue'),
106
103
  'close': () => import('./components/close.vue'),
104
+ 'clipboard_cross': () => import('./components/clipboard_cross.vue'),
107
105
  'code': () => import('./components/code.vue'),
108
- 'cloud': () => import('./components/cloud.vue'),
109
- 'coins': () => import('./components/coins.vue'),
106
+ 'clipboard': () => import('./components/clipboard.vue'),
107
+ 'cloud_upload': () => import('./components/cloud_upload.vue'),
108
+ 'cloud_disconnect': () => import('./components/cloud_disconnect.vue'),
109
+ 'cloud_upload_alt': () => import('./components/cloud_upload_alt.vue'),
110
+ 'cloud_download': () => import('./components/cloud_download.vue'),
110
111
  'cloud_download_alt': () => import('./components/cloud_download_alt.vue'),
111
- 'component_add': () => import('./components/component_add.vue'),
112
+ 'coin': () => import('./components/coin.vue'),
113
+ 'coins': () => import('./components/coins.vue'),
112
114
  'compass': () => import('./components/compass.vue'),
115
+ 'cloud': () => import('./components/cloud.vue'),
113
116
  'contacts': () => import('./components/contacts.vue'),
114
- 'coin': () => import('./components/coin.vue'),
115
- 'cloud_disconnect': () => import('./components/cloud_disconnect.vue'),
117
+ 'coffee': () => import('./components/coffee.vue'),
118
+ 'crop': () => import('./components/crop.vue'),
119
+ 'component_add': () => import('./components/component_add.vue'),
120
+ 'credit_card': () => import('./components/credit_card.vue'),
116
121
  'contract': () => import('./components/contract.vue'),
117
122
  'connect': () => import('./components/connect.vue'),
118
- 'crop': () => import('./components/crop.vue'),
119
123
  'create': () => import('./components/create.vue'),
120
- 'cloud_download': () => import('./components/cloud_download.vue'),
121
- 'cloud_upload_alt': () => import('./components/cloud_upload_alt.vue'),
122
- 'cylinder': () => import('./components/cylinder.vue'),
123
124
  'cross_circle': () => import('./components/cross_circle.vue'),
124
- 'database': () => import('./components/database.vue'),
125
+ 'cross': () => import('./components/cross.vue'),
125
126
  'crosshair': () => import('./components/crosshair.vue'),
126
127
  'diamond': () => import('./components/diamond.vue'),
127
- 'cube': () => import('./components/cube.vue'),
128
- 'cross': () => import('./components/cross.vue'),
128
+ 'database': () => import('./components/database.vue'),
129
+ 'cylinder': () => import('./components/cylinder.vue'),
130
+ 'disc': () => import('./components/disc.vue'),
129
131
  'directions': () => import('./components/directions.vue'),
130
- 'document_list': () => import('./components/document_list.vue'),
132
+ 'display_alt': () => import('./components/display_alt.vue'),
131
133
  'display': () => import('./components/display.vue'),
132
- 'disc': () => import('./components/disc.vue'),
134
+ 'cube': () => import('./components/cube.vue'),
135
+ 'document_words': () => import('./components/document_words.vue'),
136
+ 'door': () => import('./components/door.vue'),
133
137
  'document': () => import('./components/document.vue'),
138
+ 'document_list': () => import('./components/document_list.vue'),
134
139
  'document_justified': () => import('./components/document_justified.vue'),
135
- 'display_alt': () => import('./components/display_alt.vue'),
136
- 'door': () => import('./components/door.vue'),
137
- 'document_stack': () => import('./components/document_stack.vue'),
140
+ 'downward': () => import('./components/downward.vue'),
138
141
  'door_alt': () => import('./components/door_alt.vue'),
142
+ 'document_stack': () => import('./components/document_stack.vue'),
139
143
  'download': () => import('./components/download.vue'),
140
- 'document_words': () => import('./components/document_words.vue'),
141
- 'downward': () => import('./components/downward.vue'),
142
144
  'drag': () => import('./components/drag.vue'),
143
- 'credit_card': () => import('./components/credit_card.vue'),
145
+ 'download_alt': () => import('./components/download_alt.vue'),
144
146
  'duplicate': () => import('./components/duplicate.vue'),
145
147
  'drag_vertical': () => import('./components/drag_vertical.vue'),
148
+ 'exit_left': () => import('./components/exit_left.vue'),
146
149
  'drag_circle': () => import('./components/drag_circle.vue'),
147
- 'download_alt': () => import('./components/download_alt.vue'),
150
+ 'duplicate_alt': () => import('./components/duplicate_alt.vue'),
151
+ 'exit_right': () => import('./components/exit_right.vue'),
148
152
  'episodes': () => import('./components/episodes.vue'),
153
+ 'expand_height': () => import('./components/expand_height.vue'),
154
+ 'eye': () => import('./components/eye.vue'),
155
+ 'enter': () => import('./components/enter.vue'),
156
+ 'external': () => import('./components/external.vue'),
149
157
  'enter_alt': () => import('./components/enter_alt.vue'),
150
- 'exit_left': () => import('./components/exit_left.vue'),
151
- 'duplicate_alt': () => import('./components/duplicate_alt.vue'),
152
- 'expand': () => import('./components/expand.vue'),
158
+ 'eye_no': () => import('./components/eye_no.vue'),
159
+ 'face_delighted': () => import('./components/face_delighted.vue'),
153
160
  'expand_width': () => import('./components/expand_width.vue'),
154
- 'eye': () => import('./components/eye.vue'),
155
161
  'face_happy': () => import('./components/face_happy.vue'),
156
162
  'eye_closed': () => import('./components/eye_closed.vue'),
157
- 'face_delighted': () => import('./components/face_delighted.vue'),
158
- 'face_neutral': () => import('./components/face_neutral.vue'),
163
+ 'face_sad': () => import('./components/face_sad.vue'),
164
+ 'expand': () => import('./components/expand.vue'),
159
165
  'fi_fingerprint': () => import('./components/fi_fingerprint.vue'),
160
- 'file_download': () => import('./components/file_download.vue'),
161
- 'expand_height': () => import('./components/expand_height.vue'),
162
- 'enter': () => import('./components/enter.vue'),
163
- 'coffee': () => import('./components/coffee.vue'),
164
- 'film': () => import('./components/film.vue'),
166
+ 'face_neutral': () => import('./components/face_neutral.vue'),
167
+ 'filter': () => import('./components/filter.vue'),
165
168
  'files_multi': () => import('./components/files_multi.vue'),
166
- 'external': () => import('./components/external.vue'),
167
- 'filter_all': () => import('./components/filter_all.vue'),
168
- 'face_sad': () => import('./components/face_sad.vue'),
169
+ 'file_upload': () => import('./components/file_upload.vue'),
170
+ 'filter_completed': () => import('./components/filter_completed.vue'),
171
+ 'file_download': () => import('./components/file_download.vue'),
169
172
  'filter_circle': () => import('./components/filter_circle.vue'),
170
- 'filter': () => import('./components/filter.vue'),
173
+ 'files_history': () => import('./components/files_history.vue'),
174
+ 'filter_all': () => import('./components/filter_all.vue'),
171
175
  'filter_ongoing': () => import('./components/filter_ongoing.vue'),
172
176
  'filter_not_started': () => import('./components/filter_not_started.vue'),
173
- 'filter_single': () => import('./components/filter_single.vue'),
174
- 'exit_right': () => import('./components/exit_right.vue'),
177
+ 'files_stack': () => import('./components/files_stack.vue'),
178
+ 'filter_overdue': () => import('./components/filter_overdue.vue'),
179
+ 'film': () => import('./components/film.vue'),
175
180
  'fingerprint': () => import('./components/fingerprint.vue'),
181
+ 'flame': () => import('./components/flame.vue'),
176
182
  'filtering': () => import('./components/filtering.vue'),
177
- 'folder_add': () => import('./components/folder_add.vue'),
178
- 'folder_minus': () => import('./components/folder_minus.vue'),
183
+ 'flag': () => import('./components/flag.vue'),
179
184
  'folder_closed': () => import('./components/folder_closed.vue'),
180
- 'fork_git': () => import('./components/fork_git.vue'),
181
- 'filter_overdue': () => import('./components/filter_overdue.vue'),
182
- 'flame': () => import('./components/flame.vue'),
183
- 'folder_open': () => import('./components/folder_open.vue'),
184
- 'forward10': () => import('./components/forward10.vue'),
185
185
  'flip_view': () => import('./components/flip_view.vue'),
186
- 'file_upload': () => import('./components/file_upload.vue'),
187
- 'forward_alt': () => import('./components/forward_alt.vue'),
188
186
  'flame_alt': () => import('./components/flame_alt.vue'),
189
- 'files_stack': () => import('./components/files_stack.vue'),
187
+ 'filter_single': () => import('./components/filter_single.vue'),
190
188
  'floppy': () => import('./components/floppy.vue'),
189
+ 'folder_add': () => import('./components/folder_add.vue'),
190
+ 'fork_git': () => import('./components/fork_git.vue'),
191
+ 'folder_minus': () => import('./components/folder_minus.vue'),
192
+ 'forward': () => import('./components/forward.vue'),
193
+ 'forward_alt': () => import('./components/forward_alt.vue'),
194
+ 'frame': () => import('./components/frame.vue'),
195
+ 'fullscreen': () => import('./components/fullscreen.vue'),
196
+ 'forward10': () => import('./components/forward10.vue'),
191
197
  'funnel': () => import('./components/funnel.vue'),
198
+ 'graph_bar': () => import('./components/graph_bar.vue'),
199
+ 'folder_open': () => import('./components/folder_open.vue'),
200
+ 'grab': () => import('./components/grab.vue'),
192
201
  'globe': () => import('./components/globe.vue'),
193
- 'gift': () => import('./components/gift.vue'),
194
202
  'gauge': () => import('./components/gauge.vue'),
195
- 'eye_no': () => import('./components/eye_no.vue'),
196
- 'fullscreen': () => import('./components/fullscreen.vue'),
197
- 'frame': () => import('./components/frame.vue'),
198
- 'grid_circles': () => import('./components/grid_circles.vue'),
199
- 'graph_increase': () => import('./components/graph_increase.vue'),
200
203
  'gps': () => import('./components/gps.vue'),
201
- 'graph_bar': () => import('./components/graph_bar.vue'),
202
- 'flag': () => import('./components/flag.vue'),
203
- 'grid': () => import('./components/grid.vue'),
204
- 'grid_squares': () => import('./components/grid_squares.vue'),
205
- 'files_history': () => import('./components/files_history.vue'),
206
- 'forward': () => import('./components/forward.vue'),
204
+ 'gift': () => import('./components/gift.vue'),
207
205
  'graph_box': () => import('./components/graph_box.vue'),
208
- 'grid_small': () => import('./components/grid_small.vue'),
206
+ 'grid_circles_add': () => import('./components/grid_circles_add.vue'),
207
+ 'grid': () => import('./components/grid.vue'),
209
208
  'grid_squares_add': () => import('./components/grid_squares_add.vue'),
209
+ 'hand': () => import('./components/hand.vue'),
210
+ 'grid_small': () => import('./components/grid_small.vue'),
211
+ 'graph_increase': () => import('./components/graph_increase.vue'),
210
212
  'heart': () => import('./components/heart.vue'),
213
+ 'grid_circles': () => import('./components/grid_circles.vue'),
214
+ 'grid_squares': () => import('./components/grid_squares.vue'),
211
215
  'heart_rate': () => import('./components/heart_rate.vue'),
212
- 'home_door': () => import('./components/home_door.vue'),
216
+ 'hash': () => import('./components/hash.vue'),
213
217
  'heart_remove': () => import('./components/heart_remove.vue'),
214
- 'hierarchy': () => import('./components/hierarchy.vue'),
215
- 'height': () => import('./components/height.vue'),
216
- 'filter_completed': () => import('./components/filter_completed.vue'),
217
- 'grab': () => import('./components/grab.vue'),
218
218
  'harddrive': () => import('./components/harddrive.vue'),
219
- 'iphone_landscape': () => import('./components/iphone_landscape.vue'),
219
+ 'home': () => import('./components/home.vue'),
220
+ 'home_check': () => import('./components/home_check.vue'),
220
221
  'home_alt': () => import('./components/home_alt.vue'),
222
+ 'iphone_portrait': () => import('./components/iphone_portrait.vue'),
223
+ 'home_door': () => import('./components/home_door.vue'),
221
224
  'inbox_alt': () => import('./components/inbox_alt.vue'),
225
+ 'import': () => import('./components/import.vue'),
226
+ 'hierarchy': () => import('./components/hierarchy.vue'),
227
+ 'height': () => import('./components/height.vue'),
228
+ 'inbox': () => import('./components/inbox.vue'),
229
+ 'iphone_landscape': () => import('./components/iphone_landscape.vue'),
222
230
  'jump_backward': () => import('./components/jump_backward.vue'),
223
- 'home': () => import('./components/home.vue'),
224
231
  'info_circle': () => import('./components/info_circle.vue'),
225
- 'grid_circles_add': () => import('./components/grid_circles_add.vue'),
226
- 'home_check': () => import('./components/home_check.vue'),
227
- 'import': () => import('./components/import.vue'),
228
- 'keyboard': () => import('./components/keyboard.vue'),
229
232
  'jump_forward': () => import('./components/jump_forward.vue'),
230
- 'laptop': () => import('./components/laptop.vue'),
231
- 'iphone_portrait': () => import('./components/iphone_portrait.vue'),
232
233
  'lightning': () => import('./components/lightning.vue'),
233
234
  'jump_left': () => import('./components/jump_left.vue'),
234
- 'link_broken': () => import('./components/link_broken.vue'),
235
+ 'lightning_alt': () => import('./components/lightning_alt.vue'),
236
+ 'laptop': () => import('./components/laptop.vue'),
237
+ 'jump_right': () => import('./components/jump_right.vue'),
238
+ 'lightbulb': () => import('./components/lightbulb.vue'),
239
+ 'lineweight': () => import('./components/lineweight.vue'),
240
+ 'keyboard': () => import('./components/keyboard.vue'),
241
+ 'link_horizontal': () => import('./components/link_horizontal.vue'),
242
+ 'link': () => import('./components/link.vue'),
243
+ 'lightbulb_on': () => import('./components/lightbulb_on.vue'),
244
+ 'loader': () => import('./components/loader.vue'),
235
245
  'list': () => import('./components/list.vue'),
236
- 'hand': () => import('./components/hand.vue'),
246
+ 'link_alt': () => import('./components/link_alt.vue'),
237
247
  'list_add': () => import('./components/list_add.vue'),
238
248
  'link_vertical': () => import('./components/link_vertical.vue'),
239
- 'link': () => import('./components/link.vue'),
240
- 'link_horizontal': () => import('./components/link_horizontal.vue'),
241
- 'jump_right': () => import('./components/jump_right.vue'),
242
- 'mail': () => import('./components/mail.vue'),
243
- 'location': () => import('./components/location.vue'),
244
- 'lightbulb_on': () => import('./components/lightbulb_on.vue'),
245
- 'list_numbered': () => import('./components/list_numbered.vue'),
246
249
  'lock': () => import('./components/lock.vue'),
247
- 'loader': () => import('./components/loader.vue'),
250
+ 'link_broken': () => import('./components/link_broken.vue'),
251
+ 'location': () => import('./components/location.vue'),
252
+ 'mail_delete': () => import('./components/mail_delete.vue'),
248
253
  'mail_add': () => import('./components/mail_add.vue'),
249
254
  'lock_open': () => import('./components/lock_open.vue'),
250
- 'lightbulb': () => import('./components/lightbulb.vue'),
251
255
  'mail_open': () => import('./components/mail_open.vue'),
252
- 'mail_delete': () => import('./components/mail_delete.vue'),
253
- 'maximise': () => import('./components/maximise.vue'),
256
+ 'mail_new': () => import('./components/mail_new.vue'),
257
+ 'list_numbered': () => import('./components/list_numbered.vue'),
258
+ 'mail': () => import('./components/mail.vue'),
259
+ 'menu_hamburger': () => import('./components/menu_hamburger.vue'),
254
260
  'menu_horizontal': () => import('./components/menu_horizontal.vue'),
255
261
  'marquee': () => import('./components/marquee.vue'),
256
- 'message': () => import('./components/message.vue'),
257
- 'microphone_muted': () => import('./components/microphone_muted.vue'),
262
+ 'maximise': () => import('./components/maximise.vue'),
263
+ 'mail_minus': () => import('./components/mail_minus.vue'),
258
264
  'microphone_disabled': () => import('./components/microphone_disabled.vue'),
259
- 'microphone': () => import('./components/microphone.vue'),
260
- 'midpoint': () => import('./components/midpoint.vue'),
261
265
  'mail_remove': () => import('./components/mail_remove.vue'),
262
- 'mini_player': () => import('./components/mini_player.vue'),
266
+ 'message_writing': () => import('./components/message_writing.vue'),
267
+ 'microphone': () => import('./components/microphone.vue'),
263
268
  'menu_vertical': () => import('./components/menu_vertical.vue'),
269
+ 'microphone_muted': () => import('./components/microphone_muted.vue'),
270
+ 'mini_player': () => import('./components/mini_player.vue'),
264
271
  'minus': () => import('./components/minus.vue'),
265
- 'minimise': () => import('./components/minimise.vue'),
266
- 'move': () => import('./components/move.vue'),
267
- 'notebook': () => import('./components/notebook.vue'),
272
+ 'message': () => import('./components/message.vue'),
268
273
  'no_sign': () => import('./components/no_sign.vue'),
269
- 'moon': () => import('./components/moon.vue'),
270
- 'link_alt': () => import('./components/link_alt.vue'),
271
274
  'minus_circle': () => import('./components/minus_circle.vue'),
272
- 'lineweight': () => import('./components/lineweight.vue'),
275
+ 'newspaper': () => import('./components/newspaper.vue'),
276
+ 'move': () => import('./components/move.vue'),
277
+ 'nut': () => import('./components/nut.vue'),
278
+ 'notebook': () => import('./components/notebook.vue'),
279
+ 'notification': () => import('./components/notification.vue'),
280
+ 'midpoint': () => import('./components/midpoint.vue'),
273
281
  'panel_bottom': () => import('./components/panel_bottom.vue'),
282
+ 'minimise': () => import('./components/minimise.vue'),
283
+ 'moon': () => import('./components/moon.vue'),
284
+ 'panel_center': () => import('./components/panel_center.vue'),
274
285
  'optional': () => import('./components/optional.vue'),
275
- 'nut': () => import('./components/nut.vue'),
286
+ 'panel_sectioned': () => import('./components/panel_sectioned.vue'),
287
+ 'pages': () => import('./components/pages.vue'),
288
+ 'panel_top': () => import('./components/panel_top.vue'),
289
+ 'paper': () => import('./components/paper.vue'),
290
+ 'paper_folded': () => import('./components/paper_folded.vue'),
276
291
  'panel_left': () => import('./components/panel_left.vue'),
277
292
  'panel_right': () => import('./components/panel_right.vue'),
278
- 'lightning_alt': () => import('./components/lightning_alt.vue'),
279
- 'hash': () => import('./components/hash.vue'),
280
- 'panel_top': () => import('./components/panel_top.vue'),
281
- 'panel_center': () => import('./components/panel_center.vue'),
282
- 'newspaper': () => import('./components/newspaper.vue'),
293
+ 'paragraph_left': () => import('./components/paragraph_left.vue'),
283
294
  'paper_plane': () => import('./components/paper_plane.vue'),
284
- 'panel_sectioned': () => import('./components/panel_sectioned.vue'),
285
- 'paper_folded': () => import('./components/paper_folded.vue'),
286
- 'message_writing': () => import('./components/message_writing.vue'),
287
- 'paragraph_start': () => import('./components/paragraph_start.vue'),
288
295
  'paper_plane_alt': () => import('./components/paper_plane_alt.vue'),
289
- 'pause': () => import('./components/pause.vue'),
290
- 'pages': () => import('./components/pages.vue'),
291
296
  'paragraph_end': () => import('./components/paragraph_end.vue'),
292
- 'paragraph_left': () => import('./components/paragraph_left.vue'),
293
297
  'paragraph_right': () => import('./components/paragraph_right.vue'),
294
- 'paper': () => import('./components/paper.vue'),
295
298
  'paragraph_center': () => import('./components/paragraph_center.vue'),
296
- 'pie_half': () => import('./components/pie_half.vue'),
299
+ 'pause': () => import('./components/pause.vue'),
300
+ 'phone_portrait': () => import('./components/phone_portrait.vue'),
301
+ 'phone_landscape': () => import('./components/phone_landscape.vue'),
302
+ 'paragraph_start': () => import('./components/paragraph_start.vue'),
303
+ 'play_button': () => import('./components/play_button.vue'),
297
304
  'pen': () => import('./components/pen.vue'),
305
+ 'pie_half': () => import('./components/pie_half.vue'),
298
306
  'pie_quarter': () => import('./components/pie_quarter.vue'),
307
+ 'paperclip': () => import('./components/paperclip.vue'),
299
308
  'picture': () => import('./components/picture.vue'),
300
- 'phone_portrait': () => import('./components/phone_portrait.vue'),
301
309
  'pie_third': () => import('./components/pie_third.vue'),
302
- 'notification': () => import('./components/notification.vue'),
303
- 'play': () => import('./components/play.vue'),
304
- 'phone_landscape': () => import('./components/phone_landscape.vue'),
305
- 'project_tnm': () => import('./components/project_tnm.vue'),
306
- 'play_button': () => import('./components/play_button.vue'),
307
- 'projector': () => import('./components/projector.vue'),
310
+ 'printer': () => import('./components/printer.vue'),
311
+ 'plus_circle': () => import('./components/plus_circle.vue'),
308
312
  'plus': () => import('./components/plus.vue'),
309
313
  'project_fixed': () => import('./components/project_fixed.vue'),
314
+ 'project_tnm': () => import('./components/project_tnm.vue'),
315
+ 'play': () => import('./components/play.vue'),
316
+ 'projector': () => import('./components/projector.vue'),
317
+ 'pull_down': () => import('./components/pull_down.vue'),
310
318
  'pull_left': () => import('./components/pull_left.vue'),
311
- 'plus_circle': () => import('./components/plus_circle.vue'),
312
- 'pull_right': () => import('./components/pull_right.vue'),
313
319
  'pull_up': () => import('./components/pull_up.vue'),
314
- 'postcard': () => import('./components/postcard.vue'),
315
320
  'project_nonprofit': () => import('./components/project_nonprofit.vue'),
316
- 'mail_new': () => import('./components/mail_new.vue'),
317
- 'inbox': () => import('./components/inbox.vue'),
318
- 'push_down': () => import('./components/push_down.vue'),
319
- 'question_circle': () => import('./components/question_circle.vue'),
321
+ 'pull_right': () => import('./components/pull_right.vue'),
320
322
  'push_left': () => import('./components/push_left.vue'),
321
- 'pull_down': () => import('./components/pull_down.vue'),
322
323
  'radio_on': () => import('./components/radio_on.vue'),
324
+ 'push_up': () => import('./components/push_up.vue'),
325
+ 'push_right': () => import('./components/push_right.vue'),
326
+ 'push_down': () => import('./components/push_down.vue'),
323
327
  'redo': () => import('./components/redo.vue'),
328
+ 'postcard': () => import('./components/postcard.vue'),
329
+ 'refresh': () => import('./components/refresh.vue'),
330
+ 'question_circle': () => import('./components/question_circle.vue'),
324
331
  'record': () => import('./components/record.vue'),
332
+ 'replicate_alt': () => import('./components/replicate_alt.vue'),
333
+ 'replicate': () => import('./components/replicate.vue'),
334
+ 'refresh_alt': () => import('./components/refresh_alt.vue'),
325
335
  'receipt': () => import('./components/receipt.vue'),
326
- 'refresh': () => import('./components/refresh.vue'),
336
+ 'reset_temporary': () => import('./components/reset_temporary.vue'),
327
337
  'reset': () => import('./components/reset.vue'),
328
- 'push_right': () => import('./components/push_right.vue'),
329
- 'refresh_alt': () => import('./components/refresh_alt.vue'),
330
- 'replicate': () => import('./components/replicate.vue'),
338
+ 'reset_alt': () => import('./components/reset_alt.vue'),
339
+ 'required': () => import('./components/required.vue'),
340
+ 'revert': () => import('./components/revert.vue'),
341
+ 'reverse': () => import('./components/reverse.vue'),
342
+ 'retweet': () => import('./components/retweet.vue'),
331
343
  'reset_hard': () => import('./components/reset_hard.vue'),
332
- 'push_up': () => import('./components/push_up.vue'),
344
+ 'reuse': () => import('./components/reuse.vue'),
345
+ 'ruler': () => import('./components/ruler.vue'),
346
+ 'scale': () => import('./components/scale.vue'),
347
+ 'scale_extend': () => import('./components/scale_extend.vue'),
348
+ 'rocket': () => import('./components/rocket.vue'),
333
349
  'reverse_alt': () => import('./components/reverse_alt.vue'),
334
- 'reset_temporary': () => import('./components/reset_temporary.vue'),
335
- 'reset_forward': () => import('./components/reset_forward.vue'),
336
- 'replicate_alt': () => import('./components/replicate_alt.vue'),
337
- 'mail_minus': () => import('./components/mail_minus.vue'),
338
- 'retweet': () => import('./components/retweet.vue'),
339
- 'required': () => import('./components/required.vue'),
340
350
  'scale_contract': () => import('./components/scale_contract.vue'),
341
- 'scale_extend': () => import('./components/scale_extend.vue'),
342
- 'reset_alt': () => import('./components/reset_alt.vue'),
343
- 'ruler': () => import('./components/ruler.vue'),
344
- 'revert': () => import('./components/revert.vue'),
351
+ 'reset_forward': () => import('./components/reset_forward.vue'),
352
+ 'share': () => import('./components/share.vue'),
353
+ 'search': () => import('./components/search.vue'),
345
354
  'scalpel': () => import('./components/scalpel.vue'),
346
- 'share_alt': () => import('./components/share_alt.vue'),
347
355
  'server': () => import('./components/server.vue'),
348
- 'scale': () => import('./components/scale.vue'),
349
356
  'shuffle': () => import('./components/shuffle.vue'),
350
- 'paperclip': () => import('./components/paperclip.vue'),
357
+ 'share_alt': () => import('./components/share_alt.vue'),
358
+ 'settings': () => import('./components/settings.vue'),
351
359
  'slash_backward': () => import('./components/slash_backward.vue'),
360
+ 'sort_alt': () => import('./components/sort_alt.vue'),
352
361
  'side_menu': () => import('./components/side_menu.vue'),
353
- 'sort': () => import('./components/sort.vue'),
362
+ 'sliders': () => import('./components/sliders.vue'),
354
363
  'slash_forward': () => import('./components/slash_forward.vue'),
355
- 'share': () => import('./components/share.vue'),
356
- 'sort_alt': () => import('./components/sort_alt.vue'),
357
- 'reverse': () => import('./components/reverse.vue'),
358
- 'speech_typing': () => import('./components/speech_typing.vue'),
359
- 'reuse': () => import('./components/reuse.vue'),
360
- 'rocket': () => import('./components/rocket.vue'),
361
- 'search': () => import('./components/search.vue'),
362
- 'settings': () => import('./components/settings.vue'),
363
364
  'speech_bubble': () => import('./components/speech_bubble.vue'),
364
365
  'speaker': () => import('./components/speaker.vue'),
365
- 'switch': () => import('./components/switch.vue'),
366
+ 'sort': () => import('./components/sort.vue'),
367
+ 'speech_typing': () => import('./components/speech_typing.vue'),
368
+ 'split_three': () => import('./components/split_three.vue'),
369
+ 'support': () => import('./components/support.vue'),
370
+ 'star': () => import('./components/star.vue'),
366
371
  'table': () => import('./components/table.vue'),
372
+ 'tag': () => import('./components/tag.vue'),
367
373
  'swap': () => import('./components/swap.vue'),
368
374
  'sun': () => import('./components/sun.vue'),
369
- 'star': () => import('./components/star.vue'),
375
+ 'tag_milestone': () => import('./components/tag_milestone.vue'),
370
376
  'table_header': () => import('./components/table_header.vue'),
371
377
  'split': () => import('./components/split.vue'),
372
- 'tag_milestone': () => import('./components/tag_milestone.vue'),
373
- 'split_three': () => import('./components/split_three.vue'),
374
- 'ticket': () => import('./components/ticket.vue'),
375
- 'tag': () => import('./components/tag.vue'),
376
- 'tags': () => import('./components/tags.vue'),
378
+ 'switch': () => import('./components/switch.vue'),
377
379
  'target': () => import('./components/target.vue'),
380
+ 'tags': () => import('./components/tags.vue'),
381
+ 'thumbs_up': () => import('./components/thumbs_up.vue'),
382
+ 'thumbs_down': () => import('./components/thumbs_down.vue'),
383
+ 'toggles': () => import('./components/toggles.vue'),
384
+ 'ticket': () => import('./components/ticket.vue'),
378
385
  'timeline': () => import('./components/timeline.vue'),
379
- 'todo': () => import('./components/todo.vue'),
380
386
  'translate': () => import('./components/translate.vue'),
381
- 'printer': () => import('./components/printer.vue'),
382
- 'toggles': () => import('./components/toggles.vue'),
383
- 'trophy': () => import('./components/trophy.vue'),
384
387
  'toggle': () => import('./components/toggle.vue'),
385
- 'type_checkbox': () => import('./components/type_checkbox.vue'),
386
- 'type_email': () => import('./components/type_email.vue'),
387
- 'thumbs_up': () => import('./components/thumbs_up.vue'),
388
+ 'trash': () => import('./components/trash.vue'),
389
+ 'trophy': () => import('./components/trophy.vue'),
390
+ 'thread': () => import('./components/thread.vue'),
391
+ 'todo': () => import('./components/todo.vue'),
388
392
  'type_multiselect': () => import('./components/type_multiselect.vue'),
389
393
  'tv_mode': () => import('./components/tv_mode.vue'),
394
+ 'type_checkbox': () => import('./components/type_checkbox.vue'),
390
395
  'trash_alt': () => import('./components/trash_alt.vue'),
396
+ 'type_file': () => import('./components/type_file.vue'),
391
397
  'type_formula': () => import('./components/type_formula.vue'),
398
+ 'type_id': () => import('./components/type_id.vue'),
399
+ 'type_date': () => import('./components/type_date.vue'),
392
400
  'type_phone': () => import('./components/type_phone.vue'),
393
- 'type_relation': () => import('./components/type_relation.vue'),
394
- 'type_number': () => import('./components/type_number.vue'),
395
- 'type_file': () => import('./components/type_file.vue'),
396
- 'trash': () => import('./components/trash.vue'),
401
+ 'type_email': () => import('./components/type_email.vue'),
397
402
  'type_select': () => import('./components/type_select.vue'),
398
- 'type_date': () => import('./components/type_date.vue'),
399
- 'type_id': () => import('./components/type_id.vue'),
400
- 'type_time': () => import('./components/type_time.vue'),
401
- 'thread': () => import('./components/thread.vue'),
403
+ 'type_relation': () => import('./components/type_relation.vue'),
402
404
  'type_person': () => import('./components/type_person.vue'),
403
- 'type_text': () => import('./components/type_text.vue'),
405
+ 'type_number': () => import('./components/type_number.vue'),
404
406
  'type_url': () => import('./components/type_url.vue'),
405
407
  'undo': () => import('./components/undo.vue'),
406
- 'unlink_horizontal': () => import('./components/unlink_horizontal.vue'),
407
- 'support': () => import('./components/support.vue'),
408
+ 'unarchive': () => import('./components/unarchive.vue'),
409
+ 'type_user': () => import('./components/type_user.vue'),
410
+ 'type_text': () => import('./components/type_text.vue'),
411
+ 'type_time': () => import('./components/type_time.vue'),
412
+ 'type_status': () => import('./components/type_status.vue'),
408
413
  'unlink_vertical': () => import('./components/unlink_vertical.vue'),
409
- 'upload': () => import('./components/upload.vue'),
410
- 'upward': () => import('./components/upward.vue'),
414
+ 'upload_alt': () => import('./components/upload_alt.vue'),
411
415
  'undo_history': () => import('./components/undo_history.vue'),
412
- 'user_male_circle': () => import('./components/user_male_circle.vue'),
416
+ 'upload': () => import('./components/upload.vue'),
417
+ 'unlink_horizontal': () => import('./components/unlink_horizontal.vue'),
413
418
  'user': () => import('./components/user.vue'),
414
- 'user_add': () => import('./components/user_add.vue'),
415
- 'type_user': () => import('./components/type_user.vue'),
416
419
  'user_circle': () => import('./components/user_circle.vue'),
417
420
  'user_male': () => import('./components/user_male.vue'),
421
+ 'user_male_circle': () => import('./components/user_male_circle.vue'),
418
422
  'users': () => import('./components/users.vue'),
423
+ 'upward': () => import('./components/upward.vue'),
419
424
  'user_remove': () => import('./components/user_remove.vue'),
420
425
  'venn': () => import('./components/venn.vue'),
421
- 'version': () => import('./components/version.vue'),
422
- 'volume_disabled': () => import('./components/volume_disabled.vue'),
423
- 'type_status': () => import('./components/type_status.vue'),
426
+ 'user_add': () => import('./components/user_add.vue'),
424
427
  'versions': () => import('./components/versions.vue'),
425
- 'video': () => import('./components/video.vue'),
426
- 'volume_minus': () => import('./components/volume_minus.vue'),
427
428
  'volume_add': () => import('./components/volume_add.vue'),
429
+ 'volume_0': () => import('./components/volume_0.vue'),
428
430
  'volume_high': () => import('./components/volume_high.vue'),
429
- 'volume_muted': () => import('./components/volume_muted.vue'),
430
- 'wallet': () => import('./components/wallet.vue'),
431
- 'warning_circle': () => import('./components/warning_circle.vue'),
431
+ 'version': () => import('./components/version.vue'),
432
+ 'video': () => import('./components/video.vue'),
433
+ 'volume_disabled': () => import('./components/volume_disabled.vue'),
432
434
  'volume_low': () => import('./components/volume_low.vue'),
433
- 'upload_alt': () => import('./components/upload_alt.vue'),
435
+ 'volume_minus': () => import('./components/volume_minus.vue'),
436
+ 'wallet': () => import('./components/wallet.vue'),
434
437
  'waves': () => import('./components/waves.vue'),
435
- 'wifi': () => import('./components/wifi.vue'),
436
- 'warning_triangle': () => import('./components/warning_triangle.vue'),
437
- 'window': () => import('./components/window.vue'),
438
- 'window_collapse_left': () => import('./components/window_collapse_left.vue'),
439
- 'wifi_error': () => import('./components/wifi_error.vue'),
440
- 'unarchive': () => import('./components/unarchive.vue'),
441
- 'sliders': () => import('./components/sliders.vue'),
442
- 'thumbs_down': () => import('./components/thumbs_down.vue'),
443
438
  'warning_hex': () => import('./components/warning_hex.vue'),
444
439
  'width': () => import('./components/width.vue'),
440
+ 'warning_triangle': () => import('./components/warning_triangle.vue'),
441
+ 'warning_circle': () => import('./components/warning_circle.vue'),
442
+ 'volume_muted': () => import('./components/volume_muted.vue'),
443
+ 'window': () => import('./components/window.vue'),
444
+ 'wifi_none': () => import('./components/wifi_none.vue'),
445
+ 'wifi': () => import('./components/wifi.vue'),
445
446
  'wrap_forward': () => import('./components/wrap_forward.vue'),
446
- 'window_collapse_right': () => import('./components/window_collapse_right.vue'),
447
- 'wrap_back': () => import('./components/wrap_back.vue'),
447
+ 'wifi_error': () => import('./components/wifi_error.vue'),
448
448
  'window_content': () => import('./components/window_content.vue'),
449
- 'menu_hamburger': () => import('./components/menu_hamburger.vue'),
450
- 'volume_0': () => import('./components/volume_0.vue'),
451
- 'zoom_in': () => import('./components/zoom_in.vue'),
449
+ 'wrap_back': () => import('./components/wrap_back.vue'),
450
+ 'window_collapse_right': () => import('./components/window_collapse_right.vue'),
451
+ 'zoom_cancel': () => import('./components/zoom_cancel.vue'),
452
452
  'write': () => import('./components/write.vue'),
453
453
  'zoom_out': () => import('./components/zoom_out.vue'),
454
- 'wifi_none': () => import('./components/wifi_none.vue'),
455
- 'zoom_cancel': () => import('./components/zoom_cancel.vue'),
454
+ 'zoom_in': () => import('./components/zoom_in.vue'),
456
455
  'zoom_reset': () => import('./components/zoom_reset.vue'),
457
- 'nomi-arrow-up': () => import('./components/nomi-arrow-up.vue'),
458
- 'nomi-bell': () => import('./components/nomi-bell.vue'),
459
- 'nomi-arrow_down': () => import('./components/nomi-arrow_down.vue'),
460
- 'nomi-calendar-alt2': () => import('./components/nomi-calendar-alt2.vue'),
461
- 'nomi-arrow-down': () => import('./components/nomi-arrow-down.vue'),
456
+ 'window_collapse_left': () => import('./components/window_collapse_left.vue'),
462
457
  'nomi-ai': () => import('./components/nomi-ai.vue'),
458
+ 'nomi-arrow-down': () => import('./components/nomi-arrow-down.vue'),
459
+ 'nomi-arrow-up': () => import('./components/nomi-arrow-up.vue'),
460
+ 'nomi-arrow_up': () => import('./components/nomi-arrow_up.vue'),
463
461
  'nomi-arrow-right-top': () => import('./components/nomi-arrow-right-top.vue'),
462
+ 'nomi-arrow_down': () => import('./components/nomi-arrow_down.vue'),
463
+ 'nomi-arrows': () => import('./components/nomi-arrows.vue'),
464
464
  'nomi-card': () => import('./components/nomi-card.vue'),
465
+ 'nomi-calendar-alt2': () => import('./components/nomi-calendar-alt2.vue'),
466
+ 'nomi-calendar': () => import('./components/nomi-calendar.vue'),
465
467
  'nomi-clear': () => import('./components/nomi-clear.vue'),
466
- 'nomi-arrows': () => import('./components/nomi-arrows.vue'),
468
+ 'nomi-bell': () => import('./components/nomi-bell.vue'),
469
+ 'nomi-calendar-alt': () => import('./components/nomi-calendar-alt.vue'),
467
470
  'nomi-counterparty': () => import('./components/nomi-counterparty.vue'),
468
471
  'nomi-dashboard': () => import('./components/nomi-dashboard.vue'),
469
- 'nomi-eye-open': () => import('./components/nomi-eye-open.vue'),
470
472
  'nomi-close': () => import('./components/nomi-close.vue'),
471
- 'nomi-file': () => import('./components/nomi-file.vue'),
473
+ 'nomi-expand': () => import('./components/nomi-expand.vue'),
474
+ 'nomi-eye': () => import('./components/nomi-eye.vue'),
475
+ 'nomi-help': () => import('./components/nomi-help.vue'),
472
476
  'nomi-eye-close': () => import('./components/nomi-eye-close.vue'),
477
+ 'nomi-export': () => import('./components/nomi-export.vue'),
478
+ 'nomi-file': () => import('./components/nomi-file.vue'),
473
479
  'nomi-hide': () => import('./components/nomi-hide.vue'),
474
- 'nomi-help': () => import('./components/nomi-help.vue'),
480
+ 'nomi-lock': () => import('./components/nomi-lock.vue'),
481
+ 'nomi-filter': () => import('./components/nomi-filter.vue'),
475
482
  'nomi-logout': () => import('./components/nomi-logout.vue'),
476
- 'nomi-menu': () => import('./components/nomi-menu.vue'),
477
- 'nomi-move-left': () => import('./components/nomi-move-left.vue'),
478
483
  'nomi-money': () => import('./components/nomi-money.vue'),
479
- 'nomi-export': () => import('./components/nomi-export.vue'),
480
- 'nomi-lock': () => import('./components/nomi-lock.vue'),
481
- 'nomi-project_alt': () => import('./components/nomi-project_alt.vue'),
484
+ 'nomi-eye-open': () => import('./components/nomi-eye-open.vue'),
485
+ 'nomi-move-left': () => import('./components/nomi-move-left.vue'),
486
+ 'nomi-pen': () => import('./components/nomi-pen.vue'),
482
487
  'nomi-person': () => import('./components/nomi-person.vue'),
488
+ 'nomi-move-right': () => import('./components/nomi-move-right.vue'),
489
+ 'nomi-menu': () => import('./components/nomi-menu.vue'),
490
+ 'nomi-pin': () => import('./components/nomi-pin.vue'),
491
+ 'nomi-repeat': () => import('./components/nomi-repeat.vue'),
483
492
  'nomi-recurrence': () => import('./components/nomi-recurrence.vue'),
484
- 'nomi-calendar': () => import('./components/nomi-calendar.vue'),
485
- 'nomi-project': () => import('./components/nomi-project.vue'),
486
493
  'nomi-report': () => import('./components/nomi-report.vue'),
494
+ 'nomi-sort-asc': () => import('./components/nomi-sort-asc.vue'),
487
495
  'nomi-scissors': () => import('./components/nomi-scissors.vue'),
496
+ 'nomi-project_alt': () => import('./components/nomi-project_alt.vue'),
497
+ 'nomi-sort-desc': () => import('./components/nomi-sort-desc.vue'),
498
+ 'nomi-tag': () => import('./components/nomi-tag.vue'),
499
+ 'nomi-target': () => import('./components/nomi-target.vue'),
488
500
  'nomi-settings': () => import('./components/nomi-settings.vue'),
489
- 'nomi-sort-asc': () => import('./components/nomi-sort-asc.vue'),
490
- 'nomi-table-view': () => import('./components/nomi-table-view.vue'),
491
501
  'nomi-time': () => import('./components/nomi-time.vue'),
492
- 'nomi-move-right': () => import('./components/nomi-move-right.vue'),
502
+ 'nomi-text': () => import('./components/nomi-text.vue'),
493
503
  'nomi-transactions': () => import('./components/nomi-transactions.vue'),
494
504
  'nomi-trash': () => import('./components/nomi-trash.vue'),
495
- 'nomi-arrow_up': () => import('./components/nomi-arrow_up.vue'),
496
- 'nomi-pin': () => import('./components/nomi-pin.vue'),
497
- 'nomi-text': () => import('./components/nomi-text.vue'),
498
- 'nomi-tag': () => import('./components/nomi-tag.vue'),
499
505
  'nomi-unpin': () => import('./components/nomi-unpin.vue'),
500
- 'nomi-calendar-alt': () => import('./components/nomi-calendar-alt.vue'),
501
- 'nomi-pen': () => import('./components/nomi-pen.vue'),
502
- 'nomi-expand': () => import('./components/nomi-expand.vue'),
503
- 'nomi-target': () => import('./components/nomi-target.vue'),
504
- 'nomi-eye': () => import('./components/nomi-eye.vue'),
505
- 'nomi-filter': () => import('./components/nomi-filter.vue'),
506
+ 'nomi-project': () => import('./components/nomi-project.vue'),
507
+ 'nomi-table-view': () => import('./components/nomi-table-view.vue'),
506
508
  'nomi-warehouse': () => import('./components/nomi-warehouse.vue'),
507
- 'nomi-sort-desc': () => import('./components/nomi-sort-desc.vue'),
508
- 'nomi-user_plus': () => import('./components/nomi-user_plus.vue'),
509
509
  'nomi-user': () => import('./components/nomi-user.vue'),
510
- 'nomi-repeat': () => import('./components/nomi-repeat.vue'),
510
+ 'nomi-user_plus': () => import('./components/nomi-user_plus.vue'),
511
+ 'nomi-project_alt2': () => import('./components/nomi-project_alt2.vue'),
511
512
  }
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M10.0003 15.8337C13.222 15.8337 15.8337 13.222 15.8337 10.0003C15.8337 6.77866 13.222 4.16699 10.0003 4.16699C6.77866 4.16699 4.16699 6.77866 4.16699 10.0003C4.16699 13.222 6.77866 15.8337 10.0003 15.8337ZM7.91697 10.0003C7.91697 8.84973 8.84971 7.91699 10.0003 7.91699C11.1509 7.91699 12.0836 8.84973 12.0836 10.0003C12.0836 11.1509 11.1509 12.0837 10.0003 12.0837C8.84971 12.0837 7.91697 11.1509 7.91697 10.0003ZM10.0003 6.25032C7.92924 6.25032 6.25031 7.92925 6.25031 10.0003C6.25031 12.0714 7.92924 13.7503 10.0003 13.7503C12.0714 13.7503 13.7503 12.0714 13.7503 10.0003C13.7503 7.92925 12.0714 6.25032 10.0003 6.25032Z" fill="currentColor"/>
3
+ </svg>
@@ -57,7 +57,7 @@ export default class PanelLink extends Vue {
57
57
  type: this.panel,
58
58
  payload: this.payload || {}
59
59
  }
60
- ]);
60
+ ], true);
61
61
  return hash;
62
62
  }
63
63
 
@@ -216,6 +216,7 @@ export default class PanelList extends Vue {
216
216
  @Prop() firstPanel: IPanel;
217
217
  @Prop() panels: Record<string, Component>;
218
218
  @Prop({ default: () => {} }) searchPanel: (type: string) => boolean;
219
+ @Prop({ type: String, default: 'path' }) routeType: string;
219
220
 
220
221
  panelsStack:IPanel[] = [];
221
222
 
@@ -430,14 +431,18 @@ export default class PanelList extends Vue {
430
431
  }
431
432
 
432
433
  setPanelHash() {
433
- const hash = stackToHash(this.panelsStack).replace(/^#/, '');
434
- this.$router.push({ hash });
434
+ const hash = stackToHash(this.panelsStack, this.routeType === 'path').replace(/^#/, '');
435
+ if (this.routeType === 'path') {
436
+ this.$router.push({ path: `/${hash}` });
437
+ } else {
438
+ this.$router.push({ hash });
439
+ }
435
440
  }
436
441
 
437
442
  async parsePanelHash() {
438
- const {hash} = location;
443
+ const hash = this.routeType === 'path' ? location.pathname : location.hash;
439
444
  if (hash) {
440
- const panels = hashToStack(hash);
445
+ const panels = hashToStack(hash, this.routeType === 'path');
441
446
  const newStack = [];
442
447
  this.panelsStack = [];
443
448
  for (const panelIndex in panels) {
@@ -1,30 +1,45 @@
1
+ import JSON5 from 'json5'
2
+
1
3
  export interface IPanel {
2
4
  type: string;
3
5
  payload?: any;
4
6
  isCollapsed?: boolean;
5
7
  }
6
8
 
7
- export function stackToHash(stack: IPanel[]) {
9
+ export function stackToHash(stack: IPanel[], isPath = false) {
8
10
  const hash = stack.map(panel => {
9
- return `${panel.type}${panel.isCollapsed ? '' : '!'}=${JSON.stringify(panel.payload || {})}`;
10
- }).join('&');
11
- return `#${hash}`;
11
+ let json = JSON5.stringify(panel.payload || {});
12
+ json = json.substring(1, json.length - 1); // Remove the outer {}
13
+ return `${panel.type}${panel.isCollapsed ? '' : '!'}${json ? '=' : ''}${json}`;
14
+ }).join(isPath ? '/' : '&');
15
+ return isPath ? `/${hash}` : `#${hash}`;
12
16
  }
13
17
 
14
18
 
15
- export function hashToStack(hash: string|undefined): IPanel[] {
19
+ export function hashToStack(hash: string|undefined, isPath = false): IPanel[] {
16
20
  let stack:IPanel[] = [];
17
21
  if (hash) {
18
- const str = hash.replace(/^#/, '');
22
+ const str = hash.replace(isPath ? /^\// : /^#/, '');
19
23
 
20
- stack = str.split('&').map(item => {
24
+ stack = str.split(isPath ? '/' : '&').map(item => {
25
+ if (!item.includes('=')) {
26
+ return { type: item.replace('!', ''), isCollapsed: !item.includes('!'), payload: {} };
27
+ }
21
28
  const [type, payload] = item.split('=');
22
29
  const isCollapsed = !type.includes('!');
23
30
  let payloadObj:any = {};
24
31
  try {
25
- payloadObj = JSON.parse(decodeURIComponent(payload));
32
+ let json = decodeURIComponent(payload);
33
+ if (!json.startsWith('{')) {
34
+ json = `{${json}`; // Ensure it starts with a '{' to be valid JSON
35
+ }
36
+ if (!json.endsWith('}')) {
37
+ json += '}'; // Ensure it ends with a '}' to be valid JSON
38
+ }
39
+ payloadObj = JSON5.parse(json);
26
40
  } catch (e) {
27
41
  // ignore
42
+ console.warn(`Error parsing payload for type ${type}:`, payload, e);
28
43
  }
29
44
  return {
30
45
  type: type.replace('!', ''),
@@ -4,6 +4,7 @@
4
4
  <itf-filter-panel
5
5
  :search-placeholder="searchPlaceholder"
6
6
  search
7
+ ref="filters"
7
8
  :mini="panel.isMultiple()"
8
9
  class="py-2 px-3"
9
10
  :endpoint="filtersEndpoint"
@@ -161,14 +162,18 @@ class itfView extends Vue {
161
162
  }
162
163
  }
163
164
 
164
- async loadData() {
165
+ async loadData(reloadFilters = false) {
165
166
  if (!this.endpoint) {
166
167
  return;
167
168
  }
169
+ if (reloadFilters) {
170
+ this.loadFilters();
171
+ }
168
172
  this.$emit('load', this.filter);
169
173
  this.loadingData = true;
170
174
  await this.$try(async () => {
171
175
  const res = await this.$axios.$get(this.endpoint, {
176
+ preventRaceCondition: true,
172
177
  params: {
173
178
  ...this.filter,
174
179
  page: this.page,
@@ -240,5 +245,11 @@ class itfView extends Vue {
240
245
  this.setPanelPayload({ ...filter, page: 1 });
241
246
  this.loadData();
242
247
  }
248
+
249
+ loadFilters() {
250
+ if (this.filtersEndpoint) {
251
+ this.$refs.filters?.loadData();
252
+ }
253
+ }
243
254
  }
244
255
  </script>