@nixweb/nixloc-ui 1.17.0 → 1.19.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.
Files changed (288) hide show
  1. package/.github/workflows/publish-npm.yml +32 -32
  2. package/@nixweb/nixloc-ui/.github/workflows/publish-npm.yml +32 -32
  3. package/@nixweb/nixloc-ui/README.md +24 -24
  4. package/@nixweb/nixloc-ui/babel.config.js +5 -5
  5. package/@nixweb/nixloc-ui/config/dev.env.js +8 -8
  6. package/@nixweb/nixloc-ui/config/index.js +69 -69
  7. package/@nixweb/nixloc-ui/config/prod.env.js +5 -5
  8. package/@nixweb/nixloc-ui/docs/src/component/template/ViewTemplateReportPreview.drawio +209 -209
  9. package/@nixweb/nixloc-ui/docs/src/store/modulos/relatorio.drawio +36 -36
  10. package/@nixweb/nixloc-ui/package.json +88 -88
  11. package/@nixweb/nixloc-ui/public/index.html +19 -19
  12. package/@nixweb/nixloc-ui/public/styles/app.css +52 -52
  13. package/@nixweb/nixloc-ui/src/App.vue +13 -13
  14. package/@nixweb/nixloc-ui/src/component/forms/Button.vue +163 -163
  15. package/@nixweb/nixloc-ui/src/component/forms/ButtonFilter.vue +74 -74
  16. package/@nixweb/nixloc-ui/src/component/forms/ButtonGroup.vue +66 -66
  17. package/@nixweb/nixloc-ui/src/component/forms/ButtonSub.vue +97 -97
  18. package/@nixweb/nixloc-ui/src/component/forms/ButtonToggle.vue +76 -76
  19. package/@nixweb/nixloc-ui/src/component/forms/CheckboxGroup.vue +69 -69
  20. package/@nixweb/nixloc-ui/src/component/forms/CheckboxServer.vue +192 -192
  21. package/@nixweb/nixloc-ui/src/component/forms/CheckboxSimple.vue +60 -60
  22. package/@nixweb/nixloc-ui/src/component/forms/Color.vue +38 -38
  23. package/@nixweb/nixloc-ui/src/component/forms/DateTime.vue +170 -170
  24. package/@nixweb/nixloc-ui/src/component/forms/DateYearMonth.vue +193 -193
  25. package/@nixweb/nixloc-ui/src/component/forms/Dropdown.vue +236 -236
  26. package/@nixweb/nixloc-ui/src/component/forms/EditorHtml.vue +132 -132
  27. package/@nixweb/nixloc-ui/src/component/forms/FileUpload.vue +170 -170
  28. package/@nixweb/nixloc-ui/src/component/forms/ImageUpload.vue +214 -214
  29. package/@nixweb/nixloc-ui/src/component/forms/IncrementDecrement.vue +148 -148
  30. package/@nixweb/nixloc-ui/src/component/forms/InputAddressGoogle.vue +171 -171
  31. package/@nixweb/nixloc-ui/src/component/forms/InputCallToAction.vue +135 -135
  32. package/@nixweb/nixloc-ui/src/component/forms/InputDecimal.vue +153 -153
  33. package/@nixweb/nixloc-ui/src/component/forms/InputDecimalDiscount.vue +77 -77
  34. package/@nixweb/nixloc-ui/src/component/forms/InputNumber.vue +160 -160
  35. package/@nixweb/nixloc-ui/src/component/forms/InputPassword.vue +148 -148
  36. package/@nixweb/nixloc-ui/src/component/forms/InputTag.vue +124 -124
  37. package/@nixweb/nixloc-ui/src/component/forms/InputText.vue +174 -174
  38. package/@nixweb/nixloc-ui/src/component/forms/InputTextEdit.vue +69 -69
  39. package/@nixweb/nixloc-ui/src/component/forms/InputWhatsApp.vue +47 -47
  40. package/@nixweb/nixloc-ui/src/component/forms/Modal.vue +57 -57
  41. package/@nixweb/nixloc-ui/src/component/forms/RadioGroup.vue +91 -91
  42. package/@nixweb/nixloc-ui/src/component/forms/Select.vue +378 -378
  43. package/@nixweb/nixloc-ui/src/component/forms/SelectStatic.vue +198 -198
  44. package/@nixweb/nixloc-ui/src/component/forms/SideBar.vue +99 -99
  45. package/@nixweb/nixloc-ui/src/component/forms/Slider.vue +18 -18
  46. package/@nixweb/nixloc-ui/src/component/forms/TextArea.vue +138 -138
  47. package/@nixweb/nixloc-ui/src/component/forms/Toggle.vue +72 -72
  48. package/@nixweb/nixloc-ui/src/component/layout/Account.vue +131 -131
  49. package/@nixweb/nixloc-ui/src/component/layout/Alert.vue +88 -88
  50. package/@nixweb/nixloc-ui/src/component/layout/Badge.vue +111 -111
  51. package/@nixweb/nixloc-ui/src/component/layout/BarFloating.vue +67 -67
  52. package/@nixweb/nixloc-ui/src/component/layout/FixedBar.vue +103 -103
  53. package/@nixweb/nixloc-ui/src/component/layout/Gantt.vue +128 -128
  54. package/@nixweb/nixloc-ui/src/component/layout/Header.vue +56 -56
  55. package/@nixweb/nixloc-ui/src/component/layout/HideShow.vue +61 -61
  56. package/@nixweb/nixloc-ui/src/component/layout/IconMolded.vue +58 -58
  57. package/@nixweb/nixloc-ui/src/component/layout/LoadingFullPage.vue +27 -27
  58. package/@nixweb/nixloc-ui/src/component/layout/Menu.vue +287 -287
  59. package/@nixweb/nixloc-ui/src/component/layout/Molded.vue +30 -30
  60. package/@nixweb/nixloc-ui/src/component/layout/NewAccount.vue +136 -136
  61. package/@nixweb/nixloc-ui/src/component/layout/NewHeader.vue +59 -59
  62. package/@nixweb/nixloc-ui/src/component/layout/NewIconMolded.vue +70 -70
  63. package/@nixweb/nixloc-ui/src/component/layout/NewMenu.vue +455 -455
  64. package/@nixweb/nixloc-ui/src/component/layout/Panel.vue +185 -185
  65. package/@nixweb/nixloc-ui/src/component/layout/Popover.vue +126 -126
  66. package/@nixweb/nixloc-ui/src/component/layout/ScrollBar.vue +57 -57
  67. package/@nixweb/nixloc-ui/src/component/layout/Tab.vue +135 -135
  68. package/@nixweb/nixloc-ui/src/component/layout/Tag.vue +97 -97
  69. package/@nixweb/nixloc-ui/src/component/layout/Wizard.vue +211 -211
  70. package/@nixweb/nixloc-ui/src/component/rental/DisplayCalculatePeriod.vue +48 -48
  71. package/@nixweb/nixloc-ui/src/component/rental/DisplayPeriodRent.vue +55 -55
  72. package/@nixweb/nixloc-ui/src/component/rental/DisplayTotalization.vue +86 -86
  73. package/@nixweb/nixloc-ui/src/component/report/Fields.vue +108 -108
  74. package/@nixweb/nixloc-ui/src/component/report/Report.vue +313 -313
  75. package/@nixweb/nixloc-ui/src/component/report/ReportTable.vue +111 -111
  76. package/@nixweb/nixloc-ui/src/component/report/Totalization.vue +33 -33
  77. package/@nixweb/nixloc-ui/src/component/shared/CodeEditor.vue +128 -128
  78. package/@nixweb/nixloc-ui/src/component/shared/Collapse.vue +131 -131
  79. package/@nixweb/nixloc-ui/src/component/shared/Confirmation.vue +74 -74
  80. package/@nixweb/nixloc-ui/src/component/shared/DocumentEditor.vue +99 -99
  81. package/@nixweb/nixloc-ui/src/component/shared/DocumentPreview.vue +81 -81
  82. package/@nixweb/nixloc-ui/src/component/shared/DocumentPublic.vue +33 -33
  83. package/@nixweb/nixloc-ui/src/component/shared/ExportExcel.vue +56 -56
  84. package/@nixweb/nixloc-ui/src/component/shared/ExportPDF.vue +116 -116
  85. package/@nixweb/nixloc-ui/src/component/shared/FullCalendar.vue +173 -173
  86. package/@nixweb/nixloc-ui/src/component/shared/HeaderReport.vue +47 -47
  87. package/@nixweb/nixloc-ui/src/component/shared/HorizontalFilter.vue +64 -64
  88. package/@nixweb/nixloc-ui/src/component/shared/ListNotifications.vue +70 -70
  89. package/@nixweb/nixloc-ui/src/component/shared/Loading.vue +107 -107
  90. package/@nixweb/nixloc-ui/src/component/shared/LoadingCard.vue +64 -64
  91. package/@nixweb/nixloc-ui/src/component/shared/LoadingMoreButton.vue +23 -23
  92. package/@nixweb/nixloc-ui/src/component/shared/Messages.vue +109 -109
  93. package/@nixweb/nixloc-ui/src/component/shared/PDFViewer.vue +24 -24
  94. package/@nixweb/nixloc-ui/src/component/shared/Pagination.vue +108 -108
  95. package/@nixweb/nixloc-ui/src/component/shared/ParameterLegend.vue +169 -169
  96. package/@nixweb/nixloc-ui/src/component/shared/ProgressBar.vue +25 -25
  97. package/@nixweb/nixloc-ui/src/component/shared/QueryButton.vue +66 -66
  98. package/@nixweb/nixloc-ui/src/component/shared/Report.vue +200 -200
  99. package/@nixweb/nixloc-ui/src/component/shared/SaveCancel.vue +99 -99
  100. package/@nixweb/nixloc-ui/src/component/shared/Search.vue +174 -174
  101. package/@nixweb/nixloc-ui/src/component/shared/SelectOption.vue +162 -162
  102. package/@nixweb/nixloc-ui/src/component/shared/Table.vue +174 -174
  103. package/@nixweb/nixloc-ui/src/component/shared/TableButton.vue +36 -36
  104. package/@nixweb/nixloc-ui/src/component/shared/TableDraggable.vue +117 -117
  105. package/@nixweb/nixloc-ui/src/component/shared/TableImport.vue +93 -93
  106. package/@nixweb/nixloc-ui/src/component/shared/TableItem.vue +214 -214
  107. package/@nixweb/nixloc-ui/src/component/shared/TableTotalPerPage.vue +77 -77
  108. package/@nixweb/nixloc-ui/src/component/shared/TableTotalRecords.vue +44 -44
  109. package/@nixweb/nixloc-ui/src/component/shared/TableTotalization.vue +47 -47
  110. package/@nixweb/nixloc-ui/src/component/shared/TimeLine.vue +41 -41
  111. package/@nixweb/nixloc-ui/src/component/shared/Timer.vue +77 -77
  112. package/@nixweb/nixloc-ui/src/component/shared/Tip.vue +42 -42
  113. package/@nixweb/nixloc-ui/src/component/shared/Toast.vue +69 -69
  114. package/@nixweb/nixloc-ui/src/component/shared/ToggleTheme.vue +127 -127
  115. package/@nixweb/nixloc-ui/src/component/shared/TotalizationReport.vue +86 -86
  116. package/@nixweb/nixloc-ui/src/component/shared/VerticalFilter.vue +97 -97
  117. package/@nixweb/nixloc-ui/src/component/shared/automation/ActivitiesList.vue +43 -43
  118. package/@nixweb/nixloc-ui/src/component/shared/automation/AddRule.vue +60 -60
  119. package/@nixweb/nixloc-ui/src/component/shared/automation/AutomationBuilder.vue +26 -26
  120. package/@nixweb/nixloc-ui/src/component/shared/automation/DynamicComponentList.vue +85 -85
  121. package/@nixweb/nixloc-ui/src/component/shared/automation/SelectRule.vue +97 -97
  122. package/@nixweb/nixloc-ui/src/component/shared/automation/components/BillingByRent.vue +97 -97
  123. package/@nixweb/nixloc-ui/src/component/shared/automation/components/SendEmail.vue +93 -93
  124. package/@nixweb/nixloc-ui/src/component/shared/file-manager/FileManager.vue +390 -390
  125. package/@nixweb/nixloc-ui/src/component/shared/filter-builder/FilterBuilder.vue +220 -220
  126. package/@nixweb/nixloc-ui/src/component/shared/filter-builder/FilterQuery.vue +94 -94
  127. package/@nixweb/nixloc-ui/src/component/shared/query-builder/AddRule.vue +203 -203
  128. package/@nixweb/nixloc-ui/src/component/shared/query-builder/ConvertToOdata.js +86 -86
  129. package/@nixweb/nixloc-ui/src/component/shared/query-builder/DynamicComponent.vue +161 -161
  130. package/@nixweb/nixloc-ui/src/component/shared/query-builder/DynamicComponentList.vue +70 -70
  131. package/@nixweb/nixloc-ui/src/component/shared/query-builder/Fields.vue +93 -93
  132. package/@nixweb/nixloc-ui/src/component/shared/query-builder/QueryBuilder.vue +69 -69
  133. package/@nixweb/nixloc-ui/src/component/shared/query-builder/Rules.vue +68 -68
  134. package/@nixweb/nixloc-ui/src/component/shared/query-builder/SelectRule.vue +97 -97
  135. package/@nixweb/nixloc-ui/src/component/shared/query-builder/Tags.vue +59 -59
  136. package/@nixweb/nixloc-ui/src/component/shared/query-builder/utilities.js +21 -21
  137. package/@nixweb/nixloc-ui/src/component/signature/Payment.vue +160 -160
  138. package/@nixweb/nixloc-ui/src/component/signature/Warning.vue +75 -75
  139. package/@nixweb/nixloc-ui/src/component/template/ListViewWithDataHandler.vue +429 -429
  140. package/@nixweb/nixloc-ui/src/component/template/ReportCreateUpdate.vue +110 -110
  141. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateConfiguration.vue +64 -64
  142. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateDocumentView.vue +213 -213
  143. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateImportFile.vue +347 -347
  144. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateReportList.vue +217 -217
  145. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateReportPreview.vue +432 -432
  146. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateSelectOption.vue +46 -46
  147. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateWithSalveCancel.vue +32 -32
  148. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateWithTable.vue +62 -62
  149. package/@nixweb/nixloc-ui/src/component/template/model/Report.js +5 -5
  150. package/@nixweb/nixloc-ui/src/component/training/Course.vue +343 -343
  151. package/@nixweb/nixloc-ui/src/component/training/CourseView.vue +189 -189
  152. package/@nixweb/nixloc-ui/src/component/value-objects/Address.js +10 -10
  153. package/@nixweb/nixloc-ui/src/component/value-objects/Address.vue +157 -157
  154. package/@nixweb/nixloc-ui/src/component/value-objects/Contact.js +6 -6
  155. package/@nixweb/nixloc-ui/src/component/value-objects/Contact.vue +106 -106
  156. package/@nixweb/nixloc-ui/src/component/value-objects/Person.js +10 -10
  157. package/@nixweb/nixloc-ui/src/component/value-objects/Person.vue +129 -129
  158. package/@nixweb/nixloc-ui/src/config/axios.js +9 -9
  159. package/@nixweb/nixloc-ui/src/config/dicas.js +14 -14
  160. package/@nixweb/nixloc-ui/src/config/router.js +13 -13
  161. package/@nixweb/nixloc-ui/src/config/token.js +14 -14
  162. package/@nixweb/nixloc-ui/src/main.js +23 -23
  163. package/@nixweb/nixloc-ui/src/store/modules/automation.js +30 -30
  164. package/@nixweb/nixloc-ui/src/store/modules/generic.js +815 -815
  165. package/@nixweb/nixloc-ui/src/store/modules/report.js +277 -277
  166. package/@nixweb/nixloc-ui/src/store/modules/user.js +66 -66
  167. package/@nixweb/nixloc-ui/src/store/modules/util.js +25 -25
  168. package/@nixweb/nixloc-ui/src/store/modules/validation.js +38 -38
  169. package/@nixweb/nixloc-ui/src/store/store.js +13 -13
  170. package/README.md +24 -24
  171. package/babel.config.js +5 -5
  172. package/config/dev.env.js +8 -8
  173. package/config/index.js +69 -69
  174. package/config/prod.env.js +5 -5
  175. package/docs/src/component/template/ViewTemplateReportPreview.drawio +209 -209
  176. package/docs/src/store/modulos/relatorio.drawio +36 -36
  177. package/package.json +88 -88
  178. package/public/index.html +19 -19
  179. package/public/styles/app.css +52 -52
  180. package/src/component/forms/ButtonFilter.vue +104 -104
  181. package/src/component/forms/ButtonGroup.vue +66 -66
  182. package/src/component/forms/ButtonGroupInline.vue +210 -210
  183. package/src/component/forms/ButtonSub.vue +97 -97
  184. package/src/component/forms/ButtonToggle.vue +76 -76
  185. package/src/component/forms/DateYearMonth.vue +192 -192
  186. package/src/component/forms/ImageUpload.vue +214 -214
  187. package/src/component/forms/IncrementDecrement.vue +151 -151
  188. package/src/component/forms/InputAddressGoogle.vue +171 -171
  189. package/src/component/forms/InputCallToAction.vue +135 -135
  190. package/src/component/forms/InputDecimalDiscount.vue +146 -146
  191. package/src/component/forms/InputTag.vue +124 -124
  192. package/src/component/forms/InputTextEdit.vue +69 -69
  193. package/src/component/forms/InputWhatsApp.vue +47 -47
  194. package/src/component/forms/SideBar.vue +99 -99
  195. package/src/component/forms/Toggle.vue +72 -72
  196. package/src/component/layout/Account.vue +131 -131
  197. package/src/component/layout/AnimatedPhrase.vue +68 -68
  198. package/src/component/layout/BarFloating.vue +67 -67
  199. package/src/component/layout/BottomActionsBar.vue +205 -205
  200. package/src/component/layout/ColorPicker.vue +175 -175
  201. package/src/component/layout/Gantt.vue +128 -128
  202. package/src/component/layout/HideShow.vue +61 -61
  203. package/src/component/layout/IconMolded.vue +58 -58
  204. package/src/component/layout/IconPicker.vue +161 -161
  205. package/src/component/layout/NewAccount.vue +136 -136
  206. package/src/component/layout/NewHeader.vue +59 -59
  207. package/src/component/layout/NewIconMolded.vue +70 -70
  208. package/src/component/layout/NewMenu.vue +472 -472
  209. package/src/component/layout/ScrollBar.vue +21 -8
  210. package/src/component/layout/Tab.vue +259 -259
  211. package/src/component/layout/Tag.vue +97 -97
  212. package/src/component/layout/Tooltip.vue +155 -155
  213. package/src/component/layout/Zoom.vue +111 -111
  214. package/src/component/rental/DisplayCalculatePeriod.vue +48 -48
  215. package/src/component/rental/DisplayPeriodRent.vue +55 -55
  216. package/src/component/rental/DisplayTotalization.vue +86 -86
  217. package/src/component/report/Fields.vue +108 -108
  218. package/src/component/report/Report.vue +377 -377
  219. package/src/component/report/ReportTable.vue +111 -111
  220. package/src/component/report/Totalization.vue +33 -33
  221. package/src/component/shared/CodeEditor.vue +128 -128
  222. package/src/component/shared/Confirmation.vue +74 -74
  223. package/src/component/shared/DocumentEditor.vue +99 -99
  224. package/src/component/shared/DocumentPreview.vue +105 -105
  225. package/src/component/shared/DocumentPublic.vue +33 -33
  226. package/src/component/shared/ExportExcel.vue +56 -56
  227. package/src/component/shared/FullCalendar.vue +175 -175
  228. package/src/component/shared/HeaderReport.vue +47 -47
  229. package/src/component/shared/ListNotifications.vue +70 -70
  230. package/src/component/shared/Loading.vue +4 -1
  231. package/src/component/shared/LoadingCard.vue +64 -64
  232. package/src/component/shared/ParameterLegend.vue +169 -169
  233. package/src/component/shared/Report.vue +250 -250
  234. package/src/component/shared/SaveCancel.vue +117 -99
  235. package/src/component/shared/SelectOption.vue +162 -162
  236. package/src/component/shared/TableDraggable.vue +117 -117
  237. package/src/component/shared/TableImport.vue +93 -93
  238. package/src/component/shared/TableItem.vue +228 -228
  239. package/src/component/shared/TableTotalPerPage.vue +114 -114
  240. package/src/component/shared/TableTotalRecords.vue +44 -44
  241. package/src/component/shared/TimeLine.vue +41 -41
  242. package/src/component/shared/Timer.vue +77 -77
  243. package/src/component/shared/ToggleTheme.vue +127 -127
  244. package/src/component/shared/TotalizationReport.vue +86 -86
  245. package/src/component/shared/actions/ActionButtons.vue +53 -53
  246. package/src/component/shared/actions/ActionErrorContent.vue +103 -103
  247. package/src/component/shared/actions/ActionFooter.vue +99 -93
  248. package/src/component/shared/actions/ActionHeader.vue +110 -110
  249. package/src/component/shared/actions/ActionItemList.vue +143 -143
  250. package/src/component/shared/actions/ActionsOptions.vue +209 -209
  251. package/src/component/shared/actions/ActionsSelected.vue +262 -262
  252. package/src/component/shared/automation/ActivitiesList.vue +43 -43
  253. package/src/component/shared/automation/AddRule.vue +60 -60
  254. package/src/component/shared/automation/AutomationBuilder.vue +26 -26
  255. package/src/component/shared/automation/DynamicComponentList.vue +85 -85
  256. package/src/component/shared/automation/SelectRule.vue +97 -97
  257. package/src/component/shared/automation/components/BillingByRent.vue +97 -97
  258. package/src/component/shared/automation/components/SendEmail.vue +93 -93
  259. package/src/component/shared/file-manager/FileManager.vue +390 -390
  260. package/src/component/shared/filter-builder/FilterBuilder.vue +220 -220
  261. package/src/component/shared/filter-builder/FilterQuery.vue +95 -95
  262. package/src/component/shared/query-builder/ConvertToOdata.js +86 -86
  263. package/src/component/shared/query-builder/DynamicComponent.vue +161 -161
  264. package/src/component/shared/query-builder/Fields.vue +93 -93
  265. package/src/component/shared/query-builder/Rules.vue +68 -68
  266. package/src/component/shared/query-builder/SelectRule.vue +97 -97
  267. package/src/component/shared/query-builder/Tags.vue +59 -59
  268. package/src/component/signature/Payment.vue +160 -160
  269. package/src/component/signature/Warning.vue +75 -75
  270. package/src/component/template/ReportCreateUpdate.vue +110 -110
  271. package/src/component/template/ViewTemplateDocumentView.vue +213 -213
  272. package/src/component/template/ViewTemplateImportFile.vue +347 -347
  273. package/src/component/template/ViewTemplateReportList.vue +240 -240
  274. package/src/component/template/ViewTemplateReportPreview.vue +521 -521
  275. package/src/component/template/ViewTemplateSelectOption.vue +46 -46
  276. package/src/component/template/model/Report.js +5 -5
  277. package/src/component/training/Course.vue +343 -343
  278. package/src/component/training/CourseView.vue +198 -198
  279. package/src/component/value-objects/Address.js +10 -10
  280. package/src/component/value-objects/Address.vue +173 -173
  281. package/src/component/value-objects/Contact.js +6 -6
  282. package/src/component/value-objects/Contact.vue +106 -106
  283. package/src/component/value-objects/Person.js +10 -10
  284. package/src/component/value-objects/Person.vue +130 -130
  285. package/src/store/modules/automation.js +30 -30
  286. package/src/store/modules/report.js +277 -277
  287. package/src/store/modules/user.js +69 -69
  288. package/src/store/modules/util.js +25 -25
