@nixweb/nixloc-ui 0.0.294 → 0.0.295

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": "@nixweb/nixloc-ui",
3
- "version": "0.0.294",
3
+ "version": "0.0.295",
4
4
  "description": "Componentes UI",
5
5
  "author": "Fábio Ávila <fabio@nixweb.com.br>",
6
6
  "private": false,
@@ -47,11 +47,11 @@ export default {
47
47
  }
48
48
 
49
49
  .top.notCollapsed {
50
- left: 270px;
50
+ left: 180px;
51
51
  }
52
52
 
53
53
  .top.collapsed {
54
- left: 65px;
54
+ left: 60px;
55
55
  }
56
56
 
57
57
  .div-theme {
@@ -5,78 +5,69 @@
5
5
  <span class="header-logo" @click="editProfile">
6
6
  <img class="photo" :src="urlPhoto" />
7
7
  </span>
8
- <Button class="sidebar-toggler" @click="toggleSidebar">
9
- <span>
10
- <i v-if="menuCollapsed" class="fa-solid fa-angle-right icon-menu-arrow"></i>
11
- <i v-else class="fa-solid fa-angle-left icon-menu-arrow"></i>
12
- </span>
13
- </Button>
14
- </div>
15
- <div v-if="menuCollapsed">
16
- <br><br>
8
+ <div :style="'margin-left:' + (menuCollapsed ? 55 : 170) + 'px'" class="div-menu-toggle"
9
+ @click="toggleSidebar">
10
+ <div class="icon-menu-arrow">
11
+ <i v-if="menuCollapsed" class="fa-solid fa-angle-right "></i>
12
+ <i v-else class="fa-solid fa-angle-left"></i>
13
+ </div>
14
+ </div>
17
15
  </div>
16
+
18
17
  <ScrollBar :minHeight="pageSize" :maxHeight="pageSize">
19
18
  <div :class="{ 'sub': menuCollapsed }">
20
19
  <div v-for="(item, index) in menuFilter(true)">
21
- <div>
20
+ <div @mouseover="handleMouseOver(item.title, item.module)">
22
21
  <div :ref="item.title" v-if="menuCollapsed" class="molded-icon text-center" :class="{
23
22
  'menu-active': moduleActive === item.module,
24
23
  'module-selected': module === item.module
25
- }" @mouseover="handleMouseOver(item.title, item.module)">
26
- <i :class="item.icon"></i>
24
+ }">
25
+ <i :style="'font-size:18px'" :class="item.icon"></i>
26
+ <div v-if="false" :style="'margin-top:-16px'">
27
+ <span class="title-menu-collapsed">{{ item.abbreviatedTitle }}</span>
28
+ </div>
27
29
  </div>
28
30
  <div class="molded-icon-open" :class="{
29
31
  'menu-active': moduleActive === item.module
30
- }" v-else @click="toggleSubMenu(item.title, item.module)">
32
+ }" v-else @mouseover="handleMouseOver(item.title, item.module)">
31
33
  <b-row>
32
- <b-col sm="1">
33
- <i :class="item.icon"></i>
34
- </b-col>
35
- <b-col sm="8">
36
- <span class="title-menu">{{ item.title }} </span>
37
- </b-col>
38
- <b-col sm="1">
39
- <div>
40
- <i v-if="titleSubMenu == item.title" class="fa-sharp fa-solid fa-angle-down"
41
- :class="{ 'rotate': titleSubMenu == item.title }"></i>
42
-
43
- <i v-else class="fa-sharp fa-solid fa-angle-down"
44
- :class="{ 'rotate-down': titleSubMenu != item.title }"></i>
45
- </div>
34
+ <b-col sm="12">
35
+ <b-row>
36
+ <b-col sm="2">
37
+ <i :class="item.icon"></i>
38
+ </b-col>
39
+ <b-col sm="10">
40
+ <span class="title-menu">{{ item.title }} </span>
41
+ </b-col>
42
+ </b-row>
46
43
  </b-col>
47
44
  </b-row>
48
45
  </div>
49
46
  </div>
50
47
 
51
- <transition name="slide-fade">
52
- <div class="sub-menu" v-if="!menuCollapsed && titleSubMenu == item.title">
53
- <div v-for="(item, index) in subMenuFilter(false)" :key="index">
54
- <div v-if="item.title" class="sub-menu-title"
55
- @click.prevent="navegateTo(item, item.module)">
56
- <b-row>
57
- <b-col sm="3"> <i :class="item.icon"></i></b-col>
58
- <span> {{ item.title }}</span>
59
- </b-row>
60
- </div>
61
- </div>
62
- </div>
63
- </transition>
64
-
65
48
  <transition name="slide-fade">
