{"version":3,"sources":["webpack:///./src/views/activities/details/Dashboard.vue?ab28","webpack:///./src/views/activities/details/Dashboard.vue","webpack:///./src/views/activities/details/Dashboard.vue?3bbd","webpack:///./src/views/activities/details/Dashboard.vue?5806","webpack:///./src/components/timelines/ActivityTimelineEntry.vue?28be","webpack:///./src/views/activities/List.vue?fe5b","webpack:///./src/views/activities/shared/MenuList.vue?c5b1","webpack:///./src/views/activities/shared/MenuList.vue","webpack:///./src/views/activities/shared/MenuList.vue?d849","webpack:///./src/views/activities/shared/MenuList.vue?151c","webpack:///./src/components/buttons/ActivityLogtime.vue?7423","webpack:///./src/components/buttons/ActivityLogtime.vue","webpack:///./src/components/buttons/ActivityLogtime.vue?d009","webpack:///./src/components/buttons/ActivityLogtime.vue?cb69","webpack:///./src/views/activities/List.vue","webpack:///./src/views/activities/List.vue?44d9","webpack:///./src/views/activities/List.vue?19fb","webpack:///./src/views/activities/details/Comments.vue?b82f","webpack:///./src/views/activities/details/Comments.vue","webpack:///./src/views/activities/details/Comments.vue?0ce2","webpack:///./src/views/activities/details/Comments.vue?033d","webpack:///./src/components/timelines/SearchTimelineEntry.vue?3353","webpack:///./src/components/timelines/SearchTimelineEntry.vue","webpack:///./src/components/timelines/SearchTimelineEntry.vue?eed3","webpack:///./src/components/timelines/SearchTimelineEntry.vue?d57d","webpack:///./src/views/activities/shared/MenuFilters.vue?ac7f","webpack:///./src/views/activities/shared/MenuFilters.vue","webpack:///./src/views/activities/shared/MenuFilters.vue?7fa0","webpack:///./src/views/activities/shared/MenuFilters.vue?cd8b","webpack:///./src/views/activities/details/LogTimes.vue?53bd","webpack:///./src/views/activities/details/LogTimes.vue","webpack:///./src/views/activities/details/LogTimes.vue?8640","webpack:///./src/views/activities/details/LogTimes.vue?72d8","webpack:///./src/views/activities/Dashboard.vue?e647","webpack:///./src/views/activities/Dashboard.vue","webpack:///./src/views/activities/Dashboard.vue?eed3","webpack:///./src/views/activities/Dashboard.vue?e5a9","webpack:///./src/views/activities/side-menus/CreateActivity.vue?84e3","webpack:///./src/views/activities/side-menus/CreateActivity.vue","webpack:///./src/views/activities/side-menus/CreateActivity.vue?fa1e","webpack:///./src/views/activities/side-menus/CreateActivity.vue?1f6c","webpack:///./src/views/activities/side-menus/DetailActivity.vue?ddd1","webpack:///./src/services/api/activities.files.service.ts","webpack:///./src/permissions/activity.permissions.ts","webpack:///./src/views/activities/side-menus/DetailActivity.vue","webpack:///./src/views/activities/side-menus/DetailActivity.vue?bc55","webpack:///./src/views/activities/side-menus/DetailActivity.vue?7b2e","webpack:///./src/components/timelines/ActivityTimelineEntry.vue?f6c9","webpack:///./src/components/timelines/ActivityTimelineEntry.vue","webpack:///./src/components/timelines/ActivityTimelineEntry.vue?fcdc","webpack:///./src/components/timelines/ActivityTimelineEntry.vue?b538","webpack:///./src/services/api/activities.comments.service.ts","webpack:///./src/components/buttons/ActivityLogtime.vue?3e53","webpack:///./src/views/activities/configurations/ActivityStatus.vue?5caf","webpack:///./src/views/activities/configurations/ActivityStatus.vue","webpack:///./src/views/activities/configurations/ActivityStatus.vue?101d","webpack:///./src/views/activities/configurations/ActivityStatus.vue?e2d0","webpack:///./src/views/activities/configurations/Layout.vue?19fe","webpack:///./src/views/activities/configurations/Layout.vue","webpack:///./src/views/activities/configurations/Layout.vue?8246","webpack:///./src/views/activities/configurations/Layout.vue?7b6f","webpack:///./src/components/structure/MixinsSideComponent.ts","webpack:///./src/views/activities/details/Shared.vue?a9ac","webpack:///./src/views/activities/details/Shared.vue","webpack:///./src/views/activities/details/Shared.vue?eeff","webpack:///./src/views/activities/details/Shared.vue?6fcb","webpack:///../../../src/components/VRadioGroup/VRadio.ts","webpack:///./src/permissions/abstract/permissions.handler.ts","webpack:///./src/views/activities/configurations/ActivityAreas.vue?1d4c","webpack:///./src/views/activities/configurations/ActivityAreas.vue","webpack:///./src/views/activities/configurations/ActivityAreas.vue?5eff","webpack:///./src/views/activities/configurations/ActivityAreas.vue?da4b","webpack:///../../../src/components/VPagination/VPagination.ts","webpack:///./src/components/mixins/ServerGridMixins.ts","webpack:///./src/views/activities/details/Comments.vue?2234","webpack:///./src/views/activities/configurations/ActivityPriorities.vue?5a52","webpack:///./src/views/activities/configurations/ActivityPriorities.vue","webpack:///./src/views/activities/configurations/ActivityPriorities.vue?fcf8","webpack:///./src/views/activities/configurations/ActivityPriorities.vue?9dfd","webpack:///./src/services/api/activities.service.ts","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///./src/components/timelines/SearchTimelineEntry.vue?0a30","webpack:///./src/views/activities/details/Documents.vue?d22d","webpack:///./src/views/activities/details/Documents.vue","webpack:///./src/views/activities/details/Documents.vue?0f30","webpack:///./src/views/activities/details/Documents.vue?3151","webpack:///./src/views/activities/shared/MenuGlobal.vue?e81e","webpack:///./src/views/activities/shared/MenuGlobal.vue","webpack:///./src/views/activities/shared/MenuGlobal.vue?a4b4","webpack:///./src/views/activities/shared/MenuGlobal.vue?f553","webpack:///./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack:///./src/services/api/activities.areas.service.ts","webpack:///./src/views/activities/details/Edit.vue?9513","webpack:///./src/views/activities/details/Edit.vue","webpack:///./src/views/activities/details/Edit.vue?d662","webpack:///./src/views/activities/details/Edit.vue?5cf5","webpack:///./src/views/activities/configurations/ActivityTypes.vue?9613","webpack:///./src/views/activities/configurations/ActivityTypes.vue","webpack:///./src/views/activities/configurations/ActivityTypes.vue?b41f","webpack:///./src/views/activities/configurations/ActivityTypes.vue?0c19","webpack:///./src/views/activities/Calendar.vue?44bb","webpack:///./src/views/activities/Calendar.vue","webpack:///./src/views/activities/Calendar.vue?70f9","webpack:///../../../../src/components/VCalendar/mixins/mouse.ts","webpack:///../../../../src/components/VCalendar/mixins/times.ts","webpack:///../../../../src/components/VCalendar/modes/common.ts","webpack:///../../../../src/components/VCalendar/modes/stack.ts","webpack:///../../../../src/components/VCalendar/modes/column.ts","webpack:///../../../../src/components/VCalendar/modes/index.ts","webpack:///../../../../src/components/VCalendar/util/props.ts","webpack:///../../../../src/components/VCalendar/mixins/calendar-base.ts","webpack:///../../../../src/components/VCalendar/util/events.ts","webpack:///../../../../src/components/VCalendar/mixins/calendar-with-events.ts","webpack:///../../../src/components/VCalendar/VCalendarWeekly.ts","webpack:///../../../src/components/VCalendar/VCalendarMonthly.ts","webpack:///../../../../src/components/VCalendar/mixins/calendar-with-intervals.ts","webpack:///../../../src/components/VCalendar/VCalendarDaily.ts","webpack:///../../../src/components/VCalendar/VCalendarCategory.ts","webpack:///../../../src/components/VCalendar/VCalendar.ts","webpack:///./src/views/activities/Calendar.vue?285b","webpack:///./src/views/activities/details/Users.vue?a654","webpack:///./src/views/activities/details/Users.vue","webpack:///./src/views/activities/details/Users.vue?2358","webpack:///./src/views/activities/details/Users.vue?c5bc","webpack:///./src/views/activities/details/Shared.vue?cdd8","webpack:///./src/views/activities/shared/MenuFilters.vue?c29f"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","isLoading","_v","_s","statistics","files","_e","comments","domProps","activity","description","staticRenderFns","activitiesService","Load","request","idActivity","GetStatistics","then","result","finally","component","VCard","VCardText","area","title","on","createActivity","scopedSlots","_u","key","fn","proxy","gridConfigs","columns","data","loading","total","ref","headers","_l","header","index","$event","GridFilter","GridClearFilter","model","value","callback","$$v","$set","expression","item","style","backgroundColor","activityPriority","color","class","activityArea","icon","_f","dateStart","activityStatus","stopPropagation","editStatus","viewActivity","owner","assignee","pageCount","GridPageChanged","staticStyle","GridPagesizeChanged","currentTypeId","idActivityType","currentStatusId","idActivityStatus","currentPriorityId","idActivityPriority","configsService","status","types","priorities","ignoreRender","p","Object","assign","$route","query","skip","$router","push","currentLanguage","idLanguage","idActivityArea","q","parseInt","deep","VRadio","enableDialog","finalizeLogTime","completeLogTime","logTime","seconds","onClick","isActive","isBillable","loadLogtime","setInterval","GetLastLogtime","catch","command","StartLogtime","e","showErrorMessage","response","message","CompleteLogtime","PauseLogtime","startLogtime","pauseLogTime","VBtn","VCardActions","VCardTitle","VDialog","VSpacer","VSwitch","VTextField","LoadArea","id","params","a","activityAreas","find","i","text","sortable","align","filterable","filterItem","hasLogTime","GridInit","LoadStatus","ChangeStatus","error","console","log","init","includes","activityType","assignees","tags","orderBy","DateStartDesc","take","pageSize","GridSetLoading","GetList","GridLoad","comp","args","openSideMenu","components","LeftMenu","FiltersMenu","ActivityLogtimeButton","ActivityLogtime","VDataTable","VPagination","VSelect","preventDefault","onCreateActivityComment","isValid","$rules","minLenght","comment","allComments","length","idActivityComment","isEven","user","dateCreated","name","activitiesCommentsService","LoadComments","GetComments","showError","CreateComment","showSuccessMessage","isPublic","$refs","form","resetValidation","VAlert","VCheckbox","VForm","VTextarea","_m","onSearch","onClear","s","search","period","privacy","privacyOptions","periodOptions","keys","filter","isNaN","Number","forEach","primary","type","DateTime","editable","editableClass","editableRules","Text","Boolean","_g","_b","entries","entry","SearchEntry","Entry","VList","VListItem","VListItemTitle","VMenu","onCreateActivity","close","required","instance","currentType","activityPriorities","users","appGroups","onSelectFile","metadataConfiguration","activitiesAreasService","usersService","activityTypes","idOwner","identity","idUser","Date","toISOString","GetInternalUsers","Create","file","visibleOnCreate","GetMetadataGroupsConfiguration","SingleFileUploader","VAutocomplete","VChip","isPublished","datePublication","isPrivate","canView","canEdit","allowDateEnd","dateEnd","createComment","CdnUrl","Get","baseUrl","GetQueryStringByObject","activityPermissions","activitiesFilesService","endsWith","substring","loadComments","loadFiles","GetFiles","VTooltip","background","colorStatus","iconArea","colorPriority","daysDiff","_t","areas","dStart","dEnd","diff","ActivitiesCommentsService","Post","endpoint","Dropdown","arg","items","itemText","itemValue","Color","route","url","routes","BaseSideComponent","closeSideMenu","changeActivityStatus","actionMenu","deleteActivity","group","slot","menus","GetSingle","redirect","DeleteById","path","baseMixins","inheritAttrs","props","disabled","label","offIcon","default","onIcon","readonly","isFocused","computed","classes","groupClasses","computedColor","computedIcon","computedId","hasLabel","hasState","radioGroup","isDisabled","isReadonly","computedName","rippleState","validationState","methods","genInput","genLabel","click","for","focused","genRadio","setTextColor","dense","attrs$","genRipple","onFocus","onBlur","onChange","onKeydown","h","PermissionModes","PermissionsHandler","backoffice","interfac","module","isConfiguration","viewMode","currentUser","role","roles","interface","state","manageGroupsDialog","changeMetadataGroupsConfig","groups","selectedGroups","actions","handleAction","apiService","userTypesService","visible","currentActivityArea","metadataGroups","ChangeMetadataGroups","onVisible","directives","Resize","circle","validator","val","nextIcon","prevIcon","totalVisible","pageAriaLabel","currentPageAriaLabel","previousAriaLabel","nextAriaLabel","wrapperAriaLabel","maxButtons","selected","themeClasses","maxLength","Math","range","even","left","right","start","end","watch","mounted","setTimeout","onResize","width","$el","parentElement","window","next","previous","from","genIcon","genItem","isCurrentPage","ariaLabel","setBackgroundColor","$vuetify","lang","t","genItems","map","genList","modifiers","quiet","children","rtl","DataServerGridOptions","inited","page","ServerGrid","list","onGridOptionsChange","ceil","ActivitiesEndpoint","ActivitiesService","Put","Delete","rawData","uploader","folder","UploadMultipleFiles","autoGrow","noResize","rowHeight","v","parseFloat","rows","noResizeHandle","lazyValue","$nextTick","calculateInputHeight","input","height","minHeight","onInput","onKeyDown","FileAny","currentAreaId","$","target","stat","MAX_SAFE_INTEGER","ActivitiesAreasEndpoint","ActivitiesAreasService","language","GetAll","currentTab","onEditActivity","metadata","onEditMetatada","tabs","f","idAppGroup","LoadRelatedData","metadataQuery","GetMetadata","Edit","EditMetadata","VTab","VTabItem","VTabs","VTabsItems","calendar","prev","now","events","parseEvents","getDefaultMouseEventHandlers","getMouseEventHandlers","event","prevent","eventOptions","prefix","handler","mouseEvent","getEvent","Array","times","today","parsedNow","created","setPresent","present","past","future","updateTimes","getNow","updateDay","updateTime","MILLIS_IN_DAY","minStart","visuals","columnCount","column","b","exclude","s0","e0","groupVisual","dayStart","intersected","hasOverlap","k","timed","getRange","getDayRange","groupStart","groupEnd","min","max","reset","getVisuals","day","dayEvents","visual","setColumnCount","targetGroup","getOpenGroup","FULL_WIDTH","DEFAULT_OFFSET","WIDTH_MULTIPLIER","firstWeekday","overlapThreshold","getOverlapGroupHandler","getGroups","nodes","child","getNode","getNextIndex","parent","getParent","addTime","getOverlappingRange","grand","grandNext","calculateBounds","getMaxChildIndex","spaceLeft","spaceWidth","offset","columnWidthMultiplier","getColumnWidthMultiplier","node","columnOffset","columnWidth","hasFullWidth","maxColumn","minColumn","c","getOverlappingIndices","indices","other","returnFirstColumn","overlapping","first","n","getNormalizedRange","added","sibling","childMax","removeMinutes","identifier","totalMinutes","addHours","addMinutes","CalendarEventOverlapModes","stack","base","String","validate","date","weekdays","validateWeekdays","hideHeader","shortWeekdays","weekdayFormat","dayFormat","intervals","maxDays","shortIntervals","intervalHeight","validateNumber","intervalWidth","intervalMinutes","firstInterval","firstTime","intervalCount","intervalFormat","intervalStyle","showIntervalLabel","weeks","localeFirstDayOfYear","minWeeks","shortMonths","showMonthOnFirst","showWeek","monthFormat","category","categories","categoryHideDynamic","categoryShowAll","categoryForInvalid","categoryDays","x","isFinite","eventStart","eventEnd","eventTimed","eventCategory","eventHeight","eventColor","eventTextColor","eventName","eventOverlapThreshold","eventOverlapMode","mode","eventMore","eventMoreText","eventRipple","eventMarginBottom","ints","visited","wrapped","d","mixins","parsedWeekdays","weekdaySkips","weekdaySkipsReverse","reversed","reverse","parsedStart","parsedEnd","days","dayFormatter","options","timeZone","weekdayFormatter","longOptions","weekday","shortOptions","short","getRelativeClasses","outside","timestamp","getStartOfWeek","getEndOfWeek","getFormatter","startInput","endInput","startParsed","endParsed","startIdentifier","startTimestampIdentifier","endIdentifier","endOffset","endTimestampIdentifier","allDay","dayIdentifier","isEventOn","WIDTH_FULL","WIDTH_START","MINUTES_IN_DAY","ripple","noEvents","parsedEvents","parsedEventOverlapThreshold","eventColorFunction","eventTimedFunction","eventCategoryFunction","eventTextColorFunction","eventNameFunction","eventModeFunction","eventWeekdays","categoryMode","parseEvent","formatTime","formatter","hour","minute","withTime","undefined","updateEventVisibility","eventsMap","more","parentBounds","last","hide","hidden","eventBounds","getEventsMap","elements","el","genDayEvent","week","weekdayIdentifier","scope","eventParsed","genEvent","refInFor","genTimedEvent","top","bottom","$scopedSlots","overlapsNoon","singline","timeSummary","eventSummary","time","delimiter","scopeInput","nativeEvent","genName","innerHTML","genPlaceholder","genMore","display","getVisibleEvents","isEventOverlapping","isEventForCategory","getEventsForDay","isEventStart","getEventsForDayAll","getEventsForDayTimed","getScopedSlots","isNode","getSlotChildren","getter","mapper","mapped","slots","slotDay","slotDayHeader","slotDayBody","parsedMinWeeks","minDays","todayWeek","monthFormatter","month","isOutside","genHead","genHeadDays","genHeadDay","genWeeks","weekDays","genWeek","getWeekNumber","weekNodes","genWeekNumber","determineDay","genDay","genDayLabel","genDayLabelButton","hasMonth","fab","depressed","small","stop","genDayMonth","dragstart","parsedFirstInterval","parsedIntervalMinutes","parsedIntervalCount","parsedIntervalHeight","parsedFirstTime","firstMinute","bodyHeight","minutes","count","intervalFormatter","shortHourOptions","tms","showIntervalLabelDefault","isFirst","interval","intervalStyleDefault","getTimestampAtEvent","bounds","baseMinutes","touchEvent","touches","clientY","addIntervals","getSlotScope","scrollToTime","y","timeToY","pane","minutesToPixels","clamp","timeDelta","gap","scrollPush","getScrollPush","marginRight","genHeadIntervals","genHeadWeekday","genHeadDayLabel","genDayHeader","genHeadDayButton","genBody","genScrollArea","genPane","genDayContainer","genDays","genDayIntervals","genDayBody","genDayInterval","styler","genBodyIntervals","genIntervalLabels","genIntervalLabel","shower","show","parsedCategories","split","getCategoryScope","genDayHeaderCategory","genDayHeaderCategoryTitle","genDayBodyCategory","lastStart","lastEnd","parsedValue","parsedCategoryDays","renderProps","around","getCategoryList","Error","spanYears","spanMonths","monthShortFormatter","monthLongFormatter","updated","checkChange","move","amount","moved","forward","mover","limit","$children","parseTimestamp","timestampToDate","categoryMap","categoryLength","ev","VCalendar","VSheet"],"mappings":"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","file":"js/activities-module.20519808.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row mt-5\"},[_c('div',{staticClass:\"col-md-6 col-12\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-6 col-sm-12 col-12\"},[_c('v-card',{attrs:{\"loading\":_vm.isLoading}},[_c('v-card-text',[_c('div',{staticClass:\"d-flex align-center justify-space-between mb-4\"},[_c('span',{staticClass:\"las la-file-alt blue--text size--s30\"}),(_vm.statistics)?_c('span',{staticClass:\"font-weight-bold size--s21 blue--text\"},[_vm._v(_vm._s(_vm.statistics.files))]):_vm._e()]),_c('div',[_c('h4',[_vm._v(\"Documentos\")]),_c('div',[_vm._v(\"Repositório\")])])])],1)],1),_c('div',{staticClass:\"col-md-6 col-sm-12 col-12\"},[_c('v-card',{attrs:{\"loading\":_vm.isLoading}},[_c('v-card-text',[_c('div',{staticClass:\"d-flex align-center justify-space-between mb-4\"},[_c('span',{staticClass:\"las la-lightbulb green--text size--s30\"}),(_vm.statistics)?_c('span',{staticClass:\"font-weight-bold size--s21 green--text\"},[_vm._v(_vm._s(_vm.statistics.comments))]):_vm._e()]),_c('div',[_c('h4',[_vm._v(\"Comentários\")]),_c('div',[_vm._v(\"Registados\")])])])],1)],1)])]),_c('div',{staticClass:\"col-md-6 col-12\"},[_c('div',{staticClass:\"mb-5\"},[_c('h4',{staticClass:\"mb-2\"},[_vm._v(\"Descrição\")]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.activity.description)}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport {\r\n LanguageDto,\r\n ActivityDto,\r\n ActivityStatisticsDto\r\n} from \"@/server/app.dtos\";\r\nimport { GetActivityStatisticsDtoQuery } from \"@/server/app.queries\";\r\nimport { ActivitiesService } from \"@/services/api/activities.service\";\r\n\r\n@Component\r\nexport default class ActivityDetailDashboardPage extends Vue {\r\n @Prop() activity!: ActivityDto;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n isLoading: boolean = false;\r\n activitiesService: ActivitiesService = new ActivitiesService();\r\n statistics: ActivityStatisticsDto | null = null;\r\n\r\n async created() {\r\n await this.Load();\r\n }\r\n\r\n async Load() {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n const request = new GetActivityStatisticsDtoQuery();\r\n request.idActivity = this.activity.idActivity;\r\n await this.activitiesService\r\n .GetStatistics(request)\r\n .then((result: ActivityStatisticsDto) => (this.statistics = result))\r\n .finally(() => (this.isLoading = false));\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=02e45e86&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard,VCardText})\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityTimelineEntry.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityTimelineEntry.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('Subheader',[_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[_c('Breadcrumb',{attrs:{\"routes\":['Dashboard']}}),_c('DateClock')],1),_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[(_vm.area)?_c('h1',[_vm._v(_vm._s(_vm.area.title))]):_vm._e(),_c('v-btn',{attrs:{\"color\":\"primary\",\"rounded\":\"\"},on:{\"click\":_vm.createActivity}},[_c('i',{staticClass:\"las la-plus\"}),_vm._v(\" Adicionar \")])],1)]),_c('LeftMenuLayout',{scopedSlots:_vm._u([{key:\"Menu\",fn:function(){return [_c('LeftMenu',{attrs:{\"activityArea\":_vm.area}})]},proxy:true}])},[_c('FiltersMenu'),(_vm.gridConfigs.inited)?_c('v-data-table',{staticClass:\"elevation-1 my-grid custom-grid custom-grid__icon\",attrs:{\"headers\":_vm.gridConfigs.columns,\"items\":_vm.gridConfigs.data,\"loading\":_vm.gridConfigs.loading,\"server-items-length\":_vm.gridConfigs.total,\"disable-sort\":true,\"disable-filtering\":false,\"hide-default-footer\":true},scopedSlots:_vm._u([(_vm.hasGridFilters)?{key:\"body.prepend\",fn:function(ref){\nvar headers = ref.headers;\nreturn [_c('tr',{staticClass:\"filters-grid\"},_vm._l((headers),function(header,index){return _c('td',{key:(\"Col-Header-\" + index)},[(header.filterable)?[_c('v-text-field',{attrs:{\"clearable\":true,\"hide-details\":true,\"label\":\"Filtro por designação\"},on:{\"change\":function($event){return _vm.GridFilter(header)},\"click:clear\":function($event){return _vm.GridClearFilter(header)}},model:{value:(header.filterItem),callback:function ($$v) {_vm.$set(header, \"filterItem\", $$v)},expression:\"header.filterItem\"}})]:_vm._e()],2)}),0)]}}:null,{key:\"item.idActivityPriority\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"h-100 w-100 d-flex align-center justify-center\",style:({ backgroundColor: item.activityPriority ? item.activityPriority.color : '#ccc' })},[(item.activityArea)?_c('i',{class:item.activityArea.icon}):_vm._e()])]}},{key:\"item.dateStart\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(_vm._f(\"datetime\")(item.dateStart)))])]}},{key:\"item.hasLogTime\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('ActivityLogtimeButton',{attrs:{\"activity\":item}})]}},{key:\"item.idActivityStatus\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-select',{attrs:{\"items\":_vm.activityStatus,\"item-text\":'title',\"item-value\":'idActivityStatus',\"hide-details\":true,\"outlined\":\"\",\"dense\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return true;},\"change\":function($event){return _vm.editStatus(item)}},model:{value:(item.idActivityStatus),callback:function ($$v) {_vm.$set(item, \"idActivityStatus\", $$v)},expression:\"item.idActivityStatus\"}})]}},{key:\"item.idActivity\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"rounded\":\"\",\"fab\":\"\"},on:{\"click\":function($event){return _vm.viewActivity(item)}}},[_c('i',{staticClass:\"las la-search-plus size--s20\"})])]}},{key:\"item.assignees\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[(item.owner)?_c('UserBadge',{attrs:{\"badge\":item.owner}}):_vm._e(),(item.assignees)?_vm._l((item.assignees),function(assignee,index){return _c('UserBadge',{key:(\"User-\" + index),attrs:{\"badge\":assignee}})}):_vm._e()],2)]}},{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center justify-space-between align-center v-data-footer py-3\"},[_c('v-pagination',{attrs:{\"circle\":true,\"length\":_vm.pageCount,\"total-visible\":7},on:{\"input\":_vm.GridPageChanged},model:{value:(_vm.gridConfigs.page),callback:function ($$v) {_vm.$set(_vm.gridConfigs, \"page\", $$v)},expression:\"gridConfigs.page\"}}),_c('div',{staticClass:\"d-flex align-center\"},[_c('span',{staticClass:\"mr-5 size--s20\"},[_vm._v(_vm._s(_vm.gridConfigs.total)+\" results\")]),_c('span',{staticStyle:{\"width\":\"100px\"}},[_c('v-select',{attrs:{\"label\":\"Paginação\",\"items\":[5, 10, 50, 100],\"hide-details\":true},on:{\"input\":_vm.GridPagesizeChanged},model:{value:(_vm.gridConfigs.pageSize),callback:function ($$v) {_vm.$set(_vm.gridConfigs, \"pageSize\", $$v)},expression:\"gridConfigs.pageSize\"}})],1)])],1)]},proxy:true}],null,true)}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h4',[_vm._v(\"Tipo\")]),_c('nav',[_c('v-radio-group-extended',{staticClass:\"m-0 p-0\",attrs:{\"mandatory\":false},model:{value:(_vm.currentTypeId),callback:function ($$v) {_vm.currentTypeId=$$v},expression:\"currentTypeId\"}},[_c('v-radio',{staticClass:\"m-0 p-0\",attrs:{\"label\":\"Todos\",\"value\":null,\"hide-details\":true}}),_vm._l((_vm.types),function(item){return _c('v-radio',{key:(\"cbType-\" + (item.idActivityType)),staticClass:\"m-0 p-0\",attrs:{\"label\":item.title,\"value\":item.idActivityType,\"hide-details\":true}})})],2)],1),_c('h4',[_vm._v(\"Estado\")]),_c('nav',[_c('v-radio-group-extended',{staticClass:\"m-0 p-0\",attrs:{\"mandatory\":false},model:{value:(_vm.currentStatusId),callback:function ($$v) {_vm.currentStatusId=$$v},expression:\"currentStatusId\"}},[_c('v-radio',{staticClass:\"m-0 p-0\",attrs:{\"label\":\"Todos\",\"value\":null,\"hide-details\":true}}),_vm._l((_vm.status),function(item){return _c('v-radio',{key:(\"cbStatus-\" + (item.idActivityStatus)),staticClass:\"m-0 p-0\",attrs:{\"label\":item.title,\"value\":item.idActivityStatus,\"hide-details\":true}})})],2)],1),_c('h4',[_vm._v(\"Importância\")]),_c('nav',[_c('v-radio-group-extended',{staticClass:\"m-0 p-0\",attrs:{\"mandatory\":false},model:{value:(_vm.currentPriorityId),callback:function ($$v) {_vm.currentPriorityId=$$v},expression:\"currentPriorityId\"}},[_c('v-radio',{staticClass:\"m-0 p-0\",attrs:{\"label\":\"Todos\",\"value\":null,\"hide-details\":true}}),_vm._l((_vm.priorities),function(item){return _c('v-radio',{key:(\"cbPriority-\" + (item.idActivityPriority)),staticClass:\"m-0 p-0\",attrs:{\"label\":item.title,\"value\":item.idActivityPriority,\"hide-details\":true}})})],2)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport ConfigsService from \"@/services/api/configs.service\";\r\nimport {\r\n ActivityTypeDto,\r\n ActivityStatusDto,\r\n ActivityPriorityDto,\r\n LanguageDto,\r\n ActivityAreaDto\r\n} from \"@/server/app.dtos\";\r\n\r\n@Component\r\nexport default class ActivitiesMenuList extends Vue {\r\n @Prop() activityArea!: ActivityAreaDto;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n @Watch(\"activityArea\", { deep: true })\r\n onActivityAreaChanged() {\r\n this.Load();\r\n }\r\n @Watch(\"currentTypeId\")\r\n @Watch(\"currentStatusId\")\r\n @Watch(\"currentPriorityId\")\r\n onChanged() {\r\n if (this.ignoreRender) {\r\n this.ignoreRender = false;\r\n return;\r\n }\r\n const p = Object.assign({}, this.$route.query, {\r\n skip: 0,\r\n idActivityType: this.currentTypeId,\r\n idActivityStatus: this.currentStatusId,\r\n idActivityPriority: this.currentPriorityId\r\n });\r\n this.$router.push({ query: p });\r\n }\r\n configsService: ConfigsService = new ConfigsService();\r\n status: ActivityStatusDto[] = [];\r\n types: ActivityTypeDto[] = [];\r\n priorities: ActivityPriorityDto[] = [];\r\n\r\n ignoreRender: boolean = true;\r\n currentTypeId: number | null = null;\r\n currentStatusId: number | null = null;\r\n currentPriorityId: number | null = null;\r\n\r\n async created() {\r\n await this.Load();\r\n }\r\n\r\n async Load() {\r\n let query: string = \"IdLanguage=\" + this.currentLanguage.idLanguage;\r\n if (this.activityArea != null) {\r\n query += \"&IdActivityArea=\" + this.activityArea.idActivityArea;\r\n }\r\n\r\n await this.configsService\r\n .Load(\"api/activitystatus\", query)\r\n .then(result => (this.status = result));\r\n\r\n await this.configsService\r\n .Load(\"api/activitytypes\", query)\r\n .then(result => (this.types = result));\r\n\r\n await this.configsService\r\n .Load(\r\n \"api/activitypriorities\",\r\n \"IdLanguage=\" + this.currentLanguage.idLanguage\r\n )\r\n .then(result => (this.priorities = result))\r\n .finally(() => {\r\n if (this.$route.query) {\r\n const q = this.$route.query;\r\n if (q.idActivityType) {\r\n this.currentTypeId = parseInt(q.idActivityType as string);\r\n }\r\n if (q.idActivityStatus) {\r\n this.currentStatusId = parseInt(q.idActivityStatus as string);\r\n }\r\n if (q.idActivityPriority) {\r\n this.currentPriorityId = parseInt(q.idActivityPriority as string);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MenuList.vue?vue&type=template&id=83ccba0a&\"\nimport script from \"./MenuList.vue?vue&type=script&lang=ts&\"\nexport * from \"./MenuList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\ninstallComponents(component, {VRadio})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-dialog',{attrs:{\"max-width\":\"600\"},model:{value:(_vm.enableDialog),callback:function ($$v) {_vm.enableDialog=$$v},expression:\"enableDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Confirmação\")]),_c('v-card-text',{staticClass:\"d-flex flex-wrap\"},[_c('v-text-field',{staticClass:\"col-12\",attrs:{\"label\":\"Descrição\"},model:{value:(_vm.finalizeLogTime.description),callback:function ($$v) {_vm.$set(_vm.finalizeLogTime, \"description\", $$v)},expression:\"finalizeLogTime.description\"}}),_c('v-switch',{attrs:{\"label\":\"Faturavel\"},model:{value:(_vm.finalizeLogTime.isBillable),callback:function ($$v) {_vm.$set(_vm.finalizeLogTime, \"isBillable\", $$v)},expression:\"finalizeLogTime.isBillable\"}})],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.enableDialog = false}}},[_vm._v(\"Cancelar\")]),_c('v-btn',{attrs:{\"color\":\"red\"},on:{\"click\":_vm.completeLogTime}},[_vm._v(\"Parar Log\")])],1)],1)],1),_c('div',[(_vm.logTime != null)?_c('div',{staticClass:\"log log-timer pb-1 d-flex\"},[_c('span',{staticClass:\"las la-stopwatch v-icon mr-2\"}),_vm._v(_vm._s(_vm._f(\"duration\")(_vm.seconds)))]):_vm._e(),_c('div',{staticClass:\"text-center\"},[(_vm.logTime == null)?_c('v-btn',{staticClass:\"log log-btn\",attrs:{\"loading\":_vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick(0)}}},[_c('span',{staticClass:\"las la-play v-icon\"}),_vm._v(\"Iniciar Log\")]):_vm._e(),(_vm.logTime != null && !_vm.isActive)?_c('v-btn',{staticClass:\"log log-btn mr-3\",attrs:{\"loading\":_vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick(0)}}},[_c('span',{staticClass:\"las la-play v-icon\"}),_vm._v(\"Retomar\")]):_vm._e(),(_vm.isActive)?_c('v-btn',{staticClass:\"log log-btn mr-3\",attrs:{\"loading\":_vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick(1)}}},[_c('span',{staticClass:\"las la-pause v-icon\"}),_vm._v(\"Pausa\")]):_vm._e(),(_vm.logTime != null)?_c('v-btn',{staticClass:\"log log-btn mr-3\",attrs:{\"loading\":_vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick(2)}}},[_c('span',{staticClass:\"las la-stop v-icon\"}),_vm._v(\"Parar\")]):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { StartActivityLogtimeWorkCommand, CompleteActivityLogtimeWorkCommand, PauseActivityLogtimeWorkCommand } from \"@/server/app.commands\";\r\nimport { ActivityDto, ActivityLogtimeWorkDto, LanguageDto } from \"@/server/app.dtos\";\r\nimport { GetLastActivityLogtimeWorkDtoQuery } from \"@/server/app.queries\";\r\nimport { ActivitiesService } from \"@/services/api/activities.service\";\r\nimport { NotificationServiceBus } from \"@/services/bus/notifications.service\";\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from 'vuex-class';\r\n\r\n@Component\r\nexport default class ActivityLogtimeButtonComponent extends Vue {\r\n @Prop() activity!: ActivityDto;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n activitiesService: ActivitiesService = new ActivitiesService();\r\n isLoading: boolean = false;\r\n enableDialog:boolean = false;\r\n logTime: ActivityLogtimeWorkDto | null = null;\r\n isActive:boolean =false;\r\n seconds:number = 0;\r\n finalizeLogTime: any = {\r\n description:\"\",\r\n isBillable:false\r\n }\r\n get hasLogFile(): boolean {\r\n return this.logTime != null;\r\n }\r\n\r\n async created() {\r\n await this.loadLogtime();\r\n setInterval(()=>{\r\n if(this.isActive) {\r\n this.seconds++;\r\n }\r\n },1000);\r\n }\r\n\r\n async loadLogtime() {\r\n if (this.isLoading)\r\n return;\r\n this.isLoading = true;\r\n const request = new GetLastActivityLogtimeWorkDtoQuery();\r\n request.idActivity = this.activity.idActivity;\r\n await this.activitiesService\r\n .GetLastLogtime(request)\r\n .then((result: ActivityLogtimeWorkDto) => {\r\n this.logTime = result;\r\n this.isActive = this.logTime !=null ? this.logTime.isActive as boolean : false;\r\n this.seconds = this.logTime !=null ? this.logTime.seconds as number : 0;\r\n })\r\n .catch(() => {this.logTime = null; this.isActive = false; this.seconds=0})\r\n .finally(() => this.isLoading = false);\r\n }\r\n\r\n async startLogtime() {\r\n if (this.isLoading)\r\n return;\r\n this.isLoading = true;\r\n const command = new StartActivityLogtimeWorkCommand();\r\n command.idActivity = this.activity.idActivity;\r\n await this.activitiesService\r\n .StartLogtime(command)\r\n .catch((e) => {\r\n this.logTime = null;\r\n NotificationServiceBus.showErrorMessage(\r\n \"Erro\",\r\n e.response.data[0].message\r\n );\r\n })\r\n .finally(() => {this.isLoading= false; this.loadLogtime()});\r\n }\r\n\r\n async completeLogTime() {\r\n if (this.isLoading)\r\n return;\r\n this.isLoading = true;\r\n \r\n const command = new CompleteActivityLogtimeWorkCommand();\r\n command.idActivity = this.activity.idActivity;\r\n command.description = this.finalizeLogTime.description;\r\n command.isBillable = this.finalizeLogTime.isBillable;\r\n await this.activitiesService\r\n .CompleteLogtime(command)\r\n .then(() => {\r\n this.enableDialog = false;\r\n \r\n this.finalizeLogTime.description = \"\";\r\n this.finalizeLogTime.isBillable = false;\r\n })\r\n .finally(() => {this.isLoading = false; this.loadLogtime();});\r\n }\r\n\r\n async pauseLogTime() {\r\n if (this.isLoading)\r\n return;\r\n this.isLoading = true;\r\n \r\n const command = new PauseActivityLogtimeWorkCommand();\r\n command.idActivity = this.activity.idActivity;\r\n await this.activitiesService\r\n .PauseLogtime(command)\r\n .catch(() => (this.logTime = null))\r\n .finally(() => {this.isLoading= false; this.loadLogtime()});\r\n }\r\n\r\n async onClick(index:number){\r\n switch(index) { \r\n case 0: { \r\n await this.startLogtime();\r\n break; \r\n } \r\n case 1: { \r\n await this.pauseLogTime(); \r\n break; \r\n }\r\n case 2: { \r\n this.enableDialog = true; \r\n break; \r\n } \r\n default: { \r\n //statements; \r\n break; \r\n } \r\n } \r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityLogtime.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityLogtime.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActivityLogtime.vue?vue&type=template&id=5120a9b1&scoped=true&\"\nimport script from \"./ActivityLogtime.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActivityLogtime.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ActivityLogtime.vue?vue&type=style&index=0&id=5120a9b1&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5120a9b1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VSpacer,VSwitch,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Watch } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { mixins } from \"vue-class-component\";\r\nimport { LanguageDto, ActivityAreaDto, ActivityDto, ActivityStatusDto } from \"@/server/app.dtos\";\r\nimport SideComponent from \"@/models/shared/side.component\";\r\nimport { LayoutServiceBus } from \"@/services/bus/layout.service\";\r\nimport { ActivitiesService } from \"@/services/api/activities.service\";\r\nimport {\r\n GetActivitiesDtosQuery,\r\n GetActivitiesDtosIncludeOptions,\r\n GetActivitiesDtosOrderOptions\r\n} from \"@/server/app.queries\";\r\nimport { ListResponse } from \"@/models/grids/list.response\";\r\nimport {\r\n ServerGrid,\r\n DataServerGridOptions\r\n} from \"@/components/mixins/ServerGridMixins\";\r\nimport ActivitiesMenuList from \"./shared/MenuList.vue\";\r\nimport ActivitiesMenuFilters from \"./shared/MenuFilters.vue\";\r\nimport ActivityLogtimeButtonComponent from '@/components/buttons/ActivityLogtime.vue';\r\nimport ConfigsService from '@/services/api/configs.service';\r\nimport { ChangeActivityStatusCommand } from '@/server/app.commands';\r\n\r\n\r\n@Component({\r\n components: {\r\n LeftMenu: ActivitiesMenuList,\r\n FiltersMenu: ActivitiesMenuFilters,\r\n ActivityLogtimeButton: ActivityLogtimeButtonComponent\r\n }\r\n})\r\nexport default class ActivitiesListPage extends mixins(ServerGrid) {\r\n configsService: ConfigsService = new ConfigsService();\r\n @Getter(\"activityAreas\") activityAreas!: ActivityAreaDto[];\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n @Watch(\"$route\", { deep: true })\r\n onRouteChange() {\r\n this.Load();\r\n }\r\n area: ActivityAreaDto | null = null;\r\n activityStatus: ActivityStatusDto[] = [];\r\n activitiesService: ActivitiesService = new ActivitiesService();\r\n\r\n constructor() {\r\n super();\r\n this.gridConfigs = new DataServerGridOptions();\r\n }\r\n\r\n async created() {\r\n this.LoadArea();\r\n await this.Load();\r\n }\r\n\r\n handleClick(activity:any){\r\n this.viewActivity(activity);\r\n }\r\n\r\n async LoadArea() {\r\n const id = this.$route.params.id;\r\n if (id) {\r\n const a = this.activityAreas.find(\r\n (i: ActivityAreaDto) => i.idActivityArea === parseInt(id)\r\n );\r\n if (a != null) {\r\n this.area = a;\r\n }\r\n }\r\n this.gridConfigs.columns = [\r\n {\r\n text: \"\",\r\n value: \"idActivityPriority\",\r\n class: [\"icon-column\"],\r\n sortable: false,\r\n align: \"center\"\r\n },\r\n {\r\n text: \"Tipo\",\r\n value: \"activityType.title\"\r\n },\r\n {\r\n text: \"Estado\",\r\n value: \"idActivityStatus\",\r\n class:\"w-15\"\r\n },\r\n {\r\n text: \"Designação\",\r\n value: \"title\",\r\n filterable: true,\r\n filterItem: this.$route.query.title\r\n },\r\n {\r\n text: \"Data execução\",\r\n value: \"dateStart\"\r\n },\r\n {\r\n text: \"Envolvidos\",\r\n value: \"assignees\"\r\n }\r\n ];\r\n\r\n if(this.area?.hasLogTime as boolean){\r\n this.gridConfigs.columns.push(\r\n {\r\n text: \"Log time\",\r\n value: \"hasLogTime\",\r\n align: \"center\"\r\n })\r\n }\r\n\r\n this.gridConfigs.columns.push({\r\n text: \"\",\r\n value: \"idActivity\",\r\n align: \"end\"\r\n });\r\n\r\n this.GridInit();\r\n await this.LoadStatus();\r\n }\r\n \r\n async editStatus(item: ActivityDto) {\r\n const command = new ChangeActivityStatusCommand();\r\n command.idActivity = item.idActivity;\r\n command.idActivityStatus = item.idActivityStatus;\r\n await this.activitiesService\r\n .ChangeStatus(command)\r\n .then()\r\n .catch((error: any) => console.log(error));\r\n }\r\n\r\n async Load() {\r\n const request = new GetActivitiesDtosQuery();\r\n request.init(this.$route.query);\r\n request.includes = new GetActivitiesDtosIncludeOptions();\r\n request.includes.activityType = true;\r\n request.includes.activityArea = true;\r\n request.includes.activityStatus = true;\r\n request.includes.activityPriority = true;\r\n request.includes.assignees = true;\r\n request.includes.tags = true;\r\n request.idActivityArea = this.area?.idActivityArea;\r\n request.orderBy = GetActivitiesDtosOrderOptions.DateStartDesc;\r\n if (!request.take || request.take <= 0) {\r\n request.skip = 0;\r\n request.take = this.gridConfigs.pageSize;\r\n }\r\n this.GridSetLoading(true);\r\n await this.activitiesService\r\n .GetList(request)\r\n .then((result: ListResponse) => this.GridLoad(result))\r\n .catch((error: any) => console.log(error))\r\n .finally(() => this.GridSetLoading(false));\r\n }\r\n \r\n async LoadStatus() {\r\n // Load ActivityStatus\r\n await this.configsService.Load(\"api/activitystatus\", \"idLanguage=\" + this.currentLanguage.idLanguage + \"&idActivityArea=\" + this.area?.idActivityArea).then(result => {\r\n this.activityStatus = result;\r\n });\r\n }\r\n\r\n viewActivity(activity: ActivityDto): void {\r\n const comp = new SideComponent();\r\n comp.title = \"DetailActivitySideMenuComponent\";\r\n comp.args = {\r\n activity: activity\r\n };\r\n LayoutServiceBus.openSideMenu(comp);\r\n }\r\n\r\n createActivity(): void {\r\n const comp = new SideComponent();\r\n comp.title = \"CreateActivitySideMenuComponent\";\r\n comp.args = {\r\n activityArea: this.area\r\n };\r\n LayoutServiceBus.openSideMenu(comp);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./List.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./List.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./List.vue?vue&type=template&id=6417f014&scoped=true&\"\nimport script from \"./List.vue?vue&type=script&lang=ts&\"\nexport * from \"./List.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6417f014\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VPagination } from 'vuetify/lib/components/VPagination';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VDataTable,VPagination,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('Panel',{attrs:{\"title\":false,\"footer\":false}},[_c('v-form',{ref:\"form\",staticClass:\"add__comment\",attrs:{\"action\":\"/\",\"method\":\"post\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.onCreateActivityComment($event)}},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"mb-3\"},[_vm._v(\"Adicionar comentário:\")]),_c('v-textarea',{attrs:{\"name\":\"Description\",\"rows\":\"4\",\"outlined\":\"\",\"label\":\"O seu comentário\",\"rules\":[_vm.$rules.minLenght(5)]},model:{value:(_vm.comment.message),callback:function ($$v) {_vm.$set(_vm.comment, \"message\", $$v)},expression:\"comment.message\"}}),_c('div',{staticClass:\"d-flex k-align-center justify-space-between\"},[_c('v-checkbox',{attrs:{\"hide-details\":true,\"label\":\"Comentário Público\"},model:{value:(_vm.comment.isPublic),callback:function ($$v) {_vm.$set(_vm.comment, \"isPublic\", $$v)},expression:\"comment.isPublic\"}}),_c('v-btn',{attrs:{\"disabled\":!_vm.isValid,\"loading\":_vm.isLoading,\"color\":\"primary\",\"type\":\"submit\"}},[_vm._v(\"Confirmar\")])],1)],1),_c('hr',{staticClass:\"my-4\"}),(_vm.allComments.length > 0)?_c('div',{staticClass:\"comments__list\"},_vm._l((_vm.allComments),function(item,index){return _c('div',{key:item.idActivityComment,staticClass:\"row k-align-center comments__list__item\",class:!_vm.isEven(index) ? 'left-side' : 'right-side'},[(!_vm.isEven(index))?_c('div',{staticClass:\"col-2\"},[(item.user)?_c('div',{staticClass:\"comments__list__item--img\"},[_c('UserBadge',{attrs:{\"badge\":item.user}})],1):_vm._e()]):_vm._e(),_c('div',{staticClass:\"col-8\",class:_vm.isEven(index) ? 'offset-2' : ''},[_c('div',{staticClass:\"size--s12 comments__list__item--time\"},[_c('strong',[_vm._v(_vm._s(_vm._f(\"datetime\")(item.dateCreated)))]),_vm._v(\"- \"),(item.user)?_c('span',[_vm._v(_vm._s(item.user.name))]):_c('i',[_vm._v(\"Utilizador Eliminado\")]),_vm._v(\" escreveu \")]),_c('div',{staticClass:\"comments__list__item--text bg--comment\",domProps:{\"innerHTML\":_vm._s(item.message)}})]),(_vm.isEven(index))?_c('div',{staticClass:\"col-2\"},[(item.user)?_c('div',{staticClass:\"comments__list__item--img\"},[_c('UserBadge',{attrs:{\"badge\":item.user}})],1):_vm._e()]):_vm._e()])}),0):_c('v-alert',{attrs:{\"dense\":\"\",\"text\":\"\",\"type\":\"info\"}},[_vm._v(\" Não existem \"),_c('strong',[_vm._v(\"comentários\")]),_vm._v(\" registados. \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport {\r\n LanguageDto,\r\n ActivityDto,\r\n ActivityCommentDto\r\n} from \"@/server/app.dtos\";\r\nimport { ActivitiesCommentsService } from \"@/services/api/activities.comments.service\";\r\nimport { CreateActivityCommentCommand } from \"@/server/app.commands\";\r\nimport { GetActivityCommentsDtosQuery } from \"@/server/app.queries\";\r\nimport { NotificationServiceBus } from \"@/services/bus/notifications.service\";\r\nimport { ListResponse } from \"@/models/grids/list.response\";\r\n\r\n@Component\r\nexport default class ActivityDetailCommentsPage extends Vue {\r\n @Prop() activity!: ActivityDto;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n activitiesCommentsService: ActivitiesCommentsService = new ActivitiesCommentsService();\r\n comment: CreateActivityCommentCommand = new CreateActivityCommentCommand();\r\n allComments: ActivityCommentDto[] = [];\r\n isLoading: boolean = false;\r\n isValid: boolean = false;\r\n\r\n async created() {\r\n await this.LoadComments();\r\n }\r\n\r\n async LoadComments() {\r\n if (this.isLoading) return;\r\n const query = new GetActivityCommentsDtosQuery();\r\n query.idLanguage = this.currentLanguage.idLanguage;\r\n query.idActivity = this.activity.idActivity;\r\n this.isLoading = true;\r\n await this.activitiesCommentsService\r\n .GetComments(query)\r\n .then((result: ListResponse) => {\r\n this.allComments = result.data;\r\n })\r\n .catch((error: any) => NotificationServiceBus.showError(error))\r\n .finally(() => (this.isLoading = false));\r\n }\r\n\r\n async onCreateActivityComment() {\r\n if (this.isLoading) return;\r\n this.isLoading = true;\r\n this.comment.idActivity = this.activity.idActivity;\r\n await this.activitiesCommentsService\r\n .CreateComment(this.comment)\r\n .then(async () => {\r\n this.isLoading = false;\r\n NotificationServiceBus.showSuccessMessage(\r\n \"Sucesso\",\r\n \"Operação efetuada com sucessso\"\r\n );\r\n this.comment.message = \"\";\r\n this.comment.isPublic = false;\r\n (this.$refs.form as any).resetValidation();\r\n await this.LoadComments();\r\n })\r\n .catch((error: any) => {\r\n this.isLoading = false;\r\n NotificationServiceBus.showError(error);\r\n });\r\n }\r\n\r\n isEven(index: number): boolean {\r\n return index % 2 == 1;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Comments.vue?vue&type=template&id=6f99beee&scoped=true&\"\nimport script from \"./Comments.vue?vue&type=script&lang=ts&\"\nexport * from \"./Comments.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Comments.vue?vue&type=style&index=0&id=6f99beee&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f99beee\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VAlert,VBtn,VCheckbox,VForm,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"listing__box__item pb-3\"},[_vm._m(0),_c('v-form',{staticClass:\"listing__box__item-search\",on:{\"submit\":function($event){$event.preventDefault();return _vm.onSearch($event)}}},[_c('v-text-field',{attrs:{\"label\":\"Pesquisar …\",\"prepend-inner-icon\":\"las la-search\",\"rounded\":\"\",\"single-line\":\"\",\"solo\":\"\",\"clearable\":true},on:{\"click:prepend-inner\":_vm.onSearch,\"click:clear\":_vm.onClear},model:{value:(_vm.s),callback:function ($$v) {_vm.s=$$v},expression:\"s\"}})],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"listing__box__item-icon icon-sm bg-primary\"},[_c('span',{staticClass:\"las la-plus\"})])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class SearchTimelineEntryComponent extends Vue {\r\n s: string | null = \"\";\r\n\r\n @Watch(\"$route.query.search\")\r\n onSearchChanged(): void {\r\n if (this.$route.query.search) {\r\n this.s = this.$route.query.search as string;\r\n }\r\n }\r\n\r\n created() {\r\n if (this.$route.query.search) {\r\n this.s = this.$route.query.search as string;\r\n }\r\n }\r\n\r\n onSearch(): void {\r\n const p = Object.assign({}, this.$route.query, {\r\n search: this.s\r\n });\r\n this.$router.push({ query: p }).catch(() => {\r\n return;\r\n });\r\n }\r\n\r\n onClear(): void {\r\n const p = Object.assign({}, this.$route.query, {\r\n search: \"\"\r\n });\r\n this.$router.push({ query: p }).catch(() => {\r\n return;\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchTimelineEntry.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchTimelineEntry.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchTimelineEntry.vue?vue&type=template&id=07e5190a&scoped=true&\"\nimport script from \"./SearchTimelineEntry.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchTimelineEntry.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchTimelineEntry.vue?vue&type=style&index=0&id=07e5190a&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07e5190a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VForm,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filters__bar\"},[_c('div',{staticClass:\"filters__bar--box mb-4\"},[_c('v-radio-group-extended',{staticClass:\"m-0 p-0\",attrs:{\"mandatory\":false,\"column\":false,\"hide-details\":true},model:{value:(_vm.period),callback:function ($$v) {_vm.period=$$v},expression:\"period\"}},_vm._l((_vm.periodOptions),function(item){return _c('v-radio',{key:(\"cbPeriod-\" + (item.value)),staticClass:\"m-0 p-0 mr-10\",attrs:{\"label\":item.title,\"value\":item.value,\"hide-details\":true}})}),1)],1),_c('div',{staticClass:\"filters__bar--box mb-4\"},[_c('v-radio-group-extended',{staticClass:\"m-0 p-0\",attrs:{\"mandatory\":false,\"column\":false,\"hide-details\":true},model:{value:(_vm.privacy),callback:function ($$v) {_vm.privacy=$$v},expression:\"privacy\"}},_vm._l((_vm.privacyOptions),function(item){return _c('v-radio',{key:(\"cbPrivacy-\" + (item.value)),staticClass:\"m-0 p-0 mr-10\",attrs:{\"label\":item.title,\"value\":item.value,\"hide-details\":true}})}),1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\r\nimport {\r\n GetActivitiesDtosPrivacyOptions,\r\n GetActivitiesDtosPeriodOptions\r\n} from \"@/server/app.queries\";\r\n\r\n@Component\r\nexport default class ActivitiesMenuFilters extends Vue {\r\n period: any = null;\r\n privacy: any = null;\r\n // ignoreRender: boolean = true;\r\n privacyOptions: any[] = [];\r\n periodOptions: any[] = [];\r\n\r\n constructor() {\r\n super();\r\n Object.keys(GetActivitiesDtosPrivacyOptions)\r\n .filter(\r\n (key: any) => !isNaN(Number(GetActivitiesDtosPrivacyOptions[key]))\r\n )\r\n .forEach((key: any) =>\r\n this.privacyOptions.push({\r\n title: key,\r\n value: GetActivitiesDtosPrivacyOptions[key]\r\n })\r\n );\r\n\r\n Object.keys(GetActivitiesDtosPeriodOptions)\r\n .filter((key: any) => !isNaN(Number(GetActivitiesDtosPeriodOptions[key])))\r\n .forEach((key: any) => {\r\n this.periodOptions.push({\r\n title: key,\r\n value: Number(GetActivitiesDtosPeriodOptions[key])\r\n });\r\n });\r\n\r\n this.period = this.$route.query.period\r\n ? Number(this.$route.query.period)\r\n : null;\r\n this.privacy = this.$route.query.privacy\r\n ? Number(this.$route.query.privacy)\r\n : null;\r\n }\r\n\r\n @Watch(\"period\")\r\n @Watch(\"orderBy\")\r\n @Watch(\"privacy\")\r\n onChanged() {\r\n // if (this.ignoreRender) {\r\n // this.ignoreRender = false;\r\n // return;\r\n // }\r\n const p = Object.assign({}, this.$route.query, {\r\n skip: 0,\r\n period: this.period,\r\n privacy: this.privacy\r\n });\r\n this.$router.push({ query: p });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuFilters.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuFilters.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MenuFilters.vue?vue&type=template&id=5089518a&scoped=true&\"\nimport script from \"./MenuFilters.vue?vue&type=script&lang=ts&\"\nexport * from \"./MenuFilters.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MenuFilters.vue?vue&type=style&index=0&id=5089518a&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5089518a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\ninstallComponents(component, {VRadio})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DataGrid',{attrs:{\"endpoint\":(\"api/Activities/\" + (_vm.activity.idActivity) + \"/logtimes\"),\"columns\":_vm.columns,\"primary\":_vm.primary,\"folder\":(\"/activities/\" + (_vm.activity.idActivity) + \"/files\"),\"enableLanguages\":false}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { LanguageDto, ActivityDto } from \"@/server/app.dtos\";\r\nimport { GridColumn, GridColumnTypes } from \"@/models/grids/column\";\r\n\r\n@Component\r\nexport default class ActivityDetailLogTimesPage extends Vue {\r\n @Prop() activity!: ActivityDto;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n\r\n columns: GridColumn[] = [\r\n {\r\n text: \"Data de Inicio\",\r\n value: \"dateStart\",\r\n type: GridColumnTypes.DateTime,\r\n editable: true,\r\n editableClass: \"col-6\",\r\n editableRules: [this.$rules.minLenght(3)]\r\n },\r\n {\r\n text: \"Data de Fim\",\r\n value: \"dateEnd\",\r\n type: GridColumnTypes.DateTime,\r\n editable: true,\r\n editableClass: \"col-6\",\r\n editableRules: [this.$rules.minLenght(3)]\r\n },\r\n {\r\n text: \"Descrição\",\r\n value: \"description\",\r\n type: GridColumnTypes.Text,\r\n editable: true,\r\n editableClass: \"col-12\",\r\n editableRules: [this.$rules.minLenght(3)]\r\n },\r\n {\r\n text: \"Faturavel\",\r\n value: \"isBillable\",\r\n type: GridColumnTypes.Boolean,\r\n editable: true,\r\n editableClass: \"col-12\"\r\n }\r\n ];\r\n primary: string = \"idActivityLogtime\";\r\n\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogTimes.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogTimes.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LogTimes.vue?vue&type=template&id=17ee36d8&\"\nimport script from \"./LogTimes.vue?vue&type=script&lang=ts&\"\nexport * from \"./LogTimes.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('Subheader',[_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[_c('Breadcrumb',{attrs:{\"routes\":['Actividades', 'Dashboard']}}),_c('DateClock')],1),_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[_c('h1',[_vm._v(\"Feed das actividades\")]),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"rounded\":\"\"}},'v-btn',attrs,false),on),[_c('i',{staticClass:\"las la-plus\"}),_vm._v(\" Adicionar \")])]}}])},[_c('v-list',_vm._l((_vm.areas),function(item){return _c('v-list-item',{key:item.idActivityArea,on:{\"click\":function($event){return _vm.createActivity(item)}}},[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)}),1)],1)],1)]),_c('LeftMenuLayout',{scopedSlots:_vm._u([{key:\"Menu\",fn:function(){return [_c('LeftMenu')]},proxy:true}])},[_c('FiltersMenu'),(!_vm.isLoading)?_c('div',{staticClass:\"listing\"},[_c('div',{staticClass:\"listing__box pb-5\"},[_c('SearchEntry'),(_vm.entries.length > 0)?_c('div',_vm._l((_vm.entries),function(entry){return _c('Entry',{key:entry.idActivity,attrs:{\"activity\":entry}},[_c('button',{staticClass:\"action border-bottom border-gray py-2 px-3 d-flex align-center\",on:{\"click\":function($event){$event.preventDefault();return _vm.viewActivity(entry)}}},[_c('i',{staticClass:\"las la-check size--s20 mr-2\"}),_c('span',[_vm._v(\"Lido\")])]),_c('button',{staticClass:\"action border-bottom border-gray py-2 px-3 d-flex align-center\",on:{\"click\":function($event){$event.preventDefault();return _vm.viewActivity(entry)}}},[_c('i',{staticClass:\"las la-search-plus size--s20 mr-2\"}),_c('span',[_vm._v(\"Ver detalhes\")])])])}),1):_c('div',{staticClass:\"text-center bg-white p-3\"},[_c('strong',[_vm._v(\"Não existem resultados\")])])],1)]):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Watch, Vue } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { LanguageDto, ActivityDto, ActivityAreaDto } from \"@/server/app.dtos\";\r\nimport SideComponent from \"@/models/shared/side.component\";\r\nimport { LayoutServiceBus } from \"@/services/bus/layout.service\";\r\nimport { ActivitiesService } from \"@/services/api/activities.service\";\r\nimport {\r\n GetActivitiesDtosQuery,\r\n GetActivitiesDtosIncludeOptions,\r\n GetActivitiesDtosOrderOptions\r\n} from \"@/server/app.queries\";\r\nimport { ListResponse } from \"@/models/grids/list.response\";\r\nimport ActivitiesMenuGlobal from \"./shared/MenuGlobal.vue\";\r\nimport ActivitiesMenuFilters from \"./shared/MenuFilters.vue\";\r\nimport ActivityTimelienEntry from \"@/components/timelines/ActivityTimelineEntry.vue\";\r\nimport SearchTimelienEntry from \"@/components/timelines/SearchTimelineEntry.vue\";\r\n\r\n@Component({\r\n components: {\r\n SearchEntry: SearchTimelienEntry,\r\n Entry: ActivityTimelienEntry,\r\n LeftMenu: ActivitiesMenuGlobal,\r\n FiltersMenu: ActivitiesMenuFilters\r\n }\r\n})\r\nexport default class ActivitiesListPage extends Vue {\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n @Getter(\"activityAreas\") areas!: ActivityAreaDto[];\r\n @Watch(\"$route\", { deep: true })\r\n onRouteChange() {\r\n this.Load();\r\n }\r\n isLoading: boolean = false;\r\n entries: ActivityDto[] = [];\r\n activitiesService: ActivitiesService = new ActivitiesService();\r\n\r\n async created() {\r\n await this.Load();\r\n }\r\n\r\n async Load() {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n const request = new GetActivitiesDtosQuery();\r\n request.init(this.$route.query);\r\n request.includes = new GetActivitiesDtosIncludeOptions();\r\n request.includes.activityType = true;\r\n request.includes.activityArea = true;\r\n request.includes.activityStatus = true;\r\n request.includes.activityPriority = true;\r\n request.includes.assignees = true;\r\n request.orderBy = GetActivitiesDtosOrderOptions.DateStartDesc;\r\n request.take = 20;\r\n await this.activitiesService\r\n .GetList(request)\r\n .then((result: ListResponse) => (this.entries = result.data))\r\n .catch((error: any) => console.log(error))\r\n .finally(() => (this.isLoading = false));\r\n }\r\n\r\n viewActivity(activity: ActivityDto): void {\r\n const comp = new SideComponent();\r\n comp.title = \"DetailActivitySideMenuComponent\";\r\n comp.args = {\r\n activity: activity\r\n };\r\n LayoutServiceBus.openSideMenu(comp);\r\n }\r\n\r\n createActivity(area: ActivityAreaDto): void {\r\n const comp = new SideComponent();\r\n comp.title = \"CreateActivitySideMenuComponent\";\r\n comp.args = {\r\n activityArea: area\r\n };\r\n LayoutServiceBus.openSideMenu(comp);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=e397f1be&scoped=true&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e397f1be\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VList,VListItem,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{staticClass:\"card card-create\",on:{\"submit\":function($event){$event.preventDefault();return _vm.onCreateActivity($event)}},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"card-header\"},[(_vm.area)?_c('span',[_vm._v(\"Adicionar \"+_vm._s(_vm.area.title))]):_c('span',[_vm._v(\"Adicionar\")]),_c('button',{staticClass:\"btn btn-link text-decoration-none p-0\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.close($event)}}},[_c('span',{staticClass:\"las la-times size--s30\"})])]),(_vm.area)?_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"card--box\"},[_c('div',{staticClass:\"mb-4\"},[_c('v-text-field',{attrs:{\"label\":\"Designação do evento*\",\"rules\":[_vm.$rules.required],\"required\":\"\"},model:{value:(_vm.instance.title),callback:function ($$v) {_vm.$set(_vm.instance, \"title\", $$v)},expression:\"instance.title\"}})],1),_c('div',{staticClass:\"mb-2\"},[_c('label',[_vm._v(\"Tipo*\")])]),_c('div',{staticClass:\"mb-2\"},_vm._l((_vm.activityTypes),function(type){return _c('v-chip',{key:(\"Type-\" + (type.idActivityType)),staticClass:\"mr-2\",attrs:{\"label\":\"\",\"color\":_vm.currentType == type.idActivityType ? 'primary' : ''},on:{\"click\":function($event){_vm.currentType = type.idActivityType}}},[_vm._v(_vm._s(type.title))])}),1),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('v-autocomplete',{attrs:{\"item-text\":'title',\"item-value\":'idActivityStatus',\"label\":'Estado*',\"items\":_vm.activityStatus,\"rules\":[_vm.$rules.required]},model:{value:(_vm.instance.idActivityStatus),callback:function ($$v) {_vm.$set(_vm.instance, \"idActivityStatus\", $$v)},expression:\"instance.idActivityStatus\"}})],1),_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('v-autocomplete',{attrs:{\"item-text\":'title',\"item-value\":'idActivityPriority',\"label\":\"Prioridade*\",\"items\":_vm.activityPriorities,\"rules\":[_vm.$rules.required]},model:{value:(_vm.instance.idActivityPriority),callback:function ($$v) {_vm.$set(_vm.instance, \"idActivityPriority\", $$v)},expression:\"instance.idActivityPriority\"}})],1)]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('label',[_vm._v(\"Data de início*\")]),_c('DateTimePicker',{attrs:{\"required\":\"\",\"rules\":[_vm.$rules.required]},model:{value:(_vm.instance.dateStart),callback:function ($$v) {_vm.$set(_vm.instance, \"dateStart\", $$v)},expression:\"instance.dateStart\"}})],1),(_vm.area.allowDateEnd)?_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('label',[_vm._v(\"Data de fim\")]),_c('DateTimePicker',{model:{value:(_vm.instance.dateEnd),callback:function ($$v) {_vm.$set(_vm.instance, \"dateEnd\", $$v)},expression:\"instance.dateEnd\"}})],1):_vm._e()]),(_vm.users)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('DatePicker',{attrs:{\"label\":\"Data de Publicação\",\"clearable\":true,\"required\":\"\"},model:{value:(_vm.instance.datePublication),callback:function ($$v) {_vm.$set(_vm.instance, \"datePublication\", $$v)},expression:\"instance.datePublication\"}})],1),_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('v-autocomplete',{attrs:{\"item-text\":'name',\"item-value\":'idUser',\"label\":\"Responsável*\",\"items\":_vm.users,\"rules\":[_vm.$rules.required]},model:{value:(_vm.instance.idOwner),callback:function ($$v) {_vm.$set(_vm.instance, \"idOwner\", $$v)},expression:\"instance.idOwner\"}})],1)]):_vm._e(),_c('div',{staticClass:\"mb-2\"},[_c('v-autocomplete',{attrs:{\"item-text\":'name',\"item-value\":'idAppGroup',\"label\":\"Destinatários\",\"items\":_vm.appGroups,\"chips\":\"\",\"multiple\":\"\",\"clearable\":\"\",\"deletable-chips\":true},model:{value:(_vm.instance.appGroups),callback:function ($$v) {_vm.$set(_vm.instance, \"appGroups\", $$v)},expression:\"instance.appGroups\"}})],1),_c('SingleFileUploader',{attrs:{\"label\":\"Documento\",\"folder\":\"/Activities/Files\"},on:{\"select\":_vm.onSelectFile}})],1),_c('hr',{staticClass:\"mb-5\"}),_c('div',{staticClass:\"card--box\"},[_c('label',[_vm._v(\"Descrição\")]),_c('HTMLEditor',{attrs:{\"mode\":\"simple\"},model:{value:(_vm.instance.description),callback:function ($$v) {_vm.$set(_vm.instance, \"description\", $$v)},expression:\"instance.description\"}}),_c('div',{staticClass:\"d-flex align-items-center mt-3\"},[_c('v-checkbox',{attrs:{\"label\":\"Em Destaque\"},model:{value:(_vm.instance.isFeatured),callback:function ($$v) {_vm.$set(_vm.instance, \"isFeatured\", $$v)},expression:\"instance.isFeatured\"}})],1)],1),(_vm.metadataConfiguration)?_c('div',{staticClass:\"card--box\"},[_c('MetadataPresenter',{model:{value:(_vm.metadataConfiguration),callback:function ($$v) {_vm.metadataConfiguration=$$v},expression:\"metadataConfiguration\"}})],1):_vm._e()]):_vm._e(),_c('div',{staticClass:\"card-footer\"},[_c('div',{staticClass:\"card--box d-flex align-center justify-space-between\"},[_c('v-btn',{attrs:{\"disabled\":!_vm.isValid,\"loading\":_vm.isLoading,\"color\":\"primary\",\"type\":\"submit\"}},[_vm._v(\"Guardar\")]),_c('v-btn',{attrs:{\"text\":\"\",\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.close($event)}}},[_vm._v(\"Cancelar\")])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Watch } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport ConfigsService from \"@/services/api/configs.service\";\r\nimport { ActivitiesService } from \"@/services/api/activities.service\";\r\nimport { BaseSideComponent } from \"@/components/structure/MixinsSideComponent\";\r\nimport { NotificationServiceBus } from \"@/services/bus/notifications.service\";\r\nimport { UsersService } from \"@/services/api/users.service\";\r\nimport { CurrentUser } from \"@/models/auth/current.user\";\r\nimport {\r\n ActivityTypeDto,\r\n ActivityPriorityDto,\r\n ActivityStatusDto,\r\n UserDto,\r\n ActivityAreaDto,\r\n AppGroupDto,\r\n MetadataConfiguration\r\n} from \"@/server/app.dtos\";\r\nimport { CreateActivityCommand } from \"@/server/app.commands\";\r\nimport SingleFileUploaderComponent from \"@/components/uploaders/SingleFileUploader.vue\";\r\nimport { GetActivityAreaMetadataGroupsConfigurationDtoQuery } from \"@/server/app.queries\";\r\nimport { ActivitiesAreasService } from \"@/services/api/activities.areas.service\";\r\n\r\n@Component({\r\n components: {\r\n SingleFileUploader: SingleFileUploaderComponent\r\n }\r\n})\r\nexport default class CreateActivitySideMenuComponent extends BaseSideComponent {\r\n @Getter(\"identity\") identity!: CurrentUser;\r\n configsService: ConfigsService = new ConfigsService();\r\n activitiesService: ActivitiesService = new ActivitiesService();\r\n activitiesAreasService: ActivitiesAreasService = new ActivitiesAreasService();\r\n usersService: UsersService = new UsersService();\r\n activityTypes: ActivityTypeDto[] = [];\r\n activityPriorities: ActivityPriorityDto[] = [];\r\n activityStatus: ActivityStatusDto[] = [];\r\n users: UserDto[] | null = null;\r\n appGroups: AppGroupDto[] | null = null;\r\n instance: CreateActivityCommand = new CreateActivityCommand();\r\n metadataConfiguration: MetadataConfiguration | null = null;\r\n isLoading: boolean = false;\r\n isValid: boolean = false;\r\n currentType: number = 0;\r\n @Watch(\"currentType\")\r\n onCurrentChanged(): void {\r\n this.instance.idActivityType = this.currentType;\r\n }\r\n\r\n get area(): ActivityAreaDto | null {\r\n return this.args?.activityArea || null;\r\n }\r\n\r\n async created() {\r\n this.instance.idActivityArea = this.area?.idActivityArea;\r\n this.instance.idActivityType = this.currentType;\r\n this.instance.idOwner = this.identity.idUser;\r\n this.instance.dateStart = new Date().toISOString();\r\n await this.Load();\r\n }\r\n\r\n async Load() {\r\n let query: string = \"IdLanguage=\" + this.currentLanguage.idLanguage;\r\n if (this.area != null) {\r\n query += \"&IdActivityArea=\" + this.area.idActivityArea;\r\n }\r\n\r\n // Load ActivityStatus\r\n await this.configsService.Load(\"api/activitystatus\", query).then(result => {\r\n this.activityStatus = result;\r\n if (this.activityStatus.length > 0) {\r\n this.instance.idActivityStatus = this.activityStatus[0].idActivityStatus;\r\n }\r\n });\r\n\r\n // Load App Groups\r\n await this.configsService.Load(\"api/appgroups\", query).then(result => {\r\n this.appGroups = result;\r\n });\r\n\r\n // Load ActivityTypes\r\n await this.configsService.Load(\"api/activitytypes\", query).then(result => {\r\n this.activityTypes = result;\r\n if (this.activityTypes.length > 0) {\r\n this.currentType = this.activityTypes[0].idActivityType || 1;\r\n }\r\n });\r\n\r\n // Load ActivityPriorities\r\n await this.configsService\r\n .Load(\r\n \"api/activitypriorities\",\r\n \"IdLanguage=\" + this.currentLanguage.idLanguage\r\n )\r\n .then(result => {\r\n this.activityPriorities = result;\r\n if (this.activityPriorities.length > 0) {\r\n this.instance.idActivityPriority = this.activityPriorities[0].idActivityPriority;\r\n }\r\n });\r\n\r\n // Load Users\r\n await this.usersService\r\n .GetInternalUsers(this.currentLanguage)\r\n .then((users: UserDto[]) => (this.users = users));\r\n }\r\n\r\n async onCreateActivity() {\r\n if (this.isLoading) return;\r\n this.isLoading = true;\r\n await this.activitiesService\r\n .Create(this.instance)\r\n .then((id: number) => {\r\n NotificationServiceBus.showSuccessMessage(\r\n \"Sucesso\",\r\n \"Operação efetuada com sucessso\"\r\n );\r\n this.$router.push(`/activity/${id}`);\r\n })\r\n .catch((error: any) => NotificationServiceBus.showError(error))\r\n .finally(() => (this.isLoading = false));\r\n }\r\n\r\n onSelectFile(file: string): void {\r\n this.instance.files = [file];\r\n }\r\n\r\n candEdit(): boolean {\r\n return true;\r\n }\r\n\r\n async loadMetadataconfiguration() {\r\n const query = new GetActivityAreaMetadataGroupsConfigurationDtoQuery();\r\n query.idLanguage = this.currentLanguage.idLanguage;\r\n query.idActivityArea = this.instance.idActivityArea;\r\n query.visibleOnCreate = true;\r\n await this.activitiesAreasService\r\n .GetMetadataGroupsConfiguration(query)\r\n .then(\r\n (result: MetadataConfiguration) => (this.metadataConfiguration = result)\r\n )\r\n .catch(() => (this.metadataConfiguration = null));\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateActivity.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateActivity.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateActivity.vue?vue&type=template&id=77c5a15c&scoped=true&\"\nimport script from \"./CreateActivity.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateActivity.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77c5a15c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VBtn,VCheckbox,VChip,VForm,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.activity)?_c('div',{staticClass:\"card card-preview\"},[_c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"card-header__box d-flex align-stretch\"},[_c('div',{staticClass:\"card-header__box--icon d-flex flex-column justify-space-between\"},[(_vm.area)?_c('span',{staticClass:\"mb-3\"},[_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('i',_vm._g(_vm._b({class:[_vm.area.icon]},'i',attrs,false),on))]}}],null,false,3025261917)},[_c('span',[_vm._v(_vm._s(_vm.area.title))])])],1):_vm._e(),_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"mb-1\"},[_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('i',_vm._g(_vm._b({staticClass:\"text-white\",class:{\n 'las la-check-circle': _vm.activity.isPublished,\n 'las la-info-circle': !_vm.activity.isPublished && _vm.activity.datePublication,\n 'las la-times-circle': !_vm.activity.isPublished && !_vm.activity.datePublication\n }},'i',attrs,false),on))]}}],null,false,1449662861)},[_c('span',[_vm._v(_vm._s(_vm.activity.isPublished ? \"Publicado\" : _vm.activity.datePublication ? \"Agendado\" : \"Não publicado\"))])])],1),_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('i',_vm._g(_vm._b({staticClass:\"text-white\",class:{\n 'las la-lock': _vm.activity.isPrivate,\n 'las la-lock-open': !_vm.activity.isPrivate\n }},'i',attrs,false),on))]}}],null,false,3977051366)},[_c('span',[_vm._v(_vm._s(_vm.activity.isPrivate ? \"Privado\" : \"Público\"))])])],1)]),_c('div',{staticClass:\"card-header__box--content w-100 d-flex flex-column justify-space-between\"},[_c('h2',{staticClass:\"text-h1 text-white font-weight-light mb-4\"},[_vm._v(_vm._s(_vm.activity.title))]),_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[_c('div',{staticClass:\"d-flex align-center\"},[(_vm.type)?_c('span',{staticClass:\"mr-2 text-nowrap\"},[_vm._v(_vm._s(_vm.type.title)+\":\")]):_vm._e(),_c('strong',[_vm._v(_vm._s(_vm.activity.activityStatus.title))])]),_c('div',[(_vm.canView())?_c('v-btn',{attrs:{\"rounded\":\"\",\"outlined\":\"\",\"color\":\"white\",\"to\":(\"/activity/\" + (_vm.activity.idActivity))}},[_vm._v(\"Ver detalhe\")]):_vm._e(),(_vm.canEdit())?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"rounded\":\"\",\"outlined\":\"\",\"color\":\"primary\",\"to\":(\"/activity/\" + (_vm.activity.idActivity) + \"/edit\")}},[_vm._v(\"Editar\")]):_vm._e()],1)])])])]),_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"card--box\"},[_c('div',{staticClass:\"row no-gutters\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('div',{staticClass:\"row no-gutters align-center\"},[_c('div',{staticClass:\"col-sm-4 col-12\"},[_vm._v(\"Responsável:\")]),_c('div',{staticClass:\"col-sm-8 col-12\"},[(_vm.activity.owner)?_c('UserBadge',{attrs:{\"badge\":_vm.activity.owner}}):_c('span',[_vm._v(\"-\")])],1)])]),_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('div',{staticClass:\"row no-gutters align-center\"},[_c('div',{staticClass:\"col-sm-4 col-12\"},[_vm._v(\"Observadores:\")]),_c('div',{staticClass:\"col-sm-8 col-12 align-center\"},[(!_vm.activity.assignees || _vm.activity.assignees.length == 0)?_c('strong',[_vm._v(\"Todos\")]):_vm._l((_vm.activity.assignees),function(assignee){return _c('UserBadge',{key:assignee.idUser,staticClass:\"ml-2\",attrs:{\"badge\":assignee}})})],2)])])]),_c('div',{staticClass:\"row no-gutters border-top border-gray py-2 mt-2 mb-2\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('div',{staticClass:\"row no-gutters align-center\"},[_c('div',{staticClass:\"col-sm-4 col-12\"},[_vm._v(\"Data início:\")]),_c('div',{staticClass:\"col-sm-8 col-12 font-weight-medium\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.activity.dateStart)))])])]),(_vm.area && _vm.area.allowDateEnd && _vm.activity.dateEnd)?_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('div',{staticClass:\"row no-gutters align-center\"},[_c('div',{staticClass:\"col-sm-4 col-12\"},[_vm._v(\"Data conclusão:\")]),_c('div',{staticClass:\"col-sm-8 col-12 font-weight-medium\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.activity.dateEnd)))])])]):_vm._e()])]),_c('hr'),_c('div',{staticClass:\"card--box\"},[_c('div',{staticClass:\"mt-3 mb-5\"},[_c('div',{staticClass:\"mb-1\"},[_vm._v(\"Descrição\")]),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.activity.description)}})])]),_c('hr'),_c('div',{staticClass:\"card--box\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('div',{staticClass:\"mb-1 h3\"},[_vm._v(\"Comentários\")]),_c('v-form',{ref:\"form\",attrs:{\"action\":\"/\",\"method\":\"post\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.createComment($event)}},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"background-color\":\"#fff\",\"label\":\"Insira o seu comentário\",\"rules\":[_vm.$rules.minLenght(5)]},model:{value:(_vm.comment.message),callback:function ($$v) {_vm.$set(_vm.comment, \"message\", $$v)},expression:\"comment.message\"}}),_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('v-checkbox',{attrs:{\"label\":\"Público\"},model:{value:(_vm.comment.isPublic),callback:function ($$v) {_vm.$set(_vm.comment, \"isPublic\", $$v)},expression:\"comment.isPublic\"}}),_c('v-btn',{attrs:{\"rounded\":\"\",\"fab\":\"\",\"small\":\"\",\"color\":\"primary\",\"type\":\"submit\",\"disabled\":!_vm.isValid,\"loading\":_vm.isLoading}},[_c('i',{staticClass:\"las la-check size--s20\"})])],1)],1),_c('router-link',{staticClass:\"box--item mt-4 text--primary\",attrs:{\"to\":(\"/activity/\" + (_vm.activity.idActivity) + \"/comments\")}},[_c('span',[_vm._v(_vm._s(_vm.comments.length)+\" Comentários\")]),(_vm.comments.length > 0)?_c('span',{staticClass:\"las la-plus\"}):_vm._e()])],1),(_vm.files.length > 0)?_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('div',{staticClass:\"mb-2 h3\"},[_vm._v(\"Anexos\")]),_vm._l((_vm.files),function(file,index){return _c('a',{key:(\"FILE-\" + index),staticClass:\"box--item mb-3\",attrs:{\"href\":(\"\" + _vm.CdnUrl + (file.filename)),\"target\":\"_blank\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('span',{staticClass:\"text-secondary font-weight-bold\"},[_vm._v(_vm._s(file.title))])]),_c('span',{staticClass:\"las la-cloud-download-alt text-primary\"})])})],2):_vm._e()])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AuthenticatedService } from \"../abstract/base.service\";\r\nimport { ListResponse } from \"@/models/grids/list.response\";\r\nimport { ActivitiesEndpoint } from \"./activities.service\";\r\nimport { GetActivityFilesDtosQuery } from \"@/server/app.queries\";\r\nimport { ActivityFileDto } from \"@/server/app.dtos\";\r\n\r\nexport class ActivitiesFilesService extends AuthenticatedService {\r\n GetFiles(\r\n request: GetActivityFilesDtosQuery\r\n ): Promise> {\r\n return this.Get>(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${\r\n request.idActivity\r\n }/files?${this.GetQueryStringByObject(request)}`\r\n );\r\n }\r\n}\r\n","import PermissionsHandler from \"./abstract/permissions.handler\";\r\nimport { ActivityDto } from \"@/server/app.dtos\";\r\n\r\nexport default class ActivityPermissions extends PermissionsHandler {\r\n canView(activity: ActivityDto): boolean {\r\n return true;\r\n }\r\n\r\n canEdit(activity: ActivityDto): boolean {\r\n return false;\r\n }\r\n\r\n canDelete(activity: ActivityDto): boolean {\r\n return true;\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { BaseSideComponent } from \"@/components/structure/MixinsSideComponent\";\r\nimport { ActivitiesCommentsService } from \"@/services/api/activities.comments.service\";\r\nimport { ActivitiesFilesService } from \"@/services/api/activities.files.service\";\r\nimport ActivityPermissions from \"@/permissions/activity.permissions\";\r\nimport { NotificationServiceBus } from \"@/services/bus/notifications.service\";\r\nimport {\r\n ActivityCommentDto,\r\n ActivityFileDto,\r\n LanguageDto,\r\n ActivityAreaDto,\r\n ActivityDto,\r\n ActivityTypeDto\r\n} from \"@/server/app.dtos\";\r\nimport { CreateActivityCommentCommand } from \"@/server/app.commands\";\r\nimport {\r\n GetActivityFilesDtosQuery,\r\n GetActivityCommentsDtosQuery\r\n} from \"@/server/app.queries\";\r\n\r\n@Component\r\nexport default class DetailActivitySideMenuComponent extends BaseSideComponent {\r\n CdnUrl: string = process.env.VUE_APP_CDN_URL;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n activityPermissions: ActivityPermissions = new ActivityPermissions();\r\n activitiesFilesService: ActivitiesFilesService = new ActivitiesFilesService();\r\n activitiesCommentsService: ActivitiesCommentsService = new ActivitiesCommentsService();\r\n files: ActivityFileDto[] = [];\r\n comments: ActivityCommentDto[] = [];\r\n comment: CreateActivityCommentCommand = new CreateActivityCommentCommand();\r\n isLoading: boolean = false;\r\n isValid: boolean = false;\r\n\r\n constructor() {\r\n super();\r\n if (this.CdnUrl.endsWith(\"/\")) {\r\n this.CdnUrl = this.CdnUrl.substring(0, this.CdnUrl.length - 1);\r\n }\r\n }\r\n\r\n get activity(): ActivityDto | null {\r\n return this.args?.activity || null;\r\n }\r\n\r\n get area(): ActivityAreaDto | null {\r\n return this.activity?.activityArea || null;\r\n }\r\n\r\n get type(): ActivityTypeDto | null {\r\n return this.activity?.activityType || null;\r\n }\r\n\r\n canView(): boolean {\r\n if (this.activity)\r\n return this.activityPermissions.canView(this.activity) || false;\r\n return false;\r\n }\r\n\r\n canEdit(): boolean {\r\n if (this.activity)\r\n return this.activityPermissions.canEdit(this.activity) || false;\r\n return false;\r\n }\r\n\r\n async created() {\r\n await this.loadComments();\r\n await this.loadFiles();\r\n }\r\n\r\n async loadComments() {\r\n if (this.activity) {\r\n const request = new GetActivityCommentsDtosQuery();\r\n request.isPublic = true;\r\n request.idActivity = this.activity.idActivity;\r\n await this.activitiesCommentsService\r\n .GetComments(request)\r\n .then(response => (this.comments = response.data));\r\n }\r\n }\r\n\r\n async loadFiles() {\r\n if (this.activity) {\r\n const request = new GetActivityFilesDtosQuery();\r\n request.isPublic = true;\r\n request.idActivity = this.activity.idActivity;\r\n await this.activitiesFilesService\r\n .GetFiles(request)\r\n .then(response => (this.files = response.data));\r\n }\r\n }\r\n\r\n createComment(): void {\r\n if (this.activity != null) {\r\n this.isLoading = true;\r\n this.comment.idActivity = this.activity.idActivity;\r\n this.activitiesCommentsService\r\n .CreateComment(this.comment)\r\n .then(() => {\r\n this.loadComments();\r\n this.comment.message = \"\";\r\n (this.$refs.form as any).resetValidation();\r\n NotificationServiceBus.showSuccessMessage(\r\n \"Informação\",\r\n \"Comentário adicionado sucesso\"\r\n );\r\n })\r\n .finally(() => (this.isLoading = false));\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailActivity.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailActivity.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DetailActivity.vue?vue&type=template&id=06b3642e&\"\nimport script from \"./DetailActivity.vue?vue&type=script&lang=ts&\"\nexport * from \"./DetailActivity.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCheckbox,VForm,VTextarea,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"listing__box__item pt-2\"},[_c('div',{staticClass:\"listing__box__item-icon icon-sm\",style:({ background: _vm.colorStatus })},[_c('span',{staticClass:\"k-icon\",class:[_vm.iconArea]})]),_c('div',{staticClass:\"listing__box__item-content\"},[_c('div',{staticClass:\"label-icon\",style:({ background: _vm.colorPriority })}),_c('div',{staticClass:\"d-flex justify-space-between w-100\"},[_c('div',{staticClass:\"py-2\"},[_c('p',[_vm._v(_vm._s(_vm.activity.title))]),(_vm.activity.activityType)?_c('p',{staticClass:\"size--s12 my-1\"},[_vm._v(_vm._s(_vm.activity.activityType.title))]):_vm._e(),(_vm.activity.dateEnd)?_c('p',{staticClass:\"size--s10\"},[_c('span',{staticClass:\"text--danger mr-2\"},[_vm._v(_vm._s(_vm.daysDiff)+\" dias de atraso\")]),_vm._v(\" \"+_vm._s(_vm._f(\"date\")(_vm.activity.dateEnd))+\" \")]):_vm._e()]),_c('div',{staticClass:\"d-flex align-center align-stretch\"},[_c('div',{staticClass:\"py-2 border-right border-gray px-3 d-flex justify-space-between flex-column\"},[_c('div',{staticClass:\"d-flex align-center justify-content-end\"},[_c('span',[_vm._v(\"Atribuido a:\")]),(!_vm.activity.assignees || _vm.activity.assignees.length == 0)?_c('span',{staticClass:\"border border--gray rounded-lg px-2 py-1 ml-2\"},[_vm._v(\"Todos\")]):_vm._l((_vm.activity.assignees),function(assignee){return _c('UserBadge',{key:assignee.idUser,staticClass:\"ml-2\",attrs:{\"badge\":assignee}})})],2),(_vm.activity.owner)?_c('div',{staticClass:\"d-flex align-center justify-content-end\"},[_c('span',{staticClass:\"mr-2\"},[_vm._v(\"Criado por:\")]),_c('UserBadge',{attrs:{\"badge\":_vm.activity.owner}})],1):_vm._e()]),_c('div',{staticClass:\"listing__box__item-content--actions\"},[_vm._t(\"default\")],2)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport moment from \"moment\";\r\nimport { ActivityDto, ActivityAreaDto } from \"@/server/app.dtos\";\r\n\r\n@Component\r\nexport default class ActivityTimelineEntryComponent extends Vue {\r\n @Prop({ required: true }) activity!: ActivityDto;\r\n @Getter(\"activityAreas\") areas!: ActivityAreaDto[];\r\n\r\n get area(): ActivityAreaDto | undefined {\r\n const id = this.activity.idActivityArea;\r\n return this.areas.find((i: ActivityAreaDto) => i.idActivityArea === id);\r\n }\r\n\r\n get colorStatus(): string {\r\n return this.activity.activityStatus?.color || \"#ccc\";\r\n }\r\n\r\n get colorPriority(): string {\r\n return this.activity.activityPriority?.color || \"#ccc\";\r\n }\r\n\r\n get iconArea(): string {\r\n return this.area?.icon || \"las la-info-circle\";\r\n }\r\n\r\n get daysDiff(): number {\r\n const dStart = moment(this.activity.dateStart);\r\n const dEnd = moment(this.activity.dateEnd);\r\n return dEnd.diff(dStart, \"days\");\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityTimelineEntry.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityTimelineEntry.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActivityTimelineEntry.vue?vue&type=template&id=1556c4e4&\"\nimport script from \"./ActivityTimelineEntry.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActivityTimelineEntry.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ActivityTimelineEntry.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { AuthenticatedService } from \"../abstract/base.service\";\r\nimport { ListResponse } from \"@/models/grids/list.response\";\r\nimport { CreateActivityCommentCommand } from \"@/server/app.commands\";\r\nimport { ActivityCommentDto } from \"@/server/app.dtos\";\r\nimport { GetActivityCommentsDtosQuery } from \"@/server/app.queries\";\r\n\r\nexport class ActivitiesCommentsService extends AuthenticatedService {\r\n CreateComment(comment: CreateActivityCommentCommand): Promise {\r\n return this.Post(\r\n `${this.baseUrl}api/activities/${comment.idActivity}/comments`,\r\n comment\r\n );\r\n }\r\n\r\n GetComments(\r\n request: GetActivityCommentsDtosQuery\r\n ): Promise> {\r\n return this.Get(\r\n `${this.baseUrl}api/activities/${\r\n request.idActivity\r\n }/comments?${this.GetQueryStringByObject(request)}`\r\n );\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityLogtime.vue?vue&type=style&index=0&id=5120a9b1&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityLogtime.vue?vue&type=style&index=0&id=5120a9b1&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DataGrid',{attrs:{\"endpoint\":_vm.endpoint,\"columns\":_vm.columns,\"enableReorder\":true,\"primary\":_vm.primary}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { GridColumnTypes, GridColumn } from \"@/models/grids/column\";\r\nimport { ActivityAreaDto } from \"@/server/app.dtos\";\r\nimport { Getter } from \"vuex-class\";\r\n\r\n@Component\r\nexport default class ActivityStatusPage extends Vue {\r\n @Getter activityAreas!: ActivityAreaDto[];\r\n columns: GridColumn[] = [\r\n {\r\n text: \"Título\",\r\n value: \"title\",\r\n type: GridColumnTypes.Text,\r\n editable: true,\r\n editableClass: \"col-12\",\r\n editableRules: [this.$rules.minLenght(3)]\r\n },\r\n {\r\n text: \"Área\",\r\n value: \"idActivityArea\",\r\n type: GridColumnTypes.Dropdown,\r\n editable: true,\r\n filterable: true,\r\n editableClass: \"col-12\",\r\n editableRules: [this.$rules.required],\r\n arg: {\r\n items: [],\r\n itemText: \"title\",\r\n itemValue: \"idActivityArea\",\r\n value: null\r\n }\r\n },\r\n {\r\n value: \"isFinal\",\r\n text: \"Estado Final\",\r\n editable: true,\r\n type: GridColumnTypes.Boolean\r\n },\r\n {\r\n value: \"isSuccess\",\r\n text: \"Estado de Sucesso\",\r\n editable: true,\r\n type: GridColumnTypes.Boolean\r\n },\r\n {\r\n value: \"color\",\r\n text: \"Cor\",\r\n editable: true,\r\n type: GridColumnTypes.Color\r\n }\r\n ];\r\n endpoint: string = \"api/activitystatus\";\r\n primary: string = \"idActivityStatus\";\r\n\r\n created() {\r\n this.columns[1].arg.items = this.activityAreas;\r\n this.columns[1].arg.value = this.activityAreas[0];\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityStatus.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityStatus.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActivityStatus.vue?vue&type=template&id=29198115&\"\nimport script from \"./ActivityStatus.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActivityStatus.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('Subheader',[_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[_c('Breadcrumb',{attrs:{\"routes\":['Dashboard', 'Actividades', 'Configurações']}}),_c('DateClock')],1),_c('div',{staticClass:\"d-flex align-center w-100\"},[_c('h1',[_vm._v(\"Configurações\")])])]),_c('LeftMenuLayout',{scopedSlots:_vm._u([{key:\"Menu\",fn:function(){return [_c('h4',[_vm._v(\"Navegação\")]),_c('nav',[_c('ul',_vm._l((_vm.routes),function(route){return _c('li',{key:route.title},[_c('router-link',{attrs:{\"to\":route.url}},[_c('i',{class:[route.icon]}),_vm._v(\" \"+_vm._s(route.title)+\" \")])],1)}),0)])]},proxy:true}])},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('router-view')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { ISideMenuItem } from \"@/models/menus/abstract/isidemenu\";\r\n\r\n@Component\r\nexport default class ActivitiesConfigurationPage extends Vue {\r\n // TODO: Change Icons\r\n routes: ISideMenuItem[] = [\r\n {\r\n icon: \"las la-cog\",\r\n title: \"Gestão de Áreas\",\r\n url: \"/activities/configurations/areas\"\r\n },\r\n {\r\n icon: \"las la-cog\",\r\n title: \"Gestão de Tipos\",\r\n url: \"/activities/configurations/types\"\r\n },\r\n {\r\n icon: \"las la-cog\",\r\n title: \"Gestão de Estados\",\r\n url: \"/activities/configurations/status\"\r\n },\r\n {\r\n icon: \"las la-cog\",\r\n title: \"Gestão de Prioridades\",\r\n url: \"/activities/configurations/priorities\"\r\n }\r\n ];\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=5d9080bc&\"\nimport script from \"./Layout.vue?vue&type=script&lang=ts&\"\nexport * from \"./Layout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { CurrentUser } from \"@/models/auth/current.user\";\r\nimport { LayoutServiceBus } from \"@/services/bus/layout.service\";\r\nimport { LanguageDto } from \"@/server/app.dtos\";\r\n\r\n@Component\r\nexport class BaseSideComponent extends Vue {\r\n @Prop() args: any;\r\n @Getter(\"identity\") identity!: CurrentUser;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n\r\n candEdit(): boolean {\r\n return false;\r\n }\r\n\r\n close(): void {\r\n LayoutServiceBus.closeSideMenu();\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.activity)?_c('div',[_c('Subheader',{staticClass:\"p-0\"},[_c('div',{staticClass:\"d-flex align-stretch w-100\"},[_c('div',{staticClass:\"left-bar d-flex text-center flex-column justify-space-between\"},[_c('div',{staticClass:\"pt-3\"},[_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('i',_vm._g(_vm._b({class:[_vm.activity.activityArea.icon]},'i',attrs,false),on))]}}],null,false,176910643)},[_c('span',[_vm._v(_vm._s(_vm.activity.activityArea.title))])])],1),_c('div',{staticClass:\"pb-3\"},[_c('div',{staticClass:\"mb-1\"},[_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('i',_vm._g(_vm._b({staticClass:\"text-white\",class:{\n 'las la-check-circle': _vm.activity.isPublished,\n 'las la-info-circle': !_vm.activity.isPublished && _vm.activity.datePublication,\n 'las la-times-circle': !_vm.activity.isPublished && !_vm.activity.datePublication\n }},'i',attrs,false),on))]}}],null,false,1449662861)},[_c('span',[_vm._v(_vm._s(_vm.activity.isPublished ? \"Publicado\" : _vm.activity.datePublication ? \"Agendado\" : \"Não publicado\"))])])],1),_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('i',_vm._g(_vm._b({staticClass:\"text-white\",class:{\n 'las la-lock': _vm.activity.isPrivate,\n 'las la-lock-open': !_vm.activity.isPrivate\n }},'i',attrs,false),on))]}}],null,false,3977051366)},[_c('span',[_vm._v(_vm._s(_vm.activity.isPrivate ? \"Privado\" : \"Público\"))])])],1)]),_c('div',{staticClass:\"px-4 py-4 w-100\"},[_c('div',{staticClass:\"row align-stretch w-100\"},[_c('div',{staticClass:\"col-sm-6 col-12 d-flex align-center justify-space-between flex-column\"},[_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[_c('Breadcrumb',{attrs:{\"routes\":['Actividades', 'Listagem', 'Detalhe']}})],1),_c('div',{staticClass:\"d-flex align-items-start justify-space-between flex-column w-100 pb-2\"},[_c('h1',{staticClass:\"text-h1 text-white mb-5 w-100\"},[_vm._v(_vm._s(_vm.activity.title))]),_c('div',{staticClass:\"d-flex align-center\"},[(_vm.activity.activityType)?_c('span',{staticClass:\"text-white mr-3\"},[_vm._v(_vm._s(_vm.activity.activityType.title)+\":\")]):_vm._e(),_c('span',{staticStyle:{\"width\":\"150px\"}},[_c('v-select',{staticClass:\"white--selector\",attrs:{\"outlined\":\"\",\"filled\":\"\",\"dense\":\"\",\"color\":\"primary\",\"label\":\"Estado\",\"hide-details\":true,\"items\":_vm.activityStatus,\"item-text\":\"title\",\"item-value\":\"idActivityStatus\",\"value\":_vm.activity.idActivityStatus},on:{\"change\":_vm.changeActivityStatus}})],1),_c('v-btn',{staticClass:\"ml-3\",attrs:{\"color\":\"primary\",\"rounded\":\"\",\"to\":\"edit\"}},[_c('i',{staticClass:\"las la-edit mr-2\"}),_vm._v(\" Editar \")]),_c('v-menu',{attrs:{\"close-on-content-click\":true,\"offset-y\":\"\",\"transition\":\"slide-y-transition\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"ml-3 text-white\",attrs:{\"small\":\"\",\"fab\":\"\",\"text\":\"\"}},on),[_c('i',{staticClass:\"las la-ellipsis-h size--s20\"})])]}}],null,false,3074529236),model:{value:(_vm.actionMenu),callback:function ($$v) {_vm.actionMenu=$$v},expression:\"actionMenu\"}},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){$event.preventDefault();return _vm.deleteActivity($event)}}},[_c('v-list-item-title',[_vm._v(\"Eliminar\")])],1)],1)],1)],1)])]),_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('div',{staticClass:\"sub-header__box\"},[_c('div',{staticClass:\"details__box\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"details__box--text\"},[_vm._v(\"Responsável:\")]),(_vm.activity.owner)?_c('UserBadge',{attrs:{\"badge\":_vm.activity.owner}}):_c('span',[_vm._v(\"-\")])],1)]),_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"details__box--text\"},[_vm._v(\"Observadores:\")]),(\n !_vm.activity.assignees ||\n _vm.activity.assignees.length == 0\n )?_c('strong',[_vm._v(\"Nenhum\")]):_vm._l((_vm.activity.assignees),function(assignee){return _c('UserBadge',{key:assignee.idUser,staticClass:\"ml-2\",attrs:{\"badge\":assignee}})})],2)])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 py-0\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"details__box--text\"},[_vm._v(\"Destinatários:\")]),(\n !_vm.activity.appGroups ||\n _vm.activity.appGroups.length == 0\n )?_c('strong',[_vm._v(\"Todos\")]):_vm._l((_vm.activity.appGroups),function(group,index){return _c('v-chip',{key:(\"App-Group-\" + index),attrs:{\"small\":\"\",\"color\":\"white\"}},[_vm._v(_vm._s(group.name))])})],2)])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"details__box--text\"},[_vm._v(\"Data Início:\")]),_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm._f(\"datetime\")(_vm.activity.dateStart)))])])]),_c('div',{staticClass:\"col-sm-6 col-12\"},[(_vm.activity.dateEnd)?_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"details__box--text\"},[_vm._v(\"Data Conclusão:\")]),_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm._f(\"datetime\")(_vm.activity.dateEnd)))])]):_vm._e()])])])])])])])])]),_c('LeftMenuLayout',[_c('template',{slot:\"Menu\"},[_c('div',{staticClass:\"layout__menu-box\"},[_c('h4',[_vm._v(\"Navegação\")]),_c('nav',[_c('ul',_vm._l((_vm.menus),function(route){return _c('li',{key:route.title},[_c('router-link',{attrs:{\"to\":route.url}},[_c('i',{class:[route.icon]}),_vm._v(\" \"+_vm._s(route.title)+\" \")])],1)}),0)])])]),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('router-view',{attrs:{\"activity\":_vm.activity}})],1)],2)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\r\nimport { ActivitiesService } from \"@/services/api/activities.service\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { LanguageDto, ActivityDto, ActivityStatusDto } from \"@/server/app.dtos\";\r\nimport {\r\n GetActivityDtoQuery,\r\n GetActivitiesDtosIncludeOptions\r\n} from \"@/server/app.queries\";\r\nimport { ISideMenuItem } from \"@/models/menus/abstract/isidemenu\";\r\nimport { ChangeActivityStatusCommand } from \"@/server/app.commands\";\r\nimport ConfigsService from \"@/services/api/configs.service\";\r\nimport { NotificationServiceBus } from \"@/services/bus/notifications.service\";\r\n\r\n@Component\r\nexport default class ActivityDetailSharedPage extends Vue {\r\n activitiesService: ActivitiesService = new ActivitiesService();\r\n configsService: ConfigsService = new ConfigsService();\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n activity: ActivityDto | null = null;\r\n menus: ISideMenuItem[] = [\r\n {\r\n icon: \"las la-cog\",\r\n title: \"Dashboard\",\r\n url: \"dashboard\"\r\n },\r\n // {\r\n // icon: \"las la-cog\",\r\n // title: \"Audiência\",\r\n // url: \"users\"\r\n // },\r\n {\r\n icon: \"las la-cog\",\r\n title: \"Documentos\",\r\n url: \"documents\"\r\n },\r\n {\r\n icon: \"las la-cog\",\r\n title: \"Comentários\",\r\n url: \"comments\"\r\n },\r\n {\r\n icon: \"las la-stopwatch\",\r\n title: \"Log de Tempos\",\r\n url: \"log-times\"\r\n }\r\n ];\r\n actionMenu: boolean = false;\r\n isLoading: boolean = false;\r\n activityStatus: ActivityStatusDto[] = [];\r\n\r\n get currentPath(): string {\r\n return this.$route.path;\r\n }\r\n\r\n @Watch(\"$route\")\r\n onRouteChange() {\r\n this.Load();\r\n }\r\n\r\n async created() {\r\n await this.Load();\r\n }\r\n\r\n async LoadStatus() {\r\n await this.configsService\r\n .Load(\r\n \"api/activityStatus\",\r\n `idLanguage=${this.currentLanguage.idLanguage}&idActivityArea=${this\r\n .activity?.idActivityArea || \"\"}`\r\n )\r\n .then(data => (this.activityStatus = data));\r\n }\r\n\r\n async Load() {\r\n const query = new GetActivityDtoQuery();\r\n query.idLanguage = this.currentLanguage.idLanguage;\r\n query.idActivity = parseInt(this.$route.params.id);\r\n query.includes = new GetActivitiesDtosIncludeOptions();\r\n query.includes.activityType = true;\r\n query.includes.activityArea = true;\r\n query.includes.activityStatus = true;\r\n query.includes.tags = true;\r\n query.includes.assignees = true;\r\n query.includes.activityPriority = true;\r\n query.includes.appGroups = true;\r\n await this.activitiesService\r\n .GetSingle(query)\r\n .then((result: ActivityDto) => {\r\n this.activity = result;\r\n this.LoadStatus();\r\n })\r\n .catch(() => (this.activity = null));\r\n }\r\n\r\n async deleteActivity() {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n if (this.activity) {\r\n const redirect = \"/activities/list/\" + this.activity.idActivityArea;\r\n await this.activitiesService\r\n .DeleteById(this.activity.idActivity || 0)\r\n .catch((error: any) => NotificationServiceBus.showError(error))\r\n .then(() => this.$router.push(redirect));\r\n }\r\n }\r\n\r\n async changeActivityStatus(idActivityStatus: number) {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n if (this.activity) {\r\n this.isLoading = true;\r\n const command = new ChangeActivityStatusCommand();\r\n command.idActivity = this.activity.idActivity;\r\n command.idActivityStatus = idActivityStatus;\r\n await this.activitiesService\r\n .ChangeStatus(command)\r\n .then(() => {\r\n if (this.activity) {\r\n this.activity.idActivityStatus = idActivityStatus;\r\n this.activity.activityStatus = this.activityStatus.find(\r\n (status: ActivityStatusDto) =>\r\n status.idActivityStatus === idActivityStatus\r\n );\r\n }\r\n })\r\n .catch((error: any) => NotificationServiceBus.showError(error))\r\n .finally(() => (this.isLoading = false));\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Shared.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Shared.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Shared.vue?vue&type=template&id=20cab20b&scoped=true&\"\nimport script from \"./Shared.vue?vue&type=script&lang=ts&\"\nexport * from \"./Shared.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Shared.vue?vue&type=style&index=0&id=20cab20b&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20cab20b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VChip,VList,VListItem,VListItemTitle,VMenu,VSelect,VTooltip})\n","// Styles\nimport './VRadio.sass'\n\n// Components\nimport VRadioGroup from './VRadioGroup'\nimport VLabel from '../VLabel'\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Rippleable from '../../mixins/rippleable'\nimport Themeable from '../../mixins/themeable'\nimport Selectable, { prevent } from '../../mixins/selectable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { mergeListeners } from '../../util/mergeData'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Colorable,\n Rippleable,\n GroupableFactory('radioGroup'),\n Themeable\n)\n\ninterface options extends InstanceType {\n radioGroup: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-radio',\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n id: String,\n label: String,\n name: String,\n offIcon: {\n type: String,\n default: '$radioOff',\n },\n onIcon: {\n type: String,\n default: '$radioOn',\n },\n readonly: Boolean,\n value: {\n default: null,\n },\n },\n\n data: () => ({\n isFocused: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-radio--is-disabled': this.isDisabled,\n 'v-radio--is-focused': this.isFocused,\n ...this.themeClasses,\n ...this.groupClasses,\n }\n },\n computedColor (): string | undefined {\n return Selectable.options.computed.computedColor.call(this)\n },\n computedIcon (): string {\n return this.isActive\n ? this.onIcon\n : this.offIcon\n },\n computedId (): string {\n return VInput.options.computed.computedId.call(this)\n },\n hasLabel: VInput.options.computed.hasLabel,\n hasState (): boolean {\n return (this.radioGroup || {}).hasState\n },\n isDisabled (): boolean {\n return this.disabled || (\n !!this.radioGroup &&\n this.radioGroup.isDisabled\n )\n },\n isReadonly (): boolean {\n return this.readonly || (\n !!this.radioGroup &&\n this.radioGroup.isReadonly\n )\n },\n computedName (): string {\n if (this.name || !this.radioGroup) {\n return this.name\n }\n\n return this.radioGroup.name || `radio-${this.radioGroup._uid}`\n },\n rippleState (): string | undefined {\n return Selectable.options.computed.rippleState.call(this)\n },\n validationState (): string | undefined {\n return (this.radioGroup || {}).validationState || this.computedColor\n },\n },\n\n methods: {\n genInput (args: any) {\n // We can't actually use the mixin directly because\n // it's made for standalone components, but its\n // genInput method is exactly what we need\n return Selectable.options.methods.genInput.call(this, 'radio', args)\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n on: {\n // Label shouldn't cause the input to focus\n click: prevent,\n },\n attrs: {\n for: this.computedId,\n },\n props: {\n color: this.validationState,\n focused: this.hasState,\n },\n }, getSlot(this, 'label') || this.label)\n },\n genRadio () {\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.radioGroup && this.radioGroup.dense,\n },\n }), this.computedIcon),\n this.genInput({\n name: this.computedName,\n value: this.value,\n ...this.attrs$,\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n onFocus (e: Event) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: Event) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n onChange () {\n if (this.isDisabled || this.isReadonly || this.isActive) return\n\n this.toggle()\n },\n onKeydown: () => {}, // Override default with noop\n },\n\n render (h): VNode {\n const data: VNodeData = {\n staticClass: 'v-radio',\n class: this.classes,\n on: mergeListeners({\n click: this.onChange,\n }, this.listeners$),\n }\n\n return h('div', data, [\n this.genRadio(),\n this.genLabel(),\n ])\n },\n})\n","import store from \"@/store/index\";\r\nimport { CurrentUser } from \"@/models/auth/current.user\";\r\n\r\nexport enum PermissionModes {\r\n View,\r\n Edit,\r\n Delete\r\n}\r\n\r\nexport default class PermissionsHandler {\r\n get currentUser(): CurrentUser | null {\r\n return store.state.identity;\r\n }\r\n\r\n backoffice: string = \"Backoffice\";\r\n\r\n Check(\r\n interfac: string,\r\n module: string,\r\n isConfiguration: boolean,\r\n viewMode: PermissionModes\r\n ): boolean {\r\n // Current user does not have role for the interface\r\n\r\n // if (current?.Roles == null || !current.Roles.Any())\r\n // return (false, null);\r\n // var appPermission = current.Roles.FirstOrDefault(s => s.Interface == @interface);\r\n // if (appPermission == null)\r\n // return (false, null);\r\n // var rolePermission = appPermission.Permissions.FirstOrDefault(s => s.Module == module);\r\n // if (rolePermission == null)\r\n // return (false, null);\r\n // if (isConfiguration)\r\n // return (rolePermission.CanManageConfigurations, rolePermission);\r\n // switch (action)\r\n // {\r\n // case ActionModes.Custom:\r\n // return (true, rolePermission);\r\n // case ActionModes.Query:\r\n // return (rolePermission.ViewMode != PermissionTypes.None, rolePermission);\r\n // case ActionModes.Create:\r\n // case ActionModes.Edit:\r\n // return (rolePermission.EditMode != PermissionTypes.None, rolePermission);\r\n // case ActionModes.Remove:\r\n // return (rolePermission.DeleteMode != PermissionTypes.None, rolePermission);\r\n // default:\r\n // return (false, rolePermission);\r\n\r\n if (this.currentUser == null) return false;\r\n\r\n const role = !this.currentUser.roles.find(s => s.interface == interfac);\r\n if (role == null) return false;\r\n\r\n // TODO: check permissions based on current user and their roles\r\n return true;\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-dialog',{attrs:{\"max-width\":\"500\"},model:{value:(_vm.manageGroupsDialog),callback:function ($$v) {_vm.manageGroupsDialog=$$v},expression:\"manageGroupsDialog\"}},[_c('v-form',{ref:\"editForm\",on:{\"submit\":function($event){$event.preventDefault();return _vm.changeMetadataGroupsConfig($event)}},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Associar Grupos de campos dinâmicos\")]),_c('v-card-text',[_c('v-select',{attrs:{\"items\":_vm.groups,\"item-text\":'title',\"item-value\":'idMetadataGroup',\"label\":\"Grupos\",\"multiple\":\"\"},model:{value:(_vm.selectedGroups),callback:function ($$v) {_vm.selectedGroups=$$v},expression:\"selectedGroups\"}})],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.manageGroupsDialog = false}}},[_vm._v(\"Cancelar\")]),_c('v-btn',{attrs:{\"type\":\"submit\",\"loading\":_vm.isLoading,\"color\":\"primary\",\"disabled\":!_vm.isValid}},[_vm._v(\"Alterar\")])],1)],1)],1)],1),_c('DataGrid',{attrs:{\"endpoint\":_vm.endpoint,\"columns\":_vm.columns,\"enableReorder\":true,\"primary\":_vm.primary,\"actions\":_vm.actions},on:{\"action\":_vm.handleAction}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport {\r\n GridColumnTypes,\r\n GridColumn,\r\n GridAction,\r\n GridActionEvent\r\n} from \"@/models/grids/column\";\r\nimport { Getter } from \"vuex-class\";\r\nimport {\r\n ActivityAreaDto,\r\n LanguageDto,\r\n MetadataGroupDto\r\n} from \"@/server/app.dtos\";\r\nimport ConfigsService from \"@/services/api/configs.service\";\r\nimport { ActivitiesAreasService } from \"@/services/api/activities.areas.service\";\r\nimport { EditActivityAreaMetadataGroupsConfigurationCommand } from \"@/server/app.commands\";\r\n\r\n@Component\r\nexport default class ActivityAreasPage extends Vue {\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n apiService: ConfigsService = new ConfigsService();\r\n userTypesService: ActivitiesAreasService = new ActivitiesAreasService();\r\n columns: GridColumn[] = [\r\n {\r\n text: \"Título\",\r\n value: \"title\",\r\n type: GridColumnTypes.Text,\r\n editable: true,\r\n editableClass: \"col-12\",\r\n editableRules: [this.$rules.minLenght(3)]\r\n },\r\n {\r\n text: \"Controlado por estados\",\r\n value: \"isControlledByStatus\",\r\n type: GridColumnTypes.Boolean,\r\n editable: true\r\n },\r\n {\r\n text: \"Tem data de fim\",\r\n value: \"allowDateEnd\",\r\n type: GridColumnTypes.Boolean,\r\n editable: true\r\n },\r\n {\r\n text: \"Tem registo de horas\",\r\n value: \"hasLogTime\",\r\n type: GridColumnTypes.Boolean,\r\n editable: true\r\n },\r\n { text: \"Icon\", value: \"icon\", type: GridColumnTypes.Text, editable: true }\r\n ];\r\n actions: GridAction[] = [\r\n {\r\n title: \"Opções\",\r\n icon: \"las la-ellipsis-v\",\r\n visible: () => true\r\n }\r\n ];\r\n endpoint: string = \"api/activityareas\";\r\n primary: string = \"idActivityArea\";\r\n groups: MetadataGroupDto[] = [];\r\n selectedGroups: number[] = [];\r\n manageGroupsDialog: boolean = false;\r\n isValid: boolean = false;\r\n isLoading: boolean = false;\r\n currentActivityArea: ActivityAreaDto | null = null;\r\n\r\n async created() {\r\n await this.apiService\r\n .Load(\r\n \"api/MetadataGroups\",\r\n \"IdLanguage=\" + this.currentLanguage.idLanguage\r\n )\r\n .then((response: any) => (this.groups = response));\r\n }\r\n\r\n async changeMetadataGroupsConfig() {\r\n if (this.isLoading || !this.isValid || !this.currentActivityArea) return;\r\n const command = new EditActivityAreaMetadataGroupsConfigurationCommand();\r\n command.idLanguage = this.currentLanguage.idLanguage;\r\n command.idActivityArea = this.currentActivityArea.idActivityArea;\r\n command.metadataGroups = this.selectedGroups;\r\n await this.userTypesService\r\n .ChangeMetadataGroups(command)\r\n .then(() => {\r\n if (this.currentActivityArea != null) {\r\n this.currentActivityArea.metadataGroups = command.metadataGroups;\r\n }\r\n this.manageGroupsDialog = false;\r\n })\r\n .finally(() => (this.isLoading = false));\r\n }\r\n\r\n handleAction(data: GridActionEvent) {\r\n this.currentActivityArea = data.item;\r\n this.selectedGroups =\r\n this.currentActivityArea != null\r\n ? this.currentActivityArea.metadataGroups ?? []\r\n : [];\r\n this.manageGroupsDialog = true;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityAreas.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityAreas.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActivityAreas.vue?vue&type=template&id=68957d22&\"\nimport script from \"./ActivityAreas.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActivityAreas.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VForm,VSelect,VSpacer})\n","import './VPagination.sass'\n\nimport VIcon from '../VIcon'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Intersectable from '../../mixins/intersectable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, CreateElement, VNodeChildrenArrayContents } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Intersectable({ onVisible: ['init'] }),\n Themeable\n).extend({\n name: 'v-pagination',\n\n directives: { Resize },\n\n props: {\n circle: Boolean,\n disabled: Boolean,\n length: {\n type: Number,\n default: 0,\n validator: (val: number) => val % 1 === 0,\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n totalVisible: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n wrapperAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.wrapper',\n },\n },\n\n data () {\n return {\n maxButtons: 0,\n selected: null as number | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-pagination': true,\n 'v-pagination--circle': this.circle,\n 'v-pagination--disabled': this.disabled,\n ...this.themeClasses,\n }\n },\n\n items (): (string | number)[] {\n const totalVisible = parseInt(this.totalVisible, 10)\n\n const maxLength = Math.min(\n Math.max(0, totalVisible) || this.length,\n Math.max(0, this.maxButtons) || this.length,\n this.length\n )\n\n if (this.length <= maxLength) {\n return this.range(1, this.length)\n }\n\n const even = maxLength % 2 === 0 ? 1 : 0\n const left = Math.floor(maxLength / 2)\n const right = this.length - left + 1 + even\n\n if (this.value > left && this.value < right) {\n const start = this.value - left + 2\n const end = this.value + left - 2 - even\n\n return [1, '...', ...this.range(start, end), '...', this.length]\n } else if (this.value === left) {\n const end = this.value + left - 1 - even\n return [...this.range(1, end), '...', this.length]\n } else if (this.value === right) {\n const start = this.value - left + 1\n return [1, '...', ...this.range(start, this.length)]\n } else {\n return [\n ...this.range(1, left),\n '...',\n ...this.range(right, this.length),\n ]\n }\n },\n },\n\n watch: {\n value () {\n this.init()\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n this.selected = null\n\n this.$nextTick(this.onResize)\n // TODO: Change this (f75dee3a, cbdf7caa)\n setTimeout(() => (this.selected = this.value), 100)\n },\n onResize () {\n const width = this.$el && this.$el.parentElement\n ? this.$el.parentElement.clientWidth\n : window.innerWidth\n\n this.maxButtons = Math.floor((width - 96) / 42)\n },\n next (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value + 1)\n this.$emit('next')\n },\n previous (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value - 1)\n this.$emit('previous')\n },\n range (from: number, to: number) {\n const range = []\n\n from = from > 0 ? from : 1\n\n for (let i = from; i <= to; i++) {\n range.push(i)\n }\n\n return range\n },\n genIcon (h: CreateElement, icon: string, disabled: boolean, fn: EventListener, label: String): VNode {\n return h('li', [\n h('button', {\n staticClass: 'v-pagination__navigation',\n class: {\n 'v-pagination__navigation--disabled': disabled,\n },\n attrs: {\n type: 'button',\n 'aria-label': label,\n },\n on: disabled ? {} : { click: fn },\n }, [h(VIcon, [icon])]),\n ])\n },\n genItem (h: CreateElement, i: string | number): VNode {\n const color: string | false = (i === this.value) && (this.color || 'primary')\n const isCurrentPage = i === this.value\n const ariaLabel = isCurrentPage ? this.currentPageAriaLabel : this.pageAriaLabel\n\n return h('button', this.setBackgroundColor(color, {\n staticClass: 'v-pagination__item',\n class: {\n 'v-pagination__item--active': i === this.value,\n },\n attrs: {\n type: 'button',\n 'aria-current': isCurrentPage,\n 'aria-label': this.$vuetify.lang.t(ariaLabel, i),\n },\n on: {\n click: () => this.$emit('input', i),\n },\n }), [i.toString()])\n },\n genItems (h: CreateElement): VNode[] {\n return this.items.map((i, index) => {\n return h('li', { key: index }, [\n isNaN(Number(i)) ? h('span', { class: 'v-pagination__more' }, [i.toString()]) : this.genItem(h, i),\n ])\n })\n },\n genList (h: CreateElement, children: VNodeChildrenArrayContents): VNode {\n return h('ul', {\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n class: this.classes,\n }, children)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genIcon(h,\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon,\n this.value <= 1,\n this.previous,\n this.$vuetify.lang.t(this.previousAriaLabel)),\n this.genItems(h),\n this.genIcon(h,\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon,\n this.value >= this.length,\n this.next,\n this.$vuetify.lang.t(this.nextAriaLabel)),\n ]\n\n return h('nav', {\n attrs: {\n role: 'navigation',\n 'aria-label': this.$vuetify.lang.t(this.wrapperAriaLabel),\n },\n }, [this.genList(h, children)])\n },\n})\n","import Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { ListResponse } from \"@/models/grids/list.response\";\r\nimport { DataTableHeader } from \"vuetify\";\r\nimport { Watch } from \"vue-property-decorator\";\r\n\r\nexport interface DataServerGridTableHeader\r\n extends DataTableHeader {\r\n filterItem?: any;\r\n}\r\n\r\nexport class DataServerGridOptions {\r\n inited: boolean = false;\r\n page: number = 1;\r\n pageSize: number = 10;\r\n total: number = 0;\r\n data: any[] = [];\r\n columns: DataServerGridTableHeader[] = [];\r\n loading: boolean = false;\r\n}\r\n\r\n@Component\r\nexport class ServerGrid extends Vue {\r\n gridConfigs!: DataServerGridOptions;\r\n\r\n @Watch(\"$route.query.skip\")\r\n onGridRouteSkipChanged() {\r\n if (!this.$route.query.skip) {\r\n this.gridConfigs.page = 1;\r\n } else {\r\n let p =\r\n parseInt(this.$route.query.skip as string) / this.gridConfigs.pageSize;\r\n p = p + 1;\r\n }\r\n }\r\n\r\n get hasGridFilters(): boolean {\r\n return (\r\n this.gridConfigs.columns.find((i: DataTableHeader) => i.filterable) !=\r\n null\r\n );\r\n }\r\n\r\n get pageCount(): number {\r\n return Math.ceil(this.gridConfigs.total / this.gridConfigs.pageSize);\r\n }\r\n\r\n GridLoad(list: ListResponse): void {\r\n this.gridConfigs.data = list.data;\r\n this.gridConfigs.total = list.total;\r\n }\r\n\r\n GridClear(): void {\r\n this.gridConfigs.total = 0;\r\n this.gridConfigs.data = [];\r\n }\r\n\r\n GridSetLoading(loading: boolean): void {\r\n this.gridConfigs.loading = loading;\r\n }\r\n\r\n GridInit() {\r\n if (this.$route.query) {\r\n if (this.$route.query.take) {\r\n this.gridConfigs.pageSize = parseInt(this.$route.query.take as string);\r\n }\r\n if (this.$route.query.skip) {\r\n let p =\r\n parseInt(this.$route.query.skip as string) /\r\n this.gridConfigs.pageSize;\r\n p = p + 1;\r\n this.gridConfigs.page = p;\r\n }\r\n }\r\n this.gridConfigs.inited = true;\r\n }\r\n\r\n GridFilter(header: DataServerGridTableHeader) {\r\n if (this.gridConfigs.page <= 1) {\r\n const p = Object.assign({}, this.$route.query, { skip: 0 });\r\n p[header.value] = header.filterItem;\r\n this.$router.push({ query: p });\r\n } else {\r\n this.gridConfigs.page = 1;\r\n }\r\n }\r\n\r\n GridClearFilter(header: DataServerGridTableHeader) {\r\n header.filterItem = \"\";\r\n this.GridFilter(header);\r\n }\r\n\r\n GridPagesizeChanged() {\r\n this.onGridOptionsChange();\r\n }\r\n\r\n GridPageChanged() {\r\n this.onGridOptionsChange();\r\n }\r\n\r\n onGridOptionsChange() {\r\n if (this.gridConfigs.inited) {\r\n const p = Object.assign({}, this.$route.query, {\r\n skip: (this.gridConfigs.page - 1) * this.gridConfigs.pageSize,\r\n take: this.gridConfigs.pageSize\r\n });\r\n // TODO Compare with previus route\r\n // const pQuery = Object.keys(p)\r\n // .map(key => key + (p[key] ? \"=\" + p[key] : \"\"))\r\n // .join(\"&\");\r\n // const routeQuery = this.$route.fullPath.split(\"?\")[1];\r\n // console.log([routeQuery, pQuery]);\r\n // if (pQuery !== routeQuery) {\r\n // console.log(\"Do sometinng\");\r\n // //this.$router.push({ query: p }).catch();\r\n // }\r\n\r\n this.$router.push({ query: p }).catch(() => {\r\n console.log(\"duplicated\");\r\n });\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=style&index=0&id=6f99beee&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=style&index=0&id=6f99beee&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DataGrid',{attrs:{\"endpoint\":_vm.endpoint,\"columns\":_vm.columns,\"enableReorder\":true,\"primary\":_vm.primary}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { GridColumnTypes, GridColumn } from \"@/models/grids/column\";\r\n\r\n@Component\r\nexport default class ActivityPrioritiesPage extends Vue {\r\n columns: GridColumn[] = [\r\n {\r\n text: \"Título\",\r\n value: \"title\",\r\n type: GridColumnTypes.Text,\r\n editable: true,\r\n editableClass: \"col-12\",\r\n editableRules: [this.$rules.minLenght(3)]\r\n },\r\n {\r\n text: \"Cor\",\r\n value: \"color\",\r\n type: GridColumnTypes.Color,\r\n editable: true\r\n }\r\n ];\r\n endpoint: string = \"api/activitypriorities\";\r\n primary: string = \"idActivityPriority\";\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityPriorities.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityPriorities.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActivityPriorities.vue?vue&type=template&id=00db92ea&\"\nimport script from \"./ActivityPriorities.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActivityPriorities.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { AuthenticatedService } from \"../abstract/base.service\";\r\nimport { ListResponse } from \"@/models/grids/list.response\";\r\nimport {\r\n EditActivityCommand,\r\n CreateActivityCommand,\r\n ChangeActivityStatusCommand,\r\n EditActivityMetadataCommand,\r\n StartActivityLogtimeWorkCommand,\r\n PauseActivityLogtimeWorkCommand,\r\n CompleteActivityLogtimeWorkCommand\r\n} from \"@/server/app.commands\";\r\nimport {\r\n ActivityDto,\r\n ActivityLogtimeWorkDto,\r\n ActivityStatisticsDto,\r\n MetadataConfiguration\r\n} from \"@/server/app.dtos\";\r\nimport { FilesUploader } from \"@/models/uploaders/file.uploader\";\r\nimport { ResultUploader } from \"@/models/uploaders/result.uploader\";\r\nimport { UploaderService } from \"@/services/cdn/uploader.service\";\r\nimport {\r\n GetActivityDtoQuery,\r\n GetActivitiesDtosQuery,\r\n GetActivityStatisticsDtoQuery,\r\n GetActivityMetadataDtoQuery,\r\n GetLastActivityLogtimeWorkDtoQuery\r\n} from \"@/server/app.queries\";\r\n\r\nexport const ActivitiesEndpoint = `api/activities`;\r\n\r\nexport class ActivitiesService extends AuthenticatedService {\r\n GetList(request: GetActivitiesDtosQuery): Promise> {\r\n return this.Get>(\r\n `${this.baseUrl}${ActivitiesEndpoint}?${this.GetQueryStringByObject(\r\n request\r\n )}`\r\n );\r\n }\r\n\r\n GetSingle(request: GetActivityDtoQuery): Promise {\r\n return this.Get(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${\r\n request.idActivity\r\n }?${this.GetQueryStringByObject(request)}`\r\n );\r\n }\r\n\r\n GetStatistics(\r\n request: GetActivityStatisticsDtoQuery\r\n ): Promise {\r\n return this.Get(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${request.idActivity}/statistics`\r\n );\r\n }\r\n\r\n Create(command: CreateActivityCommand): Promise {\r\n return this.Post(`${this.baseUrl}${ActivitiesEndpoint}`, command);\r\n }\r\n\r\n Edit(command: EditActivityCommand): Promise {\r\n return this.Put(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${command.idActivity}`,\r\n command\r\n );\r\n }\r\n\r\n DeleteById(id: number): Promise {\r\n return this.Delete(`${this.baseUrl}${ActivitiesEndpoint}/${id}`);\r\n }\r\n\r\n ChangeStatus(command: ChangeActivityStatusCommand): Promise {\r\n return this.Put(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${command.idActivity}/status/${command.idActivityStatus}`,\r\n command\r\n );\r\n }\r\n\r\n UploadFiles(rawData: any[]): Promise {\r\n const uploader = new FilesUploader();\r\n uploader.folder = \"/Activities/\";\r\n uploader.files = rawData;\r\n return new UploaderService().UploadMultipleFiles(uploader);\r\n }\r\n\r\n GetMetadata(\r\n request: GetActivityMetadataDtoQuery\r\n ): Promise {\r\n return this.Get(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${\r\n request.idActivity\r\n }/metadata?${this.GetQueryStringByObject(request)}`\r\n );\r\n }\r\n\r\n EditMetadata(command: EditActivityMetadataCommand): Promise {\r\n return this.Put(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${command.idActivity}/metadata`,\r\n command\r\n );\r\n }\r\n\r\n GetLastLogtime(\r\n request: GetLastActivityLogtimeWorkDtoQuery\r\n ): Promise {\r\n return this.Get(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${request.idActivity}/last-logtimework`\r\n );\r\n }\r\n\r\n StartLogtime(command: StartActivityLogtimeWorkCommand): Promise {\r\n return this.Post(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${command.idActivity}/start-logtimework`,\r\n command\r\n );\r\n }\r\n\r\n PauseLogtime(command: PauseActivityLogtimeWorkCommand): Promise {\r\n return this.Post(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${command.idActivity}/pause-logtimework`,\r\n command\r\n );\r\n }\r\n\r\n CompleteLogtime(\r\n command: CompleteActivityLogtimeWorkCommand\r\n ): Promise {\r\n return this.Post(\r\n `${this.baseUrl}${ActivitiesEndpoint}/${command.idActivity}/complete-logtimework`,\r\n command\r\n );\r\n }\r\n}\r\n","// Styles\nimport './VTextarea.sass'\n\n// Extensions\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport Vue from 'vue'\n\ninterface options extends Vue {\n $refs: {\n input: HTMLTextAreaElement\n }\n}\n\nconst baseMixins = mixins\n>(\n VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-textarea',\n\n props: {\n autoGrow: Boolean,\n noResize: Boolean,\n rowHeight: {\n type: [Number, String],\n default: 24,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseInt(v, 10)),\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-textarea': true,\n 'v-textarea--auto-grow': this.autoGrow,\n 'v-textarea--no-resize': this.noResizeHandle,\n ...VTextField.options.computed.classes.call(this),\n }\n },\n noResizeHandle (): boolean {\n return this.noResize || this.autoGrow\n },\n },\n\n watch: {\n lazyValue () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n rowHeight () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n },\n\n mounted () {\n setTimeout(() => {\n this.autoGrow && this.calculateInputHeight()\n }, 0)\n },\n\n methods: {\n calculateInputHeight () {\n const input = this.$refs.input\n if (!input) return\n\n input.style.height = '0'\n const height = input.scrollHeight\n const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n // This has to be done ASAP, waiting for Vue\n // to update the DOM causes ugly layout jumping\n input.style.height = Math.max(minHeight, height) + 'px'\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.tag = 'textarea'\n delete input.data!.attrs!.type\n input.data!.attrs!.rows = this.rows\n\n return input\n },\n onInput (e: Event) {\n VTextField.options.methods.onInput.call(this, e)\n this.autoGrow && this.calculateInputHeight()\n },\n onKeyDown (e: KeyboardEvent) {\n // Prevents closing of a\n // dialog when pressing\n // enter\n if (this.isFocused && e.keyCode === 13) {\n e.stopPropagation()\n }\n\n this.$emit('keydown', e)\n },\n },\n})\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchTimelineEntry.vue?vue&type=style&index=0&id=07e5190a&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchTimelineEntry.vue?vue&type=style&index=0&id=07e5190a&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DataGrid',{attrs:{\"endpoint\":(\"api/activities/\" + (_vm.activity.idActivity) + \"/files\"),\"columns\":_vm.columns,\"primary\":_vm.primary,\"folder\":(\"/activities/\" + (_vm.activity.idActivity) + \"/files\"),\"enableLanguages\":false}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { LanguageDto, ActivityDto } from \"@/server/app.dtos\";\r\nimport { GridColumn, GridColumnTypes } from \"@/models/grids/column\";\r\n\r\n@Component\r\nexport default class ActivityDetailDocumentsPage extends Vue {\r\n @Prop() activity!: ActivityDto;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n\r\n columns: GridColumn[] = [\r\n {\r\n text: \"Título\",\r\n value: \"title\",\r\n type: GridColumnTypes.Text,\r\n editable: true,\r\n editableClass: \"col-12\",\r\n editableRules: [this.$rules.minLenght(3)]\r\n },\r\n {\r\n text: \"Ficheiro\",\r\n value: \"filename\",\r\n type: GridColumnTypes.FileAny,\r\n editable: true,\r\n editableClass: \"col-12\",\r\n editableRules: [this.$rules.minLenght(3)]\r\n },\r\n {\r\n text: \"Público\",\r\n value: \"isPublic\",\r\n type: GridColumnTypes.Boolean,\r\n editable: true,\r\n editableClass: \"col-12\"\r\n }\r\n ];\r\n primary: string = \"idActivityFile\";\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Documents.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Documents.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Documents.vue?vue&type=template&id=d2ef105a&\"\nimport script from \"./Documents.vue?vue&type=script&lang=ts&\"\nexport * from \"./Documents.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h4',[_vm._v(\"Área\")]),_c('nav',[_c('v-radio-group-extended',{staticClass:\"m-0 p-0\",attrs:{\"mandatory\":false},model:{value:(_vm.currentAreaId),callback:function ($$v) {_vm.currentAreaId=$$v},expression:\"currentAreaId\"}},[_c('v-radio',{staticClass:\"m-0 p-0\",attrs:{\"label\":\"Todos\",\"value\":null,\"hide-details\":true}}),_vm._l((_vm.areas),function(item){return _c('v-radio',{key:(\"cbType-\" + (item.idActivityArea)),staticClass:\"m-0 p-0\",attrs:{\"label\":item.title,\"value\":item.idActivityArea,\"hide-details\":true}})})],2)],1),_c('h4',[_vm._v(\"Importância\")]),_c('nav',[_c('v-radio-group-extended',{staticClass:\"m-0 p-0\",attrs:{\"mandatory\":false},model:{value:(_vm.currentPriorityId),callback:function ($$v) {_vm.currentPriorityId=$$v},expression:\"currentPriorityId\"}},[_c('v-radio',{staticClass:\"m-0 p-0\",attrs:{\"label\":\"Todos\",\"value\":null,\"hide-details\":true}}),_vm._l((_vm.priorities),function(item){return _c('v-radio',{key:(\"cbPriority-\" + (item.idActivityPriority)),staticClass:\"m-0 p-0\",attrs:{\"label\":item.title,\"value\":item.idActivityPriority,\"hide-details\":true}})})],2)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport ConfigsService from \"@/services/api/configs.service\";\r\nimport {\r\n ActivityPriorityDto,\r\n LanguageDto,\r\n ActivityAreaDto\r\n} from \"@/server/app.dtos\";\r\n\r\n@Component\r\nexport default class ActivitiesMenuGlobal extends Vue {\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n @Getter(\"activityAreas\") areas!: ActivityAreaDto[];\r\n @Watch(\"activityArea\", { deep: true })\r\n onActivityAreaChanged() {\r\n this.Load();\r\n }\r\n @Watch(\"currentAreaId\")\r\n @Watch(\"currentPriorityId\")\r\n onChanged() {\r\n if (this.ignoreRender) {\r\n this.ignoreRender = false;\r\n return;\r\n }\r\n const p = Object.assign({}, this.$route.query, {\r\n skip: 0,\r\n idActivityArea: this.currentAreaId,\r\n idActivityPriority: this.currentPriorityId\r\n });\r\n this.$router.push({ query: p });\r\n }\r\n configsService: ConfigsService = new ConfigsService();\r\n priorities: ActivityPriorityDto[] = [];\r\n\r\n ignoreRender: boolean = true;\r\n currentAreaId: number | null = null;\r\n currentPriorityId: number | null = null;\r\n\r\n async created() {\r\n if (this.$route.query) {\r\n const q = this.$route.query;\r\n if (q.idActivityArea) {\r\n this.currentAreaId = parseInt(q.idActivityArea as string);\r\n }\r\n if (q.idActivityPriority) {\r\n this.currentPriorityId = parseInt(q.idActivityPriority as string);\r\n }\r\n }\r\n\r\n await this.Load();\r\n }\r\n\r\n async Load() {\r\n await this.configsService\r\n .Load(\r\n \"api/activitypriorities\",\r\n \"IdLanguage=\" + this.currentLanguage.idLanguage\r\n )\r\n .then(result => (this.priorities = result));\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuGlobal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuGlobal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MenuGlobal.vue?vue&type=template&id=7f5678d0&\"\nimport script from \"./MenuGlobal.vue?vue&type=script&lang=ts&\"\nexport * from \"./MenuGlobal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\ninstallComponents(component, {VRadio})\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","import { AuthenticatedService } from \"../abstract/base.service\";\r\nimport {\r\n LanguageDto,\r\n ActivityAreaDto,\r\n MetadataConfiguration\r\n} from \"@/server/app.dtos\";\r\nimport {\r\n GetActivityAreaDtosQuery,\r\n GetActivityAreaMetadataGroupsConfigurationDtoQuery\r\n} from \"@/server/app.queries\";\r\nimport { EditActivityAreaMetadataGroupsConfigurationCommand } from \"@/server/app.commands\";\r\n\r\nexport const ActivitiesAreasEndpoint = `api/activityareas`;\r\n\r\nexport class ActivitiesAreasService extends AuthenticatedService {\r\n GetAllByLanguage(language: LanguageDto): Promise {\r\n const request = new GetActivityAreaDtosQuery();\r\n request.idLanguage = language.idLanguage || 1;\r\n return this.GetAll(request);\r\n }\r\n\r\n GetAll(request: GetActivityAreaDtosQuery): Promise {\r\n return this.Get(\r\n `${this.baseUrl}${ActivitiesAreasEndpoint}?${this.GetQueryStringByObject(\r\n request\r\n )}`\r\n );\r\n }\r\n\r\n ChangeMetadataGroups(\r\n command: EditActivityAreaMetadataGroupsConfigurationCommand\r\n ): Promise {\r\n return this.Put(\r\n `${this.baseUrl}${ActivitiesAreasEndpoint}/metadatagroupsconfig`,\r\n command\r\n );\r\n }\r\n\r\n GetMetadataGroupsConfiguration(\r\n query: GetActivityAreaMetadataGroupsConfigurationDtoQuery\r\n ): Promise {\r\n return this.Get(\r\n `${\r\n this.baseUrl\r\n }${ActivitiesAreasEndpoint}/metadatagroupsconfig?${this.GetQueryStringByObject(\r\n query\r\n )}`\r\n );\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.instance)?_c('div',{staticClass:\"container\"},[_c('Panel',{attrs:{\"title\":false,\"footer\":false}},[_c('v-tabs',{model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('v-tab',[_vm._v(\"Dados Gerais\")]),_c('v-tab',[_vm._v(\"Atributos\")])],1),_c('v-tabs-items',{model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('v-tab-item',[_c('v-form',{staticClass:\"px-4 py-4\",attrs:{\"action\":\"/\",\"method\":\"post\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.onEditActivity($event)}},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',{staticClass:\"mb-4\"},[_c('v-text-field',{attrs:{\"label\":\"Designação do evento*\",\"rules\":[_vm.$rules.required],\"required\":\"\"},model:{value:(_vm.instance.title),callback:function ($$v) {_vm.$set(_vm.instance, \"title\", $$v)},expression:\"instance.title\"}})],1),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('v-autocomplete',{attrs:{\"item-text\":'title',\"item-value\":'idActivityType',\"label\":'Tipo*',\"items\":_vm.activityTypes,\"rules\":[_vm.$rules.required]},model:{value:(_vm.instance.idActivityType),callback:function ($$v) {_vm.$set(_vm.instance, \"idActivityType\", $$v)},expression:\"instance.idActivityType\"}})],1),_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('v-autocomplete',{attrs:{\"item-text\":'title',\"item-value\":'idActivityPriority',\"label\":\"Prioridade*\",\"items\":_vm.activityPriorities,\"rules\":[_vm.$rules.required]},model:{value:(_vm.instance.idActivityPriority),callback:function ($$v) {_vm.$set(_vm.instance, \"idActivityPriority\", $$v)},expression:\"instance.idActivityPriority\"}})],1)]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('DateTimePicker',{attrs:{\"label\":\"Data de Início*\",\"required\":\"\",\"rules\":[_vm.$rules.required]},model:{value:(_vm.instance.dateStart),callback:function ($$v) {_vm.$set(_vm.instance, \"dateStart\", $$v)},expression:\"instance.dateStart\"}})],1),(_vm.area && _vm.area.allowDateEnd)?_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('DateTimePicker',{attrs:{\"label\":\"Data de Fim\"},model:{value:(_vm.instance.dateEnd),callback:function ($$v) {_vm.$set(_vm.instance, \"dateEnd\", $$v)},expression:\"instance.dateEnd\"}})],1):_vm._e()]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-6 col-12\"},[_c('DatePicker',{attrs:{\"label\":\"Data de Publicação\"},model:{value:(_vm.instance.datePublication),callback:function ($$v) {_vm.$set(_vm.instance, \"datePublication\", $$v)},expression:\"instance.datePublication\"}})],1),_c('div',{staticClass:\"col-sm-6 col-12\"},[(_vm.users)?_c('v-autocomplete',{attrs:{\"item-text\":'name',\"item-value\":'idUser',\"label\":\"Responsável*\",\"items\":_vm.users,\"rules\":[_vm.$rules.required]},model:{value:(_vm.instance.idOwner),callback:function ($$v) {_vm.$set(_vm.instance, \"idOwner\", $$v)},expression:\"instance.idOwner\"}}):_vm._e()],1)]),_c('div',{staticClass:\"mb-2\"},[_c('v-autocomplete',{attrs:{\"item-text\":'name',\"item-value\":'idAppGroup',\"label\":\"Destinatários\",\"items\":_vm.appGroups,\"chips\":\"\",\"multiple\":\"\",\"clearable\":\"\",\"deletable-chips\":true},model:{value:(_vm.instance.appGroups),callback:function ($$v) {_vm.$set(_vm.instance, \"appGroups\", $$v)},expression:\"instance.appGroups\"}})],1),_c('label',[_vm._v(\"Descrição\")]),_c('HTMLEditor',{attrs:{\"mode\":\"simple\"},model:{value:(_vm.instance.description),callback:function ($$v) {_vm.$set(_vm.instance, \"description\", $$v)},expression:\"instance.description\"}}),_c('div',{staticClass:\"d-flex align-items-start\"},[_c('v-checkbox',{attrs:{\"label\":\"Em Destaque\"},model:{value:(_vm.instance.isPrivate),callback:function ($$v) {_vm.$set(_vm.instance, \"isPrivate\", $$v)},expression:\"instance.isPrivate\"}})],1),_c('div',{staticClass:\"d-flex k-align-center justify-space-between\"},[_c('v-btn',{attrs:{\"disabled\":!_vm.isValid,\"loading\":_vm.isLoading,\"color\":\"primary\",\"type\":\"submit\"}},[_vm._v(\"Confirmar\")])],1)],1)],1),_c('v-tab-item',[(_vm.metadata)?_c('MetadataForm',{attrs:{\"metadata\":_vm.metadata,\"folder\":(\"/Activities/\" + (this.instance.idActivity) + \"/metadata/\")},on:{\"onSave\":_vm.onEditMetatada}}):_vm._e()],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport {\r\n LanguageDto,\r\n ActivityDto,\r\n ActivityAreaDto,\r\n ActivityTypeDto,\r\n ActivityPriorityDto,\r\n UserDto,\r\n AppGroupDto,\r\n MetadataConfigurationComposer,\r\n MetadataConfiguration\r\n} from \"@/server/app.dtos\";\r\nimport { ActivitiesService } from \"@/services/api/activities.service\";\r\nimport ConfigsService from \"@/services/api/configs.service\";\r\nimport { UsersService } from \"@/services/api/users.service\";\r\nimport {\r\n EditActivityCommand,\r\n EditActivityMetadataCommand\r\n} from \"@/server/app.commands\";\r\nimport { NotificationServiceBus } from \"@/services/bus/notifications.service\";\r\nimport { GetActivityMetadataDtoQuery } from \"@/server/app.queries\";\r\n\r\n@Component\r\nexport default class ActivityEditPage extends Vue {\r\n @Prop() activity!: ActivityDto;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n instance!: EditActivityCommand;\r\n activitiesService: ActivitiesService = new ActivitiesService();\r\n usersService: UsersService = new UsersService();\r\n configsService: ConfigsService = new ConfigsService();\r\n activityTypes: ActivityTypeDto[] = [];\r\n activityPriorities: ActivityPriorityDto[] = [];\r\n users: UserDto[] | null = null;\r\n appGroups: AppGroupDto[] | null = null;\r\n metadata: MetadataConfiguration | null = null;\r\n\r\n tabs: string[] = [\"Dados Gerais\", \"Atributos\"];\r\n currentTab: string = \"general\";\r\n isLoading: boolean = false;\r\n isValid: boolean = false;\r\n\r\n start: Date = new Date();\r\n\r\n get area(): ActivityAreaDto | undefined {\r\n return this.activity?.activityArea;\r\n }\r\n\r\n async created() {\r\n this.instance = new EditActivityCommand();\r\n this.instance.init(this.activity);\r\n this.instance.appGroups = this.activity?.appGroups?.map(\r\n f => f.idAppGroup\r\n ) as number[];\r\n this.instance.idOwner = this.activity.owner?.idUser;\r\n await this.LoadRelatedData();\r\n }\r\n\r\n async LoadRelatedData() {\r\n let query: string = \"IdLanguage=\" + this.currentLanguage.idLanguage;\r\n if (this.area != null) {\r\n query += \"&IdActivityArea=\" + this.area.idActivityArea;\r\n }\r\n\r\n // Load App Groups\r\n await this.configsService.Load(\"api/appgroups\", query).then(result => {\r\n this.appGroups = result;\r\n });\r\n\r\n // Load ActivityTypes\r\n await this.configsService.Load(\"api/activitytypes\", query).then(result => {\r\n this.activityTypes = result;\r\n });\r\n\r\n // Load ActivityPriorities\r\n await this.configsService\r\n .Load(\r\n \"api/activitypriorities\",\r\n \"IdLanguage=\" + this.currentLanguage.idLanguage\r\n )\r\n .then(result => {\r\n this.activityPriorities = result;\r\n });\r\n\r\n // Load Users\r\n await this.usersService\r\n .GetInternalUsers(this.currentLanguage)\r\n .then((users: UserDto[]) => (this.users = users));\r\n\r\n // Load Metadata\r\n const metadataQuery = new GetActivityMetadataDtoQuery();\r\n metadataQuery.idActivity = this.activity.idActivity;\r\n metadataQuery.idLanguage = this.currentLanguage.idLanguage;\r\n await this.activitiesService\r\n .GetMetadata(metadataQuery)\r\n .then((response: MetadataConfiguration) => (this.metadata = response));\r\n }\r\n\r\n async onEditActivity() {\r\n if (this.isLoading) return;\r\n this.isLoading = true;\r\n await this.activitiesService\r\n .Edit(this.instance)\r\n .then((id: number) => {\r\n NotificationServiceBus.showSuccessMessage(\r\n \"Sucesso\",\r\n \"Operação efetuada com sucessso\"\r\n );\r\n this.$router.push(`/activity/${id}/dashboard`);\r\n })\r\n .catch((error: any) => NotificationServiceBus.showError(error))\r\n .finally(() => (this.isLoading = false));\r\n }\r\n\r\n async onEditMetatada(data: MetadataConfigurationComposer) {\r\n if (this.isLoading) return;\r\n this.isLoading = true;\r\n const command = new EditActivityMetadataCommand();\r\n command.idActivity = this.activity.idActivity;\r\n command.metadata = data.metadata;\r\n await this.activitiesService\r\n .EditMetadata(command)\r\n .then((id: number) => {\r\n NotificationServiceBus.showSuccessMessage(\r\n \"Sucesso\",\r\n \"Operação efetuada com sucessso\"\r\n );\r\n this.$router.push(`/activity/${id}/dashboard`);\r\n })\r\n .catch((error: any) => NotificationServiceBus.showError(error))\r\n .finally(() => (this.isLoading = false));\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Edit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Edit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Edit.vue?vue&type=template&id=90a34762&\"\nimport script from \"./Edit.vue?vue&type=script&lang=ts&\"\nexport * from \"./Edit.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VBtn,VCheckbox,VForm,VTab,VTabItem,VTabs,VTabsItems,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DataGrid',{attrs:{\"endpoint\":_vm.endpoint,\"columns\":_vm.columns,\"enableReorder\":true,\"primary\":_vm.primary}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { GridColumnTypes, GridColumn } from \"@/models/grids/column\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { ActivityAreaDto } from \"@/server/app.dtos\";\r\n\r\n@Component\r\nexport default class ActivityTypesPage extends Vue {\r\n @Getter activityAreas!: ActivityAreaDto[];\r\n columns: GridColumn[] = [\r\n {\r\n text: \"Título\",\r\n value: \"title\",\r\n type: GridColumnTypes.Text,\r\n editable: true,\r\n editableClass: \"col-12\",\r\n editableRules: [this.$rules.minLenght(3)]\r\n },\r\n {\r\n text: \"Área\",\r\n value: \"idActivityArea\",\r\n type: GridColumnTypes.Dropdown,\r\n editable: true,\r\n filterable: true,\r\n editableClass: \"col-12\",\r\n editableRules: [this.$rules.required],\r\n arg: {\r\n items: [],\r\n itemText: \"title\",\r\n itemValue: \"idActivityArea\",\r\n value: null\r\n }\r\n }\r\n ];\r\n endpoint: string = \"api/activitytypes\";\r\n primary: string = \"idActivityType\";\r\n\r\n created() {\r\n this.columns[1].arg.items = this.activityAreas;\r\n this.columns[1].arg.value = this.activityAreas[0];\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityTypes.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityTypes.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActivityTypes.vue?vue&type=template&id=48c66454&\"\nimport script from \"./ActivityTypes.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActivityTypes.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('Subheader',[_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[_c('Breadcrumb',{attrs:{\"routes\":['Actividades', 'Calendário']}}),_c('DateClock')],1),_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[_c('h1',[_vm._v(\"Calendário\")]),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"rounded\":\"\"}},'v-btn',attrs,false),on),[_c('i',{staticClass:\"las la-plus\"}),_vm._v(\" Adicionar \")])]}}])},[_c('v-list',_vm._l((_vm.areas),function(item){return _c('v-list-item',{key:item.idActivityArea,on:{\"click\":function($event){return _vm.createActivity(item)}}},[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)}),1)],1)],1)]),_c('LeftMenuLayout',{scopedSlots:_vm._u([{key:\"Menu\",fn:function(){return [_c('LeftMenu')]},proxy:true}])},[_c('FiltersMenu'),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('v-btn',{attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.$refs.calendar.prev()}}},[_c('i',{staticClass:\"las la-angle-left\"})]),_c('v-btn',{attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.$refs.calendar.next()}}},[_c('i',{staticClass:\"las la-angle-right\"})])],1),_c('v-sheet',[_c('v-calendar',{ref:\"calendar\",attrs:{\"now\":_vm.now,\"events\":_vm.events,\"color\":\"primary\",\"type\":\"week\"},model:{value:(_vm.start),callback:function ($$v) {_vm.start=$$v},expression:\"start\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Watch, Vue } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { LanguageDto, ActivityDto, ActivityAreaDto } from \"@/server/app.dtos\";\r\nimport SideComponent from \"@/models/shared/side.component\";\r\nimport { LayoutServiceBus } from \"@/services/bus/layout.service\";\r\nimport { ActivitiesService } from \"@/services/api/activities.service\";\r\nimport {\r\n GetActivitiesDtosQuery,\r\n GetActivitiesDtosIncludeOptions\r\n} from \"@/server/app.queries\";\r\nimport { ListResponse } from \"@/models/grids/list.response\";\r\nimport ActivitiesMenuGlobal from \"./shared/MenuGlobal.vue\";\r\nimport ActivitiesMenuFilters from \"./shared/MenuFilters.vue\";\r\nimport ActivityTimelienEntry from \"@/components/timelines/ActivityTimelineEntry.vue\";\r\nimport SearchTimelienEntry from \"@/components/timelines/SearchTimelineEntry.vue\";\r\n\r\n@Component({\r\n components: {\r\n SearchEntry: SearchTimelienEntry,\r\n Entry: ActivityTimelienEntry,\r\n LeftMenu: ActivitiesMenuGlobal,\r\n FiltersMenu: ActivitiesMenuFilters\r\n }\r\n})\r\nexport default class ActivitiesCalendarPage extends Vue {\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n @Getter(\"activityAreas\") areas!: ActivityAreaDto[];\r\n @Watch(\"$route\", { deep: true })\r\n onRouteChange() {\r\n this.Load();\r\n }\r\n isLoading: boolean = false;\r\n start: Date = new Date();\r\n now: Date = new Date();\r\n events: any[] = [];\r\n activitiesService: ActivitiesService = new ActivitiesService();\r\n\r\n async created() {\r\n await this.Load();\r\n }\r\n\r\n async Load() {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n const request = new GetActivitiesDtosQuery();\r\n request.init(this.$route.query);\r\n request.includes = new GetActivitiesDtosIncludeOptions();\r\n request.take = 20;\r\n await this.activitiesService\r\n .GetList(request)\r\n .then((result: ListResponse) =>\r\n this.parseEvents(result.data)\r\n )\r\n .catch((error: any) => console.log(error))\r\n .finally(() => (this.isLoading = false));\r\n }\r\n\r\n parseEvents(items: ActivityDto[]): void {\r\n this.events = [];\r\n items.forEach((item: ActivityDto) => {\r\n this.events.push({\r\n name: item.title,\r\n start: item.dateStart,\r\n end: item.dateStart\r\n });\r\n });\r\n }\r\n\r\n viewActivity(activity: ActivityDto): void {\r\n const comp = new SideComponent();\r\n comp.title = \"DetailActivitySideMenuComponent\";\r\n comp.args = {\r\n activity: activity\r\n };\r\n LayoutServiceBus.openSideMenu(comp);\r\n }\r\n\r\n createActivity(area: ActivityAreaDto): void {\r\n const comp = new SideComponent();\r\n comp.title = \"CreateActivitySideMenuComponent\";\r\n comp.args = {\r\n activityArea: area\r\n };\r\n LayoutServiceBus.openSideMenu(comp);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=script&lang=ts&\"","import Vue from 'vue'\n\nexport type MouseHandler = (e: MouseEvent | TouchEvent) => any\n\nexport type MouseEvents = {\n [event: string]: {\n event: string\n passive?: boolean\n capture?: boolean\n once?: boolean\n stop?: boolean\n prevent?: boolean\n button?: number\n result?: any\n }\n}\n\nexport type MouseEventsMap = {\n [event: string]: MouseHandler | MouseHandler[]\n}\n\nexport default Vue.extend({\n name: 'mouse',\n\n methods: {\n getDefaultMouseEventHandlers (suffix: string, getEvent: MouseHandler): MouseEventsMap {\n return this.getMouseEventHandlers({\n ['click' + suffix]: { event: 'click' },\n ['contextmenu' + suffix]: { event: 'contextmenu', prevent: true, result: false },\n ['mousedown' + suffix]: { event: 'mousedown' },\n ['mousemove' + suffix]: { event: 'mousemove' },\n ['mouseup' + suffix]: { event: 'mouseup' },\n ['mouseenter' + suffix]: { event: 'mouseenter' },\n ['mouseleave' + suffix]: { event: 'mouseleave' },\n ['touchstart' + suffix]: { event: 'touchstart' },\n ['touchmove' + suffix]: { event: 'touchmove' },\n ['touchend' + suffix]: { event: 'touchend' },\n }, getEvent)\n },\n getMouseEventHandlers (events: MouseEvents, getEvent: MouseHandler): MouseEventsMap {\n const on: MouseEventsMap = {}\n\n for (const event in events) {\n const eventOptions = events[event]\n\n if (!this.$listeners[event]) continue\n\n // TODO somehow pull in modifiers\n\n const prefix = eventOptions.passive ? '&' : ((eventOptions.once ? '~' : '') + (eventOptions.capture ? '!' : ''))\n const key = prefix + eventOptions.event\n\n const handler: MouseHandler = e => {\n const mouseEvent: MouseEvent = e as MouseEvent\n if (eventOptions.button === undefined || (mouseEvent.buttons > 0 && mouseEvent.button === eventOptions.button)) {\n if (eventOptions.prevent) {\n e.preventDefault()\n }\n if (eventOptions.stop) {\n e.stopPropagation()\n }\n this.$emit(event, getEvent(e))\n }\n\n return eventOptions.result\n }\n\n if (key in on) {\n /* istanbul ignore next */\n if (Array.isArray(on[key])) {\n (on[key] as MouseHandler[]).push(handler)\n } else {\n on[key] = [on[key], handler] as MouseHandler[]\n }\n } else {\n on[key] = handler\n }\n }\n\n return on\n },\n },\n})\n","import Vue from 'vue'\n\nimport {\n validateTimestamp,\n parseTimestamp,\n parseDate,\n} from '../util/timestamp'\nimport { CalendarTimestamp } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'times',\n\n props: {\n now: {\n type: String,\n validator: validateTimestamp,\n },\n },\n\n data: () => ({\n times: {\n now: parseTimestamp('0000-00-00 00:00', true),\n today: parseTimestamp('0000-00-00', true),\n },\n }),\n\n computed: {\n parsedNow (): CalendarTimestamp | null {\n return this.now ? parseTimestamp(this.now, true) : null\n },\n },\n\n watch: {\n parsedNow: 'updateTimes',\n },\n\n created () {\n this.updateTimes()\n this.setPresent()\n },\n\n methods: {\n setPresent (): void {\n this.times.now.present = this.times.today.present = true\n this.times.now.past = this.times.today.past = false\n this.times.now.future = this.times.today.future = false\n },\n updateTimes (): void {\n const now: CalendarTimestamp = this.parsedNow || this.getNow()\n this.updateDay(now, this.times.now)\n this.updateTime(now, this.times.now)\n this.updateDay(now, this.times.today)\n },\n getNow (): CalendarTimestamp {\n return parseDate(new Date())\n },\n updateDay (now: CalendarTimestamp, target: CalendarTimestamp): void {\n if (now.date !== target.date) {\n target.year = now.year\n target.month = now.month\n target.day = now.day\n target.weekday = now.weekday\n target.date = now.date\n }\n },\n updateTime (now: CalendarTimestamp, target: CalendarTimestamp): void {\n if (now.time !== target.time) {\n target.hour = now.hour\n target.minute = now.minute\n target.time = now.time\n }\n },\n },\n})\n","import { CalendarEventParsed, CalendarEventVisual, CalendarTimestamp } from 'vuetify/types'\nimport { getTimestampIdentifier } from '../util/timestamp'\n\nconst MILLIS_IN_DAY = 86400000\n\nexport type GetRange = (event: CalendarEventParsed) => [number, number]\n\nexport function getVisuals (events: CalendarEventParsed[], minStart = 0): CalendarEventVisual[] {\n const visuals = events.map(event => ({\n event,\n columnCount: 0,\n column: 0,\n left: 0,\n width: 100,\n }))\n\n visuals.sort((a, b) => {\n return (Math.max(minStart, a.event.startTimestampIdentifier) - Math.max(minStart, b.event.startTimestampIdentifier)) ||\n (b.event.endTimestampIdentifier - a.event.endTimestampIdentifier)\n })\n\n return visuals\n}\n\nexport interface ColumnGroup {\n start: number\n end: number\n visuals: CalendarEventVisual[]\n}\n\nexport function hasOverlap (s0: number, e0: number, s1: number, e1: number, exclude = true): boolean {\n return exclude ? !(s0 >= e1 || e0 <= s1) : !(s0 > e1 || e0 < s1)\n}\n\nexport function setColumnCount (groups: ColumnGroup[]) {\n groups.forEach(group => {\n group.visuals.forEach(groupVisual => {\n groupVisual.columnCount = groups.length\n })\n })\n}\n\nexport function getRange (event: CalendarEventParsed): [number, number] {\n return [event.startTimestampIdentifier, event.endTimestampIdentifier]\n}\n\nexport function getDayRange (event: CalendarEventParsed): [number, number] {\n return [event.startIdentifier, event.endIdentifier]\n}\n\nexport function getNormalizedRange (event: CalendarEventParsed, dayStart: number): [number, number] {\n return [Math.max(dayStart, event.startTimestampIdentifier), Math.min(dayStart + MILLIS_IN_DAY, event.endTimestampIdentifier)]\n}\n\nexport function getOpenGroup (groups: ColumnGroup[], start: number, end: number, timed: boolean) {\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i]\n let intersected = false\n\n if (hasOverlap(start, end, group.start, group.end, timed)) {\n for (let k = 0; k < group.visuals.length; k++) {\n const groupVisual = group.visuals[k]\n const [groupStart, groupEnd] = timed ? getRange(groupVisual.event) : getDayRange(groupVisual.event)\n\n if (hasOverlap(start, end, groupStart, groupEnd, timed)) {\n intersected = true\n break\n }\n }\n }\n\n if (!intersected) {\n return i\n }\n }\n\n return -1\n}\n\nexport function getOverlapGroupHandler (firstWeekday: number) {\n const handler = {\n groups: [] as ColumnGroup[],\n min: -1,\n max: -1,\n reset: () => {\n handler.groups = []\n handler.min = handler.max = -1\n },\n getVisuals: (day: CalendarTimestamp, dayEvents: CalendarEventParsed[], timed: boolean, reset = false) => {\n if (day.weekday === firstWeekday || reset) {\n handler.reset()\n }\n\n const dayStart = getTimestampIdentifier(day)\n const visuals = getVisuals(dayEvents, dayStart)\n\n visuals.forEach(visual => {\n const [start, end] = timed ? getRange(visual.event) : getDayRange(visual.event)\n\n if (handler.groups.length > 0 && !hasOverlap(start, end, handler.min, handler.max, timed)) {\n setColumnCount(handler.groups)\n handler.reset()\n }\n\n let targetGroup = getOpenGroup(handler.groups, start, end, timed)\n\n if (targetGroup === -1) {\n targetGroup = handler.groups.length\n\n handler.groups.push({ start, end, visuals: [] })\n }\n\n const target = handler.groups[targetGroup]\n target.visuals.push(visual)\n target.start = Math.min(target.start, start)\n target.end = Math.max(target.end, end)\n\n visual.column = targetGroup\n\n if (handler.min === -1) {\n handler.min = start\n handler.max = end\n } else {\n handler.min = Math.min(handler.min, start)\n handler.max = Math.max(handler.max, end)\n }\n })\n\n setColumnCount(handler.groups)\n\n if (timed) {\n handler.reset()\n }\n\n return visuals\n },\n }\n\n return handler\n}\n","import { CalendarEventOverlapMode, CalendarEventVisual } from 'vuetify/types'\nimport { getOverlapGroupHandler, getVisuals, hasOverlap, getNormalizedRange } from './common'\nimport { getTimestampIdentifier } from '../util/timestamp'\n\ninterface Group {\n start: number\n end: number\n visuals: CalendarEventVisual[]\n}\n\ninterface Node {\n parent: Node | null\n sibling: boolean\n index: number\n visual: CalendarEventVisual\n start: number\n end: number\n children: Node[]\n}\n\nconst FULL_WIDTH = 100\n\nconst DEFAULT_OFFSET = 5\n\nconst WIDTH_MULTIPLIER = 1.7\n\n/**\n * Variation of column mode where events can be stacked. The priority of this\n * mode is to stack events together taking up the least amount of space while\n * trying to ensure the content of the event is always visible as well as its\n * start and end. A sibling column has intersecting event content and must be\n * placed beside each other. Non-sibling columns are offset by 5% from the\n * previous column. The width is scaled by 1.7 so the events overlap and\n * whitespace is reduced. If there is a hole in columns the event width is\n * scaled up so it intersects with the next column. The columns have equal\n * width in the space they are given. If the event doesn't have any to the\n * right of it that intersect with it's content it's right side is extended\n * to the right side.\n */\n\nexport const stack: CalendarEventOverlapMode = (events, firstWeekday, overlapThreshold) => {\n const handler = getOverlapGroupHandler(firstWeekday)\n\n // eslint-disable-next-line max-statements\n return (day, dayEvents, timed, reset) => {\n if (!timed) {\n return handler.getVisuals(day, dayEvents, timed, reset)\n }\n\n const dayStart = getTimestampIdentifier(day)\n const visuals = getVisuals(dayEvents, dayStart)\n const groups = getGroups(visuals, dayStart)\n\n for (const group of groups) {\n const nodes: Node[] = []\n\n for (const visual of group.visuals) {\n const child = getNode(visual, dayStart)\n const index = getNextIndex(child, nodes)\n\n if (index === false) {\n const parent = getParent(child, nodes)\n if (parent) {\n child.parent = parent\n child.sibling = hasOverlap(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold))\n child.index = parent.index + 1\n parent.children.push(child)\n }\n } else {\n const [parent] = getOverlappingRange(child, nodes, index - 1, index - 1)\n const children = getOverlappingRange(child, nodes, index + 1, index + nodes.length, true)\n\n child.children = children\n child.index = index\n\n if (parent) {\n child.parent = parent\n child.sibling = hasOverlap(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold))\n parent.children.push(child)\n }\n\n for (const grand of children) {\n if (grand.parent === parent) {\n grand.parent = child\n }\n\n const grandNext = grand.index - child.index <= 1\n if (grandNext && child.sibling &&\n hasOverlap(child.start, addTime(child.start, overlapThreshold), grand.start, grand.end)) {\n grand.sibling = true\n }\n }\n }\n\n nodes.push(child)\n }\n\n calculateBounds(nodes, overlapThreshold)\n }\n\n visuals.sort((a, b) => (a.left - b.left) || (a.event.startTimestampIdentifier - b.event.startTimestampIdentifier))\n\n return visuals\n }\n}\n\nfunction calculateBounds (nodes: Node[], overlapThreshold: number) {\n for (const node of nodes) {\n const { visual, parent } = node\n const columns = getMaxChildIndex(node) + 1\n const spaceLeft = parent ? parent.visual.left : 0\n const spaceWidth = FULL_WIDTH - spaceLeft\n const offset = Math.min(DEFAULT_OFFSET, FULL_WIDTH / columns)\n const columnWidthMultiplier = getColumnWidthMultiplier(node, nodes)\n const columnOffset = spaceWidth / (columns - node.index + 1)\n const columnWidth = spaceWidth / (columns - node.index + (node.sibling ? 1 : 0)) * columnWidthMultiplier\n\n if (parent) {\n visual.left = node.sibling\n ? spaceLeft + columnOffset\n : spaceLeft + offset\n }\n\n visual.width = hasFullWidth(node, nodes, overlapThreshold)\n ? FULL_WIDTH - visual.left\n : Math.min(FULL_WIDTH - visual.left, columnWidth * WIDTH_MULTIPLIER)\n }\n}\n\nfunction getColumnWidthMultiplier (node: Node, nodes: Node[]): number {\n if (!node.children.length) {\n return 1\n }\n\n const maxColumn = node.index + nodes.length\n const minColumn = node.children.reduce((min, c) => Math.min(min, c.index), maxColumn)\n\n return minColumn - node.index\n}\n\nfunction getOverlappingIndices (node: Node, nodes: Node[]): number[] {\n const indices: number[] = []\n for (const other of nodes) {\n if (hasOverlap(node.start, node.end, other.start, other.end)) {\n indices.push(other.index)\n }\n }\n return indices\n}\n\nfunction getNextIndex (node: Node, nodes: Node[]): number | false {\n const indices = getOverlappingIndices(node, nodes)\n indices.sort()\n\n for (let i = 0; i < indices.length; i++) {\n if (i < indices[i]) {\n return i\n }\n }\n return false\n}\n\nfunction getOverlappingRange (node: Node, nodes: Node[], indexMin: number, indexMax: number, returnFirstColumn = false): Node[] {\n const overlapping: Node[] = []\n for (const other of nodes) {\n if (other.index >= indexMin && other.index <= indexMax && hasOverlap(node.start, node.end, other.start, other.end)) {\n overlapping.push(other)\n }\n }\n if (returnFirstColumn && overlapping.length > 0) {\n const first = overlapping.reduce((min, n) => Math.min(min, n.index), overlapping[0].index)\n return overlapping.filter(n => n.index === first)\n }\n return overlapping\n}\n\nfunction getParent (node: Node, nodes: Node[]): Node | null {\n let parent: Node | null = null\n for (const other of nodes) {\n if (hasOverlap(node.start, node.end, other.start, other.end) && (parent === null || other.index > parent.index)) {\n parent = other\n }\n }\n return parent\n}\n\nfunction hasFullWidth (node: Node, nodes: Node[], overlapThreshold: number): boolean {\n for (const other of nodes) {\n if (other !== node &&\n other.index > node.index &&\n hasOverlap(node.start, addTime(node.start, overlapThreshold), other.start, other.end)) {\n return false\n }\n }\n\n return true\n}\n\nfunction getGroups (visuals: CalendarEventVisual[], dayStart: number): Group[] {\n const groups: Group[] = []\n\n for (const visual of visuals) {\n const [start, end] = getNormalizedRange(visual.event, dayStart)\n let added = false\n\n for (const group of groups) {\n if (hasOverlap(start, end, group.start, group.end)) {\n group.visuals.push(visual)\n group.end = Math.max(group.end, end)\n added = true\n break\n }\n }\n\n if (!added) {\n groups.push({ start, end, visuals: [visual] })\n }\n }\n\n return groups\n}\n\nfunction getNode (visual: CalendarEventVisual, dayStart: number): Node {\n const [start, end] = getNormalizedRange(visual.event, dayStart)\n\n return {\n parent: null,\n sibling: true,\n index: 0,\n visual,\n start,\n end,\n children: [],\n }\n}\n\nfunction getMaxChildIndex (node: Node): number {\n let max = node.index\n for (const child of node.children) {\n const childMax = getMaxChildIndex(child)\n if (childMax > max) {\n max = childMax\n }\n }\n return max\n}\n\nfunction addTime (identifier: number, minutes: number): number {\n const removeMinutes = identifier % 100\n const totalMinutes = removeMinutes + minutes\n const addHours = Math.floor(totalMinutes / 60)\n const addMinutes = totalMinutes % 60\n\n return identifier - removeMinutes + addHours * 100 + addMinutes\n}\n","import { CalendarEventOverlapMode } from 'vuetify/types'\nimport { getOverlapGroupHandler } from './common'\n\nconst FULL_WIDTH = 100\n\nexport const column: CalendarEventOverlapMode = (events, firstWeekday, overlapThreshold) => {\n const handler = getOverlapGroupHandler(firstWeekday)\n\n return (day, dayEvents, timed, reset) => {\n const visuals = handler.getVisuals(day, dayEvents, timed, reset)\n\n if (timed) {\n visuals.forEach(visual => {\n visual.left = visual.column * FULL_WIDTH / visual.columnCount\n visual.width = FULL_WIDTH / visual.columnCount\n })\n }\n\n return visuals\n }\n}\n","import { CalendarEventOverlapMode } from 'vuetify/types'\nimport { stack } from './stack'\nimport { column } from './column'\n\nexport const CalendarEventOverlapModes: Record = {\n stack,\n column,\n}\n","\nimport { validateTimestamp, parseDate, DAYS_IN_WEEK, validateTime } from './timestamp'\nimport { PropType } from 'vue'\nimport { CalendarEvent, CalendarFormatter, CalendarTimestamp, CalendarEventOverlapMode, CalendarEventNameFunction, CalendarEventColorFunction, CalendarEventCategoryFunction, CalendarEventTimedFunction } from 'vuetify/types'\nimport { CalendarEventOverlapModes } from '../modes'\nimport { PropValidator } from 'vue/types/options'\n\nexport default {\n base: {\n start: {\n type: [String, Number, Date],\n validate: validateTimestamp,\n default: () => parseDate(new Date()).date,\n },\n end: {\n type: [String, Number, Date],\n validate: validateTimestamp,\n },\n weekdays: {\n type: [Array, String] as PropType,\n default: () => [0, 1, 2, 3, 4, 5, 6],\n validate: validateWeekdays,\n },\n hideHeader: {\n type: Boolean,\n },\n shortWeekdays: {\n type: Boolean,\n default: true,\n },\n weekdayFormat: {\n type: Function as PropType,\n default: null,\n },\n dayFormat: {\n type: Function as PropType,\n default: null,\n },\n },\n intervals: {\n maxDays: {\n type: Number,\n default: 7,\n },\n shortIntervals: {\n type: Boolean,\n default: true,\n },\n intervalHeight: {\n type: [Number, String],\n default: 48,\n validate: validateNumber,\n },\n intervalWidth: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n intervalMinutes: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n firstInterval: {\n type: [Number, String],\n default: 0,\n validate: validateNumber,\n },\n firstTime: {\n type: [Number, String, Object],\n validate: validateTime,\n },\n intervalCount: {\n type: [Number, String],\n default: 24,\n validate: validateNumber,\n },\n intervalFormat: {\n type: Function as PropType,\n default: null,\n },\n intervalStyle: {\n type: Function as PropType<(interval: CalendarTimestamp) => object>,\n default: null,\n },\n showIntervalLabel: {\n type: Function as PropType<(interval: CalendarTimestamp) => boolean>,\n default: null,\n },\n },\n weeks: {\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n minWeeks: {\n validate: validateNumber,\n default: 1,\n },\n shortMonths: {\n type: Boolean,\n default: true,\n },\n showMonthOnFirst: {\n type: Boolean,\n default: true,\n },\n showWeek: Boolean,\n monthFormat: {\n type: Function as PropType,\n default: null,\n },\n },\n calendar: {\n type: {\n type: String,\n default: 'month',\n },\n value: {\n type: [String, Number, Date] as PropType,\n validate: validateTimestamp,\n },\n },\n category: {\n categories: {\n type: [Array, String],\n default: '',\n },\n categoryHideDynamic: {\n type: Boolean,\n },\n categoryShowAll: {\n type: Boolean,\n },\n categoryForInvalid: {\n type: String,\n default: '',\n },\n categoryDays: {\n type: [Number, String],\n default: 1,\n validate: (x: any) => isFinite(parseInt(x)) && parseInt(x) > 0,\n },\n },\n events: {\n events: {\n type: Array,\n default: () => [],\n } as PropValidator,\n eventStart: {\n type: String,\n default: 'start',\n },\n eventEnd: {\n type: String,\n default: 'end',\n },\n eventTimed: {\n type: [String, Function] as PropType,\n default: 'timed',\n },\n eventCategory: {\n type: [String, Function] as PropType,\n default: 'category',\n },\n eventHeight: {\n type: Number,\n default: 20,\n },\n eventColor: {\n type: [String, Function] as PropType,\n default: 'primary',\n },\n eventTextColor: {\n type: [String, Function] as PropType,\n default: 'white',\n },\n eventName: {\n type: [String, Function] as PropType,\n default: 'name',\n },\n eventOverlapThreshold: {\n type: [String, Number],\n default: 60,\n },\n eventOverlapMode: {\n type: [String, Function],\n default: 'stack',\n validate: (mode: any) => mode in CalendarEventOverlapModes || typeof mode === 'function',\n } as PropValidator<'stack' | 'column' | CalendarEventOverlapMode>,\n eventMore: {\n type: Boolean,\n default: true,\n },\n eventMoreText: {\n type: String,\n default: '$vuetify.calendar.moreEvents',\n },\n eventRipple: {\n type: [Boolean, Object],\n default: null,\n },\n eventMarginBottom: {\n type: Number,\n default: 1,\n },\n },\n}\n\nexport function validateNumber (input: any): boolean {\n return isFinite(parseInt(input))\n}\n\nexport function validateWeekdays (input: string | (number | string)[]): boolean {\n if (typeof input === 'string') {\n input = input.split(',')\n }\n\n if (Array.isArray(input)) {\n const ints = input.map(x => parseInt(x))\n\n if (ints.length > DAYS_IN_WEEK || ints.length === 0) {\n return false\n }\n\n const visited: Record = {}\n let wrapped = false\n\n for (let i = 0; i < ints.length; i++) {\n const x = ints[i]\n\n if (!isFinite(x) || x < 0 || x >= DAYS_IN_WEEK) {\n return false\n }\n\n if (i > 0) {\n const d = x - ints[i - 1]\n if (d < 0) {\n if (wrapped) {\n return false\n }\n wrapped = true\n } else if (d === 0) {\n return false\n }\n }\n\n if (visited[x]) {\n return false\n }\n visited[x] = true\n }\n\n return true\n }\n\n return false\n}\n","\n// Mixins\nimport mixins from '../../../util/mixins'\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Mouse from './mouse'\nimport Themeable from '../../../mixins/themeable'\nimport Times from './times'\n\n// Directives\nimport Resize from '../../../directives/resize'\n\n// Util\nimport props from '../util/props'\nimport {\n parseTimestamp,\n getWeekdaySkips,\n createDayList,\n createNativeLocaleFormatter,\n getStartOfWeek,\n getEndOfWeek,\n getTimestampIdentifier,\n} from '../util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\nexport default mixins(\n Colorable,\n Localable,\n Mouse,\n Themeable,\n Times\n/* @vue/component */\n).extend({\n name: 'calendar-base',\n\n directives: {\n Resize,\n },\n\n props: props.base,\n\n computed: {\n parsedWeekdays (): number[] {\n return Array.isArray(this.weekdays)\n ? this.weekdays\n : (this.weekdays || '').split(',').map(x => parseInt(x, 10))\n },\n weekdaySkips (): number[] {\n return getWeekdaySkips(this.parsedWeekdays)\n },\n weekdaySkipsReverse (): number [] {\n const reversed = this.weekdaySkips.slice()\n reversed.reverse()\n return reversed\n },\n parsedStart (): CalendarTimestamp {\n return parseTimestamp(this.start, true)\n },\n parsedEnd (): CalendarTimestamp {\n const start = this.parsedStart\n const end: CalendarTimestamp = this.end ? parseTimestamp(this.end) || start : start\n\n return getTimestampIdentifier(end) < getTimestampIdentifier(start) ? start : end\n },\n days (): CalendarTimestamp[] {\n return createDayList(\n this.parsedStart,\n this.parsedEnd,\n this.times.today,\n this.weekdaySkips\n )\n },\n dayFormatter (): CalendarFormatter {\n if (this.dayFormat) {\n return this.dayFormat as CalendarFormatter\n }\n\n const options = { timeZone: 'UTC', day: 'numeric' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, _short) => options\n )\n },\n weekdayFormatter (): CalendarFormatter {\n if (this.weekdayFormat) {\n return this.weekdayFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', weekday: 'long' }\n const shortOptions = { timeZone: 'UTC', weekday: 'short' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n },\n },\n\n methods: {\n getRelativeClasses (timestamp: CalendarTimestamp, outside = false): object {\n return {\n 'v-present': timestamp.present,\n 'v-past': timestamp.past,\n 'v-future': timestamp.future,\n 'v-outside': outside,\n }\n },\n getStartOfWeek (timestamp: CalendarTimestamp): CalendarTimestamp {\n return getStartOfWeek(timestamp, this.parsedWeekdays, this.times.today)\n },\n getEndOfWeek (timestamp: CalendarTimestamp): CalendarTimestamp {\n return getEndOfWeek(timestamp, this.parsedWeekdays, this.times.today)\n },\n getFormatter (options: object): CalendarFormatter {\n return createNativeLocaleFormatter(\n this.locale,\n (_tms, _short) => options\n )\n },\n },\n})\n","import {\n parseTimestamp,\n getDayIdentifier,\n getTimestampIdentifier,\n OFFSET_TIME,\n isTimedless,\n updateHasTime,\n} from './timestamp'\nimport { CalendarTimestamp, CalendarEvent, CalendarEventParsed } from 'vuetify/types'\n\nexport function parseEvent (\n input: CalendarEvent,\n index: number,\n startProperty: string,\n endProperty: string,\n timed = false,\n category: string | false = false,\n): CalendarEventParsed {\n const startInput = input[startProperty]\n const endInput = input[endProperty]\n const startParsed: CalendarTimestamp = parseTimestamp(startInput, true)\n const endParsed: CalendarTimestamp = (endInput ? parseTimestamp(endInput, true) : startParsed)\n const start: CalendarTimestamp = isTimedless(startInput)\n ? updateHasTime(startParsed, timed)\n : startParsed\n const end: CalendarTimestamp = isTimedless(endInput)\n ? updateHasTime(endParsed, timed)\n : endParsed\n const startIdentifier: number = getDayIdentifier(start)\n const startTimestampIdentifier: number = getTimestampIdentifier(start)\n const endIdentifier: number = getDayIdentifier(end)\n const endOffset: number = start.hasTime ? 0 : 2359\n const endTimestampIdentifier: number = getTimestampIdentifier(end) + endOffset\n const allDay: boolean = !start.hasTime\n\n return { input, start, startIdentifier, startTimestampIdentifier, end, endIdentifier, endTimestampIdentifier, allDay, index, category }\n}\n\nexport function isEventOn (event: CalendarEventParsed, dayIdentifier: number): boolean {\n return dayIdentifier >= event.startIdentifier &&\n dayIdentifier <= event.endIdentifier &&\n dayIdentifier * OFFSET_TIME !== event.endTimestampIdentifier\n}\n\nexport function isEventStart (event: CalendarEventParsed, day: CalendarTimestamp, dayIdentifier: number, firstWeekday: number): boolean {\n return dayIdentifier === event.startIdentifier || (firstWeekday === day.weekday && isEventOn(event, dayIdentifier))\n}\n\nexport function isEventOverlapping (event: CalendarEventParsed, startIdentifier: number, endIdentifier: number): boolean {\n return startIdentifier <= event.endIdentifier && endIdentifier >= event.startIdentifier\n}\n","// Styles\nimport './calendar-with-events.sass'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n// Directives\nimport ripple from '../../../directives/ripple'\n\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Helpers\nimport { escapeHTML } from '../../../util/helpers'\n\n// Util\nimport props from '../util/props'\nimport {\n CalendarEventOverlapModes,\n} from '../modes'\nimport {\n getDayIdentifier, diffMinutes,\n} from '../util/timestamp'\nimport {\n parseEvent,\n isEventStart,\n isEventOn,\n isEventOverlapping,\n} from '../util/events'\nimport {\n CalendarTimestamp,\n CalendarEventParsed,\n CalendarEventVisual,\n CalendarEventColorFunction,\n CalendarEventNameFunction,\n CalendarEventTimedFunction,\n CalendarDaySlotScope,\n CalendarDayBodySlotScope,\n CalendarEventOverlapMode,\n CalendarEvent,\n CalendarEventCategoryFunction,\n} from 'vuetify/types'\n\n// Types\ntype VEventGetter = (day: D) => CalendarEventParsed[]\n\ntype VEventVisualToNode = (visual: CalendarEventVisual, day: D) => VNode | false\n\ntype VEventsToNodes = (\n day: D,\n getter: VEventGetter,\n mapper: VEventVisualToNode,\n timed: boolean) => VNode[] | undefined\n\ntype VDailyEventsMap = {\n [date: string]: {\n parent: HTMLElement\n more: HTMLElement | null\n events: HTMLElement[]\n }\n}\n\ninterface VEventScopeInput {\n eventParsed: CalendarEventParsed\n day: CalendarDaySlotScope\n start: boolean\n end: boolean\n timed: boolean\n}\n\nconst WIDTH_FULL = 100\nconst WIDTH_START = 95\nconst MINUTES_IN_DAY = 1440\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-events',\n\n directives: {\n ripple,\n },\n\n props: props.events,\n\n computed: {\n noEvents (): boolean {\n return this.events.length === 0\n },\n parsedEvents (): CalendarEventParsed[] {\n return this.events.map(this.parseEvent)\n },\n parsedEventOverlapThreshold (): number {\n return parseInt(this.eventOverlapThreshold)\n },\n eventColorFunction (): CalendarEventColorFunction {\n return typeof this.eventColor === 'function'\n ? this.eventColor\n : () => (this.eventColor as string)\n },\n eventTimedFunction (): CalendarEventTimedFunction {\n return typeof this.eventTimed === 'function'\n ? this.eventTimed\n : event => !!event[this.eventTimed as string]\n },\n eventCategoryFunction (): CalendarEventCategoryFunction {\n return typeof this.eventCategory === 'function'\n ? this.eventCategory\n : event => event[this.eventCategory as string]\n },\n eventTextColorFunction (): CalendarEventColorFunction {\n return typeof this.eventTextColor === 'function'\n ? this.eventTextColor\n : () => this.eventTextColor as string\n },\n eventNameFunction (): CalendarEventNameFunction {\n return typeof this.eventName === 'function'\n ? this.eventName\n : (event, timedEvent) => escapeHTML(event.input[this.eventName as string] as string)\n },\n eventModeFunction (): CalendarEventOverlapMode {\n return typeof this.eventOverlapMode === 'function'\n ? this.eventOverlapMode\n : CalendarEventOverlapModes[this.eventOverlapMode]\n },\n eventWeekdays (): number[] {\n return this.parsedWeekdays\n },\n categoryMode (): boolean {\n return false\n },\n },\n\n methods: {\n parseEvent (input: CalendarEvent, index = 0): CalendarEventParsed {\n return parseEvent(\n input,\n index,\n this.eventStart,\n this.eventEnd,\n this.eventTimedFunction(input),\n this.categoryMode ? this.eventCategoryFunction(input) : false,\n )\n },\n formatTime (withTime: CalendarTimestamp, ampm: boolean): string {\n const formatter = this.getFormatter({\n timeZone: 'UTC',\n hour: 'numeric',\n minute: withTime.minute > 0 ? 'numeric' : undefined,\n })\n\n return formatter(withTime, true)\n },\n updateEventVisibility () {\n if (this.noEvents || !this.eventMore) {\n return\n }\n\n const eventHeight = this.eventHeight\n const eventsMap = this.getEventsMap()\n\n for (const date in eventsMap) {\n const { parent, events, more } = eventsMap[date]\n if (!more) {\n break\n }\n\n const parentBounds = parent.getBoundingClientRect()\n const last = events.length - 1\n let hide = false\n let hidden = 0\n\n for (let i = 0; i <= last; i++) {\n if (!hide) {\n const eventBounds = events[i].getBoundingClientRect()\n hide = i === last\n ? (eventBounds.bottom > parentBounds.bottom)\n : (eventBounds.bottom + eventHeight > parentBounds.bottom)\n }\n if (hide) {\n events[i].style.display = 'none'\n hidden++\n }\n }\n\n if (hide) {\n more.style.display = ''\n more.innerHTML = this.$vuetify.lang.t(this.eventMoreText, hidden)\n } else {\n more.style.display = 'none'\n }\n }\n },\n getEventsMap (): VDailyEventsMap {\n const eventsMap: VDailyEventsMap = {}\n const elements = this.$refs.events as HTMLElement[]\n\n if (!elements || !elements.forEach) {\n return eventsMap\n }\n\n elements.forEach(el => {\n const date = el.getAttribute('data-date')\n if (el.parentElement && date) {\n if (!(date in eventsMap)) {\n eventsMap[date] = {\n parent: el.parentElement,\n more: null,\n events: [],\n }\n }\n if (el.getAttribute('data-more')) {\n eventsMap[date].more = el\n } else {\n eventsMap[date].events.push(el)\n el.style.display = ''\n }\n }\n })\n\n return eventsMap\n },\n genDayEvent ({ event }: CalendarEventVisual, day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n const dayIdentifier = getDayIdentifier(day)\n const week = day.week\n const start = dayIdentifier === event.startIdentifier\n let end = dayIdentifier === event.endIdentifier\n let width = WIDTH_START\n\n if (!this.categoryMode) {\n for (let i = day.index + 1; i < week.length; i++) {\n const weekdayIdentifier = getDayIdentifier(week[i])\n if (event.endIdentifier >= weekdayIdentifier) {\n width += WIDTH_FULL\n end = end || weekdayIdentifier === event.endIdentifier\n } else {\n end = true\n break\n }\n }\n }\n const scope = { eventParsed: event, day, start, end, timed: false }\n\n return this.genEvent(event, scope, false, {\n staticClass: 'v-event',\n class: {\n 'v-event-start': start,\n 'v-event-end': end,\n },\n style: {\n height: `${eventHeight}px`,\n width: `${width}%`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n key: event.index,\n ref: 'events',\n refInFor: true,\n })\n },\n genTimedEvent ({ event, left, width }: CalendarEventVisual, day: CalendarDayBodySlotScope): VNode | false {\n if (day.timeDelta(event.end) <= 0 || day.timeDelta(event.start) >= 1) {\n return false\n }\n\n const dayIdentifier = getDayIdentifier(day)\n const start = event.startIdentifier >= dayIdentifier\n const end = event.endIdentifier > dayIdentifier\n const top = start ? day.timeToY(event.start) : 0\n const bottom = end ? day.timeToY(MINUTES_IN_DAY) : day.timeToY(event.end)\n const height = Math.max(this.eventHeight, bottom - top)\n const scope = { eventParsed: event, day, start, end, timed: true }\n\n return this.genEvent(event, scope, true, {\n staticClass: 'v-event-timed',\n style: {\n top: `${top}px`,\n height: `${height}px`,\n left: `${left}%`,\n width: `${width}%`,\n },\n })\n },\n genEvent (event: CalendarEventParsed, scopeInput: VEventScopeInput, timedEvent: boolean, data: VNodeData): VNode {\n const slot = this.$scopedSlots.event\n const text = this.eventTextColorFunction(event.input)\n const background = this.eventColorFunction(event.input)\n const overlapsNoon = event.start.hour < 12 && event.end.hour >= 12\n const singline = diffMinutes(event.start, event.end) <= this.parsedEventOverlapThreshold\n const formatTime = this.formatTime\n const timeSummary = () => formatTime(event.start, overlapsNoon) + ' - ' + formatTime(event.end, true)\n const eventSummary = () => {\n const name = this.eventNameFunction(event, timedEvent)\n\n if (event.start.hasTime) {\n if (timedEvent) {\n const time = timeSummary()\n const delimiter = singline ? ', ' : '
'\n\n return `${name}${delimiter}${time}`\n } else {\n const time = formatTime(event.start, true)\n\n return `${time} ${name}`\n }\n }\n\n return name\n }\n\n const scope = {\n ...scopeInput,\n event: event.input,\n outside: scopeInput.day.outside,\n singline,\n overlapsNoon,\n formatTime,\n timeSummary,\n eventSummary,\n }\n\n return this.$createElement('div',\n this.setTextColor(text,\n this.setBackgroundColor(background, {\n on: this.getDefaultMouseEventHandlers(':event', nativeEvent => ({ ...scope, nativeEvent })),\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n ...data,\n })\n ), slot\n ? slot(scope)\n : [this.genName(eventSummary)]\n )\n },\n genName (eventSummary: () => string): VNode {\n return this.$createElement('div', {\n staticClass: 'pl-1',\n domProps: {\n innerHTML: eventSummary(),\n },\n })\n },\n genPlaceholder (day: CalendarTimestamp): VNode {\n const height = this.eventHeight + this.eventMarginBottom\n\n return this.$createElement('div', {\n style: {\n height: `${height}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n genMore (day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n\n return this.$createElement('div', {\n staticClass: 'v-event-more pl-1',\n class: {\n 'v-outside': day.outside,\n },\n attrs: {\n 'data-date': day.date,\n 'data-more': 1,\n },\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n on: {\n click: () => this.$emit('click:more', day),\n },\n style: {\n display: 'none',\n height: `${eventHeight}px`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n getVisibleEvents (): CalendarEventParsed[] {\n const start = getDayIdentifier(this.days[0])\n const end = getDayIdentifier(this.days[this.days.length - 1])\n\n return this.parsedEvents.filter(\n event => isEventOverlapping(event, start, end)\n )\n },\n isEventForCategory (event: CalendarEventParsed, category: string | undefined | null): boolean {\n return !this.categoryMode ||\n category === event.category ||\n (typeof event.category !== 'string' && category === null)\n },\n getEventsForDay (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => isEventStart(event, day, identifier, firstWeekday)\n )\n },\n getEventsForDayAll (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => event.allDay &&\n (this.categoryMode ? isEventOn(event, identifier) : isEventStart(event, day, identifier, firstWeekday)) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getEventsForDayTimed (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n\n return this.parsedEvents.filter(\n event => !event.allDay &&\n isEventOn(event, identifier) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getScopedSlots () {\n if (this.noEvents) {\n return { ...this.$scopedSlots }\n }\n\n const mode = this.eventModeFunction(\n this.parsedEvents,\n this.eventWeekdays[0],\n this.parsedEventOverlapThreshold\n )\n\n const isNode = (input: VNode | false): input is VNode => !!input\n const getSlotChildren: VEventsToNodes = (day, getter, mapper, timed) => {\n const events = getter(day)\n const visuals = mode(day, events, timed, this.categoryMode)\n\n if (timed) {\n return visuals.map(visual => mapper(visual, day)).filter(isNode)\n }\n\n const children: VNode[] = []\n\n visuals.forEach((visual, index) => {\n while (children.length < visual.column) {\n children.push(this.genPlaceholder(day))\n }\n\n const mapped = mapper(visual, day)\n if (mapped) {\n children.push(mapped)\n }\n })\n\n return children\n }\n\n const slots = this.$scopedSlots\n const slotDay = slots.day\n const slotDayHeader = slots['day-header']\n const slotDayBody = slots['day-body']\n\n return {\n ...slots,\n day: (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDay, this.genDayEvent, false)\n if (children && children.length > 0 && this.eventMore) {\n children.push(this.genMore(day))\n }\n if (slotDay) {\n const slot = slotDay(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-header': (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDayAll, this.genDayEvent, false)\n\n if (slotDayHeader) {\n const slot = slotDayHeader(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-body': (day: CalendarDayBodySlotScope) => {\n const events = getSlotChildren(day, this.getEventsForDayTimed, this.genTimedEvent, true)\n let children: VNode[] = [\n this.$createElement('div', {\n staticClass: 'v-event-timed-container',\n }, events),\n ]\n\n if (slotDayBody) {\n const slot = slotDayBody(day)\n if (slot) {\n children = children.concat(slot)\n }\n }\n return children\n },\n }\n },\n },\n})\n","// Styles\nimport './VCalendarWeekly.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarBase from './mixins/calendar-base'\n\n// Util\nimport { getSlot } from '../../util/helpers'\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport props from './util/props'\nimport {\n createDayList,\n getDayIdentifier,\n createNativeLocaleFormatter,\n} from './util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'v-calendar-weekly',\n\n props: props.weeks,\n\n computed: {\n staticClass (): string {\n return 'v-calendar-weekly'\n },\n classes (): object {\n return this.themeClasses\n },\n parsedMinWeeks (): number {\n return parseInt(this.minWeeks)\n },\n days (): CalendarTimestamp[] {\n const minDays = this.parsedMinWeeks * this.parsedWeekdays.length\n const start = this.getStartOfWeek(this.parsedStart)\n const end = this.getEndOfWeek(this.parsedEnd)\n\n return createDayList(\n start,\n end,\n this.times.today,\n this.weekdaySkips,\n Number.MAX_SAFE_INTEGER,\n minDays\n )\n },\n todayWeek (): CalendarTimestamp[] {\n const today = this.times.today\n const start = this.getStartOfWeek(today)\n const end = this.getEndOfWeek(today)\n\n return createDayList(\n start,\n end,\n today,\n this.weekdaySkips,\n this.parsedWeekdays.length,\n this.parsedWeekdays.length\n )\n },\n monthFormatter (): CalendarFormatter {\n if (this.monthFormat) {\n return this.monthFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', month: 'long' }\n const shortOptions = { timeZone: 'UTC', month: 'short' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n },\n },\n\n methods: {\n isOutside (day: CalendarTimestamp): boolean {\n const dayIdentifier = getDayIdentifier(day)\n\n return dayIdentifier < getDayIdentifier(this.parsedStart) ||\n dayIdentifier > getDayIdentifier(this.parsedEnd)\n },\n genHead (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__head',\n }, this.genHeadDays())\n },\n genHeadDays (): VNode[] {\n const header = this.todayWeek.map(this.genHeadDay)\n\n if (this.showWeek) {\n header.unshift(this.$createElement('div', {\n staticClass: 'v-calendar-weekly__head-weeknumber',\n }))\n }\n\n return header\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n const outside = this.isOutside(this.days[index])\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n key: day.date,\n staticClass: 'v-calendar-weekly__head-weekday',\n class: this.getRelativeClasses(day, outside),\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genWeeks (): VNode[] {\n const days = this.days\n const weekDays = this.parsedWeekdays.length\n const weeks: VNode[] = []\n\n for (let i = 0; i < days.length; i += weekDays) {\n weeks.push(this.genWeek(days.slice(i, i + weekDays), this.getWeekNumber(days[i])))\n }\n\n return weeks\n },\n genWeek (week: CalendarTimestamp[], weekNumber: number): VNode {\n const weekNodes = week.map((day, index) => this.genDay(day, index, week))\n\n if (this.showWeek) {\n weekNodes.unshift(this.genWeekNumber(weekNumber))\n }\n\n return this.$createElement('div', {\n key: week[0].date,\n staticClass: 'v-calendar-weekly__week',\n }, weekNodes)\n },\n getWeekNumber (determineDay: CalendarTimestamp) {\n return weekNumber(\n determineDay.year,\n determineDay.month - 1,\n determineDay.day,\n this.parsedWeekdays[0],\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__weeknumber',\n }, [\n this.$createElement('small', String(weekNumber)),\n ])\n },\n genDay (day: CalendarTimestamp, index: number, week: CalendarTimestamp[]): VNode {\n const outside = this.isOutside(day)\n\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-weekly__day',\n class: this.getRelativeClasses(day, outside),\n on: this.getDefaultMouseEventHandlers(':day', _e => day),\n }, [\n this.genDayLabel(day),\n ...(getSlot(this, 'day', () => ({ outside, index, week, ...day })) || []),\n ])\n },\n genDayLabel (day: CalendarTimestamp): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__day-label',\n }, getSlot(this, 'day-label', day) || [this.genDayLabelButton(day)])\n },\n genDayLabelButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n const hasMonth = day.day === 1 && this.showMonthOnFirst\n\n return this.$createElement(VBtn, {\n props: {\n color,\n fab: true,\n depressed: true,\n small: true,\n },\n on: this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, _e => day),\n }, hasMonth\n ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false)\n : this.dayFormatter(day, false)\n )\n },\n genDayMonth (day: CalendarTimestamp): VNode | string {\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-calendar-weekly__day-month',\n }), getSlot(this, 'day-month', day) || this.monthFormatter(day, this.shortMonths))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: this.staticClass,\n class: this.classes,\n on: {\n dragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n },\n }, [\n !this.hideHeader ? this.genHead() : '',\n ...this.genWeeks(),\n ])\n },\n})\n","// Styles\nimport './VCalendarWeekly.sass'\n\n// Mixins\nimport VCalendarWeekly from './VCalendarWeekly'\n\n// Util\nimport { parseTimestamp, getStartOfMonth, getEndOfMonth } from './util/timestamp'\nimport { CalendarTimestamp } from 'vuetify/types'\n\n/* @vue/component */\nexport default VCalendarWeekly.extend({\n name: 'v-calendar-monthly',\n\n computed: {\n staticClass (): string {\n return 'v-calendar-monthly v-calendar-weekly'\n },\n parsedStart (): CalendarTimestamp {\n return getStartOfMonth(parseTimestamp(this.start, true))\n },\n parsedEnd (): CalendarTimestamp {\n return getEndOfMonth(parseTimestamp(this.end, true))\n },\n },\n\n})\n","\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Util\nimport props from '../util/props'\nimport {\n parseTime,\n copyTimestamp,\n updateMinutes,\n createDayList,\n createIntervalList,\n createNativeLocaleFormatter,\n VTime,\n MINUTES_IN_DAY,\n} from '../util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter, CalendarDayBodySlotScope } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-intervals',\n\n props: props.intervals,\n\n computed: {\n parsedFirstInterval (): number {\n return parseInt(this.firstInterval)\n },\n parsedIntervalMinutes (): number {\n return parseInt(this.intervalMinutes)\n },\n parsedIntervalCount (): number {\n return parseInt(this.intervalCount)\n },\n parsedIntervalHeight (): number {\n return parseFloat(this.intervalHeight)\n },\n parsedFirstTime (): number | false {\n return parseTime(this.firstTime)\n },\n firstMinute (): number {\n const time = this.parsedFirstTime\n\n return time !== false && time >= 0 && time <= MINUTES_IN_DAY\n ? time\n : this.parsedFirstInterval * this.parsedIntervalMinutes\n },\n bodyHeight (): number {\n return this.parsedIntervalCount * this.parsedIntervalHeight\n },\n days (): CalendarTimestamp[] {\n return createDayList(\n this.parsedStart,\n this.parsedEnd,\n this.times.today,\n this.weekdaySkips,\n this.maxDays\n )\n },\n intervals (): CalendarTimestamp[][] {\n const days: CalendarTimestamp[] = this.days\n const first: number = this.firstMinute\n const minutes: number = this.parsedIntervalMinutes\n const count: number = this.parsedIntervalCount\n const now: CalendarTimestamp = this.times.now\n\n return days.map(d => createIntervalList(d, first, minutes, count, now))\n },\n intervalFormatter (): CalendarFormatter {\n if (this.intervalFormat) {\n return this.intervalFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', hour: '2-digit', minute: '2-digit' }\n const shortOptions = { timeZone: 'UTC', hour: 'numeric', minute: '2-digit' }\n const shortHourOptions = { timeZone: 'UTC', hour: 'numeric' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (tms, short) => short ? (tms.minute === 0 ? shortHourOptions : shortOptions) : longOptions\n )\n },\n },\n\n methods: {\n showIntervalLabelDefault (interval: CalendarTimestamp): boolean {\n const first: CalendarTimestamp = this.intervals[0][0]\n const isFirst: boolean = first.hour === interval.hour && first.minute === interval.minute\n return !isFirst\n },\n intervalStyleDefault (_interval: CalendarTimestamp): object | undefined {\n return undefined\n },\n getTimestampAtEvent (e: MouseEvent | TouchEvent, day: CalendarTimestamp): CalendarTimestamp {\n const timestamp: CalendarTimestamp = copyTimestamp(day)\n const bounds = (e.currentTarget as HTMLElement).getBoundingClientRect()\n const baseMinutes: number = this.firstMinute\n const touchEvent: TouchEvent = e as TouchEvent\n const mouseEvent: MouseEvent = e as MouseEvent\n const touches: TouchList = touchEvent.changedTouches || touchEvent.touches\n const clientY: number = touches && touches[0] ? touches[0].clientY : mouseEvent.clientY\n const addIntervals: number = (clientY - bounds.top) / this.parsedIntervalHeight\n const addMinutes: number = Math.floor(addIntervals * this.parsedIntervalMinutes)\n const minutes: number = baseMinutes + addMinutes\n\n return updateMinutes(timestamp, minutes, this.times.now)\n },\n getSlotScope (timestamp: CalendarTimestamp): CalendarDayBodySlotScope {\n const scope = copyTimestamp(timestamp) as any\n scope.timeToY = this.timeToY\n scope.timeDelta = this.timeDelta\n scope.minutesToPixels = this.minutesToPixels\n scope.week = this.days\n return scope\n },\n scrollToTime (time: VTime): boolean {\n const y = this.timeToY(time)\n const pane = this.$refs.scrollArea as HTMLElement\n\n if (y === false || !pane) {\n return false\n }\n\n pane.scrollTop = y\n\n return true\n },\n minutesToPixels (minutes: number): number {\n return minutes / this.parsedIntervalMinutes * this.parsedIntervalHeight\n },\n timeToY (time: VTime, clamp = true): number | false {\n let y = this.timeDelta(time)\n\n if (y !== false) {\n y *= this.bodyHeight\n\n if (clamp) {\n if (y < 0) {\n y = 0\n }\n if (y > this.bodyHeight) {\n y = this.bodyHeight\n }\n }\n }\n\n return y\n },\n timeDelta (time: VTime): number | false {\n const minutes = parseTime(time)\n\n if (minutes === false) {\n return false\n }\n\n const min: number = this.firstMinute\n const gap: number = this.parsedIntervalCount * this.parsedIntervalMinutes\n\n return (minutes - min) / gap\n },\n },\n})\n","// Styles\nimport './VCalendarDaily.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarWithIntervals from './mixins/calendar-with-intervals'\n\n// Util\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { CalendarTimestamp } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarWithIntervals.extend({\n name: 'v-calendar-daily',\n\n directives: { Resize },\n\n data: () => ({\n scrollPush: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-calendar-daily': true,\n ...this.themeClasses,\n }\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n this.$nextTick(this.onResize)\n },\n onResize () {\n this.scrollPush = this.getScrollPush()\n },\n getScrollPush (): number {\n const area = this.$refs.scrollArea as HTMLElement\n const pane = this.$refs.pane as HTMLElement\n\n return area && pane ? (area.offsetWidth - pane.offsetWidth) : 0\n },\n genHead (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__head',\n style: {\n marginRight: this.scrollPush + 'px',\n },\n }, [\n this.genHeadIntervals(),\n ...this.genHeadDays(),\n ])\n },\n genHeadIntervals (): VNode {\n const width: string | undefined = convertToUnit(this.intervalWidth)\n\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__intervals-head',\n style: {\n width,\n },\n }, getSlot(this, 'interval-header'))\n },\n genHeadDays (): VNode[] {\n return this.days.map(this.genHeadDay)\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-daily_head-day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':day', _e => {\n return this.getSlotScope(day)\n }),\n }, [\n this.genHeadWeekday(day),\n this.genHeadDayLabel(day),\n ...this.genDayHeader(day, index),\n ])\n },\n genDayHeader (day: CalendarTimestamp, index: number): VNode[] {\n return getSlot(this, 'day-header', () => ({\n week: this.days, ...day, index,\n })) || []\n },\n genHeadWeekday (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-calendar-daily_head-weekday',\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genHeadDayLabel (day: CalendarTimestamp): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily_head-day-label',\n }, getSlot(this, 'day-label-header', day) || [this.genHeadDayButton(day)])\n },\n genHeadDayButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n\n return this.$createElement(VBtn, {\n props: {\n color,\n fab: true,\n depressed: true,\n },\n on: this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, _e => {\n return day\n }),\n }, this.dayFormatter(day, false))\n },\n genBody (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__body',\n }, [\n this.genScrollArea(),\n ])\n },\n genScrollArea (): VNode {\n return this.$createElement('div', {\n ref: 'scrollArea',\n staticClass: 'v-calendar-daily__scroll-area',\n }, [\n this.genPane(),\n ])\n },\n genPane (): VNode {\n return this.$createElement('div', {\n ref: 'pane',\n staticClass: 'v-calendar-daily__pane',\n style: {\n height: convertToUnit(this.bodyHeight),\n },\n }, [\n this.genDayContainer(),\n ])\n },\n genDayContainer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__day-container',\n }, [\n this.genBodyIntervals(),\n ...this.genDays(),\n ])\n },\n genDays (): VNode[] {\n return this.days.map(this.genDay)\n },\n genDay (day: CalendarTimestamp, index: number): VNode {\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-daily__day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':time', e => {\n return this.getSlotScope(this.getTimestampAtEvent(e, day))\n }),\n }, [\n ...this.genDayIntervals(index),\n ...this.genDayBody(day),\n ])\n },\n genDayBody (day: CalendarTimestamp): VNode[] {\n return getSlot(this, 'day-body', () => this.getSlotScope(day)) || []\n },\n genDayIntervals (index: number): VNode[] {\n return this.intervals[index].map(this.genDayInterval)\n },\n genDayInterval (interval: CalendarTimestamp): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const styler = this.intervalStyle || this.intervalStyleDefault\n\n const data = {\n key: interval.time,\n staticClass: 'v-calendar-daily__day-interval',\n style: {\n height,\n ...styler(interval),\n },\n }\n\n const children = getSlot(this, 'interval', () => this.getSlotScope(interval))\n\n return this.$createElement('div', data, children)\n },\n genBodyIntervals (): VNode {\n const width: string | undefined = convertToUnit(this.intervalWidth)\n const data = {\n staticClass: 'v-calendar-daily__intervals-body',\n style: {\n width,\n },\n on: this.getDefaultMouseEventHandlers(':interval', e => {\n return this.getTimestampAtEvent(e, this.parsedStart)\n }),\n }\n\n return this.$createElement('div', data, this.genIntervalLabels())\n },\n genIntervalLabels (): VNode[] | null {\n if (!this.intervals.length) return null\n\n return this.intervals[0].map(this.genIntervalLabel)\n },\n genIntervalLabel (interval: CalendarTimestamp): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const short: boolean = this.shortIntervals\n const shower = this.showIntervalLabel || this.showIntervalLabelDefault\n const show = shower(interval)\n const label = show ? this.intervalFormatter(interval, short) : undefined\n\n return this.$createElement('div', {\n key: interval.time,\n staticClass: 'v-calendar-daily__interval',\n style: {\n height,\n },\n }, [\n this.$createElement('div', {\n staticClass: 'v-calendar-daily__interval-text',\n }, label),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n class: this.classes,\n on: {\n dragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n },\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n }, [\n !this.hideHeader ? this.genHead() : '',\n this.genBody(),\n ])\n },\n})\n","// Styles\nimport './VCalendarCategory.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport VCalendarDaily from './VCalendarDaily'\n\n// Util\nimport { getSlot } from '../../util/helpers'\nimport { CalendarTimestamp } from 'types'\nimport props from './util/props'\n\n/* @vue/component */\nexport default VCalendarDaily.extend({\n name: 'v-calendar-category',\n\n props: props.category,\n\n computed: {\n classes (): object {\n return {\n 'v-calendar-daily': true,\n 'v-calendar-category': true,\n ...this.themeClasses,\n }\n },\n parsedCategories (): string[] {\n return typeof this.categories === 'string' && this.categories\n ? this.categories.split(/\\s*,\\s*/)\n : Array.isArray(this.categories)\n ? this.categories as string[]\n : []\n },\n },\n\n methods: {\n genDayHeader (day: CalendarTimestamp, index: number): VNode[] {\n const data = {\n staticClass: 'v-calendar-category__columns',\n }\n const scope = {\n week: this.days, ...day, index,\n }\n\n const children = this.parsedCategories.map(category => this.genDayHeaderCategory(day, this.getCategoryScope(scope, category)))\n\n return [this.$createElement('div', data, children)]\n },\n getCategoryScope (scope: any, category: string) {\n return {\n ...scope,\n category: category === this.categoryForInvalid ? null : category,\n }\n },\n genDayHeaderCategory (day: CalendarTimestamp, scope: any): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-category__column-header',\n on: this.getDefaultMouseEventHandlers(':day-category', e => {\n return this.getCategoryScope(this.getSlotScope(day), scope.category)\n }),\n }, [\n getSlot(this, 'category', scope) || this.genDayHeaderCategoryTitle(scope.category),\n getSlot(this, 'day-header', scope),\n ])\n },\n genDayHeaderCategoryTitle (category: string) {\n return this.$createElement('div', {\n staticClass: 'v-calendar-category__category',\n }, category === null ? this.categoryForInvalid : category)\n },\n genDayBody (day: CalendarTimestamp): VNode[] {\n const data = {\n staticClass: 'v-calendar-category__columns',\n }\n\n const children = this.parsedCategories.map(category => this.genDayBodyCategory(day, category))\n\n return [this.$createElement('div', data, children)]\n },\n genDayBodyCategory (day: CalendarTimestamp, category: string): VNode {\n const data = {\n staticClass: 'v-calendar-category__column',\n on: this.getDefaultMouseEventHandlers(':time-category', e => {\n return this.getCategoryScope(this.getSlotScope(this.getTimestampAtEvent(e, day)), category)\n }),\n }\n\n const children = getSlot(this, 'day-body', () => this.getCategoryScope(this.getSlotScope(day), category))\n\n return this.$createElement('div', data, children)\n },\n },\n})\n","// Styles\n// import '../../stylus/components/_calendar-daily.styl'\n\n// Types\nimport { VNode, Component } from 'vue'\n\n// Mixins\nimport CalendarWithEvents from './mixins/calendar-with-events'\n\n// Util\nimport props from './util/props'\nimport {\n DAYS_IN_MONTH_MAX,\n DAY_MIN,\n DAYS_IN_WEEK,\n parseTimestamp,\n validateTimestamp,\n relativeDays,\n nextDay,\n prevDay,\n copyTimestamp,\n updateFormatted,\n updateWeekday,\n updateRelative,\n getStartOfMonth,\n getEndOfMonth,\n VTime,\n VTimestampInput,\n timestampToDate,\n} from './util/timestamp'\n\n// Calendars\nimport VCalendarMonthly from './VCalendarMonthly'\nimport VCalendarDaily from './VCalendarDaily'\nimport VCalendarWeekly from './VCalendarWeekly'\nimport VCalendarCategory from './VCalendarCategory'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\n// Types\ninterface VCalendarRenderProps {\n start: CalendarTimestamp\n end: CalendarTimestamp\n component: string | Component\n maxDays: number\n weekdays: number[]\n categories: string[]\n}\n\n/* @vue/component */\nexport default CalendarWithEvents.extend({\n name: 'v-calendar',\n\n props: {\n ...props.calendar,\n ...props.weeks,\n ...props.intervals,\n ...props.category,\n },\n\n data: () => ({\n lastStart: null as CalendarTimestamp | null,\n lastEnd: null as CalendarTimestamp | null,\n }),\n\n computed: {\n parsedValue (): CalendarTimestamp {\n return (validateTimestamp(this.value)\n ? parseTimestamp(this.value, true)\n : (this.parsedStart || this.times.today))\n },\n parsedCategoryDays (): number {\n return parseInt(this.categoryDays) || 1\n },\n renderProps (): VCalendarRenderProps {\n const around = this.parsedValue\n let component: any = null\n let maxDays = this.maxDays\n let weekdays = this.parsedWeekdays\n let categories = this.parsedCategories\n let start = around\n let end = around\n switch (this.type) {\n case 'month':\n component = VCalendarMonthly\n start = getStartOfMonth(around)\n end = getEndOfMonth(around)\n break\n case 'week':\n component = VCalendarDaily\n start = this.getStartOfWeek(around)\n end = this.getEndOfWeek(around)\n maxDays = 7\n break\n case 'day':\n component = VCalendarDaily\n maxDays = 1\n weekdays = [start.weekday]\n break\n case '4day':\n component = VCalendarDaily\n end = relativeDays(copyTimestamp(end), nextDay, 4)\n updateFormatted(end)\n maxDays = 4\n weekdays = [\n start.weekday,\n (start.weekday + 1) % 7,\n (start.weekday + 2) % 7,\n (start.weekday + 3) % 7,\n ]\n break\n case 'custom-weekly':\n component = VCalendarWeekly\n start = this.parsedStart || around\n end = this.parsedEnd\n break\n case 'custom-daily':\n component = VCalendarDaily\n start = this.parsedStart || around\n end = this.parsedEnd\n break\n case 'category':\n const days = this.parsedCategoryDays\n\n component = VCalendarCategory\n end = relativeDays(copyTimestamp(end), nextDay, days)\n updateFormatted(end)\n maxDays = days\n weekdays = []\n\n for (let i = 0; i < days; i++) {\n weekdays.push((start.weekday + i) % 7)\n }\n\n categories = this.getCategoryList(categories)\n break\n default:\n throw new Error(this.type + ' is not a valid Calendar type')\n }\n\n return { component, start, end, maxDays, weekdays, categories }\n },\n eventWeekdays (): number[] {\n return this.renderProps.weekdays\n },\n categoryMode (): boolean {\n return this.type === 'category'\n },\n title (): string {\n const { start, end } = this.renderProps\n const spanYears = start.year !== end.year\n const spanMonths = spanYears || start.month !== end.month\n\n if (spanYears) {\n return this.monthShortFormatter(start, true) + ' ' + start.year + ' - ' + this.monthShortFormatter(end, true) + ' ' + end.year\n }\n\n if (spanMonths) {\n return this.monthShortFormatter(start, true) + ' - ' + this.monthShortFormatter(end, true) + ' ' + end.year\n } else {\n return this.monthLongFormatter(start, false) + ' ' + start.year\n }\n },\n monthLongFormatter (): CalendarFormatter {\n return this.getFormatter({\n timeZone: 'UTC', month: 'long',\n })\n },\n monthShortFormatter (): CalendarFormatter {\n return this.getFormatter({\n timeZone: 'UTC', month: 'short',\n })\n },\n parsedCategories (): string[] {\n return typeof this.categories === 'string' && this.categories\n ? this.categories.split(/\\s*,\\s*/)\n : Array.isArray(this.categories)\n ? this.categories as string[]\n : []\n },\n },\n\n watch: {\n renderProps: 'checkChange',\n },\n\n mounted () {\n this.updateEventVisibility()\n this.checkChange()\n },\n\n updated () {\n window.requestAnimationFrame(this.updateEventVisibility)\n },\n\n methods: {\n checkChange (): void {\n const { lastStart, lastEnd } = this\n const { start, end } = this.renderProps\n if (!lastStart || !lastEnd ||\n start.date !== lastStart.date ||\n end.date !== lastEnd.date) {\n this.lastStart = start\n this.lastEnd = end\n this.$emit('change', { start, end })\n }\n },\n move (amount = 1): void {\n const moved = copyTimestamp(this.parsedValue)\n const forward = amount > 0\n const mover = forward ? nextDay : prevDay\n const limit = forward ? DAYS_IN_MONTH_MAX : DAY_MIN\n let times = forward ? amount : -amount\n\n while (--times >= 0) {\n switch (this.type) {\n case 'month':\n moved.day = limit\n mover(moved)\n break\n case 'week':\n relativeDays(moved, mover, DAYS_IN_WEEK)\n break\n case 'day':\n relativeDays(moved, mover, 1)\n break\n case '4day':\n relativeDays(moved, mover, 4)\n break\n case 'category':\n relativeDays(moved, mover, this.parsedCategoryDays)\n break\n }\n }\n\n updateWeekday(moved)\n updateFormatted(moved)\n updateRelative(moved, this.times.now)\n\n if (this.value instanceof Date) {\n this.$emit('input', timestampToDate(moved))\n } else if (typeof this.value === 'number') {\n this.$emit('input', timestampToDate(moved).getTime())\n } else {\n this.$emit('input', moved.date)\n }\n\n this.$emit('moved', moved)\n },\n next (amount = 1): void {\n this.move(amount)\n },\n prev (amount = 1): void {\n this.move(-amount)\n },\n timeToY (time: VTime, clamp = true): number | false {\n const c = this.$children[0] as any\n\n if (c && c.timeToY) {\n return c.timeToY(time, clamp)\n } else {\n return false\n }\n },\n timeDelta (time: VTime): number | false {\n const c = this.$children[0] as any\n\n if (c && c.timeDelta) {\n return c.timeDelta(time)\n } else {\n return false\n }\n },\n minutesToPixels (minutes: number): number {\n const c = this.$children[0] as any\n\n if (c && c.minutesToPixels) {\n return c.minutesToPixels(minutes)\n } else {\n return -1\n }\n },\n scrollToTime (time: VTime): boolean {\n const c = this.$children[0] as any\n\n if (c && c.scrollToTime) {\n return c.scrollToTime(time)\n } else {\n return false\n }\n },\n parseTimestamp (input: VTimestampInput, required?: false): CalendarTimestamp | null {\n return parseTimestamp(input, required, this.times.now)\n },\n timestampToDate (timestamp: CalendarTimestamp): Date {\n return timestampToDate(timestamp)\n },\n getCategoryList (categories: string[]): string[] {\n if (!this.noEvents) {\n const categoryMap = categories.reduce((map, category, index) => {\n map[category] = { index, count: 0 }\n\n return map\n }, Object.create(null))\n\n if (!this.categoryHideDynamic || !this.categoryShowAll) {\n let categoryLength = categories.length\n\n this.parsedEvents.forEach(ev => {\n let category = ev.category\n\n if (typeof category !== 'string') {\n category = this.categoryForInvalid\n }\n\n if (!category) {\n return\n }\n\n if (category in categoryMap) {\n categoryMap[category].count++\n } else if (!this.categoryHideDynamic) {\n categoryMap[category] = {\n index: categoryLength++,\n count: 1,\n }\n }\n })\n }\n\n if (!this.categoryShowAll) {\n for (const category in categoryMap) {\n if (categoryMap[category].count === 0) {\n delete categoryMap[category]\n }\n }\n }\n\n categories = Object.keys(categoryMap)\n }\n\n return categories\n },\n },\n\n render (h): VNode {\n const { start, end, maxDays, component, weekdays, categories } = this.renderProps\n\n return h(component, {\n staticClass: 'v-calendar',\n class: {\n 'v-calendar-events': !this.noEvents,\n },\n props: {\n ...this.$props,\n start: start.date,\n end: end.date,\n maxDays,\n weekdays,\n categories,\n },\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.updateEventVisibility,\n }],\n on: {\n ...this.$listeners,\n 'click:date': (day: CalendarTimestamp) => {\n if (this.$listeners['input']) {\n this.$emit('input', day.date)\n }\n if (this.$listeners['click:date']) {\n this.$emit('click:date', day)\n }\n },\n },\n scopedSlots: this.getScopedSlots(),\n })\n },\n})\n","import { render, staticRenderFns } from \"./Calendar.vue?vue&type=template&id=62fbb116&scoped=true&\"\nimport script from \"./Calendar.vue?vue&type=script&lang=ts&\"\nexport * from \"./Calendar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62fbb116\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCalendar } from 'vuetify/lib/components/VCalendar';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VBtn,VCalendar,VList,VListItem,VListItemTitle,VMenu,VSheet})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._v(\"Brevemente\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { LanguageDto, ActivityDto } from \"@/server/app.dtos\";\r\n\r\n@Component\r\nexport default class ActivityDetailUsersPage extends Vue {\r\n @Prop() activity!: ActivityDto;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Users.vue?vue&type=template&id=394435e6&\"\nimport script from \"./Users.vue?vue&type=script&lang=ts&\"\nexport * from \"./Users.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Shared.vue?vue&type=style&index=0&id=20cab20b&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Shared.vue?vue&type=style&index=0&id=20cab20b&scoped=true&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuFilters.vue?vue&type=style&index=0&id=5089518a&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuFilters.vue?vue&type=style&index=0&id=5089518a&scoped=true&lang=scss&\""],"sourceRoot":""}