@@ -1,456 +1,456 @@
1
- <template>
2
- <div>
3
- <div :class="['sidebar', { collapsed: menuCollapsed }]">
4
- <div class="sidebar-header">
5
- <span class="header-logo" @click="editProfile">
6
- <img class="photo" :src="urlPhoto" />
7
- </span>
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>
15
- </div>
16
-
17
- <ScrollBar :minHeight="pageSize" :maxHeight="pageSize">
18
- <div :class="{ 'sub': menuCollapsed }">
19
- <div v-for="(item, index) in menuFilter(true)">
20
- <div @mouseover="handleMouseOver(item.title, item.module)">
21
- <div :ref="item.title" v-if="menuCollapsed" class="molded-icon text-center" :class="{
22
- 'menu-active': moduleActive === item.module,
23
- 'module-selected': module === item.module
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>
29
- </div>
30
- <div class="molded-icon-open" :class="{
31
- 'menu-active': moduleActive === item.module
32
- }" v-else @mouseover="handleMouseOver(item.title, item.module)">
33
- <b-row>
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>
43
- </b-col>
44
- </b-row>
45
- </div>
46
- </div>
47
-
48
- <transition name="slide-fade">
49
- <div :ref="item.title + 'sub'" class="sub-menu-collapsed sub-menu"
50
- :style="'margin-left:' + (menuCollapsed ? 85 : 200) + 'px'"
51
- v-if="titleSubMenuCollapsed == item.title">
52
- <div v-for="(item, index) in subMenuFilter(false)" :key="index">
53
- <div :class="{ 'sub-menu-title-collapsed': item.title }"
54
- @click.prevent="navegateTo(item, item.module)">
55
- <b-row>
56
- <b-col sm="2" v-if="item.title">
57
- <i :class="item.icon"></i>
58
-
59
- </b-col>
60
- <b-col sm="9">
61
- <div v-if="item.groupName" class="div-group">
62
- {{ item.groupName }}
63
- </div>
64
- <span>
65
- <span> {{ item.title }}</span>
66
- <span class="div-support" v-if="item.isVisible == 'support'">
67
- Suporte
68
- </span>
69
- </span>
70
- </b-col>
71
- </b-row>
72
- </div>
73
- </div>
74
- </div>
75
- </transition>
76
- </div>
77
- <br>
78
- <br>
79
- <br>
80
- </div>
81
- </ScrollBar>
82
- </div>
83
- </div>
84
- </template>
85
-
86
- <script>
87
-
88
- import ScrollBar from "@nixweb/nixloc-ui/src/component/layout/ScrollBar.vue";
89
-
90
- import { mapState, mapMutations, mapGetters } from "vuex";
91
-
92
- export default {
93
- props: {
94
- urlPhoto: String,
95
- },
96
- components: {
97
- ScrollBar
98
- },
99
- data() {
100
- return {
101
- module: "",
102
- moduleActive: "",
103
- isSidebarCollapsed: true,
104
- openDropdowns: {},
105
- titleSubMenu: "",
106
- titleSubMenuCollapsed: "",
107
- pageSize: 0,
108
- distanceFromBottom: 0,
109
- };
110
- },
111
- mounted() {
112
- this.updatePageSize();
113
- window.addEventListener('resize', this.updatePageSize);
114
-
115
- if (!localStorage.getItem('menuCollapsed')) {
116
- localStorage.setItem('menuCollapsed', this.isSidebarCollapsed ? "closed" : "open");
117
- }
118
-
119
- if (localStorage.getItem('menuCollapsed') === 'open') {
120
- this.toggleMenu(false);
121
- } else {
122
- this.toggleMenu(true);
123
- }
124
-
125
- if (this.$route.matched[0])
126
- this.moduleActive = this.$route.matched[0].props.default.module;
127
-
128
- },
129
- beforeDestroy() {
130
- window.removeEventListener('resize', this.updatePageSize);
131
- },
132
- computed: {
133
- ...mapState("user", ["menu", "userLogged"]),
134
- ...mapState("generic", ["menuCollapsed"]),
135
- ...mapGetters("generic", ["event"]),
136
- },
137
- methods: {
138
- ...mapMutations("generic", ["addEvent", "toggleMenu"]),
139
- updatePageSize() {
140
- const windowHeight = window.innerHeight;
141
- this.pageSize = windowHeight;
142
- },
143
- toggleSidebar() {
144
- this.isSidebarCollapsed = !this.isSidebarCollapsed;
145
- this.toggleMenu(this.isSidebarCollapsed);
146
- localStorage.setItem('menuCollapsed', this.isSidebarCollapsed ? "closed" : "open");
147
- this.titleSubMenu = "";
148
- this.titleSubMenuCollapsed = "";
149
- },
150
- toggleSubMenu(title, module) {
151
- this.module = module;
152
- if (this.titleSubMenu === title) {
153
- this.titleSubMenu = "";
154
- } else {
155
- this.titleSubMenu = title;
156
- }
157
- },
158
- handleMouseOver(title, module) {
159
- this.module = module;
160
- this.titleSubMenuCollapsed = title;
161
-
162
- var divSub = this.$refs[title + 'sub'];
163
-
164
- if (divSub) {
165
- let self = this;
166
- setTimeout(function () {
167
- const heightSubMenu = divSub[0].getBoundingClientRect();
168
-
169
- if (heightSubMenu.top < 0 || heightSubMenu.left < 0 || heightSubMenu.bottom > window.innerHeight || heightSubMenu.right > window.innerWidth) {
170
- divSub[0].style.bottom = '0px';
171
- }
172
-
173
- }, 100);
174
- }
175
- },
176
- handleMouseLeave() {
177
- this.titleSubMenuCollapsed = "";
178
- if (this.menuCollapsed)
179
- this.module = "";
180
- },
181
- menuFilter(isModule) {
182
- let filter = [];
183
- this.menu.items.forEach(function (obj) {
184
- if (obj.isModule == isModule) filter.push(obj);
185
- });
186
- return filter.sort((a, b) => a.order - b.order);
187
- },
188
- subMenuFilter(isModule) {
189
- let filter = [];
190
- let self = this;
191
- let userLogged = this.userLogged.user.userName;
192
- this.menu.items.forEach(function (obj) {
193
- if (obj.isModule == isModule && obj.module === self.module) {
194
- if (obj.isVisible == "all") filter.push(obj);
195
-
196
- if (obj.isVisible == "support" && userLogged == "UserTemp")
197
- filter.push(obj);
198
- }
199
- });
200
- return filter;
201
- },
202
- navegateTo(item, module) {
203
- this.$router.push({
204
- name: item.routeName,
205
- });
206
-
207
- this.moduleActive = module;
208
- this.titleSubMenuCollapsed = "";
209
- },
210
- editProfile() {
211
- this.addEvent({ name: "clickedProfile" });
212
- },
213
- },
214
- watch: {
215
- event: {
216
- handler: function (event) {
217
- if (event.name == "handleMouseOver") {
218
- this.handleMouseLeave();
219
- }
220
- },
221
- deep: true,
222
- },
223
- $route: {
224
- handler: function (router) {
225
- this.moduleActive = router.matched[0].props.default.module;
226
- },
227
- deep: true,
228
- },
229
- },
230
- };
231
- </script>
232
-
233
- <style scoped>
234
- .sidebar {
235
- position: fixed;
236
- top: 0;
237
- left: 0;
238
- width: 200px;
239
- height: 100vh;
240
- border-radius: 0px 20px 0px 0px;
241
- background-color: #577696;
242
- transition: all 0.4s ease;
243
- z-index: 1000;
244
- }
245
-
246
- .sidebar.collapsed {
247
- width: 85px;
248
- }
249
-
250
- .sidebar .sidebar-header {
251
- display: flex;
252
- position: relative;
253
- padding: 10px 20px;
254
- align-items: center;
255
- justify-content: space-between;
256
- }
257
-
258
- .sidebar-header .header-logo img {
259
- width: 46px;
260
- height: 46px;
261
- display: block;
262
- object-fit: contain;
263
- cursor: pointer;
264
- border-radius: 50%;
265
- }
266
-
267
- .sidebar-header .sidebar-toggler,
268
- .sidebar-menu-button {
269
- position: absolute;
270
- left: 70px;
271
- height: 30px;
272
- width: 30px;
273
- color: #151A2D;
274
- border: none;
275
- cursor: pointer;
276
- display: flex;
277
- background: #EEF2FF;
278
- align-items: center;
279
- justify-content: center;
280
- border-radius: 50px;
281
- transition: 0.4s ease;
282
- }
283
-
284
- .sidebar.collapsed .sidebar-header .sidebar-toggler {
285
- transform: translate(-4px, 65px);
286
- }
287
-
288
- .div-menu-toggle {
289
- position: fixed;
290
- font-size: 18px;
291
- top: 25px;
292
- width: 20px;
293
- height: 20px;
294
- background-color: #D98621;
295
- border-radius: 50%;
296
- cursor: pointer;
297
- z-index: 2000;
298
- transition: all 0.4s ease;
299
- }
300
-
301
- .molded-icon-open {
302
- padding-left: 10px;
303
- cursor: pointer;
304
- margin-top: 10px;
305
- color: white;
306
- font-size: 17px;
307
- margin: 15px;
308
- border-radius: 10px;
309
- transition: all 0.3s ease;
310
- }
311
-
312
- .molded-icon-open:hover {
313
- color: #2C3453;
314
- background-color: white;
315
- }
316
-
317
- .menu-active {
318
- background-color: #D98621;
319
- }
320
-
321
- .module-selected {
322
- color: #2C3453 !important;
323
- background-color: white !important;
324
- }
325
-
326
- .icon-menu-arrow {
327
- font-size: 14px;
328
- margin-top: -4px;
329
- margin-left: 6px;
330
- color: white;
331
- }
332
-
333
- .molded-icon {
334
- cursor: pointer;
335
- color: white;
336
- font-size: 18px;
337
- margin: 13px;
338
- border-radius: 10px;
339
- transition: all 0.3s ease;
340
- }
341
-
342
- .molded-icon:hover {
343
- background-color: white;
344
- color: #2C3453;
345
- border-radius: 10px;
346
- transition: all 0.8s ease;
347
- }
348
-
349
- .sub {
350
- cursor: pointer;
351
- transition: all 0.3s ease;
352
- }
353
-
354
- .sub-menu {
355
- margin: 15px;
356
- padding: 10px;
357
- border-radius: 15px;
358
- color: white;
359
- font-size: 14px;
360
- background-color: #2C3453;
361
- transition: all 0.5s ease;
362
- }
363
-
364
- .sub-menu-title {
365
- cursor: pointer;
366
- border-radius: 8px;
367
- padding: 5px;
368
- transition: all 1s ease;
369
- }
370
-
371
- .sub-menu-title:hover {
372
- padding: 5px;
373
- color: #2C3453;
374
- background-color: white;
375
- font-weight: bold;
376
- transition: all 0.8s ease;
377
- }
378
-
379
- .sub-menu-collapsed {
380
- width: 260px;
381
- margin-top: -100px;
382
- position: absolute;
383
- border-radius: 0px 15px 15px 0px;
384
- background-color: #2C3453;
385
- cursor: pointer;
386
- }
387
-
388
- .sub-menu-title-collapsed {
389
- padding: 10px;
390
- border-radius: 8px;
391
- font-size: 13px;
392
- }
393
-
394
- .sub-menu-title-collapsed:hover {
395
- background-color: white;
396
- color: #2C3453;
397
- transition: all 0.8s ease;
398
- }
399
-
400
- .rotate {
401
- transform: rotate(180deg);
402
- transition: transform 0.5s ease;
403
- }
404
-
405
- .rotate-down {
406
- transform: rotate(360deg);
407
- transition: transform 0.5s ease;
408
- }
409
-
410
- .title-menu {
411
- font-size: 13px;
412
- }
413
-
414
- .title-menu-collapsed {
415
- font-size: 11.5px;
416
- }
417
-
418
- .div-arrow {
419
- margin-left: 50px;
420
- }
421
-
422
- .div-menu-bottom {
423
- position: absolute;
424
- bottom: 0;
425
- left: 0;
426
- width: 100%;
427
- padding: 10px;
428
- }
429
-
430
- .div-icon-bottom {
431
- cursor: pointer;
432
- font-size: 17px;
433
- color: white;
434
- border-radius: 10px;
435
- background-color: #2C3453;
436
- }
437
-
438
- .title-logout {
439
- font-size: 16px;
440
- margin-left: 10px;
441
- }
442
-
443
- .div-group {
444
- margin-left: 10px;
445
- padding: 5px;
446
- }
447
-
448
- .div-support {
449
- background-color: #0A36DB;
450
- font-size: 11px;
451
- border-radius: 20px;
452
- padding: 1px 2px 2px 2px;
453
- margin-left: 5px;
454
- color: white !important;
455
- }
1
+ <template>
2
+ <div>
3
+ <div :class="['sidebar', { collapsed: menuCollapsed }]">
4
+ <div class="sidebar-header">
5
+ <span class="header-logo" @click="editProfile">
6
+ <img class="photo" :src="urlPhoto" />
7
+ </span>
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>
15
+ </div>
16
+
17
+ <ScrollBar :minHeight="pageSize" :maxHeight="pageSize">
18
+ <div :class="{ 'sub': menuCollapsed }">
19
+ <div v-for="(item, index) in menuFilter(true)">
20
+ <div @mouseover="handleMouseOver(item.title, item.module)">
21
+ <div :ref="item.title" v-if="menuCollapsed" class="molded-icon text-center" :class="{
22
+ 'menu-active': moduleActive === item.module,
23
+ 'module-selected': module === item.module
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>
29
+ </div>
30
+ <div class="molded-icon-open" :class="{
31
+ 'menu-active': moduleActive === item.module
32
+ }" v-else @mouseover="handleMouseOver(item.title, item.module)">
33
+ <b-row>
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>
43
+ </b-col>
44
+ </b-row>
45
+ </div>
46
+ </div>
47
+
48
+ <transition name="slide-fade">
49
+ <div :ref="item.title + 'sub'" class="sub-menu-collapsed sub-menu"
50
+ :style="'margin-left:' + (menuCollapsed ? 85 : 200) + 'px'"
51
+ v-if="titleSubMenuCollapsed == item.title">
52
+ <div v-for="(item, index) in subMenuFilter(false)" :key="index">
53
+ <div :class="{ 'sub-menu-title-collapsed': item.title }"
54
+ @click.prevent="navegateTo(item, item.module)">
55
+ <b-row>
56
+ <b-col sm="2" v-if="item.title">
57
+ <i :class="item.icon"></i>
58
+
59
+ </b-col>
60
+ <b-col sm="9">
61
+ <div v-if="item.groupName" class="div-group">
62
+ {{ item.groupName }}
63
+ </div>
64
+ <span>
65
+ <span> {{ item.title }}</span>
66
+ <span class="div-support" v-if="item.isVisible == 'support'">
67
+ Suporte
68
+ </span>
69
+ </span>
70
+ </b-col>
71
+ </b-row>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </transition>
76
+ </div>
77
+ <br>
78
+ <br>
79
+ <br>
80
+ </div>
81
+ </ScrollBar>
82
+ </div>
83
+ </div>
84
+ </template>
85
+
86
+ <script>
87
+
88
+ import ScrollBar from "@nixweb/nixloc-ui/src/component/layout/ScrollBar.vue";
89
+
90
+ import { mapState, mapMutations, mapGetters } from "vuex";
91
+
92
+ export default {
93
+ props: {
94
+ urlPhoto: String,
95
+ },
96
+ components: {
97
+ ScrollBar
98
+ },
99
+ data() {
100
+ return {
101
+ module: "",
102
+ moduleActive: "",
103
+ isSidebarCollapsed: true,
104
+ openDropdowns: {},
105
+ titleSubMenu: "",
106
+ titleSubMenuCollapsed: "",
107
+ pageSize: 0,
108
+ distanceFromBottom: 0,
109
+ };
110
+ },
111
+ mounted() {
112
+ this.updatePageSize();
113
+ window.addEventListener('resize', this.updatePageSize);
114
+
115
+ if (!localStorage.getItem('menuCollapsed')) {
116
+ localStorage.setItem('menuCollapsed', this.isSidebarCollapsed ? "closed" : "open");
117
+ }
118
+
119
+ if (localStorage.getItem('menuCollapsed') === 'open') {
120
+ this.toggleMenu(false);
121
+ } else {
122
+ this.toggleMenu(true);
123
+ }
124
+
125
+ if (this.$route.matched[0])
126
+ this.moduleActive = this.$route.matched[0].props.default.module;
127
+
128
+ },
129
+ beforeDestroy() {
130
+ window.removeEventListener('resize', this.updatePageSize);
131
+ },
132
+ computed: {
133
+ ...mapState("user", ["menu", "userLogged"]),
134
+ ...mapState("generic", ["menuCollapsed"]),
135
+ ...mapGetters("generic", ["event"]),
136
+ },
137
+ methods: {
138
+ ...mapMutations("generic", ["addEvent", "toggleMenu"]),
139
+ updatePageSize() {
140
+ const windowHeight = window.innerHeight;
141
+ this.pageSize = windowHeight;
142
+ },
143
+ toggleSidebar() {
144
+ this.isSidebarCollapsed = !this.isSidebarCollapsed;
145
+ this.toggleMenu(this.isSidebarCollapsed);
146
+ localStorage.setItem('menuCollapsed', this.isSidebarCollapsed ? "closed" : "open");
147
+ this.titleSubMenu = "";
148
+ this.titleSubMenuCollapsed = "";
149
+ },
150
+ toggleSubMenu(title, module) {
151
+ this.module = module;
152
+ if (this.titleSubMenu === title) {
153
+ this.titleSubMenu = "";
154
+ } else {
155
+ this.titleSubMenu = title;
156
+ }
157
+ },
158
+ handleMouseOver(title, module) {
159
+ this.module = module;
160
+ this.titleSubMenuCollapsed = title;
161
+
162
+ var divSub = this.$refs[title + 'sub'];
163
+
164
+ if (divSub) {
165
+ let self = this;
166
+ setTimeout(function () {
167
+ const heightSubMenu = divSub[0].getBoundingClientRect();
168
+
169
+ if (heightSubMenu.top < 0 || heightSubMenu.left < 0 || heightSubMenu.bottom > window.innerHeight || heightSubMenu.right > window.innerWidth) {
170
+ divSub[0].style.bottom = '0px';
171
+ }
172
+
173
+ }, 100);
174
+ }
175
+ },
176
+ handleMouseLeave() {
177
+ this.titleSubMenuCollapsed = "";
178
+ if (this.menuCollapsed)
179
+ this.module = "";
180
+ },
181
+ menuFilter(isModule) {
182
+ let filter = [];
183
+ this.menu.items.forEach(function (obj) {
184
+ if (obj.isModule == isModule) filter.push(obj);
185
+ });
186
+ return filter.sort((a, b) => a.order - b.order);
187
+ },
188
+ subMenuFilter(isModule) {
189
+ let filter = [];
190
+ let self = this;
191
+ let userLogged = this.userLogged.user.userName;
192
+ this.menu.items.forEach(function (obj) {
193
+ if (obj.isModule == isModule && obj.module === self.module) {
194
+ if (obj.isVisible == "all") filter.push(obj);
195
+
196
+ if (obj.isVisible == "support" && userLogged == "UserTemp")
197
+ filter.push(obj);
198
+ }
199
+ });
200
+ return filter;
201
+ },
202
+ navegateTo(item, module) {
203
+ this.$router.push({
204
+ name: item.routeName,
205
+ });
206
+
207
+ this.moduleActive = module;
208
+ this.titleSubMenuCollapsed = "";
209
+ },
210
+ editProfile() {
211
+ this.addEvent({ name: "clickedProfile" });
212
+ },
213
+ },
214
+ watch: {
215
+ event: {
216
+ handler: function (event) {
217
+ if (event.name == "handleMouseOver") {
218
+ this.handleMouseLeave();
219
+ }
220
+ },
221
+ deep: true,
222
+ },
223
+ $route: {
224
+ handler: function (router) {
225
+ this.moduleActive = router.matched[0].props.default.module;
226
+ },
227
+ deep: true,
228
+ },
229
+ },
230
+ };
231
+ </script>
232
+
233
+ <style scoped>
234
+ .sidebar {
235
+ position: fixed;
236
+ top: 0;
237
+ left: 0;
238
+ width: 200px;
239
+ height: 100vh;
240
+ border-radius: 0px 20px 0px 0px;
241
+ background-color: #577696;
242
+ transition: all 0.4s ease;
243
+ z-index: 1000;
244
+ }
245
+
246
+ .sidebar.collapsed {
247
+ width: 85px;
248
+ }
249
+
250
+ .sidebar .sidebar-header {
251
+ display: flex;
252
+ position: relative;
253
+ padding: 10px 20px;
254
+ align-items: center;
255
+ justify-content: space-between;
256
+ }
257
+
258
+ .sidebar-header .header-logo img {
259
+ width: 46px;
260
+ height: 46px;
261
+ display: block;
262
+ object-fit: contain;
263
+ cursor: pointer;
264
+ border-radius: 50%;
265
+ }
266
+
267
+ .sidebar-header .sidebar-toggler,
268
+ .sidebar-menu-button {
269
+ position: absolute;
270
+ left: 70px;
271
+ height: 30px;
272
+ width: 30px;
273
+ color: #151A2D;
274
+ border: none;
275
+ cursor: pointer;
276
+ display: flex;
277
+ background: #EEF2FF;
278
+ align-items: center;
279
+ justify-content: center;
280
+ border-radius: 50px;
281
+ transition: 0.4s ease;
282
+ }
283
+
284
+ .sidebar.collapsed .sidebar-header .sidebar-toggler {
285
+ transform: translate(-4px, 65px);
286
+ }
287
+
288
+ .div-menu-toggle {
289
+ position: fixed;
290
+ font-size: 18px;
291
+ top: 25px;
292
+ width: 20px;
293
+ height: 20px;
294
+ background-color: #D98621;
295
+ border-radius: 50%;
296
+ cursor: pointer;
297
+ z-index: 2000;
298
+ transition: all 0.4s ease;
299
+ }
300
+
301
+ .molded-icon-open {
302
+ padding-left: 10px;
303
+ cursor: pointer;
304
+ margin-top: 10px;
305
+ color: white;
306
+ font-size: 17px;
307
+ margin: 15px;
308
+ border-radius: 10px;
309
+ transition: all 0.3s ease;
310
+ }
311
+
312
+ .molded-icon-open:hover {
313
+ color: #2C3453;
314
+ background-color: white;
315
+ }
316
+
317
+ .menu-active {
318
+ background-color: #D98621;
319
+ }
320
+
321
+ .module-selected {
322
+ color: #2C3453 !important;
323
+ background-color: white !important;
324
+ }
325
+
326
+ .icon-menu-arrow {
327
+ font-size: 14px;
328
+ margin-top: -4px;
329
+ margin-left: 6px;
330
+ color: white;
331
+ }
332
+
333
+ .molded-icon {
334
+ cursor: pointer;
335
+ color: white;
336
+ font-size: 18px;
337
+ margin: 13px;
338
+ border-radius: 10px;
339
+ transition: all 0.3s ease;
340
+ }
341
+
342
+ .molded-icon:hover {
343
+ background-color: white;
344
+ color: #2C3453;
345
+ border-radius: 10px;
346
+ transition: all 0.8s ease;
347
+ }
348
+
349
+ .sub {
350
+ cursor: pointer;
351
+ transition: all 0.3s ease;
352
+ }
353
+
354
+ .sub-menu {
355
+ margin: 15px;
356
+ padding: 10px;
357
+ border-radius: 15px;
358
+ color: white;
359
+ font-size: 14px;
360
+ background-color: #2C3453;
361
+ transition: all 0.5s ease;
362
+ }
363
+
364
+ .sub-menu-title {
365
+ cursor: pointer;
366
+ border-radius: 8px;
367
+ padding: 5px;
368
+ transition: all 1s ease;
369
+ }
370
+
371
+ .sub-menu-title:hover {
372
+ padding: 5px;
373
+ color: #2C3453;
374
+ background-color: white;
375
+ font-weight: bold;
376
+ transition: all 0.8s ease;
377
+ }
378
+
379
+ .sub-menu-collapsed {
380
+ width: 260px;
381
+ margin-top: -100px;
382
+ position: absolute;
383
+ border-radius: 0px 15px 15px 0px;
384
+ background-color: #2C3453;
385
+ cursor: pointer;
386
+ }
387
+
388
+ .sub-menu-title-collapsed {
389
+ padding: 10px;
390
+ border-radius: 8px;
391
+ font-size: 13px;
392
+ }
393
+
394
+ .sub-menu-title-collapsed:hover {
395
+ background-color: white;
396
+ color: #2C3453;
397
+ transition: all 0.8s ease;
398
+ }
399
+
400
+ .rotate {
401
+ transform: rotate(180deg);
402
+ transition: transform 0.5s ease;
403
+ }
404
+
405
+ .rotate-down {
406
+ transform: rotate(360deg);
407
+ transition: transform 0.5s ease;
408
+ }
409
+
410
+ .title-menu {
411
+ font-size: 13px;
412
+ }
413
+
414
+ .title-menu-collapsed {
415
+ font-size: 11.5px;
416
+ }
417
+
418
+ .div-arrow {
419
+ margin-left: 50px;
420
+ }
421
+
422
+ .div-menu-bottom {
423
+ position: absolute;
424
+ bottom: 0;
425
+ left: 0;
426
+ width: 100%;
427
+ padding: 10px;
428
+ }
429
+
430
+ .div-icon-bottom {
431
+ cursor: pointer;
432
+ font-size: 17px;
433
+ color: white;
434
+ border-radius: 10px;
435
+ background-color: #2C3453;
436
+ }
437
+
438
+ .title-logout {
439
+ font-size: 16px;
440
+ margin-left: 10px;
441
+ }
442
+
443
+ .div-group {
444
+ margin-left: 10px;
445
+ padding: 5px;
446
+ }
447
+
448
+ .div-support {
449
+ background-color: #0A36DB;
450
+ font-size: 11px;
451
+ border-radius: 20px;
452
+ padding: 1px 2px 2px 2px;
453
+ margin-left: 5px;
454
+ color: white !important;
455
+ }
456
456
  </style>