66
49
  <div :ref="item.title + 'sub'" class="sub-menu-collapsed sub-menu"
67
- v-if="menuCollapsed && titleSubMenuCollapsed == item.title">
50
+ :style="'margin-left:' + (menuCollapsed ? 85 : 200) + 'px'"
51
+ v-if="titleSubMenuCollapsed == item.title">
68
52
  <div v-for="(item, index) in subMenuFilter(false)" :key="index">
69
53
  <div :class="{ 'sub-menu-title-collapsed': item.title }"
70
54
  @click.prevent="navegateTo(item, item.module)">
71
55
  <b-row>
72
56
  <b-col sm="2" v-if="item.title">
73
57
  <i :class="item.icon"></i>
58
+
74
59
  </b-col>
75
60
  <b-col sm="9">
76
61
  <div v-if="item.groupName" class="div-group">
77
62
  {{ item.groupName }}
78
63
  </div>
79
- <span> {{ item.title }}</span>
64
+
65
+ <span>
66
+ {{ item.title }}
67
+ <span class="div-support" v-if="item.isVisible == 'support'">
68
+ Suporte
69
+ </span>
70
+ </span>
80
71
  </b-col>
81
72
  </b-row>
82
73
  </div>
@@ -89,7 +80,6 @@
89
80
  <br>
90
81
  </div>
91
82
  </ScrollBar>
92
-
93
83
  </div>
94
84
  </div>
95
85
  </template>
