@burh/nuxt-core 1.0.503 → 1.0.505

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 (493) hide show
  1. package/.ebignore +25 -25
  2. package/.elasticbeanstalk/config.yml +18 -18
  3. package/.eslintrc.json +39 -39
  4. package/.gitlab-ci.yml +16 -16
  5. package/.vscode/settings.json +10 -10
  6. package/CHANGELOG.md +2 -2
  7. package/README.md +22 -22
  8. package/app.html +8 -8
  9. package/assets/css/font-awesome/css/font-awesome.css +2337 -2337
  10. package/assets/css/font-awesome/css/font-awesome.min.css +4 -4
  11. package/assets/css/font-awesome/fonts/fontawesome-webfont.svg +2671 -2671
  12. package/assets/css/nucleo/css/nucleo-svg.css +134 -134
  13. package/assets/css/nucleo/css/nucleo.css +572 -572
  14. package/assets/css/nucleo/fonts/nucleo-icons.svg +312 -312
  15. package/assets/css/variables.css +2 -2
  16. package/assets/images/burhCv.svg +6 -6
  17. package/assets/images/facebookCv.svg +3 -3
  18. package/assets/images/icons/facebook.svg +14 -14
  19. package/assets/images/icons/historicCv.svg +3 -3
  20. package/assets/images/icons/icon3.svg +3 -3
  21. package/assets/images/icons/icon4.svg +3 -3
  22. package/assets/images/icons/icon5.svg +3 -3
  23. package/assets/images/icons/icon6.svg +3 -3
  24. package/assets/images/icons/icon7.svg +3 -3
  25. package/assets/images/icons/icon8.svg +7 -7
  26. package/assets/images/icons/linkedin.svg +14 -14
  27. package/assets/images/icons/notesCv.svg +3 -3
  28. package/assets/images/icons/twitter.svg +14 -14
  29. package/assets/images/icons/whatsapp.svg +14 -14
  30. package/assets/images/linkedinCv.svg +3 -3
  31. package/assets/images/webCv.svg +4 -4
  32. package/assets/sass/argon.scss +104 -104
  33. package/assets/sass/burh-ds/_components.scss +142 -142
  34. package/assets/sass/burh-ds/_functions.scss +29 -29
  35. package/assets/sass/burh-ds/_global.scss +327 -327
  36. package/assets/sass/burh-ds/_helpers.scss +18 -18
  37. package/assets/sass/burh-ds/_mixins.scss +17 -17
  38. package/assets/sass/burh-ds/_transitions.scss +12 -12
  39. package/assets/sass/burh-ds/_utilities.scss +31 -31
  40. package/assets/sass/burh-ds/_variables.scss +963 -963
  41. package/assets/sass/burh-ds/_vendors.scss +38 -38
  42. package/assets/sass/burh-ds/atoms/_badge.scss +5 -5
  43. package/assets/sass/burh-ds/atoms/_buttons.scss +222 -222
  44. package/assets/sass/burh-ds/atoms/_forms.scss +419 -419
  45. package/assets/sass/burh-ds/atoms/_tables.scss +31 -31
  46. package/assets/sass/burh-ds/atoms/_type.scss +147 -147
  47. package/assets/sass/burh-ds/content/_interface-spa.scss +306 -306
  48. package/assets/sass/burh-ds/content/_main-content.scss +25 -25
  49. package/assets/sass/burh-ds/mixins/_badge.scss +37 -37
  50. package/assets/sass/burh-ds/mixins/_breakpoints.scss +39 -39
  51. package/assets/sass/burh-ds/mixins/_grid-framework.scss +66 -66
  52. package/assets/sass/burh-ds/mixins/_grid.scss +51 -51
  53. package/assets/sass/burh-ds/molecules/_box.scss +282 -282
  54. package/assets/sass/burh-ds/molecules/_breadcrumb.scss +8 -8
  55. package/assets/sass/burh-ds/molecules/_modal.scss +176 -176
  56. package/assets/sass/burh-ds/molecules/_navbar.scss +262 -262
  57. package/assets/sass/burh-ds/molecules/_notifications.scss +1 -1
  58. package/assets/sass/burh-ds/molecules/_steps-profile.scss +67 -67
  59. package/assets/sass/burh-ds/molecules/_testimonial.scss +53 -53
  60. package/assets/sass/burh-ds/organisms/_banner.scss +51 -51
  61. package/assets/sass/burh-ds/organisms/_cards.scss +228 -228
  62. package/assets/sass/burh-ds/organisms/_carousel.scss +113 -113
  63. package/assets/sass/burh-ds/organisms/_footer.scss +115 -115
  64. package/assets/sass/burh-ds/organisms/_profile-bar.scss +130 -130
  65. package/assets/sass/burh-ds/organisms/_search.scss +17 -17
  66. package/assets/sass/burh-ds/organisms/_subheader.scss +773 -773
  67. package/assets/sass/burh-ds/organisms/_tabs-setting.scss +123 -123
  68. package/assets/sass/burh-ds/organisms/banners/_banner.scss +62 -62
  69. package/assets/sass/burh-ds/organisms/cards/_featured-company.scss +17 -17
  70. package/assets/sass/burh-ds/organisms/cards/_opportunity.scss +16 -16
  71. package/assets/sass/burh-ds/pages/_error.scss +124 -124
  72. package/assets/sass/burh-ds/pages/_jobs.scss +424 -424
  73. package/assets/sass/burh-ds/pages/_testes.scss +350 -350
  74. package/assets/sass/burh-ds/variables/_colors.scss +358 -358
  75. package/assets/sass/burh-ds/variables/_global_settings.scss +39 -39
  76. package/assets/sass/core/alerts/_alert-dismissible.scss +48 -48
  77. package/assets/sass/core/alerts/_alert-notify.scss +47 -47
  78. package/assets/sass/core/alerts/_alert.scss +49 -49
  79. package/assets/sass/core/avatars/_avatar-group.scss +22 -22
  80. package/assets/sass/core/avatars/_avatar.scss +59 -59
  81. package/assets/sass/core/badges/_badge-circle.scss +29 -29
  82. package/assets/sass/core/badges/_badge-dot.scss +42 -42
  83. package/assets/sass/core/badges/_badge-floating.scss +18 -18
  84. package/assets/sass/core/badges/_badge.scss +67 -67
  85. package/assets/sass/core/breadcrumbs/_breadcrumb.scss +42 -42
  86. package/assets/sass/core/buttons/_button-brand.scss +12 -12
  87. package/assets/sass/core/buttons/_button-group.scss +79 -79
  88. package/assets/sass/core/buttons/_button-icon.scss +92 -92
  89. package/assets/sass/core/buttons/_button.scss +90 -90
  90. package/assets/sass/core/cards/_card-animations.scss +10 -10
  91. package/assets/sass/core/cards/_card-blockquote.scss +17 -17
  92. package/assets/sass/core/cards/_card-money.scss +27 -27
  93. package/assets/sass/core/cards/_card-pricing.scss +26 -26
  94. package/assets/sass/core/cards/_card-profile.scss +49 -49
  95. package/assets/sass/core/cards/_card-stats.scss +16 -16
  96. package/assets/sass/core/cards/_card.scss +70 -70
  97. package/assets/sass/core/charts/_chart.scss +69 -69
  98. package/assets/sass/core/close/_close.scss +47 -47
  99. package/assets/sass/core/collapse/_accordion.scss +38 -38
  100. package/assets/sass/core/content/_main-content.scss +17 -17
  101. package/assets/sass/core/custom-forms/_custom-checkbox.scss +47 -47
  102. package/assets/sass/core/custom-forms/_custom-control.scss +58 -58
  103. package/assets/sass/core/custom-forms/_custom-form.scss +45 -45
  104. package/assets/sass/core/custom-forms/_custom-radio.scss +38 -38
  105. package/assets/sass/core/custom-forms/_custom-toggle.scss +122 -122
  106. package/assets/sass/core/dropdowns/_dropdown.scss +89 -89
  107. package/assets/sass/core/footers/_footer.scss +159 -159
  108. package/assets/sass/core/forms/_form-extend.scss +38 -38
  109. package/assets/sass/core/forms/_form-validation.scss +78 -78
  110. package/assets/sass/core/forms/_form.scss +125 -125
  111. package/assets/sass/core/forms/_input-group.scss +136 -136
  112. package/assets/sass/core/grid/_grid.scss +31 -31
  113. package/assets/sass/core/headers/_header.scss +7 -7
  114. package/assets/sass/core/icons/_icon-actions.scss +57 -57
  115. package/assets/sass/core/icons/_icon-shape.scss +48 -48
  116. package/assets/sass/core/icons/_icon.scss +88 -88
  117. package/assets/sass/core/list-groups/_list-check.scss +52 -52
  118. package/assets/sass/core/list-groups/_list-group.scss +46 -46
  119. package/assets/sass/core/maps/_map.scss +10 -10
  120. package/assets/sass/core/masks/_mask.scss +33 -33
  121. package/assets/sass/core/medias/_media-comment.scss +33 -33
  122. package/assets/sass/core/medias/_media.scss +3 -3
  123. package/assets/sass/core/mixins/_alert.scss +22 -22
  124. package/assets/sass/core/mixins/_background-variant.scss +30 -30
  125. package/assets/sass/core/mixins/_badge.scss +12 -12
  126. package/assets/sass/core/mixins/_buttons.scss +105 -105
  127. package/assets/sass/core/mixins/_custom-forms.scss +47 -47
  128. package/assets/sass/core/mixins/_forms.scss +127 -127
  129. package/assets/sass/core/mixins/_icon.scss +10 -10
  130. package/assets/sass/core/mixins/_modals.scss +25 -25
  131. package/assets/sass/core/mixins/_popover.scss +35 -35
  132. package/assets/sass/core/modals/_modal.scss +31 -31
  133. package/assets/sass/core/navbars/_navbar-collapse.scss +37 -37
  134. package/assets/sass/core/navbars/_navbar-dropdown.scss +121 -121
  135. package/assets/sass/core/navbars/_navbar-floating.scss +17 -17
  136. package/assets/sass/core/navbars/_navbar-search.scss +216 -216
  137. package/assets/sass/core/navbars/_navbar-top.scss +58 -58
  138. package/assets/sass/core/navbars/_navbar-vertical.scss +507 -507
  139. package/assets/sass/core/navbars/_navbar.scss +368 -368
  140. package/assets/sass/core/navs/_nav-pills.scss +66 -66
  141. package/assets/sass/core/navs/_nav.scss +33 -33
  142. package/assets/sass/core/paginations/_pagination.scss +49 -49
  143. package/assets/sass/core/popovers/_popover.scss +21 -21
  144. package/assets/sass/core/progresses/_progress.scss +89 -89
  145. package/assets/sass/core/reboot/_reboot.scss +13 -13
  146. package/assets/sass/core/sections/_nucleo-icons.scss +117 -117
  147. package/assets/sass/core/separators/_separator.scss +54 -54
  148. package/assets/sass/core/shortcuts/_shortcut.scss +30 -30
  149. package/assets/sass/core/tables/_table-actions.scss +25 -25
  150. package/assets/sass/core/tables/_table-sortable.scss +28 -28
  151. package/assets/sass/core/tables/_table.scss +153 -153
  152. package/assets/sass/core/timeline/_timeline.scss +182 -182
  153. package/assets/sass/core/type/_article.scss +22 -22
  154. package/assets/sass/core/type/_display.scss +14 -14
  155. package/assets/sass/core/type/_heading.scss +65 -65
  156. package/assets/sass/core/type/_type.scss +27 -27
  157. package/assets/sass/core/utilities/_backgrounds.scss +51 -51
  158. package/assets/sass/core/utilities/_blurable.scss +37 -37
  159. package/assets/sass/core/utilities/_floating.scss +64 -64
  160. package/assets/sass/core/utilities/_helper.scss +18 -18
  161. package/assets/sass/core/utilities/_image.scss +9 -9
  162. package/assets/sass/core/utilities/_opacity.scss +35 -35
  163. package/assets/sass/core/utilities/_overflow.scss +11 -11
  164. package/assets/sass/core/utilities/_position.scss +25 -25
  165. package/assets/sass/core/utilities/_shadows.scss +28 -28
  166. package/assets/sass/core/utilities/_sizing.scss +7 -7
  167. package/assets/sass/core/utilities/_spacing.scss +107 -107
  168. package/assets/sass/core/utilities/_text.scss +49 -49
  169. package/assets/sass/core/utilities/_transform.scss +13 -13
  170. package/assets/sass/core/vendors/_bootstrap-datepicker.scss +279 -279
  171. package/assets/sass/core/vendors/_bootstrap-tagsinput.scss +67 -67
  172. package/assets/sass/core/vendors/_chartjs.scss +22 -22
  173. package/assets/sass/core/vendors/_dropzone.scss +74 -74
  174. package/assets/sass/core/vendors/_element-checkbox.scss +26 -26
  175. package/assets/sass/core/vendors/_element-tables.scss +61 -61
  176. package/assets/sass/core/vendors/_flatpickr.scss +72 -72
  177. package/assets/sass/core/vendors/_fullcalendar.scss +256 -256
  178. package/assets/sass/core/vendors/_headroom.scss +25 -25
  179. package/assets/sass/core/vendors/_lavalamp.scss +157 -157
  180. package/assets/sass/core/vendors/_nouislider.scss +413 -413
  181. package/assets/sass/core/vendors/_quill.scss +280 -280
  182. package/assets/sass/core/vendors/_scrollbar.scss +949 -949
  183. package/assets/sass/core/vendors/_select.scss +70 -70
  184. package/assets/sass/core/vendors/_sweet-alert-2.scss +22 -22
  185. package/assets/sass/core/vendors/_tags.scss +32 -32
  186. package/assets/sass/core/vendors/_vectormap.scss +16 -16
  187. package/assets/sass/custom/_components.scss +142 -142
  188. package/assets/sass/custom/_functions.scss +29 -29
  189. package/assets/sass/custom/_mixins.scss +15 -15
  190. package/assets/sass/custom/_transitions.scss +12 -12
  191. package/assets/sass/custom/_utilities.scss +31 -31
  192. package/assets/sass/custom/_variables.scss +1077 -1077
  193. package/assets/sass/custom/_vendors.scss +38 -38
  194. package/components/argon-core/Badge.vue +56 -56
  195. package/components/argon-core/Banners/Banner.vue +28 -28
  196. package/components/argon-core/Banners/BannerItem.vue +13 -13
  197. package/components/argon-core/BaseAlert.vue +74 -74
  198. package/components/argon-core/BaseButton.vue +81 -81
  199. package/components/argon-core/BaseDropdown.vue +114 -114
  200. package/components/argon-core/BaseHeader.vue +21 -21
  201. package/components/argon-core/BasePagination.vue +172 -172
  202. package/components/argon-core/BaseProgress.vue +121 -121
  203. package/components/argon-core/BaseSlider.vue +96 -96
  204. package/components/argon-core/BaseSwitch.vue +46 -46
  205. package/components/argon-core/BaseTable.vue +70 -70
  206. package/components/argon-core/Breadcrumb/Breadcrumb.vue +26 -26
  207. package/components/argon-core/Breadcrumb/BreadcrumbItem.vue +16 -16
  208. package/components/argon-core/Breadcrumb/RouteBreadcrumb.vue +45 -45
  209. package/components/argon-core/ButtonCheckbox.vue +39 -39
  210. package/components/argon-core/ButtonRadioGroup.vue +47 -47
  211. package/components/argon-core/Cards/Card.vue +71 -71
  212. package/components/argon-core/Cards/OpportunityCard.vue +39 -39
  213. package/components/argon-core/Cards/StatsCard.vue +49 -49
  214. package/components/argon-core/Charts/BarChart.js +30 -30
  215. package/components/argon-core/Charts/DoughnutChart.js +30 -30
  216. package/components/argon-core/Charts/LineChart.js +30 -30
  217. package/components/argon-core/Charts/PieChart.js +30 -30
  218. package/components/argon-core/Charts/config.js +491 -491
  219. package/components/argon-core/Charts/globalOptionsMixin.js +7 -7
  220. package/components/argon-core/Charts/optionHelpers.js +10 -10
  221. package/components/argon-core/CloseButton.vue +35 -35
  222. package/components/argon-core/Collapse/Collapse.vue +84 -84
  223. package/components/argon-core/Collapse/CollapseItem.vue +91 -91
  224. package/components/argon-core/Feed/Comment.vue +50 -50
  225. package/components/argon-core/Inputs/BaseCheckbox.vue +79 -79
  226. package/components/argon-core/Inputs/BaseInput.vue +293 -270
  227. package/components/argon-core/Inputs/BaseRadio.vue +68 -68
  228. package/components/argon-core/Inputs/DropzoneFileUpload.vue +138 -138
  229. package/components/argon-core/Inputs/DropzoneVideoUpload.vue +138 -138
  230. package/components/argon-core/Inputs/FileInput.vue +54 -54
  231. package/components/argon-core/Inputs/HtmlEditor.vue +105 -105
  232. package/components/argon-core/Inputs/IconCheckbox.vue +45 -45
  233. package/components/argon-core/Inputs/TagsInput.vue +100 -100
  234. package/components/argon-core/LoadingPanel.vue +26 -26
  235. package/components/argon-core/Modal.vue +180 -180
  236. package/components/argon-core/Navbar/BaseNav.vue +122 -122
  237. package/components/argon-core/Navbar/NavbarProgress.vue +19 -19
  238. package/components/argon-core/Navbar/NavbarProgressItem.vue +17 -17
  239. package/components/argon-core/Navbar/NavbarToggleButton.vue +21 -21
  240. package/components/argon-core/NavbarToggleButton.vue +29 -29
  241. package/components/argon-core/NotificationPlugin/Notification.vue +207 -207
  242. package/components/argon-core/NotificationPlugin/Notifications.vue +55 -55
  243. package/components/argon-core/NotificationPlugin/index.js +66 -66
  244. package/components/argon-core/SidebarPlugin/SideBar.vue +119 -119
  245. package/components/argon-core/SidebarPlugin/SidebarItem.vue +184 -184
  246. package/components/argon-core/SidebarPlugin/index.js +79 -79
  247. package/components/argon-core/Tabs/Tab.vue +33 -33
  248. package/components/argon-core/Tabs/Tabs.vue +170 -170
  249. package/components/argon-core/Timeline/TimeLine.vue +17 -17
  250. package/components/argon-core/Timeline/TimeLineItem.vue +30 -30
  251. package/components/argon-core/WorldMap/AsyncWorldMap.vue +28 -28
  252. package/components/argon-core/WorldMap/WorldMap.vue +127 -127
  253. package/components/argon-core/index.js +82 -82
  254. package/components/burh-ds/Aboutme/Profile.vue +110 -110
  255. package/components/burh-ds/Avatar/AvatarLink.vue +44 -44
  256. package/components/burh-ds/Avatar/BusinessAvatar.vue +38 -38
  257. package/components/burh-ds/Banners/BannerHero.vue +23 -23
  258. package/components/burh-ds/Banners/BannerItem.vue +14 -14
  259. package/components/burh-ds/Button/ExportButton.vue +20 -20
  260. package/components/burh-ds/Button/SwitchStateButton.vue +165 -165
  261. package/components/burh-ds/Capsules/SearchSlug.vue +860 -860
  262. package/components/burh-ds/Capsules/UserProfile.vue +1938 -1938
  263. package/components/burh-ds/Cards/BaseCard.vue +195 -195
  264. package/components/burh-ds/Cards/CampaignCard.vue +40 -40
  265. package/components/burh-ds/Cards/CompanyCard.vue +39 -39
  266. package/components/burh-ds/Cards/CourseInfoCard.vue +267 -267
  267. package/components/burh-ds/Cards/FeatureBusinessCard.vue +74 -74
  268. package/components/burh-ds/Cards/FunctionalityItem.vue +35 -35
  269. package/components/burh-ds/Cards/OpportunityCard.vue +115 -115
  270. package/components/burh-ds/Cards/PerformanceCard.vue +81 -81
  271. package/components/burh-ds/Cards/PerformanceItem.vue +65 -65
  272. package/components/burh-ds/Cards/PlanCard.vue +192 -192
  273. package/components/burh-ds/Cards/ProductCard.vue +142 -142
  274. package/components/burh-ds/Cards/PurchaseCard.vue +58 -58
  275. package/components/burh-ds/Cards/PurchaseCardSimple.vue +58 -58
  276. package/components/burh-ds/Cards/TestCard.vue +192 -192
  277. package/components/burh-ds/Cards/TrainingCard.vue +151 -151
  278. package/components/burh-ds/Cards/WelcomeCard.vue +106 -106
  279. package/components/burh-ds/Carousel/FeedCarousel.vue +47 -47
  280. package/components/burh-ds/Carousel/ImageCarousel.vue +111 -111
  281. package/components/burh-ds/Chart/DoughnutChart.vue +20 -20
  282. package/components/burh-ds/Collapse/DefaultCollapse.vue +70 -70
  283. package/components/burh-ds/Crop/Crop.vue +121 -121
  284. package/components/burh-ds/Curriculum/UserCurriculum/UpgradePlan.vue +71 -71
  285. package/components/burh-ds/Curriculum/UserCurriculum/UserCvLeftSide.vue +542 -542
  286. package/components/burh-ds/Curriculum/UserCurriculum/UserCvMiddle.vue +590 -590
  287. package/components/burh-ds/Curriculum/UserCurriculum/UserCvRightSide.vue +1270 -1266
  288. package/components/burh-ds/Curriculum/UserCurriculum/UserCvRightSideNotAuth.vue +496 -496
  289. package/components/burh-ds/Curriculum/UserCurriculum/index.vue +258 -258
  290. package/components/burh-ds/Dropdown/AppLinkArea.vue +132 -132
  291. package/components/burh-ds/Dropdown/DropdownItem.vue +26 -26
  292. package/components/burh-ds/Dropdown/DropdownSection.vue +38 -38
  293. package/components/burh-ds/Dropdown/FaqVideoArea.vue +88 -88
  294. package/components/burh-ds/Dropdown/SignOutItem.vue +11 -11
  295. package/components/burh-ds/Dropdown/UserMenuDropdown.vue +63 -63
  296. package/components/burh-ds/FeaturedCompanies/FeaturedCompanies.vue +11 -11
  297. package/components/burh-ds/FeaturedCompanies/FeaturedCompanyCard.vue +16 -16
  298. package/components/burh-ds/Filters/BaseFilterContainer.vue +138 -138
  299. package/components/burh-ds/Filters/FilterWithDropdown.vue +289 -289
  300. package/components/burh-ds/Groups/ProductItem.vue +62 -62
  301. package/components/burh-ds/Groups/SimpleProductItem.vue +164 -164
  302. package/components/burh-ds/Headings/AppHeader.vue +373 -373
  303. package/components/burh-ds/Headings/BaseHeader.vue +24 -24
  304. package/components/burh-ds/Headings/Profile.vue +66 -66
  305. package/components/burh-ds/Headings/ProfileHeader.vue +105 -105
  306. package/components/burh-ds/Headings/SettingsHeader.vue +48 -48
  307. package/components/burh-ds/Headings/StepHeader.vue +122 -122
  308. package/components/burh-ds/Img/ImageWithFallback.vue +67 -67
  309. package/components/burh-ds/Input/AutoComplete.vue +136 -136
  310. package/components/burh-ds/Inputs/BaseCheckbox.vue +73 -73
  311. package/components/burh-ds/Inputs/BaseSwitch.vue +43 -43
  312. package/components/burh-ds/Inputs/BaseSwitchSecondary.vue +84 -84
  313. package/components/burh-ds/Inputs/DoubleInputWithIcon.vue +100 -100
  314. package/components/burh-ds/Inputs/HtmlEditor.vue +60 -60
  315. package/components/burh-ds/Inputs/SearchInput.vue +88 -88
  316. package/components/burh-ds/InterfaceSpa/InterfaceSpa.vue +83 -83
  317. package/components/burh-ds/Jobs/JobDetail.vue +432 -432
  318. package/components/burh-ds/Jobs/JobDetailDesign.vue +151 -151
  319. package/components/burh-ds/Jobs/JobDetailEmpty.vue +27 -27
  320. package/components/burh-ds/Labels/LabelContextIcon.vue +58 -58
  321. package/components/burh-ds/Link/DefaultLink.vue +30 -30
  322. package/components/burh-ds/Lists/ListAvatarCheckbox.vue +157 -157
  323. package/components/burh-ds/Lists/ListNavLinks.vue +54 -54
  324. package/components/burh-ds/Lists/VagasSimple.vue +404 -404
  325. package/components/burh-ds/Loadings/Basics.vue +80 -80
  326. package/components/burh-ds/Loadings/InfiniteLoading.vue +21 -21
  327. package/components/burh-ds/Loadings/LoadingFullPage.vue +68 -68
  328. package/components/burh-ds/Loadings/NewLoading.vue +119 -119
  329. package/components/burh-ds/Loads/LoadingBar.vue +83 -83
  330. package/components/burh-ds/Modals/AddCustomerModal.vue +484 -484
  331. package/components/burh-ds/Modals/AddMember.vue +255 -255
  332. package/components/burh-ds/Modals/AddRoleModal.vue +139 -139
  333. package/components/burh-ds/Modals/AppConfigModal.vue +643 -643
  334. package/components/burh-ds/Modals/CourseMessageModal.vue +66 -66
  335. package/components/burh-ds/Modals/DocsModal.vue +111 -111
  336. package/components/burh-ds/Modals/DropzoneModal.vue +125 -125
  337. package/components/burh-ds/Modals/InviteToRole.vue +287 -287
  338. package/components/burh-ds/Modals/MobileModal.vue +65 -65
  339. package/components/burh-ds/Modals/ModalTests.vue +167 -167
  340. package/components/burh-ds/Modals/NewUserModal.vue +87 -87
  341. package/components/burh-ds/Modals/PlanModal.vue +327 -327
  342. package/components/burh-ds/Modals/RequestModal.vue +237 -237
  343. package/components/burh-ds/Modals/SendCourse.vue +448 -448
  344. package/components/burh-ds/Modals/SendDisc.vue +230 -230
  345. package/components/burh-ds/Modals/SendTest.vue +362 -362
  346. package/components/burh-ds/Modals/ShareModal.vue +228 -228
  347. package/components/burh-ds/Modals/SharedModal.vue +230 -230
  348. package/components/burh-ds/Modals/SmsModal.vue +329 -329
  349. package/components/burh-ds/Modals/SubModal.vue +41 -41
  350. package/components/burh-ds/Modals/UniversalShareModal.vue +216 -216
  351. package/components/burh-ds/Modals/UniversalWhatsappModal.vue +93 -93
  352. package/components/burh-ds/Modals/UniversityAccessModal.vue +135 -135
  353. package/components/burh-ds/Modals/VideoModal.vue +80 -80
  354. package/components/burh-ds/Modals/WhatsappModal.vue +92 -92
  355. package/components/burh-ds/Navbar/BaseNav.vue +119 -119
  356. package/components/burh-ds/Notifications/Notification.vue +215 -215
  357. package/components/burh-ds/Notifications/Notifications.vue +55 -55
  358. package/components/burh-ds/Notifications/index.js +66 -66
  359. package/components/burh-ds/Pagination/NamedPagination.vue +187 -187
  360. package/components/burh-ds/Questions/Question.vue +243 -243
  361. package/components/burh-ds/Questions/QuestionAttach.vue +13 -13
  362. package/components/burh-ds/Questions/QuestionRadio.vue +122 -122
  363. package/components/burh-ds/Questions/QuestionRadioItem.vue +83 -83
  364. package/components/burh-ds/Questions/QuestionText.vue +66 -66
  365. package/components/burh-ds/Questions/index.js +13 -13
  366. package/components/burh-ds/Skeleton/AppHeader.vue +173 -173
  367. package/components/burh-ds/Skeleton/BaseCardTest.vue +51 -51
  368. package/components/burh-ds/Skeleton/BaseCardUniversity.vue +79 -79
  369. package/components/burh-ds/Skeleton/BaseCardUser.vue +84 -84
  370. package/components/burh-ds/Skeleton/BaseCourseInfo.vue +116 -116
  371. package/components/burh-ds/Skeleton/BaseTraining.vue +29 -29
  372. package/components/burh-ds/Skeleton/BufferFolderSkeleton.vue +45 -45
  373. package/components/burh-ds/Skeleton/BufferUserSkeleton.vue +142 -142
  374. package/components/burh-ds/Skeleton/Cards.vue +86 -86
  375. package/components/burh-ds/Skeleton/ChartCard.vue +114 -114
  376. package/components/burh-ds/Skeleton/Home.vue +100 -100
  377. package/components/burh-ds/Skeleton/RecruitmentCard.vue +203 -203
  378. package/components/burh-ds/Skeleton/SkeletonAnimate.vue +146 -146
  379. package/components/burh-ds/Tabs/Tab.vue +56 -56
  380. package/components/burh-ds/Tabs/Tabs.vue +188 -188
  381. package/components/burh-ds/Tabs/TesteTab.vue +132 -132
  382. package/components/burh-ds/Video/MuxVideo.vue +39 -39
  383. package/components/burh-ds/index.js +20 -20
  384. package/components/layouts/argon/Content.vue +17 -17
  385. package/components/layouts/argon/navbar/BlankLayout.vue +61 -61
  386. package/components/layouts/argon/navbar/DashboardNavbar.vue +307 -307
  387. package/components/layouts/burh-ds/ContentFooter.vue +45 -45
  388. package/components/layouts/burh-ds/footer/FooterSimple.vue +20 -20
  389. package/components/layouts/burh-ds/footer/ProductsFooter.vue +330 -330
  390. package/components/layouts/burh-ds/footer/StatusFooter.vue +105 -105
  391. package/components/layouts/burh-ds/footer/StoreFooter.vue +54 -54
  392. package/components/layouts/burh-ds/navbar/AppNavbar.vue +97 -97
  393. package/components/layouts/burh-ds/navbar/BusinessGlobalNavbar.vue +435 -435
  394. package/components/layouts/burh-ds/navbar/CarreirasNavbar.vue +363 -363
  395. package/components/layouts/burh-ds/navbar/CompanyGlobalNavbar.vue +244 -244
  396. package/components/layouts/burh-ds/navbar/EmpresasNavbar.vue +374 -374
  397. package/components/layouts/burh-ds/navbar/EmpresasNavbarLogado.vue +388 -388
  398. package/components/layouts/burh-ds/navbar/GlobalNavbar.vue +535 -535
  399. package/components/layouts/burh-ds/navbar/MobileNavbar.vue +431 -431
  400. package/components/layouts/burh-ds/navbar/PublicNavbar.vue +168 -168
  401. package/components/layouts/burh-ds/navbar/SimpleNavbar.vue +129 -129
  402. package/components/layouts/burh-ds/navbar/UserNavbar.vue +346 -346
  403. package/components/layouts/burh-ds/navbar/UserNavbarLogin.vue +253 -253
  404. package/components/organismos/atomos/Deslike.vue +26 -26
  405. package/components/organismos/atomos/Like.vue +26 -26
  406. package/components/organismos/emptyChart/index.vue +39 -39
  407. package/components/pages/UserProfile/EditProfileForm.vue +142 -142
  408. package/components/pages/UserProfile/UserCard.vue +61 -61
  409. package/components/pages/dashboard/ActivityFeed.vue +102 -102
  410. package/components/pages/dashboard/LightTable.vue +194 -194
  411. package/components/pages/dashboard/PageVisitsTable.vue +107 -107
  412. package/components/pages/dashboard/ProgressTrackList.vue +82 -82
  413. package/components/pages/dashboard/SocialTrafficTable.vue +101 -101
  414. package/components/pages/dashboard/TaskList.vue +56 -56
  415. package/components/pages/dashboard/UserList.vue +72 -72
  416. package/components/pages/forms/BrowserDefaultsValidation.vue +106 -106
  417. package/components/pages/forms/CustomStylesValidation.vue +130 -130
  418. package/components/pages/forms/ServerSideValidation.vue +128 -128
  419. package/components/pages/register/FailedRegistration.vue +29 -29
  420. package/components/pages/register/SuccessfulRegistration.vue +29 -29
  421. package/components/tables/PaginatedTables/clientPaginationMixin.js +86 -86
  422. package/components/tables/RegularTables/CheckboxColoredTable.vue +112 -112
  423. package/components/tables/RegularTables/CheckboxTable.vue +101 -101
  424. package/components/tables/RegularTables/DarkTable.vue +114 -114
  425. package/components/tables/RegularTables/InlineActionsTable.vue +94 -94
  426. package/components/tables/RegularTables/LightTable.vue +117 -117
  427. package/components/tables/RegularTables/StripedTable.vue +94 -94
  428. package/components/tables/RegularTables/TranslucentTable.vue +114 -114
  429. package/components/tables/projects.js +75 -75
  430. package/components/tables/users.js +42 -42
  431. package/components/tables/users2.js +474 -474
  432. package/components/widgets/CalendarWidget.vue +119 -119
  433. package/components/widgets/CreditCard.vue +66 -66
  434. package/components/widgets/MembersCard.vue +99 -99
  435. package/components/widgets/PaypalCard.vue +45 -45
  436. package/components/widgets/ProgressTrackList.vue +76 -76
  437. package/components/widgets/StatsCards.vue +70 -70
  438. package/components/widgets/TaskList.vue +67 -67
  439. package/components/widgets/TimelineCard.vue +66 -66
  440. package/components/widgets/VectorMapCard.vue +139 -139
  441. package/components/widgets/VisaCard.vue +51 -51
  442. package/data/ListVideoLinksMock.json +21 -21
  443. package/dictionary.js +38 -38
  444. package/environment.env.md +34 -34
  445. package/environment.js +221 -221
  446. package/eslint.config.json +12 -12
  447. package/layouts/AuthLayout.vue +191 -191
  448. package/layouts/BurhCarreirasLayout.vue +63 -63
  449. package/layouts/BurhEmpresasLayout.vue +64 -64
  450. package/layouts/BurhNoHeader.vue +63 -63
  451. package/layouts/BurhPublicLayout.vue +67 -67
  452. package/layouts/BurhUserLayout.vue +231 -231
  453. package/layouts/DashboardLayout.vue +226 -226
  454. package/layouts/error.vue +119 -119
  455. package/metadata.json +30 -30
  456. package/middleware/README.md +8 -8
  457. package/middleware/decodeUrl.js +8 -8
  458. package/middleware/maintenance.js +9 -9
  459. package/middleware/new-account.js +6 -6
  460. package/middleware/redirect.js +13 -13
  461. package/middleware/user-agent-error.js +28 -28
  462. package/nuxt.config.js +207 -207
  463. package/package.json +119 -119
  464. package/plugins/README.md +7 -7
  465. package/plugins/analytics/ga.js +28 -28
  466. package/plugins/auth/auth.js +210 -210
  467. package/plugins/axios.js +32 -32
  468. package/plugins/carousel/owl-carousel.js +3 -3
  469. package/plugins/crop/crop.js +4 -4
  470. package/plugins/dashboard/dashboard-plugin.js +31 -31
  471. package/plugins/dashboard/directives/click-outside.js +15 -15
  472. package/plugins/dashboard/eventBus.js +1 -1
  473. package/plugins/dashboard/globalComponents.js +49 -44
  474. package/plugins/dashboard/globalDirectives.js +7 -7
  475. package/plugins/dom/loader.js +76 -76
  476. package/plugins/localstorage.js +20 -20
  477. package/plugins/location/location.js +41 -41
  478. package/plugins/pagination/pagination.js +3 -3
  479. package/plugins/qrcode/qrcode.js +4 -4
  480. package/plugins/router.js +8 -8
  481. package/plugins/social-media/fb-sdk.js +44 -44
  482. package/plugins/social-media/share-link-facebook.js +32 -32
  483. package/plugins/social-media/share-link-linkedin.js +30 -30
  484. package/plugins/social-media/share-link-twitter.js +30 -30
  485. package/plugins/social-media/share-link-whatsapp.js +31 -31
  486. package/plugins/vClickOutside.js +4 -4
  487. package/polyfills.js +96 -96
  488. package/util/common.js +189 -189
  489. package/util/cookie.js +28 -28
  490. package/util/dom.js +63 -63
  491. package/util/getPrefixes.js +12 -12
  492. package/util/request.js +46 -46
  493. package/util/throttle.js +15 -15