@@ -246,7 +236,7 @@ export default {
246
236
  position: fixed;
247
237
  top: 0;
248
238
  left: 0;
249
- width: 275px;
239
+ width: 200px;
250
240
  height: 100vh;
251
241
  border-radius: 0px 20px 0px 0px;
252
242
  background-color: #577696;
@@ -278,7 +268,7 @@ export default {
278
268
  .sidebar-header .sidebar-toggler,
279
269
  .sidebar-menu-button {
280
270
  position: absolute;
281
- right: 23px;
271
+ left: 70px;
282
272
  height: 30px;
283
273
  width: 30px;
284
274
  color: #151A2D;
@@ -296,6 +286,19 @@ export default {
296
286
  transform: translate(-4px, 65px);
297
287
  }
298
288
 
289
+ .div-menu-toggle {
290
+ position: fixed;
291
+ font-size: 18px;
292
+ top: 25px;
293
+ width: 20px;
294
+ height: 20px;
295
+ background-color: #D98621;
296
+ border-radius: 50%;
297
+ cursor: pointer;
298
+ z-index: 2000;
299
+ transition: all 0.4s ease;
300
+ }
301
+
299
302
  .molded-icon-open {
300
303
  padding-left: 10px;
301
304
  cursor: pointer;
@@ -322,16 +325,17 @@ export default {
322
325
  }
323
326
 
324
327
  .icon-menu-arrow {
325
- font-size: 17px;
326
- margin-top: 7px;
328
+ font-size: 14px;
329
+ margin-top: -4px;
330
+ margin-left: 6px;
331
+ color: white;
327
332
  }
328
333
 
329
334
  .molded-icon {
330
335
  cursor: pointer;
331
- padding: 1px;
332
336
  color: white;
333
337
  font-size: 18px;
334
- margin: 10px;
338
+ margin: 13px;
335
339
  border-radius: 10px;
336
340
  transition: all 0.3s ease;
337
341
  }
@@ -339,7 +343,6 @@ export default {
339
343
  .molded-icon:hover {
340
344
  background-color: white;
341
345
  color: #2C3453;
342
- margin: 10px;
343
346
  border-radius: 10px;
344
347
  transition: all 0.8s ease;
345
348
  }
@@ -377,10 +380,10 @@ export default {
377
380
  .sub-menu-collapsed {
378
381
  width: 260px;
379
382
  margin-top: -100px;
380
- margin-left: 85px;
381
383
  position: absolute;
382
384
  border-radius: 0px 15px 15px 0px;
383
385
  background-color: #2C3453;
386
+ cursor: pointer;
384
387
  }
385
388
 
386
389
  .sub-menu-title-collapsed {
@@ -406,7 +409,10 @@ export default {
406
409
 
407
410
  .title-menu {
408
411
  font-size: 14px;
409
- padding: 20px;
412
+ }
413
+
414
+ .title-menu-collapsed {
415
+ font-size: 11.5px;
410
416
  }
411
417
 
412
418
  .div-arrow {
@@ -438,4 +444,12 @@ export default {
438
444
  margin-left: 10px;
439
445
  padding: 5px;
440
446
  }
447
+
448
+ .div-support {
449
+ background-color: #0A36DB;
450
+ font-size: 11px;
451
+ border-radius: 20px;
452
+ padding: 2px;
453
+ color: white !important;
454
+ }
441
455
  </style>
@@ -9,7 +9,11 @@
9
9
  </VerticalFilter>
10
10
  </div>
11
11
  <div class="local-container" :class="{ 'layout-small': layout == 'small' }">
12
- <Messages v-if="!modal.open" />
12
+ <div v-if="!modal.open && !vodal.open" class="div-message-panel">
13
+ <Messages />
14
+ </div>
15
+ <br>
16
+ <br>
13
17
  <div class="row">
14
18
  <div class="col-10">
15
19
  <div class="div-title">
@@ -94,7 +98,7 @@ export default {
94
98
  },
95
99
  computed: {
96
100
  ...mapGetters("generic", ["isLoading", "event"]),
97
- ...mapState("generic", ["modal", "menuCollapsed"]),
101
+ ...mapState("generic", ["modal", "vodal", "menuCollapsed"]),
98
102
  },
99
103
  methods: {
100
104
  ...mapMutations("generic", ["addLoading"]),
@@ -144,7 +148,7 @@ export default {
144
148
 
145
149
  .panel {
146
150
  padding-right: 30px;
147
- margin-left: 190px;
151
+ margin-left: 130px;
148
152
  }
149
153
 
150
154
  .panel.collapsed {
@@ -166,4 +170,16 @@ export default {
166
170
  .div-back:hover {
167
171
  color: #505050;
168
172
  }
173
+
174
+ .div-message-panel {
175
+ width: calc(100% - 60px);
176
+ position: fixed;
177
+ top: -55px;
178
+ left: 30px;
179
+ right: 30px;
180
+ margin: 0;
181
+ z-index: 2000 !important;
182
+ transition: top 0.5s ease;
183
+ }
184
+
169
185
  </style>
@@ -40,7 +40,6 @@ export default {
40
40
  }
41
41
  },
42
42
  set(newValue) {
43
- console.log(newValue);
44
43
  if (this.editMode) {
45
44
  this.updateDocumentHtmlFinal(newValue);
46
45
  } else {
@@ -1,18 +1,16 @@
1
1
  <template>
2
2
  <div>
3
3
  <div :class="{ 'div-message': !modal.open }" v-if="storageNotification.length > 0">
4
- <div>
5
- <Alert type="danger">
6
- <div class="side-by-side" v-for="notification in storageNotification">
7
- <div class="side-by-side text">
8
- {{ notification.message }}
9
- </div>
4
+ <Alert type="danger">
5
+ <div class="side-by-side" v-for="(notification, index) in storageNotification" :key="index">
6
+ <div class="side-by-side text">
7
+ {{ notification.message }}
10
8
  </div>
11
- </Alert>
12
- </div>
13
- <b-alert v-show="false" :show="countdown" dismissible variant="danger" @dismissed="countdown = 0"
14
- @dismiss-count-down="countdownChanged">
15
- </b-alert>
9
+ </div>
10
+ <div class="progress-bar-container">
11
+ <div class="progress-bar" :style="{ width: progressWidth + '%' }"></div>
12
+ </div>
13
+ </Alert>
16
14
  </div>
17
15
  </div>
18
16
  </template>
@@ -26,9 +24,10 @@ export default {
26
24
  name: "Messages",
27
25
  data() {
28
26
  return {
29
- maxSeconds: 20,
30
- countdown: 20,
27
+ maxSeconds: 10,
28
+ countdown: 10,
31
29
  storageNotification: [],
30
+ progressWidth: 100,
32
31
  };
33
32
  },
34
33
  computed: {
@@ -38,11 +37,13 @@ export default {
38
37
  notifications() {
39
38
  if (this.notifications.length > 0) {
40
39
  this.storageNotification = this.notifications;
41
- this.countdown = 5;
40
+ this.countdown = this.maxSeconds;
41
+ this.progressWidth = 100;
42
+ this.startCountdown();
42
43
  }
43
44
  },
44
- countdown() {
45
- if (this.countdown === 0) {
45
+ countdown(newCountdown) {
46
+ if (newCountdown === 0) {
46
47
  this.storageNotification = [];
47
48
  this.removeNotificarions();
48
49
  }
@@ -50,34 +51,59 @@ export default {
50
51
  },
51
52
  methods: {
52
53
  ...mapMutations("generic", ["removeNotificarions"]),
53
- countdownChanged(countdown) {
54
- this.countdown = countdown;
54
+
55
+ startCountdown() {
56
+ this.countdownInterval = setInterval(() => {
57
+ if (this.countdown > 0) {
58
+ this.countdown--;
59
+ this.updateProgressBar();
60
+ } else {
61
+ clearInterval(this.countdownInterval);
62
+ }
63
+ }, 1000);
55
64
  },
56
- messages(notifications) {
57
- var message = "";
58
- notifications.forEach(function (notification) {
59
- message += notification.message + " ";
60
- });
61
65
 
62
- return message;
66
+ updateProgressBar() {
67
+ // Atualiza a largura da barra de progresso
68
+ this.progressWidth = (this.countdown / this.maxSeconds) * 100;
63
69
  },
64
70
  },
65
71
  };
66
72
  </script>
73
+
67
74
  <style scoped>
68
75
  .div-message {
69
76
  margin-top: 50px;
77
+ transition: all 0.5s ease !important;
78
+ z-index: 2000;
70
79
  }
71
80
 
72
- .div-message-modal {
73
- margin-bottom: 5px;
74
- }
75
-
76
- .invalid {
77
- color: #f0134d;
81
+ .side-by-side {
82
+ display: flex;
83
+ justify-content: space-between;
78
84
  }
79
85
 
80
86
  .text {
81
87
  margin-right: 10px;
82
88
  }
89
+
90
+ .progress-bar-container {
91
+ width: 100%;
92
+ height: 3px;
93
+ background-color: #e0e0e0;
94
+ border-radius: 5px;
95
+ margin-top: 10px;
96
+ }
97
+
98
+ .progress-bar {
99
+ height: 100%;
100
+ background-color: #FF0201;
101
+ border-radius: 50px;
102
+ transition: width 1s ease-out;
103
+ }
104
+
105
+ .div-countdown {
106
+ margin-top: 10px;
107
+ font-size: 16px;
108
+ }
83
109
  </style>
@@ -2,7 +2,8 @@
2
2
  <div>
3
3
  <FixedBar :position="positionFixedBar" backgroundColor="#FAFAFC"
4
4
  v-show="formDirty && !modal.open && on || showFixed">
5
- <div class="margin" :style="'margin-bottom:' + marginBottom + 'px'">
5
+ <div :class="{ collapsed: menuCollapsed, notCollapsed: !menuCollapsed }"
6
+ :style="'margin-bottom:' + marginBottom + 'px'">
6
7
  <Button _key="cancelSaveCancel" eventName="cancelSaveCancel" title="Cancelar" type="danger" size="small"
7
8
  :clicked="cancel" />
8
9
  <Button _key="saveSaveCancel" :eventName="eventName" classIcon="fa-solid fa-floppy-disk" title="Salvar"
@@ -67,7 +68,7 @@ export default {
67
68
  ...mapState("generic", ["loading"]),
68
69
  ...mapGetters("generic", ["event"]),
69
70
  ...mapGetters("validation", ["isFormValid"]),
70
- ...mapState("generic", ["modal"]),
71
+ ...mapState("generic", ["modal", "menuCollapsed"]),
71
72
  },
72
73
  methods: {
73
74
  ...mapMutations("validation", ["updateFormDirty", "resetValidation"]),
@@ -86,7 +87,13 @@ export default {
86
87
  };
87
88
  </script>
88
89
  <style scoped>
89
- .margin {
90
+ .collapsed {
90
91
  margin-left: 0px;
92
+ transition: all 0.4s ease;
93
+ }
94
+
95
+ .notCollapsed {
96
+ margin-left: 130px;
97
+ transition: all 0.4s ease;
91
98
  }
92
99
  </style>
@@ -1,9 +1,9 @@
1
1
  <template>
2
2
  <div>
3
- <div class="icon-print" v-print="'#printMe'">
3
+ <div class="icon-print" v-print="'#printTable'">
4
4
  <i title="Imprimir" class="fas fa-print"></i>
5
5
  </div>
6
- <table id="printMe" class="table table-responsive-xs">
6
+ <table id="printTable" class="table table-responsive-xs">
7
7
  <thead>
8
8
  <tr>
9
9
  <th class="td-checkbox" v-if="showChecks">