@@ -1,1266 +1,1270 @@
1
- <template>
2
- <div class="bg-white content-right tabs">
3
- <el-tabs
4
- :class="activeTab"
5
- class="mt-3 handle-icon-color"
6
- v-model="activeTab"
7
- >
8
- <el-tab-pane v-if="companyHasAutomation && hasAutomation" name="melissa" class="mx-2">
9
- <span class="tab__icon-pane" slot="label">
10
- <img
11
- class="img__icon-pane"
12
- src="/img/recruitment/melissa.svg"
13
- />
14
- </span>
15
- <p class="notes-title mb-0 notes-melissa-title">
16
- {{automation.aproved ?
17
- 'Candidato aprovado pela Melissa' :
18
- 'Candidato reprovado pela Melissa'}}
19
- </p>
20
- <div class="line mb-3"></div>
21
- <template>
22
- <template>
23
- <div v-if="automation && automation.vehicle_license && automation.vehicle_license.vehicle_license !== null">
24
- <div class="notes-baloon-melissa mt-2">
25
- <div class="question-melissa-title">
26
- <span>
27
- Você tem uma carteira de motorista válida?
28
- </span>
29
- </div>
30
- <div class="notes-text-melissa pt-2">
31
- <span class="mt-2">
32
- {{ Boolean(automation.vehicle_license.vehicle_license) ? "Sim" : "Não" }}
33
- <span v-if="automation.vehicle_license.vehicle_license_approved">
34
- &#x2705;
35
- </span>
36
- <span v-else>
37
- &#x274C;
38
- </span>
39
- </span>
40
- </div>
41
- </div>
42
- </div>
43
- <div v-if="automation && automation.city && automation.city.city !== null">
44
- <div class="notes-baloon-melissa mt-2">
45
- <div class="question-melissa-title">
46
- <span>
47
- Você pode se locomover até onde esta vaga está localizada?
48
- </span>
49
- </div>
50
- <div class="notes-text-melissa pt-2">
51
- <span class="mt-2">
52
- {{ Boolean(automation.city.city) ? "Sim" : "Não" }}
53
- <span v-if="automation.city.city_approved">
54
- &#x2705;
55
- </span>
56
- <span v-else>
57
- &#x274C;
58
- </span>
59
- </span>
60
- </div>
61
- </div>
62
- </div>
63
- <div v-if="automation && automation.urgent_hiring && automation.urgent_hiring.urgent_hiring !== null">
64
- <div class="notes-baloon-melissa mt-2">
65
- <div class="question-melissa-title">
66
- <span>
67
- Precisamos preencher esta posição com urgência. Você poderia começar imediatamente?
68
- </span>
69
- </div>
70
- <div class="notes-text-melissa pt-2">
71
- <span class="mt-2">
72
- {{ Boolean(automation.urgent_hiring.urgent_hiring) ? "Sim" : "Não" }}
73
- <span v-if="automation.urgent_hiring.urgent_hiring_approved">
74
- &#x2705;
75
- </span>
76
- <span v-else>
77
- &#x274C;
78
- </span>
79
- </span>
80
- </div>
81
- </div>
82
- </div>
83
- <div v-if="automation && automation.school_formation && automation.school_formation.school_formation !== null && automation.school_formation.option !== null">
84
- <div class="notes-baloon-melissa mt-2">
85
- <div class="question-melissa-title">
86
- <span>
87
- Você completou o curso: <b>{{automation.school_formation.option}}</b>?
88
- </span>
89
- </div>
90
- <div class="notes-text-melissa pt-2">
91
- <span class="mt-2">
92
- {{ Boolean(automation.school_formation.school_formation) ? "Sim" : "Não" }}
93
-
94
- <span v-if="automation.school_formation.school_formation_approved">
95
- &#x2705;
96
- </span>
97
- <span v-else>
98
- &#x274C;
99
- </span>
100
- </span>
101
- </div>
102
- </div>
103
- </div>
104
- <div v-if="automation && automation.tool_experience && automation.tool_experience.tool_experience !== null && automation.tool_experience.option !== null">
105
- <div class="notes-baloon-melissa mt-2">
106
- <div class="question-melissa-title">
107
- <span>
108
- Quantos anos de experiência você tem utilizando <b>{{automation.tool_experience.option}}</b>?
109
- </span>
110
- </div>
111
- <div class="notes-text-melissa pt-2">
112
- <span class="mt-2">
113
- {{ automation.tool_experience.tool_experience }}
114
- <span v-if="automation.tool_experience.tool_experience_approved">
115
- &#x2705;
116
- </span>
117
- <span v-else>
118
- &#x274C;
119
- </span>
120
- </span>
121
- </div>
122
- </div>
123
- </div>
124
- <div v-if="automation && automation.work_experience && automation.work_experience.work_experience !== null && automation.work_experience.option !== null">
125
- <div class="notes-baloon-melissa mt-2">
126
- <div class="question-melissa-title">
127
- <span>
128
- Quantos anos de experiência você tem na função de <b>{{automation.work_experience.option}}</b>?
129
- </span>
130
- </div>
131
- <div class="notes-text-melissa pt-2">
132
- <span class="mt-2">
133
- {{ automation.work_experience.work_experience }}
134
- <span v-if="automation.work_experience.work_experience_approved">
135
- &#x2705;
136
- </span>
137
- <span v-else>
138
- &#x274C;
139
- </span>
140
- </span>
141
- </div>
142
- </div>
143
- </div>
144
- <div v-if="automation && automation.sector_experience && automation.sector_experience.sector_experience !== null && automation.sector_experience.option !== null">
145
- <div class="notes-baloon-melissa mt-2">
146
- <div class="question-melissa-title">
147
- <span>
148
- Quantos anos de experiência você tem no setor de <b>{{automation.sector_experience.option}}</b>?
149
- </span>
150
- </div>
151
- <div class="notes-text-melissa pt-2">
152
- <span class="mt-2">
153
- {{ automation.sector_experience.sector_experience }}
154
- <span v-if="automation.sector_experience.sector_experience_approved">
155
- &#x2705;
156
- </span>
157
- <span v-else>
158
- &#x274C;
159
- </span>
160
- </span>
161
- </div>
162
- </div>
163
- </div>
164
- <div v-if="automation && automation.language && automation.language.language !== null && automation.language.option !== null">
165
- <div class="notes-baloon-melissa mt-2">
166
- <div class="question-melissa-title">
167
- <span>
168
- Qual seu nível de proficiência em <b>{{automation.language.option}}</b>?
169
- </span>
170
- </div>
171
- <div class="notes-text-melissa pt-2">
172
- <span class="mt-2">
173
- {{ automation.language.language }}
174
- <span v-if="automation.language.language_approved">
175
- &#x2705;
176
- </span>
177
- <span v-else>
178
- &#x274C;
179
- </span>
180
- </span>
181
- </div>
182
- </div>
183
- </div>
184
- <div
185
- v-for="(melissa,index) in automation.custom"
186
- :key="index"
187
- >
188
- <div class="notes-baloon-melissa mt-2">
189
- <div class="question-melissa-title">
190
- <span>{{ melissa.question }}</span>
191
- </div>
192
- <div class="notes-text-melissa pt-2">
193
- <span class="mt-2">
194
- {{ typeof melissa.response === "boolean" ? melissa.response ? "Sim" : "Não" : melissa.response }}
195
- <span v-if="melissa.approved_in_question">
196
- &#x2705;
197
- </span>
198
- <span v-else>
199
- &#x274C;
200
- </span>
201
- </span>
202
- </div>
203
- </div>
204
- </div>
205
- </template>
206
- </template>
207
- </el-tab-pane>
208
- <el-tab-pane class="history ml-2" name="history">
209
- <span class="tab__icon-pane" slot="label">
210
- <img
211
- class="img__icon-pane img__icon--history"
212
- src="../../../../assets/images/icons/historicCv.svg"
213
- />
214
- </span>
215
- <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
216
-
217
- <p class="notes-title mb-0">Histórico com sua empresa</p>
218
- <div class="line mb-3"></div>
219
-
220
- <template v-if="!isLocked">
221
- <div
222
- class="mt-3"
223
- v-for="(item, index) in orderByDate(companyHistory())"
224
- :key="index"
225
- >
226
- <div class="d-flex align-items-center justify-content-between">
227
- <p class="history-text mb-0" v-html="item.text" />
228
-
229
- <el-tooltip
230
- placement="top"
231
- content="Baixar PDF"
232
- >
233
- <button
234
- v-if="item.hasDownload"
235
- class="py-2 px-3 mx-2 border-0 bg-transparent text-primary"
236
- @click="() => downloadPdf(item)"
237
- >
238
- <i class="fas fa-download" />
239
- </button>
240
- </el-tooltip>
241
- </div>
242
-
243
- <span>{{ item.date | convertDate }}</span>
244
- </div>
245
- <p v-if="companyHistory().length === 0" class="history-text">
246
- Histórico vazio.
247
- </p>
248
- </template>
249
- </el-tab-pane>
250
-
251
- <el-tab-pane name="notes" class="ml-2" v-if="isNotesActived">
252
- <span class="tab__icon-pane" slot="label">
253
- <img
254
- class="img__icon-pane img__icon--notes"
255
- src="../../../../assets/images/icons/notesCv.svg"
256
- />
257
- </span>
258
-
259
- <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
260
-
261
- <p class="notes-title mb-0">Notas da equipe</p>
262
- <div class="line mb-3"></div>
263
-
264
- <template v-if="!isLocked">
265
- <template v-if="notes.length > 0">
266
- <div
267
- v-for="(note, index) in notes.slice(0, 5)"
268
- :key="index"
269
- >
270
- <div class="notes-baloon">
271
- <div class="notes-text ml-3 pt-1">
272
- <p class="mt-3">{{ note.text }}</p>
273
- </div>
274
- <div
275
- class="d-flex justify-content-between align-items-center mx-3"
276
- >
277
- <p @click.prevent="handleRemoveNote(note)" v-if="String(currentUser.id) === String(note.user_id)" class="notes-date remove-baloon">
278
- Excluir
279
- </p>
280
- <div v-else></div>
281
-
282
- <p class="notes-date">
283
- {{ note.created_at | convertDate }}
284
- </p>
285
- </div>
286
- </div>
287
- <div class="notes-owner d-flex mt-2">
288
- <image-with-fallback
289
- :src="note.user.urlAvatar"
290
- :alt="note.user.name"
291
- :fallbackText="note.user.name"
292
- />
293
- <p class="ml-1">
294
- {{ note.user.name }}
295
- </p>
296
- </div>
297
- </div>
298
- </template>
299
- <div class="notes-text" v-if="notes.length === 0">
300
- <p>Nenhuma nota criada.</p>
301
- </div>
302
- </template>
303
-
304
- <div class="input-container" v-if="!isLocked">
305
- <input
306
- class="notes-new pl-4 mt-3 mb-3 form-rounded"
307
- type="text"
308
- placeholder="Escrever anotação"
309
- v-model="newNote"
310
- @change="$emit('new-note', newNote, userData.id)"
311
- v-on:change="cleatInput()"
312
- />
313
- <i
314
- @click="
315
- newNote.length > 0 &&
316
- $emit('new-note', newNote, userData.id)
317
- "
318
- class="fas fa-paper-plane input-icon"
319
- ></i>
320
- </div>
321
- </el-tab-pane>
322
-
323
- <el-tab-pane name="documents" class="ml-2">
324
- <span class="tab__icon-pane" slot="label">
325
- <img
326
- class="img__icon-pane img__icon--documents"
327
- src="../../../../assets/images/icons/icon3.svg"
328
- />
329
- </span>
330
-
331
- <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
332
-
333
- <p class="notes-title mb-0">Documentos anexados</p>
334
- <div class="line mb-3"></div>
335
-
336
- <template v-if="!isLocked">
337
- <div class="archive-content">
338
- <div v-for="(item, index) in archives" :key="index">
339
- <div @click="openArchive(item)" class="archive-container">
340
- <div>
341
- <img class="archive-img" src="../../../../assets/images/icons/icon3.svg" >
342
- </div>
343
- <div class="archive-name">
344
- <span>{{item.name}}</span>
345
- <div class="archive-icon">
346
- <i @click.stop.prevent="openRemoveSection(item, (index+1))" class="far fa-trash-alt"></i>
347
- </div>
348
- </div>
349
- </div>
350
- <div v-if="hasRemove && hasRemove == (index+1)" class="archive-remove">
351
- <p>Você tem certeza que deseja apagar este arquivo?</p>
352
- <div class="d-flex">
353
- <base-button
354
- @click="removeArchive(currentRemoveItem, index)"
355
- size="sm"
356
- class="btn-outline-primary col-6 p-1"
357
- >
358
- Apagar
359
- </base-button>
360
- <base-button
361
- @click="hasRemove = false"
362
- size="sm"
363
- class="btn-outline-danger col-6 p-1"
364
- >
365
- Cancelar
366
- </base-button>
367
- </div>
368
- </div>
369
- </div>
370
- </div>
371
-
372
- <div class="notes-text" v-if="archives == null">
373
- <p>Nenhum arquvio anexado.</p>
374
- </div>
375
- </template>
376
-
377
- <div class="input-container" v-if="!isLocked">
378
- <div class="mt-5">
379
- <dropzone-file-upload
380
- disabled
381
- @error="showMessageError"
382
- ref="MyDropzone"
383
- :options="dropzoneOptions"
384
- v-model="fileToUpload"
385
- />
386
- </div>
387
-
388
- <div class="archive-buttons">
389
- <base-button @click="saveImage" size="sm" class="btn-outline-primary btn-rounded col-12">Salvar</base-button>
390
- </div>
391
- </div>
392
- </el-tab-pane>
393
-
394
- <el-tab-pane name="reports" class="ml-2" v-if="isReportsActived">
395
- <span class="tab__icon-pane" slot="label">
396
- <img
397
- class="img__icon-pane img__icon--reports"
398
- src="../../../../assets/images/icons/icon5.svg"
399
- />
400
- </span>
401
-
402
- <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
403
-
404
- <p class="notes-title mb-0">Laudo do Candidato</p>
405
- <div class="line mb-3"></div>
406
- <div class="evaluation-area" v-if="likeStatus">
407
- <div class="action">
408
- <like class="icon" :colorActiveLike="likeStatus"/>
409
- <span class="font-weight-bold evaluation-area__text">
410
- Gostei
411
- </span>
412
- </div>
413
- <div class="action">
414
- <deslike class="icon" :colorActiveDeslike="likeStatus"/>
415
- <span class="font-weight-bold evaluation-area__text">
416
- Não Gostei
417
- </span>
418
- </div>
419
- </div>
420
- <template v-if="!isLocked">
421
- <div class="input-container" v-if="!userReportData.annex">
422
- <dropzone-file-upload
423
- disabled
424
- ref="MyReportDropzone"
425
- v-model="reportFileUpload"
426
- :options="reportsDropdownzoneOptions"
427
- @error="showMessageError"
428
- />
429
-
430
- <div class="archive-buttons" v-if="reportFileUpload.length > 0">
431
- <base-button @click="saveReport" size="sm" class="btn-outline-primary btn-rounded col-12">Salvar</base-button>
432
- </div>
433
- </div>
434
-
435
- <div class="archive-content" v-else-if="userReportData.annex">
436
- <div @click="openArchive(userReportData.annex)" class="archive-container">
437
- <div>
438
- <img class="archive-img" src="../../../../assets/images/icons/icon6.svg" >
439
- </div>
440
- <div class="archive-name">
441
- <span>{{ userReportData.annex.name }}</span>
442
- <div class="archive-icon">
443
- <i @click.stop.prevent="openReportRemoveSection(userReportData.annex)" class="far fa-trash-alt"></i>
444
- </div>
445
- </div>
446
- </div>
447
- <div v-if="hasReportRemove" class="archive-remove">
448
- <p>Você tem certeza que deseja apagar este arquivo?</p>
449
- <div class="d-flex">
450
- <base-button
451
- @click="removeReportArchive(currentRemoveItem)"
452
- size="sm"
453
- class="btn-outline-primary col-6 p-1"
454
- >
455
- Apagar
456
- </base-button>
457
- <base-button
458
- @click="hasRemove = false"
459
- size="sm"
460
- class="btn-outline-danger col-6 p-1"
461
- >
462
- Cancelar
463
- </base-button>
464
- </div>
465
- </div>
466
- </div>
467
- </template>
468
-
469
- <p class="notes-title mb-0">Comentários Recrutador</p>
470
- <div class="line mb-3"></div>
471
-
472
- <template v-if="!isLocked">
473
- <div v-if="userReportData.comment">
474
- <div class="notes-baloon fullsize">
475
- <div class="notes-text mx-3 pt-1">
476
- <p class="mt-3">{{ userReportData.comment.comment }}</p>
477
- </div>
478
- <div
479
- class="d-flex justify-content-between align-items-center mx-3"
480
- >
481
- <p @click.prevent="hasCommentRemove = !hasCommentRemove" class="notes-date remove-baloon">
482
- Excluir
483
- </p>
484
-
485
- <p class="notes-date">
486
- {{ userReportData.comment.created_at | convertDate }}
487
- </p>
488
- </div>
489
- </div>
490
- <div v-if="hasCommentRemove" class="archive-remove">
491
- <p>Você tem certeza que deseja apagar este comentário?</p>
492
- <div class="d-flex">
493
- <base-button
494
- @click="removeComment(userReportData.comment.id)"
495
- size="sm"
496
- class="btn-outline-primary col-6 p-1"
497
- >
498
- Apagar
499
- </base-button>
500
- <base-button
501
- @click="hasCommentRemove = false"
502
- size="sm"
503
- class="btn-outline-danger col-6 p-1"
504
- >
505
- Cancelar
506
- </base-button>
507
- </div>
508
- </div>
509
- <div class="notes-owner d-flex mt-2">
510
- <img
511
- v-if="userReportData.comment.user.urlAvatar"
512
- :src="userReportData.comment.user.urlAvatar"
513
- :alt="userReportData.comment.user.name"
514
- />
515
- <div
516
- v-else
517
- class="notes-avatar"
518
- ></div>
519
- <p class="ml-1">
520
- {{ userReportData.comment.user.name }}
521
- </p>
522
- </div>
523
- </div>
524
- </template>
525
-
526
- <div class="input-container" v-if="!isLocked && !userReportData.comment">
527
- <input
528
- class="notes-new pl-4 mt-3 mb-3 form-rounded"
529
- type="text"
530
- placeholder="Escrever anotação"
531
- v-model="newReportNote"
532
- @change="handleNewReportNoteSubmit"
533
- v-on:change="cleatInput()"
534
- />
535
- <i
536
- @click="handleNewReportNoteSubmit"
537
- class="fas fa-paper-plane input-icon"
538
- ></i>
539
- </div>
540
- </el-tab-pane>
541
- </el-tabs>
542
- </div>
543
- </template>
544
-
545
- <script>
546
- import { Tabs, TabPane } from 'element-ui';
547
- import DropzoneFileUpload from '@burh/nuxt-core/components/argon-core/Inputs/DropzoneFileUpload.vue';
548
- import swal from 'sweetalert2';
549
- import UpgradePlan from './UpgradePlan.vue';
550
- import like from '../../../organismos/atomos/Like.vue';
551
- import deslike from '../../../organismos/atomos/Deslike.vue';
552
-
553
- export default {
554
- name: 'user-cv-right-side',
555
- filters: {
556
- convertDate(data) {
557
- if (typeof data !== 'string') {
558
- data = '2020-01-01 12:00:00';
559
- }
560
- let d = new Date(data);
561
- let options = { hour: '2-digit', minute: '2-digit' };
562
- return d.toLocaleDateString('pt-BR', options);
563
- }
564
- },
565
- watch:{
566
- fileToUpload(value){
567
- if(value.length > 0 && value[0].accepted) {
568
- this.isError = false;
569
- }
570
- },
571
- reportFileUpload(value){
572
- if(value.length > 0 && value[0].accepted) {
573
- this.isError = false;
574
- }
575
- },
576
- archives() {
577
- this.getUserFolderData();
578
- }
579
- },
580
- components: {
581
- [Tabs.name]: Tabs,
582
- [TabPane.name]: TabPane,
583
- DropzoneFileUpload,
584
- UpgradePlan,
585
- like,
586
- deslike
587
- },
588
- data(){
589
- return {
590
- newNote: '',
591
- newReportNote: '',
592
- liked: 0,
593
- hasRemove: null,
594
- isError: true,
595
- currentRemoveItem: null,
596
- fileToUpload: [],
597
- dropzoneOptions: {
598
- maxFilesize: 5,
599
- dictFileTooBig:'Seu arquivo é poderoso demais (Máximo 5mb).',
600
- dictDefaultMessage: 'Clique ou arraste seu arquivo aqui.',
601
- dictInvalidFileType: 'Arquivo invalido.',
602
- dictMaxFilesExceeded: 'Não é permitido mais de um arquivo por vez.',
603
- acceptedFiles: 'image/*, application/pdf',
604
- },
605
- reportFileUpload: [],
606
- reportsDropdownzoneOptions: {
607
- maxFilesize: 1,
608
- dictFileTooBig:'Seu arquivo é poderoso demais (Máximo 5mb).',
609
- dictDefaultMessage: 'Clique ou arraste seu arquivo aqui.',
610
- dictInvalidFileType: 'Arquivo invalido.',
611
- dictMaxFilesExceeded: 'Não é permitido mais de um arquivo por vez.',
612
- acceptedFiles: 'image/*, application/pdf',
613
- },
614
- userReportData: [],
615
- hasReportRemove: false,
616
- hasCommentRemove: false,
617
- };
618
- },
619
- props: {
620
- archives: Array,
621
- userData: Object,
622
- automation:{
623
- type:Object || null,
624
- default:null
625
- },
626
- notes: Array,
627
- activeName: String,
628
- jobId:{
629
- type:[String, Number, Object],
630
- default:null
631
- },
632
- userFolderId: String,
633
- isNotesActived: {
634
- type: Boolean,
635
- default: true
636
- },
637
- isReportsActived: {
638
- type: Boolean,
639
- default: false
640
- },
641
- },
642
- mounted() {
643
- this.companyHistory();
644
- this.getUserFolderData();
645
- },
646
- methods: {
647
- async handleRemoveNote(note) {
648
- const apiUrl = `${process.env.baseApiUrl}/company/${note.company_id}/user/${note.user_id}/note/${note.id}`;
649
-
650
- const response = await this.$axios.delete(apiUrl)
651
- .then(res => res.data)
652
- .catch(() => {});
653
-
654
- if (!response || response && response.error) return this.showToast('error', 'Falha ao remover!');
655
-
656
- this.notes = this.notes.filter(n => n.id !== note.id);
657
- },
658
- removeComment(item){
659
- this.userReportData.comment = undefined;
660
- this.$emit('remove-comment', item);
661
- this.hasCommentRemove = false;
662
- },
663
- handleNewReportNoteSubmit() {
664
- if (this.newReportNote.length > 3) {
665
- this.$emit('new-report-note', this.newReportNote, this.userFolderId, this.userData.id);
666
- this.newReportNote = '';
667
- }
668
- },
669
- openRemoveSection(item, index) {
670
- this.hasRemove = index;
671
- this.currentRemoveItem = item;
672
- },
673
- openReportRemoveSection(item) {
674
- this.hasReportRemove = true;
675
- this.currentRemoveItem = item;
676
- },
677
-
678
- showToast(type, title){
679
- const Toast = swal.mixin({
680
- toast: true,
681
- position: 'top-end',
682
- showConfirmButton: false,
683
- timer: 3100,
684
- });
685
-
686
- return Toast.fire({
687
- type: type,
688
- title: title
689
- });
690
- },
691
-
692
- showMessageError(file, message) {
693
- this.isError = true;
694
- this.$refs.Mydropzone && this.$refs.Mydropzone.removeAllFiles();
695
-
696
- if (file.status !== 'canceled'){
697
- this.showToast('error', message);
698
- }
699
- },
700
- openArchive(item) {
701
- window.open(item.storage_url, '_blank');
702
- },
703
- saveImage(){
704
- if (!this.isError) {
705
- this.$emit('save-archive', this.fileToUpload[0], this.userData.id);
706
- this.$refs.MyDropzone && this.$refs.MyDropzone.removeAllFiles();
707
- this.showToast('success', 'Arquivo enviado com sucesso.');
708
- } else {
709
- if (this.fileToUpload.length > 0) {
710
- this.showToast('error', 'Arquivo invalido.');
711
- } else {
712
- this.showToast('warning', 'Selecione um arquivo.');
713
- }
714
- }
715
- },
716
- saveReport() {
717
- if (!this.isError) {
718
- this.$emit('save-report', this.reportFileUpload[0], this.userFolderId);
719
- this.$refs.MyReportDropzone && this.$refs.MyReportDropzone.removeAllFiles();
720
- this.showToast('success', 'Arquivo enviado com sucesso.');
721
-
722
- } else {
723
- if (this.reportFileUpload.length > 0) {
724
- this.showToast('error', 'Arquivo invalido.');
725
- } else {
726
- this.showToast('warning', 'Selecione um arquivo.');
727
- }
728
- }
729
- },
730
-
731
- removeArchive(archive, index){
732
- this.$emit('remove-archive', archive.user_id, archive.id, archive.company_id, index);
733
- this.hasRemove = null;
734
- },
735
-
736
- removeReportArchive(archive) {
737
- this.userReportData.annex = undefined;
738
-
739
- this.$emit('remove-report', archive.id);
740
- this.hasReportRemove = false;
741
- },
742
-
743
- cleatInput() {
744
- this.newNote = '';
745
- },
746
- async downloadPdf(param) {
747
- let data = await this.$store.app.$services.testOnline.downloadPdf(
748
- param.id
749
- );
750
-
751
- const url = window.URL.createObjectURL(data.data);
752
- const link = document.createElement('a');
753
- link.href = url;
754
- link.setAttribute(
755
- 'download',
756
- `${param.user.name}-${param.test.name}.pdf`
757
- );
758
- document.body.appendChild(link);
759
- link.click();
760
- link.remove();
761
- window.URL.revokeObjectURL(url);
762
- },
763
- getTestHistory() {
764
- const tests = this.userData.tests.map(test => {
765
- if (!test.finished_at) {
766
- return;
767
- }
768
-
769
- const testData = {
770
- avarage: test.avarage,
771
- date: test.finished_at,
772
- text: `Finalizou o teste ${test.test.name.toUpperCase()} com nota <b>${test.avarage}</b>`
773
- };
774
-
775
- return testData;
776
- }).filter(item => item);
777
-
778
- return tests;
779
- },
780
- companyHistory() {
781
- let tests = this.userData.tests.map(x => {
782
- let test = {
783
- id: x.id,
784
- date: x.finished_at,
785
- user: {
786
- name: this.userData.name
787
- },
788
- test: {
789
- name: x.test.name
790
- }
791
- };
792
-
793
- if (x.finished_at) {
794
- test.text = `Finalizou o teste ${x.test.name.toUpperCase()} com nota <b>${x.avarage}</b>`;
795
- test.hasDownload = true;
796
- } else {
797
- test.text = `Recebeu o teste ${x.test.name.toUpperCase()}`;
798
- }
799
-
800
- return test;
801
- });
802
-
803
- let courses = this.userData.courses_user.map(x => {
804
- if (x.finished_at) {
805
- return{
806
- date: x.finished_at,
807
- text: `Finalizou o curso ${x.course.name.toUpperCase()}`
808
- };
809
- }
810
- });
811
-
812
- let discs = this.userData.solides.map(x => ({
813
- date: x.end,
814
- text: 'Realizou um teste DISC'
815
- }));
816
-
817
- return tests.concat(discs, courses);
818
- },
819
- orderByDate(data) {
820
- let sortedArray = data.sort((a, b) => {
821
- a = a.date || '2020-01-01 12:00:00';
822
- b = b.date || '2020-01-01 12:00:00';
823
-
824
- return new Date(b).getTime() - new Date(a).getTime();
825
- });
826
-
827
- return sortedArray;
828
- },
829
- sendContact() {
830
- this.$emit('open-contact');
831
- },
832
-
833
- async getUserFolderData() {
834
- if (this.isReportsActived) {
835
- const apiUrl = `${process.env.baseApiUrlV2}/company/buffer/folder/user/${this.userFolderId}`;
836
-
837
- const data = await this.$axios(apiUrl)
838
- .then((res) => {
839
- this.liked = res.data.data.like;
840
- return res.data;
841
- })
842
- .catch(() => {});
843
-
844
- if (!data) return;
845
-
846
- this.mountUserReport(data.data);
847
- }
848
- },
849
-
850
- mountUserReport(userData) {
851
- const annex = userData.annex[0] || undefined;
852
- const comment = userData.comments[0] || undefined;
853
-
854
- this.userReportData = {
855
- annex,
856
- comment
857
- };
858
- },
859
- haveAnswers(){
860
- if(this.automation && Object.keys(this.automation).length){
861
- return true;
862
- }else{
863
- this.active = this.activeName;
864
- return false;
865
- }
866
- }
867
- },
868
- computed: {
869
- currentUser() {
870
- return this.$store.state.user.currentUser;
871
- },
872
- isLocked() {
873
- return !this.companyHasProduct(
874
- this.$store.state.loja && this.$store.state.loja.showableProducts && this.$store.state.loja.showableProducts['HISTORICO_USUARIO'] || false
875
- );
876
- },
877
- companyHasAutomation() {
878
- return this.companyHasProduct(
879
- this.$store.state.loja && this.$store.state.loja.showableProducts && this.$store.state.loja.showableProducts['TRIAGEM_AUTOMATICA'] || false
880
- );
881
- },
882
- hasAutomation() {
883
- return this.automation && Object.values(this.automation).length > 0 || false;
884
- },
885
- activeTab() {
886
- let activeTab = this.activeName;
887
-
888
- if (this.jobId && this.companyHasAutomation && this.hasAutomation) {
889
- if (activeTab == 'history') {
890
- activeTab = 'melissa';
891
- }
892
- }
893
-
894
- return activeTab;
895
- },
896
- likeStatus() {
897
- return this.liked;
898
- },
899
- }
900
- };
901
- </script>
902
- <style>
903
- .el-tabs__nav-wrap.is-top::after {
904
- background: #fff !important;
905
- }
906
- .remove-baloon{
907
- cursor: pointer;
908
- }
909
- .el-tabs__active-bar.is-top {
910
- width: 30px !important;
911
- height: 4px !important;
912
- border-radius: 10px 10px 0px 0px;
913
- }
914
- </style>
915
-
916
- <style lang="scss">
917
- .swal2-title {
918
- font-size: 1rem !important;
919
- }
920
- .swal2-container {
921
- z-index: 5000 !important;
922
- }
923
- </style>
924
-
925
- <style lang="scss" scoped>
926
- @import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
927
-
928
- /deep/.dropzone {
929
- width: 95%;
930
-
931
- .dz-message {
932
- padding: 2rem 1rem !important;
933
- }
934
-
935
- button.dz-button {
936
- background-color: transparent;
937
- border: 0;
938
- }
939
- }
940
- .evaluation-area{
941
- margin-bottom: 16px;
942
- display: grid;
943
- grid-template-columns: repeat(2, 95px);
944
- @media (max-width:1155px){
945
- grid-template-columns: 1fr;
946
- }
947
- .action{
948
- display: grid;
949
- grid-template-columns: 2rem 1fr;
950
- align-items: center;
951
- white-space: nowrap;
952
- user-select: none;
953
- .icon {
954
- width: 2rem !important;
955
- margin-bottom: 0;
956
- }
957
- @media (max-width: 1440px) {
958
- justify-content:start;
959
- }
960
- @media (max-width:1155px){
961
- width: 7rem;
962
- margin-bottom: 0 !important;
963
- }
964
- }
965
- &__text {
966
- font-size: 0.8rem;
967
- color: #32325D;
968
- margin-left: 0.35rem;
969
- }
970
-
971
- .active-icon {
972
- font-size: 25px;
973
- color: #AEB0B7;
974
- transition: color 0.25s;
975
- cursor: pointer;
976
- &.active{
977
- color:#fff;
978
- }
979
- }
980
- }
981
- /deep/ .el-tab-pane {
982
- height: 760px;
983
- max-height: 760px;
984
- overflow: hidden;
985
- overflow-y: auto;
986
- position: relative;
987
-
988
- > .notes-title {
989
- position: sticky;
990
- position: -webkit-sticky;
991
- top: 0;
992
- background: white;
993
- padding: 10px 0;
994
- }
995
-
996
- > .input-container {
997
- position: sticky;
998
- position: -webkit-sticky;
999
- bottom: 0;
1000
- background: white;
1001
- > .input-icon {
1002
- cursor: pointer;
1003
- position: absolute;
1004
- top: 50%;
1005
- right: 30px;
1006
- transform: translateY(-50%);
1007
- color: #c8c8c8;
1008
- }
1009
- }
1010
-
1011
- &::-webkit-scrollbar {
1012
- width: 8px;
1013
- }
1014
-
1015
- &::-webkit-scrollbar-track {
1016
- background: #f5f5f5;
1017
- }
1018
-
1019
- &::-webkit-scrollbar-thumb {
1020
- background: #e9e8e8;
1021
- border-radius: 10px;
1022
- }
1023
-
1024
- .archive-content {
1025
- width: 95%;
1026
-
1027
- p {
1028
- margin-bottom: 0;
1029
- font-size: 0.875rem;
1030
- padding: .3rem .6rem 0 .6rem;
1031
- }
1032
-
1033
- .archive-container {
1034
- display: flex;
1035
- align-items: center;
1036
- padding: 0.5rem 0.5rem 0.438rem;
1037
- cursor: pointer;
1038
- user-select: none;
1039
-
1040
- &:hover{
1041
- background-color: #f6f9fc;
1042
- border-radius: 5px;
1043
- }
1044
-
1045
- .archive-img {
1046
- background-color: #f5f5f5;
1047
- border-radius: 6px;
1048
- padding: 7px;
1049
- }
1050
-
1051
- .archive-name {
1052
- display: flex;
1053
- margin-left: .8rem;
1054
- width: 145%;
1055
- justify-content: space-between !important;
1056
-
1057
- .archive-icon {
1058
- margin-left: 1.5rem;
1059
- }
1060
-
1061
- p {
1062
- margin: 0;
1063
- padding: 0;
1064
- width: 13rem;
1065
- white-space: nowrap;
1066
- overflow: hidden;
1067
- text-overflow: ellipsis;
1068
- }
1069
- }
1070
-
1071
- .upload-container {
1072
- position: sticky;
1073
- position: -webkit-sticky;
1074
- bottom: 0;
1075
- background: white;
1076
- width: 231px;
1077
- }
1078
- }
1079
- }
1080
-
1081
- .archive-buttons {
1082
- display: flex;
1083
- margin-top: -1rem;
1084
- width: 95%;
1085
- }
1086
-
1087
- .archive-remove {
1088
- width: 90%;
1089
- word-break: break-word;
1090
- }
1091
- }
1092
-
1093
- /deep/ .el-tabs__nav-scroll {
1094
- display: flex;
1095
- justify-content: stretch;
1096
- align-items: flex-start;
1097
- }
1098
-
1099
- /deep/ .el-tabs__item {
1100
- padding: 0 1.5rem !important;
1101
- }
1102
-
1103
- /deep/ .el-tabs__nav {
1104
- width: 100% !important;
1105
- user-select: none;
1106
- }
1107
-
1108
- @media (max-width: 1520px) {
1109
- /deep/ .el-tabs__item {
1110
- padding: 0 1.2rem !important;
1111
- }
1112
- }
1113
- @media (max-width: 1340px) {
1114
- /deep/ .el-tabs__item {
1115
- padding: 0 1rem !important;
1116
- }
1117
- }
1118
- @media (max-width: 1240px) {
1119
- /deep/ .el-tabs__item {
1120
- padding: 0 0.8rem !important;
1121
- }
1122
- }
1123
- @media (max-width: 1140px) {
1124
- /deep/ .el-tabs__item {
1125
- padding: 0 0.6rem !important;
1126
- }
1127
- }
1128
-
1129
- .readmore {
1130
- overflow: hidden;
1131
- text-overflow: ellipsis;
1132
- display: -webkit-box;
1133
- -webkit-line-clamp: 3;
1134
- -webkit-box-orient: vertical;
1135
- }
1136
-
1137
- .tab__icon-pane {
1138
- .img__icon-pane {
1139
- background-color: #f5f5f5 !important;
1140
- border-radius: 30%;
1141
- padding: 7px;
1142
- height: 2.2rem;
1143
- width: 2.2rem;
1144
- margin-bottom: 1rem;
1145
- }
1146
- }
1147
-
1148
- .content-right {
1149
- width: 25%;
1150
- }
1151
-
1152
- .notes-title {
1153
- font-size: 14px;
1154
- word-break: break-word;
1155
- color: #1d364b;
1156
- font-weight: bold;
1157
- background-color: white;
1158
- z-index: 500;
1159
- }
1160
-
1161
- .notes-baloon {
1162
- width: 231px;
1163
- height: auto;
1164
- border-radius: 10px 10px 10px 0;
1165
- background: #eff5fd;
1166
- &.fullsize {
1167
- width: 80%!important;
1168
- min-width: 280px;
1169
- }
1170
- }
1171
- .notes-baloon-melissa {
1172
- padding: 5px 0;
1173
- .question-melissa-title{
1174
- font-size: 12px !important;
1175
- color:#62778c;
1176
- span {
1177
- word-break: break-word;
1178
- }
1179
- }
1180
- .notes-text-melissa {
1181
- font-size: 0.875rem;
1182
- color: #1d364b;
1183
- font-weight: bold;
1184
- }
1185
- &.fullsize {
1186
- width: 80%!important;
1187
- min-width: 280px;
1188
- }
1189
- }
1190
-
1191
- .notes-text {
1192
- p {
1193
- font-size: 13px;
1194
- color: #62778c;
1195
- }
1196
- }
1197
-
1198
- .notes-date {
1199
- font-size: 11px;
1200
- text-align: right;
1201
-
1202
- color: #8da2b5;
1203
- top: calc(50% - 17px / 2 - 444.5px);
1204
- }
1205
-
1206
- .notes-owner {
1207
- img {
1208
- width: 23px;
1209
- height: 23px;
1210
- border-radius: 50%;
1211
- }
1212
-
1213
- .notes-avatar {
1214
- width: 23px;
1215
- height: 23px;
1216
- border-radius: 50%;
1217
- background-color: #adb5bd;
1218
- }
1219
-
1220
- p {
1221
- font-size: 13px;
1222
- font-weight: 600;
1223
- text-transform: uppercase;
1224
-
1225
- color: #62778c;
1226
- }
1227
- }
1228
-
1229
- .notes-new {
1230
- width: 95%;
1231
- height: 33px;
1232
-
1233
- background: #f5f5f5;
1234
- border-radius: 16.5px;
1235
- border: none;
1236
-
1237
- outline: 0;
1238
- }
1239
-
1240
- .line {
1241
- width: 221px;
1242
- height: 0px;
1243
-
1244
- border: 1px solid #ececec5c;
1245
- }
1246
-
1247
- .history {
1248
- word-break: break-word;
1249
-
1250
- .history-text {
1251
- font-size: 13px;
1252
- color: #62778c;
1253
- }
1254
-
1255
- span {
1256
- font-size: 11px;
1257
- line-height: 16px;
1258
-
1259
- color: #8da2b5;
1260
- }
1261
- }
1262
-
1263
- .cursor-disabled {
1264
- cursor: no-drop;
1265
- }
1266
- </style>
1
+ <template>
2
+ <div class="bg-white content-right tabs">
3
+ <el-tabs
4
+ :class="activeTab"
5
+ class="mt-3 handle-icon-color"
6
+ v-model="activeTab"
7
+ >
8
+ <el-tab-pane v-if="companyHasAutomation && hasAutomation" name="melissa" class="mx-2">
9
+ <span class="tab__icon-pane" slot="label">
10
+ <img
11
+ class="img__icon-pane"
12
+ src="/img/recruitment/melissa.svg"
13
+ />
14
+ </span>
15
+ <p class="notes-title mb-0 notes-melissa-title">
16
+ {{automation.aproved ?
17
+ 'Candidato aprovado pela Melissa' :
18
+ 'Candidato reprovado pela Melissa'}}
19
+ </p>
20
+ <div class="line mb-3"></div>
21
+ <template>
22
+ <template>
23
+ <div v-if="automation && automation.vehicle_license && automation.vehicle_license.vehicle_license !== null">
24
+ <div class="notes-baloon-melissa mt-2">
25
+ <div class="question-melissa-title">
26
+ <span>
27
+ Você tem uma carteira de motorista válida?
28
+ </span>
29
+ </div>
30
+ <div class="notes-text-melissa pt-2">
31
+ <span class="mt-2">
32
+ {{ Boolean(automation.vehicle_license.vehicle_license) ? "Sim" : "Não" }}
33
+ <span v-if="automation.vehicle_license.vehicle_license_approved">
34
+ &#x2705;
35
+ </span>
36
+ <span v-else>
37
+ &#x274C;
38
+ </span>
39
+ </span>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ <div v-if="automation && automation.city && automation.city.city !== null">
44
+ <div class="notes-baloon-melissa mt-2">
45
+ <div class="question-melissa-title">
46
+ <span>
47
+ Você pode se locomover até onde esta vaga está localizada?
48
+ </span>
49
+ </div>
50
+ <div class="notes-text-melissa pt-2">
51
+ <span class="mt-2">
52
+ {{ Boolean(automation.city.city) ? "Sim" : "Não" }}
53
+ <span v-if="automation.city.city_approved">
54
+ &#x2705;
55
+ </span>
56
+ <span v-else>
57
+ &#x274C;
58
+ </span>
59
+ </span>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div v-if="automation && automation.urgent_hiring && automation.urgent_hiring.urgent_hiring !== null">
64
+ <div class="notes-baloon-melissa mt-2">
65
+ <div class="question-melissa-title">
66
+ <span>
67
+ Precisamos preencher esta posição com urgência. Você poderia começar imediatamente?
68
+ </span>
69
+ </div>
70
+ <div class="notes-text-melissa pt-2">
71
+ <span class="mt-2">
72
+ {{ Boolean(automation.urgent_hiring.urgent_hiring) ? "Sim" : "Não" }}
73
+ <span v-if="automation.urgent_hiring.urgent_hiring_approved">
74
+ &#x2705;
75
+ </span>
76
+ <span v-else>
77
+ &#x274C;
78
+ </span>
79
+ </span>
80
+ </div>
81
+ </div>
82
+ </div>
83
+ <div v-if="automation && automation.school_formation && automation.school_formation.school_formation !== null && automation.school_formation.option !== null">
84
+ <div class="notes-baloon-melissa mt-2">
85
+ <div class="question-melissa-title">
86
+ <span>
87
+ Você completou o curso: <b>{{automation.school_formation.option}}</b>?
88
+ </span>
89
+ </div>
90
+ <div class="notes-text-melissa pt-2">
91
+ <span class="mt-2">
92
+ {{ Boolean(automation.school_formation.school_formation) ? "Sim" : "Não" }}
93
+
94
+ <span v-if="automation.school_formation.school_formation_approved">
95
+ &#x2705;
96
+ </span>
97
+ <span v-else>
98
+ &#x274C;
99
+ </span>
100
+ </span>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ <div v-if="automation && automation.tool_experience && automation.tool_experience.tool_experience !== null && automation.tool_experience.option !== null">
105
+ <div class="notes-baloon-melissa mt-2">
106
+ <div class="question-melissa-title">
107
+ <span>
108
+ Quantos anos de experiência você tem utilizando <b>{{automation.tool_experience.option}}</b>?
109
+ </span>
110
+ </div>
111
+ <div class="notes-text-melissa pt-2">
112
+ <span class="mt-2">
113
+ {{ automation.tool_experience.tool_experience }}
114
+ <span v-if="automation.tool_experience.tool_experience_approved">
115
+ &#x2705;
116
+ </span>
117
+ <span v-else>
118
+ &#x274C;
119
+ </span>
120
+ </span>
121
+ </div>
122
+ </div>
123
+ </div>
124
+ <div v-if="automation && automation.work_experience && automation.work_experience.work_experience !== null && automation.work_experience.option !== null">
125
+ <div class="notes-baloon-melissa mt-2">
126
+ <div class="question-melissa-title">
127
+ <span>
128
+ Quantos anos de experiência você tem na função de <b>{{automation.work_experience.option}}</b>?
129
+ </span>
130
+ </div>
131
+ <div class="notes-text-melissa pt-2">
132
+ <span class="mt-2">
133
+ {{ automation.work_experience.work_experience }}
134
+ <span v-if="automation.work_experience.work_experience_approved">
135
+ &#x2705;
136
+ </span>
137
+ <span v-else>
138
+ &#x274C;
139
+ </span>
140
+ </span>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ <div v-if="automation && automation.sector_experience && automation.sector_experience.sector_experience !== null && automation.sector_experience.option !== null">
145
+ <div class="notes-baloon-melissa mt-2">
146
+ <div class="question-melissa-title">
147
+ <span>
148
+ Quantos anos de experiência você tem no setor de <b>{{automation.sector_experience.option}}</b>?
149
+ </span>
150
+ </div>
151
+ <div class="notes-text-melissa pt-2">
152
+ <span class="mt-2">
153
+ {{ automation.sector_experience.sector_experience }}
154
+ <span v-if="automation.sector_experience.sector_experience_approved">
155
+ &#x2705;
156
+ </span>
157
+ <span v-else>
158
+ &#x274C;
159
+ </span>
160
+ </span>
161
+ </div>
162
+ </div>
163
+ </div>
164
+ <div v-if="automation && automation.language && automation.language.language !== null && automation.language.option !== null">
165
+ <div class="notes-baloon-melissa mt-2">
166
+ <div class="question-melissa-title">
167
+ <span>
168
+ Qual seu nível de proficiência em <b>{{automation.language.option}}</b>?
169
+ </span>
170
+ </div>
171
+ <div class="notes-text-melissa pt-2">
172
+ <span class="mt-2">
173
+ {{ automation.language.language }}
174
+ <span v-if="automation.language.language_approved">
175
+ &#x2705;
176
+ </span>
177
+ <span v-else>
178
+ &#x274C;
179
+ </span>
180
+ </span>
181
+ </div>
182
+ </div>
183
+ </div>
184
+ <div
185
+ v-for="(melissa,index) in automation.custom"
186
+ :key="index"
187
+ >
188
+ <div class="notes-baloon-melissa mt-2">
189
+ <div class="question-melissa-title">
190
+ <span>{{ melissa.question }}</span>
191
+ </div>
192
+ <div class="notes-text-melissa pt-2">
193
+ <span class="mt-2">
194
+ {{ typeof melissa.response === "boolean" ? melissa.response ? "Sim" : "Não" : melissa.response }}
195
+ <span v-if="melissa.approved_in_question">
196
+ &#x2705;
197
+ </span>
198
+ <span v-else>
199
+ &#x274C;
200
+ </span>
201
+ </span>
202
+ </div>
203
+ </div>
204
+ </div>
205
+ </template>
206
+ </template>
207
+ </el-tab-pane>
208
+ <el-tab-pane class="history ml-2" name="history">
209
+ <span class="tab__icon-pane" slot="label">
210
+ <img
211
+ class="img__icon-pane img__icon--history"
212
+ src="../../../../assets/images/icons/historicCv.svg"
213
+ />
214
+ </span>
215
+ <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
216
+
217
+ <p class="notes-title mb-0">Histórico com sua empresa</p>
218
+ <div class="line mb-3"></div>
219
+
220
+ <template v-if="!isLocked">
221
+ <div
222
+ class="mt-3"
223
+ v-for="(item, index) in orderByDate(companyHistory())"
224
+ :key="index"
225
+ >
226
+ <div class="d-flex align-items-center justify-content-between">
227
+ <p class="history-text mb-0" v-html="item.text" />
228
+
229
+ <el-tooltip
230
+ placement="top"
231
+ content="Baixar PDF"
232
+ >
233
+ <button
234
+ v-if="item.hasDownload"
235
+ class="py-2 px-3 mx-2 border-0 bg-transparent text-primary"
236
+ @click="() => downloadPdf(item)"
237
+ >
238
+ <i class="fas fa-download" />
239
+ </button>
240
+ </el-tooltip>
241
+ </div>
242
+
243
+ <span>{{ item.date | convertDate }}</span>
244
+ </div>
245
+ <p v-if="companyHistory().length === 0" class="history-text">
246
+ Histórico vazio.
247
+ </p>
248
+ </template>
249
+ </el-tab-pane>
250
+
251
+ <el-tab-pane name="notes" class="ml-2" v-if="isNotesActived">
252
+ <span class="tab__icon-pane" slot="label">
253
+ <img
254
+ class="img__icon-pane img__icon--notes"
255
+ src="../../../../assets/images/icons/notesCv.svg"
256
+ />
257
+ </span>
258
+
259
+ <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
260
+
261
+ <p class="notes-title mb-0">Notas da equipe</p>
262
+ <div class="line mb-3"></div>
263
+
264
+ <template v-if="!isLocked">
265
+ <template v-if="notes.length > 0">
266
+ <div
267
+ v-for="(note, index) in notes.slice(0, 5)"
268
+ :key="index"
269
+ >
270
+ <div class="notes-baloon">
271
+ <div class="notes-text ml-3 pt-1">
272
+ <p class="mt-3">{{ note.text }}</p>
273
+ </div>
274
+ <div
275
+ class="d-flex justify-content-between align-items-center mx-3"
276
+ >
277
+ <p @click.prevent="handleRemoveNote(note)" v-if="String(currentUser.id) === String(note.user_id)" class="notes-date remove-baloon">
278
+ Excluir
279
+ </p>
280
+ <div v-else></div>
281
+
282
+ <p class="notes-date">
283
+ {{ note.created_at | convertDate }}
284
+ </p>
285
+ </div>
286
+ </div>
287
+ <div class="notes-owner d-flex mt-2">
288
+ <image-with-fallback
289
+ :src="note.user.urlAvatar"
290
+ :alt="note.user.name"
291
+ :fallbackText="note.user.name"
292
+ />
293
+ <p class="ml-1">
294
+ {{ note.user.name }}
295
+ </p>
296
+ </div>
297
+ </div>
298
+ </template>
299
+ <div class="notes-text" v-if="notes.length === 0">
300
+ <p>Nenhuma nota criada.</p>
301
+ </div>
302
+ </template>
303
+
304
+ <div class="input-container" v-if="!isLocked">
305
+ <input
306
+ class="notes-new pl-4 mt-3 mb-3 form-rounded"
307
+ type="text"
308
+ placeholder="Escrever anotação"
309
+ v-model="newNote"
310
+ @change="$emit('new-note', newNote, userData.id)"
311
+ v-on:change="cleatInput()"
312
+ />
313
+ <i
314
+ @click="
315
+ newNote.length > 0 &&
316
+ $emit('new-note', newNote, userData.id)
317
+ "
318
+ class="fas fa-paper-plane input-icon"
319
+ ></i>
320
+ </div>
321
+ </el-tab-pane>
322
+
323
+ <el-tab-pane name="documents" class="ml-2">
324
+ <span class="tab__icon-pane" slot="label">
325
+ <img
326
+ class="img__icon-pane img__icon--documents"
327
+ src="../../../../assets/images/icons/icon3.svg"
328
+ />
329
+ </span>
330
+
331
+ <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
332
+
333
+ <p class="notes-title mb-0">Documentos anexados</p>
334
+ <div class="line mb-3"></div>
335
+
336
+ <template v-if="!isLocked">
337
+ <div class="archive-content">
338
+ <div v-for="(item, index) in archives" :key="index">
339
+ <div @click="openArchive(item)" class="archive-container">
340
+ <div>
341
+ <img class="archive-img" src="../../../../assets/images/icons/icon3.svg" >
342
+ </div>
343
+ <div class="archive-name">
344
+ <span>{{item.name}}</span>
345
+ <div class="archive-icon">
346
+ <i @click.stop.prevent="openRemoveSection(item, (index+1))" class="far fa-trash-alt"></i>
347
+ </div>
348
+ </div>
349
+ </div>
350
+ <div v-if="hasRemove && hasRemove == (index+1)" class="archive-remove">
351
+ <p>Você tem certeza que deseja apagar este arquivo?</p>
352
+ <div class="d-flex">
353
+ <base-button
354
+ @click="removeArchive(currentRemoveItem, index)"
355
+ size="sm"
356
+ class="btn-outline-primary col-6 p-1"
357
+ >
358
+ Apagar
359
+ </base-button>
360
+ <base-button
361
+ @click="hasRemove = false"
362
+ size="sm"
363
+ class="btn-outline-danger col-6 p-1"
364
+ >
365
+ Cancelar
366
+ </base-button>
367
+ </div>
368
+ </div>
369
+ </div>
370
+ </div>
371
+
372
+ <div class="notes-text" v-if="archives == null">
373
+ <p>Nenhum arquvio anexado.</p>
374
+ </div>
375
+ </template>
376
+
377
+ <div class="input-container" v-if="!isLocked">
378
+ <div class="mt-5">
379
+ <dropzone-file-upload
380
+ disabled
381
+ @error="showMessageError"
382
+ ref="MyDropzone"
383
+ :options="dropzoneOptions"
384
+ v-model="fileToUpload"
385
+ />
386
+ </div>
387
+
388
+ <div class="archive-buttons">
389
+ <base-button @click="saveImage" size="sm" class="btn-outline-primary btn-rounded col-12">Salvar</base-button>
390
+ </div>
391
+ </div>
392
+ </el-tab-pane>
393
+
394
+ <el-tab-pane name="reports" class="ml-2" v-if="isReportsActived">
395
+ <span class="tab__icon-pane" slot="label">
396
+ <img
397
+ class="img__icon-pane img__icon--reports"
398
+ src="../../../../assets/images/icons/icon5.svg"
399
+ />
400
+ </span>
401
+
402
+ <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
403
+
404
+ <p class="notes-title mb-0">Laudo do Candidato</p>
405
+ <div class="line mb-3"></div>
406
+ <div class="evaluation-area" v-if="likeStatus">
407
+ <div class="action">
408
+ <like class="icon" :colorActiveLike="likeStatus"/>
409
+ <span class="font-weight-bold evaluation-area__text">
410
+ Gostei
411
+ </span>
412
+ </div>
413
+ <div class="action">
414
+ <deslike class="icon" :colorActiveDeslike="likeStatus"/>
415
+ <span class="font-weight-bold evaluation-area__text">
416
+ Não Gostei
417
+ </span>
418
+ </div>
419
+ </div>
420
+ <template v-if="!isLocked">
421
+ <div class="input-container" v-if="!userReportData.annex">
422
+ <dropzone-file-upload
423
+ disabled
424
+ ref="MyReportDropzone"
425
+ v-model="reportFileUpload"
426
+ :options="reportsDropdownzoneOptions"
427
+ @error="showMessageError"
428
+ />
429
+
430
+ <div class="archive-buttons" v-if="reportFileUpload.length > 0">
431
+ <base-button @click="saveReport" size="sm" class="btn-outline-primary btn-rounded col-12">Salvar</base-button>
432
+ </div>
433
+ </div>
434
+
435
+ <div class="archive-content" v-else-if="userReportData.annex">
436
+ <div @click="openArchive(userReportData.annex)" class="archive-container">
437
+ <div>
438
+ <img class="archive-img" src="../../../../assets/images/icons/icon6.svg" >
439
+ </div>
440
+ <div class="archive-name">
441
+ <span>{{ userReportData.annex.name }}</span>
442
+ <div class="archive-icon">
443
+ <i @click.stop.prevent="openReportRemoveSection(userReportData.annex)" class="far fa-trash-alt"></i>
444
+ </div>
445
+ </div>
446
+ </div>
447
+ <div v-if="hasReportRemove" class="archive-remove">
448
+ <p>Você tem certeza que deseja apagar este arquivo?</p>
449
+ <div class="d-flex">
450
+ <base-button
451
+ @click="removeReportArchive(currentRemoveItem)"
452
+ size="sm"
453
+ class="btn-outline-primary col-6 p-1"
454
+ >
455
+ Apagar
456
+ </base-button>
457
+ <base-button
458
+ @click="hasRemove = false"
459
+ size="sm"
460
+ class="btn-outline-danger col-6 p-1"
461
+ >
462
+ Cancelar
463
+ </base-button>
464
+ </div>
465
+ </div>
466
+ </div>
467
+ </template>
468
+
469
+ <p class="notes-title mb-0">Comentários Recrutador</p>
470
+ <div class="line mb-3"></div>
471
+
472
+ <template v-if="!isLocked">
473
+ <div v-if="userReportData.comment">
474
+ <div class="notes-baloon fullsize">
475
+ <div class="notes-text mx-3 pt-1">
476
+ <p class="mt-3">{{ userReportData.comment.comment }}</p>
477
+ </div>
478
+ <div
479
+ class="d-flex justify-content-between align-items-center mx-3"
480
+ >
481
+ <p @click.prevent="hasCommentRemove = !hasCommentRemove" class="notes-date remove-baloon">
482
+ Excluir
483
+ </p>
484
+
485
+ <p class="notes-date">
486
+ {{ userReportData.comment.created_at | convertDate }}
487
+ </p>
488
+ </div>
489
+ </div>
490
+ <div v-if="hasCommentRemove" class="archive-remove">
491
+ <p>Você tem certeza que deseja apagar este comentário?</p>
492
+ <div class="d-flex">
493
+ <base-button
494
+ @click="removeComment(userReportData.comment.id)"
495
+ size="sm"
496
+ class="btn-outline-primary col-6 p-1"
497
+ >
498
+ Apagar
499
+ </base-button>
500
+ <base-button
501
+ @click="hasCommentRemove = false"
502
+ size="sm"
503
+ class="btn-outline-danger col-6 p-1"
504
+ >
505
+ Cancelar
506
+ </base-button>
507
+ </div>
508
+ </div>
509
+ <div class="notes-owner d-flex mt-2">
510
+ <img
511
+ v-if="userReportData.comment.user.urlAvatar"
512
+ :src="userReportData.comment.user.urlAvatar"
513
+ :alt="userReportData.comment.user.name"
514
+ />
515
+ <div
516
+ v-else
517
+ class="notes-avatar"
518
+ ></div>
519
+ <p class="ml-1">
520
+ {{ userReportData.comment.user.name }}
521
+ </p>
522
+ </div>
523
+ </div>
524
+ </template>
525
+
526
+ <div class="input-container" v-if="!isLocked && !userReportData.comment">
527
+ <input
528
+ class="notes-new pl-4 mt-3 mb-3 form-rounded"
529
+ type="text"
530
+ placeholder="Escrever anotação"
531
+ v-model="newReportNote"
532
+ @change="handleNewReportNoteSubmit"
533
+ v-on:change="cleatInput()"
534
+ />
535
+ <i
536
+ @click="handleNewReportNoteSubmit"
537
+ class="fas fa-paper-plane input-icon"
538
+ ></i>
539
+ </div>
540
+ </el-tab-pane>
541
+ </el-tabs>
542
+ </div>
543
+ </template>
544
+
545
+ <script>
546
+ import { Tabs, TabPane } from 'element-ui';
547
+ import DropzoneFileUpload from '@burh/nuxt-core/components/argon-core/Inputs/DropzoneFileUpload.vue';
548
+ import swal from 'sweetalert2';
549
+ import UpgradePlan from './UpgradePlan.vue';
550
+ import like from '../../../organismos/atomos/Like.vue';
551
+ import deslike from '../../../organismos/atomos/Deslike.vue';
552
+
553
+ export default {
554
+ name: 'user-cv-right-side',
555
+ filters: {
556
+ convertDate(data) {
557
+ if (typeof data !== 'string') {
558
+ data = '2020-01-01 12:00:00';
559
+ }
560
+ let d = new Date(data);
561
+ let options = { hour: '2-digit', minute: '2-digit' };
562
+ return d.toLocaleDateString('pt-BR', options);
563
+ }
564
+ },
565
+ watch:{
566
+ fileToUpload(value){
567
+ if(value.length > 0 && value[0].accepted) {
568
+ this.isError = false;
569
+ }
570
+ },
571
+ reportFileUpload(value){
572
+ if(value.length > 0 && value[0].accepted) {
573
+ this.isError = false;
574
+ }
575
+ },
576
+ archives() {
577
+ this.getUserFolderData();
578
+ }
579
+ },
580
+ components: {
581
+ [Tabs.name]: Tabs,
582
+ [TabPane.name]: TabPane,
583
+ DropzoneFileUpload,
584
+ UpgradePlan,
585
+ like,
586
+ deslike
587
+ },
588
+ data(){
589
+ return {
590
+ newNote: '',
591
+ newReportNote: '',
592
+ liked: 0,
593
+ hasRemove: null,
594
+ isError: true,
595
+ currentRemoveItem: null,
596
+ fileToUpload: [],
597
+ dropzoneOptions: {
598
+ maxFilesize: 5,
599
+ dictFileTooBig:'Seu arquivo é poderoso demais (Máximo 5mb).',
600
+ dictDefaultMessage: 'Clique ou arraste seu arquivo aqui.',
601
+ dictInvalidFileType: 'Arquivo invalido.',
602
+ dictMaxFilesExceeded: 'Não é permitido mais de um arquivo por vez.',
603
+ acceptedFiles: 'image/*, application/pdf',
604
+ },
605
+ reportFileUpload: [],
606
+ reportsDropdownzoneOptions: {
607
+ maxFilesize: 1,
608
+ dictFileTooBig:'Seu arquivo é poderoso demais (Máximo 5mb).',
609
+ dictDefaultMessage: 'Clique ou arraste seu arquivo aqui.',
610
+ dictInvalidFileType: 'Arquivo invalido.',
611
+ dictMaxFilesExceeded: 'Não é permitido mais de um arquivo por vez.',
612
+ acceptedFiles: 'image/*, application/pdf',
613
+ },
614
+ userReportData: [],
615
+ hasReportRemove: false,
616
+ hasCommentRemove: false,
617
+ };
618
+ },
619
+ props: {
620
+ archives: Array,
621
+ userData: Object,
622
+ automation:{
623
+ type:Object || null,
624
+ default:null
625
+ },
626
+ notes: Array,
627
+ activeName: String,
628
+ jobId:{
629
+ type:[String, Number, Object],
630
+ default:null
631
+ },
632
+ userFolderId: String,
633
+ isNotesActived: {
634
+ type: Boolean,
635
+ default: true
636
+ },
637
+ isReportsActived: {
638
+ type: Boolean,
639
+ default: false
640
+ },
641
+ },
642
+ mounted() {
643
+ this.companyHistory();
644
+ this.getUserFolderData();
645
+ },
646
+ methods: {
647
+ async handleRemoveNote(note) {
648
+ const apiUrl = `${process.env.baseApiUrl}/company/${note.company_id}/user/${note.user_id}/note/${note.id}`;
649
+
650
+ const response = await this.$axios.delete(apiUrl)
651
+ .then(res => res.data)
652
+ .catch(() => {});
653
+
654
+ if (!response || response && response.error) return this.showToast('error', 'Falha ao remover!');
655
+
656
+ this.notes = this.notes.filter(n => n.id !== note.id);
657
+ },
658
+ removeComment(item){
659
+ this.userReportData.comment = undefined;
660
+ this.$emit('remove-comment', item);
661
+ this.hasCommentRemove = false;
662
+ },
663
+ handleNewReportNoteSubmit() {
664
+ if (this.newReportNote.length > 3) {
665
+ this.$emit('new-report-note', this.newReportNote, this.userFolderId, this.userData.id);
666
+ this.newReportNote = '';
667
+ }
668
+ },
669
+ openRemoveSection(item, index) {
670
+ this.hasRemove = index;
671
+ this.currentRemoveItem = item;
672
+ },
673
+ openReportRemoveSection(item) {
674
+ this.hasReportRemove = true;
675
+ this.currentRemoveItem = item;
676
+ },
677
+
678
+ showToast(type, title){
679
+ const Toast = swal.mixin({
680
+ toast: true,
681
+ position: 'top-end',
682
+ showConfirmButton: false,
683
+ timer: 3100,
684
+ });
685
+
686
+ return Toast.fire({
687
+ type: type,
688
+ title: title
689
+ });
690
+ },
691
+
692
+ showMessageError(file, message) {
693
+ this.isError = true;
694
+ this.$refs.Mydropzone && this.$refs.Mydropzone.removeAllFiles();
695
+
696
+ if (file.status !== 'canceled'){
697
+ this.showToast('error', message);
698
+ }
699
+ },
700
+ openArchive(item) {
701
+ window.open(item.storage_url, '_blank');
702
+ },
703
+ saveImage(){
704
+ if (!this.isError) {
705
+ this.$emit('save-archive', this.fileToUpload[0], this.userData.id);
706
+ this.$refs.MyDropzone && this.$refs.MyDropzone.removeAllFiles();
707
+ this.showToast('success', 'Arquivo enviado com sucesso.');
708
+ } else {
709
+ if (this.fileToUpload.length > 0) {
710
+ this.showToast('error', 'Arquivo invalido.');
711
+ } else {
712
+ this.showToast('warning', 'Selecione um arquivo.');
713
+ }
714
+ }
715
+ },
716
+ saveReport() {
717
+ if (!this.isError) {
718
+ this.$emit('save-report', this.reportFileUpload[0], this.userFolderId);
719
+ this.$refs.MyReportDropzone && this.$refs.MyReportDropzone.removeAllFiles();
720
+ this.showToast('success', 'Arquivo enviado com sucesso.');
721
+
722
+ } else {
723
+ if (this.reportFileUpload.length > 0) {
724
+ this.showToast('error', 'Arquivo invalido.');
725
+ } else {
726
+ this.showToast('warning', 'Selecione um arquivo.');
727
+ }
728
+ }
729
+ },
730
+
731
+ removeArchive(archive, index){
732
+ this.$emit('remove-archive', archive.user_id, archive.id, archive.company_id, index);
733
+ this.hasRemove = null;
734
+ },
735
+
736
+ removeReportArchive(archive) {
737
+ this.userReportData.annex = undefined;
738
+
739
+ this.$emit('remove-report', archive.id);
740
+ this.hasReportRemove = false;
741
+ },
742
+
743
+ cleatInput() {
744
+ this.newNote = '';
745
+ },
746
+ async downloadPdf(param) {
747
+ let data = await this.$store.app.$services.testOnline.downloadPdf(
748
+ param.id
749
+ );
750
+
751
+ const url = window.URL.createObjectURL(data.data);
752
+ const link = document.createElement('a');
753
+ link.href = url;
754
+ link.setAttribute(
755
+ 'download',
756
+ `${param.user.name}-${param.test.name}.pdf`
757
+ );
758
+ document.body.appendChild(link);
759
+ link.click();
760
+ link.remove();
761
+ window.URL.revokeObjectURL(url);
762
+ },
763
+ getTestHistory() {
764
+ const tests = this.userData.tests.map(test => {
765
+ if (!test.finished_at) {
766
+ return;
767
+ }
768
+
769
+ const testData = {
770
+ avarage: test.avarage,
771
+ date: test.finished_at,
772
+ text: `Finalizou o teste ${test.test.name.toUpperCase()} com nota <b>${test.avarage}</b>`
773
+ };
774
+
775
+ return testData;
776
+ }).filter(item => item);
777
+
778
+ return tests;
779
+ },
780
+ companyHistory() {
781
+ let history = [];
782
+
783
+ let tests = this.userData.tests.map(x => {
784
+ let test = {
785
+ id: x.id,
786
+ date: x.finished_at || x.created_at,
787
+ user: {
788
+ name: this.userData.name
789
+ },
790
+ test: {
791
+ name: x.test.name
792
+ }
793
+ };
794
+
795
+ if (x.finished_at) {
796
+ test.text = `Finalizou o teste ${x.test.name.toUpperCase()} com nota <b>${x.avarage}</b>`;
797
+ test.hasDownload = true;
798
+ } else {
799
+ test.text = `Recebeu o teste ${x.test.name.toUpperCase()}`;
800
+ }
801
+
802
+ return test;
803
+ });
804
+
805
+ let courses = this.userData.courses_user.map(x => {
806
+ if (x.finished_at) {
807
+ return{
808
+ date: x.finished_at,
809
+ text: `Finalizou o curso ${x.course.name.toUpperCase()}`
810
+ };
811
+ }
812
+ });
813
+
814
+ let discs = this.userData.solides.map(x => ({
815
+ date: x.end,
816
+ text: 'Realizou um teste DISC'
817
+ }));
818
+
819
+ history = history.concat(tests, discs, courses);
820
+
821
+ return history;
822
+ },
823
+ orderByDate(data) {
824
+ let sortedArray = data.sort((a, b) => {
825
+ a = a.date || '2020-01-01 12:00:00';
826
+ b = b.date || '2020-01-01 12:00:00';
827
+
828
+ return new Date(b).getTime() - new Date(a).getTime();
829
+ });
830
+
831
+ return sortedArray;
832
+ },
833
+ sendContact() {
834
+ this.$emit('open-contact');
835
+ },
836
+
837
+ async getUserFolderData() {
838
+ if (this.isReportsActived) {
839
+ const apiUrl = `${process.env.baseApiUrlV2}/company/buffer/folder/user/${this.userFolderId}`;
840
+
841
+ const data = await this.$axios(apiUrl)
842
+ .then((res) => {
843
+ this.liked = res.data.data.like;
844
+ return res.data;
845
+ })
846
+ .catch(() => {});
847
+
848
+ if (!data) return;
849
+
850
+ this.mountUserReport(data.data);
851
+ }
852
+ },
853
+
854
+ mountUserReport(userData) {
855
+ const annex = userData.annex[0] || undefined;
856
+ const comment = userData.comments[0] || undefined;
857
+
858
+ this.userReportData = {
859
+ annex,
860
+ comment
861
+ };
862
+ },
863
+ haveAnswers(){
864
+ if(this.automation && Object.keys(this.automation).length){
865
+ return true;
866
+ }else{
867
+ this.active = this.activeName;
868
+ return false;
869
+ }
870
+ }
871
+ },
872
+ computed: {
873
+ currentUser() {
874
+ return this.$store.state.user.currentUser;
875
+ },
876
+ isLocked() {
877
+ return !this.companyHasProduct(
878
+ this.$store.state.loja && this.$store.state.loja.showableProducts && this.$store.state.loja.showableProducts['HISTORICO_USUARIO'] || false
879
+ );
880
+ },
881
+ companyHasAutomation() {
882
+ return this.companyHasProduct(
883
+ this.$store.state.loja && this.$store.state.loja.showableProducts && this.$store.state.loja.showableProducts['TRIAGEM_AUTOMATICA'] || false
884
+ );
885
+ },
886
+ hasAutomation() {
887
+ return this.automation && Object.values(this.automation).length > 0 || false;
888
+ },
889
+ activeTab() {
890
+ let activeTab = this.activeName;
891
+
892
+ if (this.jobId && this.companyHasAutomation && this.hasAutomation) {
893
+ if (activeTab == 'history') {
894
+ activeTab = 'melissa';
895
+ }
896
+ }
897
+
898
+ return activeTab;
899
+ },
900
+ likeStatus() {
901
+ return this.liked;
902
+ },
903
+ }
904
+ };
905
+ </script>
906
+ <style>
907
+ .el-tabs__nav-wrap.is-top::after {
908
+ background: #fff !important;
909
+ }
910
+ .remove-baloon{
911
+ cursor: pointer;
912
+ }
913
+ .el-tabs__active-bar.is-top {
914
+ width: 30px !important;
915
+ height: 4px !important;
916
+ border-radius: 10px 10px 0px 0px;
917
+ }
918
+ </style>
919
+
920
+ <style lang="scss">
921
+ .swal2-title {
922
+ font-size: 1rem !important;
923
+ }
924
+ .swal2-container {
925
+ z-index: 5000 !important;
926
+ }
927
+ </style>
928
+
929
+ <style lang="scss" scoped>
930
+ @import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
931
+
932
+ /deep/.dropzone {
933
+ width: 95%;
934
+
935
+ .dz-message {
936
+ padding: 2rem 1rem !important;
937
+ }
938
+
939
+ button.dz-button {
940
+ background-color: transparent;
941
+ border: 0;
942
+ }
943
+ }
944
+ .evaluation-area{
945
+ margin-bottom: 16px;
946
+ display: grid;
947
+ grid-template-columns: repeat(2, 95px);
948
+ @media (max-width:1155px){
949
+ grid-template-columns: 1fr;
950
+ }
951
+ .action{
952
+ display: grid;
953
+ grid-template-columns: 2rem 1fr;
954
+ align-items: center;
955
+ white-space: nowrap;
956
+ user-select: none;
957
+ .icon {
958
+ width: 2rem !important;
959
+ margin-bottom: 0;
960
+ }
961
+ @media (max-width: 1440px) {
962
+ justify-content:start;
963
+ }
964
+ @media (max-width:1155px){
965
+ width: 7rem;
966
+ margin-bottom: 0 !important;
967
+ }
968
+ }
969
+ &__text {
970
+ font-size: 0.8rem;
971
+ color: #32325D;
972
+ margin-left: 0.35rem;
973
+ }
974
+
975
+ .active-icon {
976
+ font-size: 25px;
977
+ color: #AEB0B7;
978
+ transition: color 0.25s;
979
+ cursor: pointer;
980
+ &.active{
981
+ color:#fff;
982
+ }
983
+ }
984
+ }
985
+ /deep/ .el-tab-pane {
986
+ height: 760px;
987
+ max-height: 760px;
988
+ overflow: hidden;
989
+ overflow-y: auto;
990
+ position: relative;
991
+
992
+ > .notes-title {
993
+ position: sticky;
994
+ position: -webkit-sticky;
995
+ top: 0;
996
+ background: white;
997
+ padding: 10px 0;
998
+ }
999
+
1000
+ > .input-container {
1001
+ position: sticky;
1002
+ position: -webkit-sticky;
1003
+ bottom: 0;
1004
+ background: white;
1005
+ > .input-icon {
1006
+ cursor: pointer;
1007
+ position: absolute;
1008
+ top: 50%;
1009
+ right: 30px;
1010
+ transform: translateY(-50%);
1011
+ color: #c8c8c8;
1012
+ }
1013
+ }
1014
+
1015
+ &::-webkit-scrollbar {
1016
+ width: 8px;
1017
+ }
1018
+
1019
+ &::-webkit-scrollbar-track {
1020
+ background: #f5f5f5;
1021
+ }
1022
+
1023
+ &::-webkit-scrollbar-thumb {
1024
+ background: #e9e8e8;
1025
+ border-radius: 10px;
1026
+ }
1027
+
1028
+ .archive-content {
1029
+ width: 95%;
1030
+
1031
+ p {
1032
+ margin-bottom: 0;
1033
+ font-size: 0.875rem;
1034
+ padding: .3rem .6rem 0 .6rem;
1035
+ }
1036
+
1037
+ .archive-container {
1038
+ display: flex;
1039
+ align-items: center;
1040
+ padding: 0.5rem 0.5rem 0.438rem;
1041
+ cursor: pointer;
1042
+ user-select: none;
1043
+
1044
+ &:hover{
1045
+ background-color: #f6f9fc;
1046
+ border-radius: 5px;
1047
+ }
1048
+
1049
+ .archive-img {
1050
+ background-color: #f5f5f5;
1051
+ border-radius: 6px;
1052
+ padding: 7px;
1053
+ }
1054
+
1055
+ .archive-name {
1056
+ display: flex;
1057
+ margin-left: .8rem;
1058
+ width: 145%;
1059
+ justify-content: space-between !important;
1060
+
1061
+ .archive-icon {
1062
+ margin-left: 1.5rem;
1063
+ }
1064
+
1065
+ p {
1066
+ margin: 0;
1067
+ padding: 0;
1068
+ width: 13rem;
1069
+ white-space: nowrap;
1070
+ overflow: hidden;
1071
+ text-overflow: ellipsis;
1072
+ }
1073
+ }
1074
+
1075
+ .upload-container {
1076
+ position: sticky;
1077
+ position: -webkit-sticky;
1078
+ bottom: 0;
1079
+ background: white;
1080
+ width: 231px;
1081
+ }
1082
+ }
1083
+ }
1084
+
1085
+ .archive-buttons {
1086
+ display: flex;
1087
+ margin-top: -1rem;
1088
+ width: 95%;
1089
+ }
1090
+
1091
+ .archive-remove {
1092
+ width: 90%;
1093
+ word-break: break-word;
1094
+ }
1095
+ }
1096
+
1097
+ /deep/ .el-tabs__nav-scroll {
1098
+ display: flex;
1099
+ justify-content: stretch;
1100
+ align-items: flex-start;
1101
+ }
1102
+
1103
+ /deep/ .el-tabs__item {
1104
+ padding: 0 1.5rem !important;
1105
+ }
1106
+
1107
+ /deep/ .el-tabs__nav {
1108
+ width: 100% !important;
1109
+ user-select: none;
1110
+ }
1111
+
1112
+ @media (max-width: 1520px) {
1113
+ /deep/ .el-tabs__item {
1114
+ padding: 0 1.2rem !important;
1115
+ }
1116
+ }
1117
+ @media (max-width: 1340px) {
1118
+ /deep/ .el-tabs__item {
1119
+ padding: 0 1rem !important;
1120
+ }
1121
+ }
1122
+ @media (max-width: 1240px) {
1123
+ /deep/ .el-tabs__item {
1124
+ padding: 0 0.8rem !important;
1125
+ }
1126
+ }
1127
+ @media (max-width: 1140px) {
1128
+ /deep/ .el-tabs__item {
1129
+ padding: 0 0.6rem !important;
1130
+ }
1131
+ }
1132
+
1133
+ .readmore {
1134
+ overflow: hidden;
1135
+ text-overflow: ellipsis;
1136
+ display: -webkit-box;
1137
+ -webkit-line-clamp: 3;
1138
+ -webkit-box-orient: vertical;
1139
+ }
1140
+
1141
+ .tab__icon-pane {
1142
+ .img__icon-pane {
1143
+ background-color: #f5f5f5 !important;
1144
+ border-radius: 30%;
1145
+ padding: 7px;
1146
+ height: 2.2rem;
1147
+ width: 2.2rem;
1148
+ margin-bottom: 1rem;
1149
+ }
1150
+ }
1151
+
1152
+ .content-right {
1153
+ width: 25%;
1154
+ }
1155
+
1156
+ .notes-title {
1157
+ font-size: 14px;
1158
+ word-break: break-word;
1159
+ color: #1d364b;
1160
+ font-weight: bold;
1161
+ background-color: white;
1162
+ z-index: 500;
1163
+ }
1164
+
1165
+ .notes-baloon {
1166
+ width: 231px;
1167
+ height: auto;
1168
+ border-radius: 10px 10px 10px 0;
1169
+ background: #eff5fd;
1170
+ &.fullsize {
1171
+ width: 80%!important;
1172
+ min-width: 280px;
1173
+ }
1174
+ }
1175
+ .notes-baloon-melissa {
1176
+ padding: 5px 0;
1177
+ .question-melissa-title{
1178
+ font-size: 12px !important;
1179
+ color:#62778c;
1180
+ span {
1181
+ word-break: break-word;
1182
+ }
1183
+ }
1184
+ .notes-text-melissa {
1185
+ font-size: 0.875rem;
1186
+ color: #1d364b;
1187
+ font-weight: bold;
1188
+ }
1189
+ &.fullsize {
1190
+ width: 80%!important;
1191
+ min-width: 280px;
1192
+ }
1193
+ }
1194
+
1195
+ .notes-text {
1196
+ p {
1197
+ font-size: 13px;
1198
+ color: #62778c;
1199
+ }
1200
+ }
1201
+
1202
+ .notes-date {
1203
+ font-size: 11px;
1204
+ text-align: right;
1205
+
1206
+ color: #8da2b5;
1207
+ top: calc(50% - 17px / 2 - 444.5px);
1208
+ }
1209
+
1210
+ .notes-owner {
1211
+ img {
1212
+ width: 23px;
1213
+ height: 23px;
1214
+ border-radius: 50%;
1215
+ }
1216
+
1217
+ .notes-avatar {
1218
+ width: 23px;
1219
+ height: 23px;
1220
+ border-radius: 50%;
1221
+ background-color: #adb5bd;
1222
+ }
1223
+
1224
+ p {
1225
+ font-size: 13px;
1226
+ font-weight: 600;
1227
+ text-transform: uppercase;
1228
+
1229
+ color: #62778c;
1230
+ }
1231
+ }
1232
+
1233
+ .notes-new {
1234
+ width: 95%;
1235
+ height: 33px;
1236
+
1237
+ background: #f5f5f5;
1238
+ border-radius: 16.5px;
1239
+ border: none;
1240
+
1241
+ outline: 0;
1242
+ }
1243
+
1244
+ .line {
1245
+ width: 221px;
1246
+ height: 0px;
1247
+
1248
+ border: 1px solid #ececec5c;
1249
+ }
1250
+
1251
+ .history {
1252
+ word-break: break-word;
1253
+
1254
+ .history-text {
1255
+ font-size: 13px;
1256
+ color: #62778c;
1257
+ }
1258
+
1259
+ span {
1260
+ font-size: 11px;
1261
+ line-height: 16px;
1262
+
1263
+ color: #8da2b5;
1264
+ }
1265
+ }
1266
+
1267
+ .cursor-disabled {
1268
+ cursor: no-drop;
1269
+ }
1270
+ </style>