{"version":3,"sources":["webpack:///./src/views/error/pages/PageNotFound.vue","webpack:///./src/views/creditor/pages/Blacklistdays/Blacklistdays.vue","webpack:///src/views/creditor/pages/Blacklistdays/Blacklistdays.vue","webpack:///./src/views/creditor/pages/Blacklistdays/Blacklistdays.vue?c08c","webpack:///./src/views/creditor/pages/Blacklistdays/Blacklistdays.vue?f1ff","webpack:///./src/views/rule/pages/components/MatrixNotifications.vue?fc02","webpack:///../../../src/mixins/picker-button/index.ts","webpack:///../../../src/components/VDatePicker/VDatePickerTitle.ts","webpack:///../../../../src/components/VDatePicker/util/pad.ts","webpack:///../../../../src/components/VDatePicker/util/createNativeLocaleFormatter.ts","webpack:///../../../../src/components/VDatePicker/util/monthChange.ts","webpack:///../../../src/components/VDatePicker/VDatePickerHeader.ts","webpack:///../../../../src/components/VDatePicker/util/eventHelpers.ts","webpack:///../../../../src/components/VDatePicker/util/sanitizeDateString.ts","webpack:///../../../../src/components/VDatePicker/util/isDateAllowed.ts","webpack:///../../../../src/components/VDatePicker/mixins/date-picker-table.ts","webpack:///../../../src/components/VDatePicker/VDatePickerDateTable.ts","webpack:///../../../src/components/VDatePicker/VDatePickerMonthTable.ts","webpack:///../../../src/components/VDatePicker/VDatePickerYears.ts","webpack:///../../../src/components/VPicker/VPicker.ts","webpack:///../../../src/components/VPicker/index.ts","webpack:///../../../src/mixins/picker/index.ts","webpack:///../../../src/components/VDatePicker/VDatePicker.ts","webpack:///./src/views/error/pages/PageNotFound.vue?c8bb","webpack:///./src/services/rule.js","webpack:///./src/views/error/pages/Error.vue","webpack:///./src/views/home/pages/Home/Home.vue?adc1","webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../src/util/dateTimeUtils.ts","webpack:///../../../src/components/VCheckbox/VCheckbox.ts","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///./src/views/notification/pages/Notification.vue","webpack:///./src/assets/js/rules.js","webpack:///src/views/notification/pages/Notification.vue","webpack:///./src/views/notification/pages/Notification.vue?5074","webpack:///./src/views/notification/pages/Notification.vue?a8a9","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/util/parser.ts","webpack:///../../../src/components/VCalendar/VCalendarCategory.ts","webpack:///../../../src/components/VCalendar/VCalendar.ts","webpack:///./src/views/rule/pages/Simulation.vue","webpack:///src/views/rule/pages/Simulation.vue","webpack:///./src/views/rule/pages/Simulation.vue?1093","webpack:///./src/views/rule/pages/Simulation.vue?b28a","webpack:///./src/views/rule/pages/Simulation.vue?bded","webpack:///./src/views/rule/pages/Rule.vue","webpack:///./src/views/rule/pages/components/MatrixNotifications.vue","webpack:///src/views/rule/pages/components/MatrixNotifications.vue","webpack:///./src/views/rule/pages/components/MatrixNotifications.vue?4087","webpack:///./src/views/rule/pages/components/MatrixNotifications.vue?0818","webpack:///src/views/rule/pages/Rule.vue","webpack:///./src/views/rule/pages/Rule.vue?d84d","webpack:///./src/views/rule/pages/Rule.vue?df17","webpack:///./src/views/error/pages/Error.vue?394c","webpack:///./src/views/home/pages/Home/Home.vue","webpack:///src/views/home/pages/Home/Home.vue","webpack:///./src/views/home/pages/Home/Home.vue?2c42","webpack:///./src/views/home/pages/Home/Home.vue?9b6c","webpack:///./src/views/creditor/pages/Creditor.vue","webpack:///src/views/creditor/pages/Creditor.vue","webpack:///./src/views/creditor/pages/Creditor.vue?4d12","webpack:///./src/views/creditor/pages/Creditor.vue?259f","webpack:///./src/views/rule/pages/Simulation.vue?a7d6","webpack:///./src/views/error/pages/PageNotFound.vue?9718","webpack:///./src/views/notification/pages/Notification.vue?8e2a","webpack:///../../../src/components/VData/VData.ts","webpack:///../../../src/components/VDataIterator/VDataFooter.ts","webpack:///../../../src/components/VDataIterator/VDataIterator.ts","webpack:///../../../../src/components/VDataTable/mixins/header.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderMobile.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack:///../../src/util/dedupeModelListeners.ts","webpack:///../../src/util/rebuildFunctionalSlots.ts","webpack:///../../../src/components/VDataTable/VDataTableHeader.ts","webpack:///../../../src/components/VDataTable/Row.ts","webpack:///../../../src/components/VDataTable/RowGroup.ts","webpack:///../../../src/components/VDataTable/VSimpleTable.ts","webpack:///../../../src/components/VDataTable/MobileRow.ts","webpack:///../../../src/components/VDataTable/VDataTable.ts","webpack:///./src/views/notification/pages/MessageVariable.vue","webpack:///src/views/notification/pages/MessageVariable.vue","webpack:///./src/views/notification/pages/MessageVariable.vue?2ee6","webpack:///./src/views/notification/pages/MessageVariable.vue?6e06","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///./src/views/notification/pages/MessageVariable.vue?6f19","webpack:///./src/views/rule/pages/History.vue","webpack:///src/views/rule/pages/History.vue","webpack:///./src/views/rule/pages/History.vue?43c4","webpack:///./src/views/rule/pages/History.vue?d698","webpack:///./src/views/rule/pages/Rule.vue?14af","webpack:///../../../src/mixins/localable/index.ts","webpack:///./src/views/error/pages/Error.vue?3f58","webpack:///../../../../src/components/VCalendar/util/timestamp.ts","webpack:///../../../src/mixins/mouse/index.ts","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["_c","_self","_setup","staticClass","_vm","attrs","staticRenderFns","proxy","item","key","fn","on","model","value","dialog","$$v","expression","scopedSlots","staticStyle","date","dateFormatted","menuConfirmation","input","callback","dialogDelete","closeDialogDelete","$event","render","created","getBlackList","data","saving","undefined","description","editedIndex","headers","text","align","sortable","width","watch","formatDate","events","computed","mapGetters","blackListList","selectedBlackList","methods","mapMutations","showSnackbar","setSelectedBlackList","mapActions","getAllBlackList","saveBlackList","deleteBlackList","formatDateToBD","dia","getDate","mes","getMonth","ano","getFullYear","year","month","day","split","limit","save","event","_this$selectedBlackLi","preventDefault","$refs","form","validate","payload","id","then","close","catch","error","finally","openEditDialog","resetValidation","deleteItem","index","objects","indexOf","splice","openDialogDelete","component","mixins","Colorable","extend","genPickerButton","prop","content","readonly","active","this","click","stopPropagation","$emit","kebabCase","$createElement","trim","class","Array","isArray","PickerButton","name","props","type","String","default","disabled","Boolean","selectingYear","Number","yearIcon","isReversing","computedTransition","val","prev","genYearIcon","VIcon","dark","getYearBtn","genTitleText","domProps","innerHTML","genTitleDate","h","padStart","string","targetLength","padString","length","repeat","slice","n","createNativeLocaleFormatter","locale","options","substrOptions","start","makeIsoString","dateString","pad","join","intlFormatter","Intl","DateTimeFormat","format","Date","e","substr","sign","map","Localable","Themeable","Function","min","max","nextAriaLabel","nextIcon","prevAriaLabel","prevIcon","required","formatter","currentLocale","timeZone","newVal","oldVal","genBtn","change","ariaLabelId","ariaLabel","$vuetify","lang","t","calculateChange","VBtn","icon","light","rtl","monthChange","genHeader","color","header","setTextColor","getSlot","transition","themeClasses","createItemTypeNativeListeners","instance","itemTypeSuffix","Object","keys","$listeners","reduce","eventName","endsWith","createItemTypeListeners","isDateAllowed","allowedFn","directives","Touch","allowedDates","current","eventColor","range","scrollable","tableDate","wheelThrottle","displayedMonth","displayedYear","mounted","throttle","wheel","genButtonClasses","isAllowed","isFloating","isSelected","isCurrent","isFirst","isLast","genButtonEvents","mouseEventType","mergeListeners","genButton","isOtherMonth","setColor","setBackgroundColor","genEvents","getEventColors","arrayize","v","eventData","eventColors","includes","filter","isValidScroll","calculateTableDate","sanitizeType","sanitizeDateString","deltaY","touch","genTable","children","touchDirective","left","offsetX","right","from","to","sort","DatePickerTable","firstDayOfWeek","localeFirstDayOfYear","showAdjacentMonths","showWeek","weekdayFormat","weekdayFormatter","weekday","weekDays","first","parseInt","createRange","i","delta","Math","genTHead","days","unshift","genTR","weekDaysBeforeFirstDayOfTheMonth","firstDayOfTheMonth","weekDay","getUTCDay","getWeekNumber","dayInMonth","weekNumber","genWeekNumber","genTBody","daysInMonth","rows","push","prevMonthYear","prevMonth","firstDayFromPreviousMonth","cellsInRow","nextMonthYear","nextMonth","nextMonthDay","cols","fill","row","tds","_","col","defaultColor","setTimeout","activeItem","$el","getElementsByClassName","scrollTop","offsetTop","offsetHeight","scrollHeight","genYearItem","formatted","genYearItems","selectedYear","maxYear","minYear","ref","Elevatable","flat","fullWidth","landscape","noTitle","computedTitleColor","defaultTitleColor","isDark","genTitle","genBodyTransition","genBody","style","convertToUnit","genActions","elevationClasses","$slots","title","actions","VPicker","headerColor","genPickerTitle","genPickerBody","genPickerActionsSlot","$scopedSlots","cancel","genPicker","body","slot","elevation","Picker","activePicker","dayFormat","headerDateFormat","monthFormat","multiple","nextMonthAriaLabel","nextYearAriaLabel","pickerDate","prevMonthAriaLabel","prevYearAriaLabel","reactive","showCurrent","selectedItemsText","titleDateFormat","validator","yearFormat","now","internalActivePicker","toUpperCase","inputDay","inputMonth","inputYear","multipleValue","wrapInArray","isMultiple","lastValue","selectedMonths","inputDate","tableMonth","tableYear","minMonth","maxMonth","formatters","titleDate","defaultTitleMultipleDateFormatter","defaultTitleDateFormatter","dates","titleFormats","titleDateFormatter","landscapeFormatter","replace","match","nonDigit","digit","immediate","handler","newValue","oldValue","checkMultipleProp","setInputDate","output","emitInput","newInput","concat","x","valueType","constructor","expected","consoleWarn","yearClick","monthClick","dateClick","VDatePickerTitle","genTableHeader","VDatePickerHeader","toggle","genDateTable","VDatePickerDateTable","genMonthTable","VDatePickerMonthTable","genYears","VDatePickerYears","array","VERSION","get","http","api","search","params","create","post","simulate","ruleId","BindsAttrs","RegistrableProvide","provide","inheritAttrs","lazyValidation","inputs","watchers","errorBag","errors","values","deep","watchInput","watcher","$watch","$set","_uid","valid","shouldValidate","hasOwnProperty","reset","forEach","resetErrorBag","register","unregister","found","find","unwatch","$delete","novalidate","attrs$","submit","createUTCDate","UTC","isFinite","getUTCFullYear","setUTCFullYear","firstWeekOffset","firstDayOfYear","firstWeekDayInFirstWeek","firstWeekDayOfYear","dayOfYear","isLeapYear","weeksInYear","weekOffset","weekOffsetNext","daysInYear","week","ceil","Selectable","indeterminate","indeterminateIcon","offIcon","onIcon","inputIndeterminate","classes","VInput","call","computedIcon","isActive","validationState","isDisabled","hasError","hasSuccess","hasColor","computedColor","$nextTick","genCheckbox","checkboxAttrs","dense","genInput","toString","genRipple","rippleState","genDefaultSlot","genLabel","baseMixins","VTextField","autoGrow","noResize","rowHeight","isNaN","parseFloat","noResizeHandle","calculateInputHeight","_a","removeProperty","lazyValue","height","minHeight","tag","onInput","onKeyDown","isFocused","keyCode","loadNotification","_v","notification","smsContent","maxLength","validateMessage","setSelectedField","flash_sms","rules","assetEditorUrl","dialogImport","urlAsset","push_body","whatsapp_params","hover","notificacaoExistente","pre","messageVariable","concatVaribleToMessage","dialogPreviewMessage","email","test","url","components","AssetList","variableDisabled","textSms","textSmsVariable","converterUrl","enviroment","preview","loading","selectedField","loadingError","sms","email_subject","push_title","fieldsAcceptedVariable","selectedVariable","nameMessageVariable","notificationsType","field_activated","payment_method","days_type","when","min_days_after_proposal_agreed","min_days_until_due_date","payment_type","send_next_business_day","paymentMethod","paymentType","daysType","getMessageVariable","$route","query","getBlacklist","loadCreditor","getAllMessageVariable","email_asset_url","createAssetPreview","example","assetsParams","variableFiltered","variable","JSON","stringify","console","log","serviceNotification","response","loadRule","rule_id","verifyTypeNotifications","rule","serviceRule","creditor_id","alert","deal_tags","allNotifications","debug","whatsapp_initiative","update","$router","reset_fields","method","order","cursorPosition","selectionStart","stringToArray","focus","field","verifyFieldSelected","itemSelected","items","showPreview","message","messageVariableList","showAsset","cont","lenght","enviromentName","configs","env","startsWith","assetsUrl","assetPath","assetsAppUrl","encodeURIComponent","assetPreviewUrl1","assetPreviewUrl2","fields","toLowerCase","Vue","validateTimestamp","times","parseTimestamp","today","parsedNow","updateTimes","setPresent","present","past","future","getNow","updateDay","updateTime","parseDate","target","time","hour","minute","MILLIS_IN_DAY","getVisuals","minStart","visuals","columnCount","column","a","b","startTimestampIdentifier","endTimestampIdentifier","hasOverlap","s0","e0","s1","e1","exclude","setColumnCount","groups","group","groupVisual","getRange","getDayRange","startIdentifier","endIdentifier","getNormalizedRange","dayStart","getOpenGroup","end","timed","intersected","k","groupStart","groupEnd","getOverlapGroupHandler","firstWeekday","dayEvents","getTimestampIdentifier","visual","targetGroup","FULL_WIDTH","DEFAULT_OFFSET","WIDTH_MULTIPLIER","stack","overlapThreshold","getGroups","nodes","child","getNode","getNextIndex","parent","getParent","sibling","addTime","getOverlappingRange","grand","grandNext","calculateBounds","node","columns","getMaxChildIndex","spaceLeft","spaceWidth","offset","columnWidthMultiplier","getColumnWidthMultiplier","columnOffset","columnWidth","hasFullWidth","maxColumn","minColumn","c","getOverlappingIndices","indices","other","indexMin","indexMax","returnFirstColumn","overlapping","added","childMax","identifier","minutes","removeMinutes","totalMinutes","addHours","floor","addMinutes","CalendarEventOverlapModes","base","weekdays","validateWeekdays","hideHeader","shortWeekdays","intervals","maxDays","shortIntervals","intervalHeight","validateNumber","intervalWidth","intervalMinutes","firstInterval","firstTime","validateTime","intervalCount","intervalFormat","intervalStyle","showIntervalLabel","weeks","minWeeks","shortMonths","showMonthOnFirst","calendar","category","categories","categoryText","categoryHideDynamic","categoryShowAll","categoryForInvalid","categoryDays","eventStart","eventEnd","eventTimed","eventCategory","eventHeight","eventTextColor","eventOverlapThreshold","eventOverlapMode","mode","eventMore","eventMoreText","eventRipple","eventMarginBottom","ints","DAYS_IN_WEEK","visited","wrapped","d","Mouse","Times","Resize","parsedWeekdays","weekdaySkips","getWeekdaySkips","weekdaySkipsReverse","reversed","reverse","parsedStart","parsedEnd","createDayList","dayFormatter","_tms","_short","longOptions","shortOptions","short","getRelativeClasses","timestamp","outside","getStartOfWeek","getEndOfWeek","getFormatter","parseEvent","startProperty","endProperty","startInput","endInput","startParsed","endParsed","isTimedless","updateHasTime","getDayIdentifier","endOffset","hasTime","allDay","isEventOn","dayIdentifier","isEventHiddenOn","isEventStart","isEventOverlapping","WIDTH_FULL","WIDTH_START","MINUTES_IN_DAY","CalendarBase","ripple","noEvents","parsedEvents","parsedEventOverlapThreshold","eventTimedFunction","eventCategoryFunction","eventTextColorFunction","eventNameFunction","timedEvent","eventModeFunction","eventWeekdays","categoryMode","eventColorFunction","formatTime","withTime","ampm","updateEventVisibility","eventsMap","getEventsMap","more","parentBounds","getBoundingClientRect","last","eventsSorted","bottom","hidden","hide","display","elements","el","getAttribute","parentElement","genDayEvent","weekdayIdentifier","scope","eventParsed","genEvent","refInFor","genTimedEvent","timeDelta","top","timeToY","scopeInput","background","overlapsNoon","singline","diffMinutes","timeSummary","eventSummary","delimiter","getDefaultMouseEventHandlers","nativeEvent","genName","genPlaceholder","genMore","getVisibleEvents","isEventForCategory","categoryName","getEventsForDay","getEventsForDayAll","getEventsForDayTimed","getScopedSlots","isNode","getSlotChildren","getter","mapper","mapped","slots","slotDay","slotDayHeader","slotDayBody","parsedMinWeeks","minDays","MAX_SAFE_INTEGER","todayWeek","monthFormatter","isOutside","genHead","role","genHeadDays","genHeadDay","genWeeks","genWeek","weekNodes","genDay","determineDay","genDayLabel","genDayLabelButton","hasMonth","fab","depressed","small","getMouseEventHandlers","stop","prevent","result","genDayMonth","dragstart","VCalendarWeekly","getStartOfMonth","getEndOfMonth","parsedFirstInterval","parsedIntervalMinutes","parsedIntervalCount","parsedIntervalHeight","parsedFirstTime","parseTime","firstMinute","bodyHeight","count","createIntervalList","intervalFormatter","shortHourOptions","tms","showIntervalLabelDefault","interval","intervalStyleDefault","_interval","getTimestampAtEvent","copyTimestamp","bounds","currentTarget","baseMinutes","touchEvent","mouseEvent","touches","changedTouches","clientY","addIntervals","updateMinutes","getSlotScope","minutesToPixels","scrollToTime","y","pane","scrollArea","clamp","gap","CalendarWithIntervals","scrollPush","init","onResize","getScrollPush","area","offsetWidth","marginRight","genHeadIntervals","genHeadWeekday","genHeadDayLabel","genDayHeader","genHeadDayButton","genScrollArea","genPane","genDayContainer","genBodyIntervals","genDays","genDayIntervals","genDayBody","genDayInterval","styler","genIntervalLabels","genIntervalLabel","shower","show","label","modifiers","quiet","parsedCategoryText","getParsedCategories","VCalendarDaily","parsedCategories","genDayHeaderCategory","getCategoryScope","cat","headerTitle","genDayHeaderCategoryTitle","j","categoryIndex","genDayBodyCategory","CalendarWithEvents","lastStart","lastEnd","parsedValue","parsedCategoryDays","renderProps","around","VCalendarMonthly","relativeDays","nextDay","updateFormatted","VCalendarCategory","getCategoryList","Error","spanYears","spanMonths","monthShortFormatter","monthLongFormatter","checkChange","updated","window","requestAnimationFrame","move","amount","moved","forward","mover","prevDay","DAYS_IN_MONTH_MAX","DAY_MIN","updateWeekday","updateRelative","timestampToDate","getTime","next","$children","categoryMap","categoryLength","ev","$props","click:date","agreementDateFormatted","dueDate","menuDueDate","agreementDate","paymentMethods","paymentTypes","simulating","grey","_s","getBlacklistDate","getNotifications","openNotification","abbreviation","dueDateFormatted","simulations","agreement_date","moment","due_date","add","verifyStartOrEndDay","actualDay","toDateString","proposal_agreement_date","payment_due_date","simulation","notifications","filtersChanged","blacklist","blacklistdays","dialogCreateVersion","inactive","dialogPublishVersion","publishCreditorRule","_u","_e","matrixNotifications","matrix","itemPossibility","there_is_border","maxInRow","breakpoint","NOTIFICATIONS_ORDER","MatrixNotifications","editNotification","showInactiveNotifications","dialogMessage","loadNotifications","beforeRouteUpdate","creditor","boletos","proposals","pagamentos","beforeDueDate","afterDueDate","notificationA","notificationB","others","notificationsBeforeDueDate","antecipacaoPagamento","lembreteVencimento","vencimento","notificationsAfterDueDate","alertaPosVencimento","alertaExpiracao","notifallNotificationsications","loadRules","creditorId","ruleChanged","createRule","change_description","serviceCreditor","publishRule","closePublishDialog","creditorsHeaders","goToRule","creditors","creditorNewId","down_payment_tolerance_days_type","installment_tolerance_days_type","NEW_CREDITOR","down_payment_tolerance_days","installment_tolerance_days","util","loadAllCreditors","lastCreditorId","apply","ActionsLoadCreditor","createCreditor","saveCreditor","sortBy","sortDesc","customSort","sortItems","mustSort","multiSort","page","itemsPerPage","groupBy","groupDesc","customGroup","groupItems","disableSort","disablePagination","disableFiltering","customFilter","searchItems","serverItemsLength","internalOptions","assign","sortDiff","groupDiff","fillArray","itemsLength","filteredItems","pageCount","pageStart","pageStop","isGrouped","pagination","computedItems","paginateItems","groupedItems","scopedProps","sortArray","updateOptions","originalItemsLength","computedOptions","old","deepEqual","oldBy","oldDesc","by","desc","byIndex","findIndex","s","itemsPerPageOptions","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","option","genDataItemsPerPageOption","obj","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","genItemsPerPageSelect","computedIPPO","ippo","VSelect","hideDetails","auto","minWidth","genPaginationInfo","genIcon","genIcons","before","after","Mobile","VData","itemKey","singleSelect","expanded","mobileBreakpoint","singleExpand","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","selectableKey","selection","expansion","internalCurrentItems","shiftKeyDown","lastEntry","everyItem","selectableItems","every","someItems","some","sanitizedFooterProps","camelizeObjectKeys","isSelectable","getObjectValueByPath","breakingProps","original","replacement","$attrs","breaking","removedProps","removed","addEventListener","onKeyUp","beforeDestroy","removeEventListener","keyCodes","shift","shiftKey","toggleSelectAll","select","emit","lastEntryKey","lastEntryKeySelected","multipleSelect","currentItem","isExpanded","expand","createItemProps","isMobile","genEmptyWrapper","genEmpty","filteredItemsLength","noData","noResults","genItems","empty","genFooter","getPrefixedScopedSlots","VDataFooter","genDefaultScopedSlot","outerProps","update:options","checkboxColor","sortIcon","showGroupBy","genSelectAll","VSimpleCheckbox","genSortIcon","size","sortByText","genSortChip","sortIndex","beingSorted","isDesc","asc","VChip","genSortSelect","menuProps","closeOnContentClick","sortHeaders","th","tr","genGroupByToggle","getAria","$t","ariaSort","divider","groupable","dedupeModelListeners","rebuildFunctionalSlots","functional","mobile","rebuildSlots","mergeData","VDataTableHeaderMobile","VDataTableHeaderDesktop","needsTd","computedSlots","slotName","scopedSlot","regularSlot","textAlign","cellClass","headerClass","contentClass","summaryClass","fixedHeader","genWrapper","wrapper","hideDefaultHeader","mobileRowChildren","filterFn","searchTableItems","headersWithCustomFilters","headersWithoutCustomFilters","filterMode","defaultFilter","matchesColumnFilters","matchesSearchTerm","VDataIterator","Loadable","showSelect","showExpand","caption","headerProps","calculateWidths","headersLength","expandIcon","itemClass","itemStyle","loaderHeight","internalGroupBy","openCache","widths","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","acc","filterable","sanitizedHeaderProps","computedItemsPerPage","firstOption","groupByText","_b","calcWidths","querySelectorAll","clientWidth","customFilterWithColumns","customSortWithHeaders","genCaption","genColgroup","genLoading","genProgress","genHeaders","VDataTableHeader","genGroupedRows","genRows","genDefaultGroupedRow","isOpen","toggleFn","removeFn","remove","RowGroup","genScopedRows","genDefaultRows","genDefaultExpandedRow","genDefaultSimpleRow","headerRow","expandedRow","MobileRow","Row","mergeClasses","getPropertyFromItem","mergeStyles","genFoot","foot","genFooters","simpleProps","VSimpleTable","proxySlot","inset","switchData","genSwitch","switchAttrs","onSwipeLeft","onSwipeRight","VFabTransition","VProgressCircular","onChange","onKeydown","creditorRuleHistoryList","getCreditorRuleHistory","getAllCreditorRuleHistory","PARSE_REGEX","PARSE_TIME","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP","DAYS_IN_MONTH_MIN","MONTH_MAX","MONTH_MIN","MINUTES_IN_HOUR","MINUTE_MAX","HOUR_MAX","OFFSET_YEAR","OFFSET_MONTH","OFFSET_HOUR","OFFSET_TIME","findWeekday","exec","parts","hasDay","getDay","getHours","getMinutes","getTimeIdentifier","getWeekday","m","C","Y","padNumber","padded","str","M","D","skips","filled","skip","currentIdentifier","stopped","mins","int","getOptions","emptyFormatter","_t","suffix","getData","eventFirst","listeners","eventOptions","prefix","passive","once","capture","button","buttons","classSeparator","eventTargetClasses","className","currentTargets","document","elementsFromPoint","clientX","isSameNode","dispatchEvent","TouchEvent","targetTouches","center","Rippleable","Comparable","inputValue","falseValue","trueValue","appIsDark","internalValue","valueComparator","isDirty","computedId","checked","blur","onBlur","onFocus","keydown","onClick","isInteractive"],"mappings":"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","file":"js/home.bf416e55.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"text-center pa-4 mt-8\"},[_c('h2',{staticClass:\"text-h5\"},[_vm._v(\" Página não encontrada \")]),_c('div',{staticClass:\"mt-4\"},[_c('v-btn',{attrs:{\"to\":\"/\",\"color\":\"primary\"}},[_vm._v(\" Ir para o início \")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{staticClass:\"mx-auto elevation-1\",staticStyle:{\"max-width\":\"750px\"},attrs:{\"headers\":_vm.headers,\"items\":_vm.blackListList.objects,\"sort-by\":\"date\",\"hide-default-footer\":\"\",\"items-per-page\":1000},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('h3',[_vm._v(\"Nenhum feriado cadastrado\")])]},proxy:true},{key:`item.date`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.formatDate(item.date))+\" \")]}},{key:`item.menu`,fn:function({ item }){return [_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({staticClass:\"mr-2\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.openEditDialog(item)}}},on),[_vm._v(\" mdi-pencil \")]),_c('v-icon',_vm._g({attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.openDialogDelete(item)}}},on),[_vm._v(\" mdi-delete \")])]}}],null,true)})]}},{key:\"top\",fn:function(){return [_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-spacer'),_c('v-dialog',{attrs:{\"max-width\":\"500px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mb-2\",attrs:{\"color\":\"primary\",\"dark\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" Novo \")])]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-card-text',[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"}},[_c('v-container',[_c('v-row',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"transition\":\"scale-transition\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-text-field',_vm._g(_vm._b({staticStyle:{\"margin-top\":\"53px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"readonly\":\"\",\"clearable\":\"\",\"label\":\"Data\",\"rules\":[\n () =>\n !!_vm.date || 'Este campo é obrigatório',\n ]},on:{\"click:clear\":function($event){_vm.date = undefined}},model:{value:(_vm.dateFormatted),callback:function ($$v) {_vm.dateFormatted=$$v},expression:\"dateFormatted\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.menuConfirmation),callback:function ($$v) {_vm.menuConfirmation=$$v},expression:\"menuConfirmation\"}},[_c('v-date-picker',{attrs:{\"locale\":\"pt-br\",\"color\":\"deep-purple accent-2\"},on:{\"input\":function($event){_vm.menuConfirmation = false}},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('v-text-field',{staticStyle:{\"margin-top\":\"35px\"},attrs:{\"label\":\"Descrição\",\"rules\":[\n () =>\n !!_vm.description || 'Este campo é obrigatório',\n ]},model:{value:(_vm.description),callback:function ($$v) {_vm.description=$$v},expression:\"description\"}})],1)],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\" Cancelar \")]),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\",\"disabled\":_vm.saving},on:{\"click\":_vm.save}},[_vm._v(\" Salvar \")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"500px\"},model:{value:(_vm.dialogDelete),callback:function ($$v) {_vm.dialogDelete=$$v},expression:\"dialogDelete\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" Deseja deletar o feriado? \")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"blue darken-1\"},on:{\"click\":_vm.closeDialogDelete}},[_vm._v(\"Cancelar\")]),_c('v-btn',{attrs:{\"color\":\"blue darken-1\"},on:{\"click\":function($event){return _vm.deleteItem()}}},[_vm._v(\"OK\")]),_c('v-spacer')],1)],1)],1)],1)]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Blacklistdays.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Blacklistdays.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Blacklistdays.vue?vue&type=template&id=01106758&scoped=true\"\nimport script from \"./Blacklistdays.vue?vue&type=script&lang=js\"\nexport * from \"./Blacklistdays.vue?vue&type=script&lang=js\"\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 \"01106758\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MatrixNotifications.vue?vue&type=style&index=0&id=59b2a246&prod&scoped=true&lang=scss\"","// Mixins\nimport Colorable from '../colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { kebabCase } from '../../util/helpers'\n\n// Types\nimport { VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable\n).extend({\n methods: {\n genPickerButton (\n prop: string,\n value: any,\n content: VNodeChildren,\n readonly = false,\n staticClass = ''\n ) {\n const active = (this as any)[prop] === value\n const click = (event: Event) => {\n event.stopPropagation()\n this.$emit(`update:${kebabCase(prop)}`, value)\n }\n\n return this.$createElement('div', {\n staticClass: `v-picker__title__btn ${staticClass}`.trim(),\n class: {\n 'v-picker__title__btn--active': active,\n 'v-picker__title__btn--readonly': readonly,\n },\n on: (active || readonly) ? undefined : { click },\n }, Array.isArray(content) ? content : [content])\n },\n },\n})\n","import './VDatePickerTitle.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-date-picker-title',\n\n props: {\n date: {\n type: String,\n default: '',\n },\n disabled: Boolean,\n readonly: Boolean,\n selectingYear: Boolean,\n value: {\n type: String,\n },\n year: {\n type: [Number, String],\n default: '',\n },\n yearIcon: {\n type: String,\n },\n },\n\n data: () => ({\n isReversing: false,\n }),\n\n computed: {\n computedTransition (): string {\n return this.isReversing ? 'picker-reverse-transition' : 'picker-transition'\n },\n },\n\n watch: {\n value (val: string, prev: string) {\n this.isReversing = val < prev\n },\n },\n\n methods: {\n genYearIcon (): VNode {\n return this.$createElement(VIcon, {\n props: {\n dark: true,\n },\n }, this.yearIcon)\n },\n getYearBtn (): VNode {\n return this.genPickerButton('selectingYear', true, [\n String(this.year),\n this.yearIcon ? this.genYearIcon() : null,\n ], false, 'v-date-picker-title__year')\n },\n genTitleText (): VNode {\n return this.$createElement('transition', {\n props: {\n name: this.computedTransition,\n },\n }, [\n this.$createElement('div', {\n domProps: { innerHTML: this.date || ' ' },\n key: this.value,\n }),\n ])\n },\n genTitleDate (): VNode {\n return this.genPickerButton('selectingYear', false, [this.genTitleText()], false, 'v-date-picker-title__date')\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-date-picker-title',\n class: {\n 'v-date-picker-title--disabled': this.disabled,\n },\n }, [\n this.getYearBtn(),\n this.genTitleDate(),\n ])\n },\n})\n","const padStart = (string: number | string, targetLength: number, padString: string) => {\n targetLength = targetLength >> 0\n string = String(string)\n padString = String(padString)\n if (string.length > targetLength) {\n return String(string)\n }\n\n targetLength = targetLength - string.length\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length)\n }\n return padString.slice(0, targetLength) + String(string)\n}\n\nexport default (n: string | number, length = 2) => padStart(n, length, '0')\n","import pad from './pad'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface SubstrOptions {\n start?: number\n length: number\n}\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions\n): DatePickerFormatter | undefined\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions\n): DatePickerFormatter\n\nfunction createNativeLocaleFormatter (\n locale: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions = { start: 0, length: 0 }\n): DatePickerFormatter | undefined {\n const makeIsoString = (dateString: string) => {\n const [year, month, date] = dateString.trim().split(' ')[0].split('-')\n return [pad(year, 4), pad(month || 1), pad(date || 1)].join('-')\n }\n\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, options)\n return (dateString: string) => intlFormatter.format(new Date(`${makeIsoString(dateString)}T00:00:00+00:00`))\n } catch (e) {\n return (substrOptions.start || substrOptions.length)\n ? (dateString: string) => makeIsoString(dateString).substr(substrOptions.start || 0, substrOptions.length)\n : undefined\n }\n}\n\nexport default createNativeLocaleFormatter\n","import pad from './pad'\n\n/**\n * @param {String} value YYYY-MM format\n * @param {Number} sign -1 or +1\n */\nexport default (value: string, sign: number) => {\n const [year, month] = value.split('-').map(Number)\n\n if (month + sign === 0) {\n return `${year - 1}-12`\n } else if (month + sign === 13) {\n return `${year + 1}-01`\n } else {\n return `${year}-${pad(month + sign)}`\n }\n}\n","import './VDatePickerHeader.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport { createNativeLocaleFormatter, monthChange } from './util'\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-header',\n\n props: {\n disabled: Boolean,\n format: Function as PropType,\n min: String,\n max: String,\n nextAriaLabel: String,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevAriaLabel: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n readonly: Boolean,\n value: {\n type: [Number, String],\n required: true,\n },\n },\n\n data () {\n return {\n isReversing: false,\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n if (this.format) {\n return this.format\n } else if (String(this.value).split('-')[1]) {\n return createNativeLocaleFormatter(this.currentLocale, { month: 'long', year: 'numeric', timeZone: 'UTC' }, { length: 7 })\n } else {\n return createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n }\n },\n },\n\n watch: {\n value (newVal, oldVal) {\n this.isReversing = newVal < oldVal\n },\n },\n\n methods: {\n genBtn (change: number) {\n const ariaLabelId = change > 0 ? this.nextAriaLabel : this.prevAriaLabel\n const ariaLabel = ariaLabelId ? this.$vuetify.lang.t(ariaLabelId) : undefined\n const disabled = this.disabled ||\n (change < 0 && this.min && this.calculateChange(change) < this.min) ||\n (change > 0 && this.max && this.calculateChange(change) > this.max)\n\n return this.$createElement(VBtn, {\n attrs: { 'aria-label': ariaLabel },\n props: {\n dark: this.dark,\n disabled,\n icon: true,\n light: this.light,\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n this.$emit('input', this.calculateChange(change))\n },\n },\n }, [\n this.$createElement(VIcon, ((change < 0) === !this.$vuetify.rtl) ? this.prevIcon : this.nextIcon),\n ])\n },\n calculateChange (sign: number) {\n const [year, month] = String(this.value).split('-').map(Number)\n\n if (month == null) {\n return `${year + sign}`\n } else {\n return monthChange(String(this.value), sign)\n }\n },\n genHeader () {\n const color = !this.disabled && (this.color || 'accent')\n const header = this.$createElement('div', this.setTextColor(color, {\n key: String(this.value),\n }), [this.$createElement('button', {\n attrs: {\n type: 'button',\n },\n on: {\n click: () => this.$emit('toggle'),\n },\n }, getSlot(this) || [this.formatter(String(this.value))])])\n\n const transition = this.$createElement('transition', {\n props: {\n name: (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition',\n },\n }, [header])\n\n return this.$createElement('div', {\n staticClass: 'v-date-picker-header__value',\n class: {\n 'v-date-picker-header__value--disabled': this.disabled,\n },\n }, [transition])\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-date-picker-header',\n class: {\n 'v-date-picker-header--disabled': this.disabled,\n ...this.themeClasses,\n },\n }, [\n this.genBtn(-1),\n this.genHeader(),\n this.genBtn(+1),\n ])\n },\n})\n","import Vue from 'vue'\n\nexport function createItemTypeNativeListeners (instance: Vue, itemTypeSuffix: string, value: any) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName.slice(0, -itemTypeSuffix.length)] = (event: Event) => instance.$emit(eventName, value, event)\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n\nexport function createItemTypeListeners (instance: Vue, itemTypeSuffix: string) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName] = instance.$listeners[eventName]\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n","// Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',\n// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'\nimport pad from './pad'\n\nexport default (dateString: string, type: 'date' | 'month' | 'year'): string => {\n const [year, month = 1, date = 1] = dateString.split('-')\n return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])\n}\n","import { DatePickerAllowedDatesFunction } from 'vuetify/types'\n\nexport default function isDateAllowed (date: string, min: string, max: string, allowedFn: DatePickerAllowedDatesFunction | undefined) {\n return (!allowedFn || allowedFn(date)) &&\n (!min || date >= min.substr(0, 10)) &&\n (!max || date <= max)\n}\n","import '../VDatePickerTable.sass'\n\n// Directives\nimport Touch from '../../../directives/touch'\n\n// Mixins\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Themeable from '../../../mixins/themeable'\n\n// Utils\nimport { createItemTypeNativeListeners, sanitizeDateString } from '../util'\nimport isDateAllowed from '../util/isDateAllowed'\nimport { mergeListeners } from '../../../util/mergeData'\nimport mixins from '../../../util/mixins'\nimport { throttle } from '../../../util/helpers'\n\n// Types\nimport {\n PropType,\n VNodeChildren,\n} from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEventColorValue,\n DatePickerEvents,\n DatePickerFormatter,\n TouchWrapper,\n} from 'vuetify/types'\n\ntype CalculateTableDateFunction = (v: number) => string\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n directives: { Touch },\n\n props: {\n allowedDates: Function as PropType,\n current: String,\n disabled: Boolean,\n format: Function as PropType,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator,\n min: String,\n max: String,\n range: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n tableDate: {\n type: String,\n required: true,\n },\n value: [String, Array] as PropType,\n },\n\n data: () => ({\n isReversing: false,\n wheelThrottle: null as any,\n }),\n\n computed: {\n computedTransition (): string {\n return (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition'\n },\n displayedMonth (): number {\n return Number(this.tableDate.split('-')[1]) - 1\n },\n displayedYear (): number {\n return Number(this.tableDate.split('-')[0])\n },\n },\n\n watch: {\n tableDate (newVal: string, oldVal: string) {\n this.isReversing = newVal < oldVal\n },\n },\n\n mounted () {\n this.wheelThrottle = throttle(this.wheel, 250)\n },\n\n methods: {\n genButtonClasses (\n isAllowed: boolean,\n isFloating: boolean,\n isSelected: boolean,\n isCurrent: boolean,\n isFirst: boolean,\n isLast: boolean,\n ) {\n return {\n 'v-size--default': !isFloating,\n 'v-date-picker-table__current': isCurrent,\n 'v-btn--active': isSelected,\n 'v-btn--flat': !isAllowed || this.disabled,\n 'v-btn--text': isSelected === isCurrent,\n 'v-btn--rounded': isFloating,\n 'v-btn--disabled': !isAllowed || this.disabled,\n 'v-btn--outlined': isCurrent && !isSelected,\n 'v-date-picker--first-in-range': isFirst,\n 'v-date-picker--last-in-range': isLast,\n ...this.themeClasses,\n }\n },\n genButtonEvents (value: string, isAllowed: boolean, mouseEventType: string) {\n if (this.disabled) return undefined\n\n return mergeListeners({\n click: () => {\n if (isAllowed && !this.readonly) this.$emit('input', value)\n },\n }, createItemTypeNativeListeners(this, `:${mouseEventType}`, value))\n },\n genButton (value: string, isFloating: boolean, mouseEventType: string, formatter: DatePickerFormatter, isOtherMonth = false) {\n const isAllowed = isDateAllowed(value, this.min, this.max, this.allowedDates)\n const isSelected = this.isSelected(value) && isAllowed\n const isCurrent = value === this.current\n const setColor = isSelected ? this.setBackgroundColor : this.setTextColor\n const color = (isSelected || isCurrent) && (this.color || 'accent')\n let isFirst = false\n let isLast = false\n if (this.range && !!this.value && Array.isArray(this.value)) {\n isFirst = value === this.value[0]\n isLast = value === this.value[this.value.length - 1]\n }\n\n return this.$createElement('button', setColor(color, {\n staticClass: 'v-btn',\n class: this.genButtonClasses(\n isAllowed && !isOtherMonth,\n isFloating,\n isSelected,\n isCurrent,\n isFirst,\n isLast,\n ),\n attrs: {\n type: 'button',\n },\n domProps: {\n disabled: this.disabled || !isAllowed || isOtherMonth,\n },\n on: this.genButtonEvents(value, isAllowed, mouseEventType),\n }), [\n this.$createElement('div', {\n staticClass: 'v-btn__content',\n }, [formatter(value)]),\n this.genEvents(value),\n ])\n },\n getEventColors (date: string) {\n const arrayize = (v: string | string[]) => Array.isArray(v) ? v : [v]\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: string[] = []\n\n if (Array.isArray(this.events)) {\n eventData = this.events.includes(date)\n } else if (this.events instanceof Function) {\n eventData = this.events(date) || false\n } else if (this.events) {\n eventData = this.events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = arrayize(eventData)\n } else if (typeof this.eventColor === 'string') {\n eventColors = [this.eventColor]\n } else if (typeof this.eventColor === 'function') {\n eventColors = arrayize(this.eventColor(date))\n } else if (Array.isArray(this.eventColor)) {\n eventColors = this.eventColor\n } else {\n eventColors = arrayize(this.eventColor[date])\n }\n\n return eventColors.filter(v => v)\n },\n genEvents (date: string) {\n const eventColors = this.getEventColors(date)\n\n return eventColors.length ? this.$createElement('div', {\n staticClass: 'v-date-picker-table__events',\n }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null\n },\n isValidScroll (value: number, calculateTableDate: CalculateTableDateFunction) {\n const tableDate = calculateTableDate(value)\n // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable\n const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month'\n return (value < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true)) ||\n (value > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true))\n },\n wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(e.deltaY))\n },\n touch (value: number, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(value))\n },\n genTable (staticClass: string, children: VNodeChildren, calculateTableDate: CalculateTableDateFunction) {\n const transition = this.$createElement('transition', {\n props: { name: this.computedTransition },\n }, [this.$createElement('table', { key: this.tableDate }, children)])\n\n const touchDirective = {\n name: 'touch',\n value: {\n left: (e: TouchWrapper) => (e.offsetX < -15) &&\n (this.isValidScroll(1, calculateTableDate) && this.touch(1, calculateTableDate)),\n right: (e: TouchWrapper) => (e.offsetX > 15) &&\n (this.isValidScroll(-1, calculateTableDate) && this.touch(-1, calculateTableDate)),\n },\n }\n\n return this.$createElement('div', {\n staticClass,\n class: {\n 'v-date-picker-table--disabled': this.disabled,\n ...this.themeClasses,\n },\n on: (!this.disabled && this.scrollable) ? {\n wheel: (e: WheelEvent) => {\n e.preventDefault()\n if (this.isValidScroll(e.deltaY, calculateTableDate)) { this.wheelThrottle(e, calculateTableDate) }\n },\n } : undefined,\n directives: [touchDirective],\n }, [transition])\n },\n isSelected (value: string): boolean {\n if (Array.isArray(this.value)) {\n if (this.range && this.value.length === 2) {\n const [from, to] = [...this.value].sort()\n return from <= value && value <= to\n } else {\n return this.value.indexOf(value) !== -1\n }\n }\n\n return value === this.value\n },\n },\n})\n","// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport { pad, createNativeLocaleFormatter, monthChange } from './util'\nimport { createRange } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-date-table',\n\n props: {\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n weekdayFormat: Function as PropType,\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { day: 'numeric', timeZone: 'UTC' }, { start: 8, length: 2 })\n },\n weekdayFormatter (): DatePickerFormatter | undefined {\n return this.weekdayFormat || createNativeLocaleFormatter(this.currentLocale, { weekday: 'narrow', timeZone: 'UTC' })\n },\n weekDays (): string[] {\n const first = parseInt(this.firstDayOfWeek, 10)\n\n return this.weekdayFormatter\n ? createRange(7).map(i => this.weekdayFormatter!(`2017-01-${first + i + 15}`)) // 2017-01-15 is Sunday\n : createRange(7).map(i => ['S', 'M', 'T', 'W', 'T', 'F', 'S'][(i + first) % 7])\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return monthChange(this.tableDate, Math.sign(delta || 1))\n },\n genTHead () {\n const days = this.weekDays.map(day => this.$createElement('th', day))\n if (this.showWeek) {\n days.unshift(this.$createElement('th'))\n }\n\n return this.$createElement('thead', this.genTR(days))\n },\n // Returns number of the days from the firstDayOfWeek to the first day of the current month\n weekDaysBeforeFirstDayOfTheMonth () {\n const firstDayOfTheMonth = new Date(`${this.displayedYear}-${pad(this.displayedMonth + 1)}-01T00:00:00+00:00`)\n const weekDay = firstDayOfTheMonth.getUTCDay()\n\n return (weekDay - parseInt(this.firstDayOfWeek) + 7) % 7\n },\n getWeekNumber (dayInMonth: number) {\n return weekNumber(\n this.displayedYear,\n this.displayedMonth,\n dayInMonth,\n parseInt(this.firstDayOfWeek),\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('td', [\n this.$createElement('small', {\n staticClass: 'v-date-picker-table--date__week',\n }, String(weekNumber).padStart(2, '0')),\n ])\n },\n // eslint-disable-next-line max-statements\n genTBody () {\n const children = []\n const daysInMonth = new Date(this.displayedYear, this.displayedMonth + 1, 0).getDate()\n let rows = []\n let day = this.weekDaysBeforeFirstDayOfTheMonth()\n\n if (this.showWeek) {\n rows.push(this.genWeekNumber(this.getWeekNumber(1)))\n }\n\n const prevMonthYear = this.displayedMonth ? this.displayedYear : this.displayedYear - 1\n const prevMonth = (this.displayedMonth + 11) % 12\n const firstDayFromPreviousMonth = new Date(this.displayedYear, this.displayedMonth, 0).getDate()\n const cellsInRow = this.showWeek ? 8 : 7\n\n while (day--) {\n const date = `${prevMonthYear}-${pad(prevMonth + 1)}-${pad(firstDayFromPreviousMonth - day)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n for (day = 1; day <= daysInMonth; day++) {\n const date = `${this.displayedYear}-${pad(this.displayedMonth + 1)}-${pad(day)}`\n\n rows.push(this.$createElement('td', [\n this.genButton(date, true, 'date', this.formatter),\n ]))\n\n if (rows.length % cellsInRow === 0) {\n children.push(this.genTR(rows))\n rows = []\n if (this.showWeek && (day < daysInMonth || this.showAdjacentMonths)) {\n rows.push(this.genWeekNumber(this.getWeekNumber(day + 7)))\n }\n }\n }\n\n const nextMonthYear = this.displayedMonth === 11 ? this.displayedYear + 1 : this.displayedYear\n const nextMonth = (this.displayedMonth + 1) % 12\n let nextMonthDay = 1\n\n while (rows.length < cellsInRow) {\n const date = `${nextMonthYear}-${pad(nextMonth + 1)}-${pad(nextMonthDay++)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n if (rows.length) {\n children.push(this.genTR(rows))\n }\n\n return this.$createElement('tbody', children)\n },\n genTR (children: VNodeChildren) {\n return [this.$createElement('tr', children)]\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--date', [\n this.genTHead(),\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n","// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { pad, createNativeLocaleFormatter } from './util'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-month-table',\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { month: 'short', timeZone: 'UTC' }, { start: 5, length: 2 })\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return `${parseInt(this.tableDate, 10) + Math.sign(delta || 1)}`\n },\n genTBody () {\n const children = []\n const cols = Array(3).fill(null)\n const rows = 12 / cols.length\n\n for (let row = 0; row < rows; row++) {\n const tds = cols.map((_, col) => {\n const month = row * cols.length + col\n const date = `${this.displayedYear}-${pad(month + 1)}`\n return this.$createElement('td', {\n key: month,\n }, [\n this.genButton(date, false, 'month', this.formatter),\n ])\n })\n\n children.push(this.$createElement('tr', {\n key: row,\n }, tds))\n }\n\n return this.$createElement('tbody', children)\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--month', [\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n","import './VDatePickerYears.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\n\n// Utils\nimport {\n createItemTypeNativeListeners,\n createNativeLocaleFormatter,\n} from './util'\nimport { mergeListeners } from '../../util/mergeData'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface options extends Vue {\n $el: HTMLElement\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n Colorable,\n Localable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-years',\n\n props: {\n format: Function as PropType,\n min: [Number, String],\n max: [Number, String],\n readonly: Boolean,\n value: [Number, String],\n },\n\n data () {\n return {\n defaultColor: 'primary',\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n },\n },\n\n mounted () {\n setTimeout(() => {\n const activeItem = this.$el.getElementsByClassName('active')[0]\n if (activeItem) {\n this.$el.scrollTop = activeItem.offsetTop - this.$el.offsetHeight / 2 + activeItem.offsetHeight / 2\n } else if (this.min && !this.max) {\n this.$el.scrollTop = this.$el.scrollHeight\n } else if (!this.min && this.max) {\n this.$el.scrollTop = 0\n } else {\n this.$el.scrollTop = this.$el.scrollHeight / 2 - this.$el.offsetHeight / 2\n }\n })\n },\n\n methods: {\n genYearItem (year: number): VNode {\n const formatted = this.formatter(`${year}`)\n const active = parseInt(this.value, 10) === year\n const color = active && (this.color || 'primary')\n\n return this.$createElement('li', this.setTextColor(color, {\n key: year,\n class: { active },\n on: mergeListeners({\n click: () => this.$emit('input', year),\n }, createItemTypeNativeListeners(this, ':year', year)),\n }), formatted)\n },\n\n genYearItems (): VNode[] {\n const children = []\n const selectedYear = this.value ? parseInt(this.value, 10) : new Date().getFullYear()\n const maxYear = this.max ? parseInt(this.max, 10) : (selectedYear + 100)\n const minYear = Math.min(maxYear, this.min ? parseInt(this.min, 10) : (selectedYear - 100))\n\n for (let year = maxYear; year >= minYear; year--) {\n children.push(this.genYearItem(year))\n }\n\n return children\n },\n },\n\n render (): VNode {\n return this.$createElement('ul', {\n staticClass: 'v-date-picker-years',\n ref: 'years',\n }, this.genYearItems())\n },\n})\n","import './VPicker.sass'\nimport '../VCard/VCard.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Elevatable,\n Themeable\n).extend({\n name: 'v-picker',\n\n props: {\n flat: Boolean,\n fullWidth: Boolean,\n landscape: Boolean,\n noTitle: Boolean,\n transition: {\n type: String,\n default: 'fade-transition',\n },\n width: {\n type: [Number, String],\n default: 290,\n },\n },\n\n computed: {\n computedTitleColor (): string | false {\n const defaultTitleColor = this.isDark ? false : (this.color || 'primary')\n return this.color || defaultTitleColor\n },\n },\n\n methods: {\n genTitle () {\n return this.$createElement('div', this.setBackgroundColor(this.computedTitleColor, {\n staticClass: 'v-picker__title',\n class: {\n 'v-picker__title--landscape': this.landscape,\n },\n }), getSlot(this, 'title'))\n },\n genBodyTransition () {\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, getSlot(this))\n },\n genBody () {\n return this.$createElement('div', {\n staticClass: 'v-picker__body',\n class: {\n 'v-picker__body--no-title': this.noTitle,\n ...this.themeClasses,\n },\n style: this.fullWidth ? undefined : {\n width: convertToUnit(this.width),\n },\n }, [\n this.genBodyTransition(),\n ])\n },\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-picker__actions v-card__actions',\n class: {\n 'v-picker__actions--no-title': this.noTitle,\n },\n }, getSlot(this, 'actions'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-picker v-card',\n class: {\n 'v-picker--flat': this.flat,\n 'v-picker--landscape': this.landscape,\n 'v-picker--full-width': this.fullWidth,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n }, [\n this.$slots.title ? this.genTitle() : null,\n this.genBody(),\n this.$slots.actions ? this.genActions() : null,\n ])\n },\n})\n","import VPicker from './VPicker'\n\nexport { VPicker }\nexport default VPicker\n","// Components\nimport VPicker from '../../components/VPicker'\n\n// Mixins\nimport Colorable from '../colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n Elevatable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'picker',\n\n props: {\n flat: Boolean,\n fullWidth: Boolean,\n headerColor: String,\n landscape: Boolean,\n noTitle: Boolean,\n width: {\n type: [Number, String],\n default: 290,\n },\n },\n\n methods: {\n genPickerTitle (): VNode | null {\n return null\n },\n genPickerBody (): VNode | null {\n return null\n },\n genPickerActionsSlot () {\n return this.$scopedSlots.default ? this.$scopedSlots.default({\n save: (this as any).save,\n cancel: (this as any).cancel,\n }) : getSlot(this)\n },\n genPicker (staticClass: string) {\n const children: VNode[] = []\n\n if (!this.noTitle) {\n const title = this.genPickerTitle()\n title && children.push(title)\n }\n\n const body = this.genPickerBody()\n body && children.push(body)\n\n children.push(this.$createElement('template', { slot: 'actions' }, [this.genPickerActionsSlot()]))\n\n return this.$createElement(VPicker, {\n staticClass,\n props: {\n color: this.headerColor || this.color,\n dark: this.dark,\n elevation: this.elevation,\n flat: this.flat,\n fullWidth: this.fullWidth,\n landscape: this.landscape,\n light: this.light,\n width: this.width,\n noTitle: this.noTitle,\n },\n }, children)\n },\n },\n})\n","// Components\nimport VDatePickerTitle from './VDatePickerTitle'\nimport VDatePickerHeader from './VDatePickerHeader'\nimport VDatePickerDateTable from './VDatePickerDateTable'\nimport VDatePickerMonthTable from './VDatePickerMonthTable'\nimport VDatePickerYears from './VDatePickerYears'\n\n// Mixins\nimport Localable from '../../mixins/localable'\nimport Picker from '../../mixins/picker'\n\n// Utils\nimport isDateAllowed from './util/isDateAllowed'\nimport mixins from '../../util/mixins'\nimport { wrapInArray } from '../../util/helpers'\nimport { daysInMonth } from '../VCalendar/util/timestamp'\nimport { consoleWarn } from '../../util/console'\nimport {\n createItemTypeListeners,\n createNativeLocaleFormatter,\n pad,\n sanitizeDateString,\n} from './util'\n\n// Types\nimport {\n PropType,\n PropValidator,\n} from 'vue/types/options'\nimport { VNode } from 'vue'\nimport {\n DatePickerFormatter,\n DatePickerMultipleFormatter,\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEvents,\n DatePickerType,\n} from 'vuetify/types'\n\ntype DatePickerValue = string | string[] | undefined\ninterface Formatters {\n year: DatePickerFormatter\n titleDate: DatePickerFormatter | DatePickerMultipleFormatter\n}\n\ntype ActivePicker = 'DATE' | 'MONTH' | 'YEAR';\n\nexport default mixins(\n Localable,\n Picker,\n/* @vue/component */\n).extend({\n name: 'v-date-picker',\n\n props: {\n activePicker: String as PropType,\n allowedDates: Function as PropType,\n // Function formatting the day in date picker table\n dayFormat: Function as PropType,\n disabled: Boolean,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator,\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n // Function formatting the tableDate in the day/month table header\n headerDateFormat: Function as PropType,\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n max: String,\n min: String,\n // Function formatting month in the months table\n monthFormat: Function as PropType,\n multiple: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n nextMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextMonthAriaLabel',\n },\n nextYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextYearAriaLabel',\n },\n pickerDate: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n prevMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevMonthAriaLabel',\n },\n prevYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevYearAriaLabel',\n },\n range: Boolean,\n reactive: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n showCurrent: {\n type: [Boolean, String],\n default: true,\n },\n selectedItemsText: {\n type: String,\n default: '$vuetify.datePicker.itemsSelected',\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n // Function formatting currently selected date in the picker title\n titleDateFormat: Function as PropType,\n type: {\n type: String,\n default: 'date',\n validator: (type: any) => ['date', 'month'].includes(type), // TODO: year\n } as PropValidator,\n value: [Array, String] as PropType,\n weekdayFormat: Function as PropType,\n // Function formatting the year in table header and pickup title\n yearFormat: Function as PropType,\n yearIcon: String,\n },\n\n data () {\n const now = new Date()\n return {\n internalActivePicker: this.type.toUpperCase(),\n inputDay: null as number | null,\n inputMonth: null as number | null,\n inputYear: null as number | null,\n isReversing: false,\n now,\n // tableDate is a string in 'YYYY' / 'YYYY-M' format (leading zero for month is not required)\n tableDate: (() => {\n if (this.pickerDate) {\n return this.pickerDate\n }\n\n const multipleValue = wrapInArray(this.value)\n const date = multipleValue[multipleValue.length - 1] ||\n (typeof this.showCurrent === 'string' ? this.showCurrent : `${now.getFullYear()}-${now.getMonth() + 1}`)\n return sanitizeDateString(date as string, this.type === 'date' ? 'month' : 'year')\n })(),\n }\n },\n\n computed: {\n multipleValue (): string[] {\n return wrapInArray(this.value)\n },\n isMultiple (): boolean {\n return this.multiple || this.range\n },\n lastValue (): string | null {\n return this.isMultiple ? this.multipleValue[this.multipleValue.length - 1] : (this.value as string | null)\n },\n selectedMonths (): string | string[] | undefined {\n if (!this.value || this.type === 'month') {\n return this.value\n } else if (this.isMultiple) {\n return this.multipleValue.map(val => val.substr(0, 7))\n } else {\n return (this.value as string).substr(0, 7)\n }\n },\n current (): string | null {\n if (this.showCurrent === true) {\n return sanitizeDateString(`${this.now.getFullYear()}-${this.now.getMonth() + 1}-${this.now.getDate()}`, this.type)\n }\n\n return this.showCurrent || null\n },\n inputDate (): string {\n return this.type === 'date'\n ? `${this.inputYear}-${pad(this.inputMonth! + 1)}-${pad(this.inputDay!)}`\n : `${this.inputYear}-${pad(this.inputMonth! + 1)}`\n },\n tableMonth (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[1]) - 1\n },\n tableYear (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[0])\n },\n minMonth (): string | null {\n return this.min ? sanitizeDateString(this.min, 'month') : null\n },\n maxMonth (): string | null {\n return this.max ? sanitizeDateString(this.max, 'month') : null\n },\n minYear (): string | null {\n return this.min ? sanitizeDateString(this.min, 'year') : null\n },\n maxYear (): string | null {\n return this.max ? sanitizeDateString(this.max, 'year') : null\n },\n formatters (): Formatters {\n return {\n year: this.yearFormat || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 }),\n titleDate: this.titleDateFormat ||\n (this.isMultiple ? this.defaultTitleMultipleDateFormatter : this.defaultTitleDateFormatter),\n }\n },\n defaultTitleMultipleDateFormatter (): DatePickerMultipleFormatter {\n return dates => {\n if (!dates.length) {\n return '-'\n }\n\n if (dates.length === 1) {\n return this.defaultTitleDateFormatter(dates[0])\n }\n\n return this.$vuetify.lang.t(this.selectedItemsText, dates.length)\n }\n },\n defaultTitleDateFormatter (): DatePickerFormatter {\n const titleFormats = {\n year: { year: 'numeric', timeZone: 'UTC' },\n month: { month: 'long', timeZone: 'UTC' },\n date: { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' },\n } as const\n\n const titleDateFormatter = createNativeLocaleFormatter(this.currentLocale, titleFormats[this.type], {\n start: 0,\n length: { date: 10, month: 7, year: 4 }[this.type],\n })\n\n const landscapeFormatter = (date: string) => titleDateFormatter(date)\n .replace(/([^\\d\\s])([\\d])/g, (match, nonDigit, digit) => `${nonDigit} ${digit}`)\n .replace(', ', ',
')\n\n return this.landscape ? landscapeFormatter : titleDateFormatter\n },\n },\n\n watch: {\n internalActivePicker: {\n immediate: true,\n handler (val: ActivePicker) {\n this.$emit('update:active-picker', val)\n },\n },\n activePicker (val: ActivePicker) {\n this.internalActivePicker = val\n },\n tableDate (val: string, prev: string) {\n // Make a ISO 8601 strings from val and prev for comparision, otherwise it will incorrectly\n // compare for example '2000-9' and '2000-10'\n const sanitizeType = this.type === 'month' ? 'year' : 'month'\n this.isReversing = sanitizeDateString(val, sanitizeType) < sanitizeDateString(prev, sanitizeType)\n this.$emit('update:picker-date', val)\n },\n pickerDate (val: string | null) {\n if (val) {\n this.tableDate = val\n } else if (this.lastValue && this.type === 'date') {\n this.tableDate = sanitizeDateString(this.lastValue, 'month')\n } else if (this.lastValue && this.type === 'month') {\n this.tableDate = sanitizeDateString(this.lastValue, 'year')\n }\n },\n value (newValue: DatePickerValue, oldValue: DatePickerValue) {\n this.checkMultipleProp()\n this.setInputDate()\n\n if (\n (!this.isMultiple && this.value && !this.pickerDate) ||\n (this.isMultiple && this.multipleValue.length && (!oldValue || !oldValue.length) && !this.pickerDate)\n ) {\n this.tableDate = sanitizeDateString(this.inputDate, this.type === 'month' ? 'year' : 'month')\n }\n },\n type (type: DatePickerType) {\n this.internalActivePicker = type.toUpperCase()\n\n if (this.value && this.value.length) {\n const output = this.multipleValue\n .map((val: string) => sanitizeDateString(val, type))\n .filter(this.isDateAllowed)\n this.$emit('input', this.isMultiple ? output : output[0])\n }\n },\n },\n\n created () {\n this.checkMultipleProp()\n\n if (this.pickerDate !== this.tableDate) {\n this.$emit('update:picker-date', this.tableDate)\n }\n this.setInputDate()\n },\n\n methods: {\n emitInput (newInput: string) {\n if (this.range) {\n if (this.multipleValue.length !== 1) {\n this.$emit('input', [newInput])\n } else {\n const output = [this.multipleValue[0], newInput]\n this.$emit('input', output)\n this.$emit('change', output)\n }\n return\n }\n\n const output = this.multiple\n ? (\n this.multipleValue.indexOf(newInput) === -1\n ? this.multipleValue.concat([newInput])\n : this.multipleValue.filter(x => x !== newInput)\n )\n : newInput\n\n this.$emit('input', output)\n this.multiple || this.$emit('change', newInput)\n },\n checkMultipleProp () {\n if (this.value == null) return\n const valueType = this.value.constructor.name\n const expected = this.isMultiple ? 'Array' : 'String'\n if (valueType !== expected) {\n consoleWarn(`Value must be ${this.isMultiple ? 'an' : 'a'} ${expected}, got ${valueType}`, this)\n }\n },\n isDateAllowed (value: string): boolean {\n return isDateAllowed(value, this.min, this.max, this.allowedDates)\n },\n yearClick (value: number) {\n this.inputYear = value\n if (this.type === 'month') {\n this.tableDate = `${value}`\n } else {\n this.tableDate = `${value}-${pad((this.tableMonth || 0) + 1)}`\n }\n this.internalActivePicker = 'MONTH'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n },\n monthClick (value: string) {\n const [year, month] = value.split('-')\n\n this.inputYear = parseInt(year, 10)\n this.inputMonth = parseInt(month, 10) - 1\n\n if (this.type === 'date') {\n if (this.inputDay) {\n this.inputDay = Math.min(this.inputDay, daysInMonth(this.inputYear, this.inputMonth + 1))\n }\n\n this.tableDate = value\n this.internalActivePicker = 'DATE'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n } else {\n this.emitInput(this.inputDate)\n }\n },\n dateClick (value: string) {\n const [year, month, day] = value.split('-')\n\n this.inputYear = parseInt(year, 10)\n this.inputMonth = parseInt(month, 10) - 1\n this.inputDay = parseInt(day, 10)\n\n this.emitInput(this.inputDate)\n },\n genPickerTitle (): VNode {\n return this.$createElement(VDatePickerTitle, {\n props: {\n date: this.value ? (this.formatters.titleDate as (value: any) => string)(this.isMultiple ? this.multipleValue : this.value) : '',\n disabled: this.disabled,\n readonly: this.readonly,\n selectingYear: this.internalActivePicker === 'YEAR',\n year: this.formatters.year(this.multipleValue.length ? `${this.inputYear}` : this.tableDate),\n yearIcon: this.yearIcon,\n value: this.multipleValue[0],\n },\n slot: 'title',\n on: {\n 'update:selecting-year': (value: boolean) => this.internalActivePicker = value ? 'YEAR' : this.type.toUpperCase(),\n },\n })\n },\n genTableHeader (): VNode {\n return this.$createElement(VDatePickerHeader, {\n props: {\n nextIcon: this.nextIcon,\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n format: this.headerDateFormat,\n light: this.light,\n locale: this.locale,\n min: this.internalActivePicker === 'DATE' ? this.minMonth : this.minYear,\n max: this.internalActivePicker === 'DATE' ? this.maxMonth : this.maxYear,\n nextAriaLabel: this.internalActivePicker === 'DATE' ? this.nextMonthAriaLabel : this.nextYearAriaLabel,\n prevAriaLabel: this.internalActivePicker === 'DATE' ? this.prevMonthAriaLabel : this.prevYearAriaLabel,\n prevIcon: this.prevIcon,\n readonly: this.readonly,\n value: this.internalActivePicker === 'DATE' ? `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}` : `${pad(this.tableYear, 4)}`,\n },\n on: {\n toggle: () => this.internalActivePicker = (this.internalActivePicker === 'DATE' ? 'MONTH' : 'YEAR'),\n input: (value: string) => this.tableDate = value,\n },\n })\n },\n genDateTable (): VNode {\n return this.$createElement(VDatePickerDateTable, {\n props: {\n allowedDates: this.allowedDates,\n color: this.color,\n current: this.current,\n dark: this.dark,\n disabled: this.disabled,\n events: this.events,\n eventColor: this.eventColor,\n firstDayOfWeek: this.firstDayOfWeek,\n format: this.dayFormat,\n light: this.light,\n locale: this.locale,\n localeFirstDayOfYear: this.localeFirstDayOfYear,\n min: this.min,\n max: this.max,\n range: this.range,\n readonly: this.readonly,\n scrollable: this.scrollable,\n showAdjacentMonths: this.showAdjacentMonths,\n showWeek: this.showWeek,\n tableDate: `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}`,\n value: this.value,\n weekdayFormat: this.weekdayFormat,\n },\n ref: 'table',\n on: {\n input: this.dateClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':date'),\n },\n })\n },\n genMonthTable (): VNode {\n return this.$createElement(VDatePickerMonthTable, {\n props: {\n allowedDates: this.type === 'month' ? this.allowedDates : null,\n color: this.color,\n current: this.current ? sanitizeDateString(this.current, 'month') : null,\n dark: this.dark,\n disabled: this.disabled,\n events: this.type === 'month' ? this.events : null,\n eventColor: this.type === 'month' ? this.eventColor : null,\n format: this.monthFormat,\n light: this.light,\n locale: this.locale,\n min: this.minMonth,\n max: this.maxMonth,\n range: this.range,\n readonly: this.readonly && this.type === 'month',\n scrollable: this.scrollable,\n value: this.selectedMonths,\n tableDate: `${pad(this.tableYear, 4)}`,\n },\n ref: 'table',\n on: {\n input: this.monthClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':month'),\n },\n })\n },\n genYears (): VNode {\n return this.$createElement(VDatePickerYears, {\n props: {\n color: this.color,\n format: this.yearFormat,\n locale: this.locale,\n min: this.minYear,\n max: this.maxYear,\n value: this.tableYear,\n },\n on: {\n input: this.yearClick,\n ...createItemTypeListeners(this, ':year'),\n },\n })\n },\n genPickerBody (): VNode {\n const children = this.internalActivePicker === 'YEAR' ? [\n this.genYears(),\n ] : [\n this.genTableHeader(),\n this.internalActivePicker === 'DATE' ? this.genDateTable() : this.genMonthTable(),\n ]\n\n return this.$createElement('div', {\n key: this.internalActivePicker,\n }, children)\n },\n setInputDate () {\n if (this.lastValue) {\n const array = this.lastValue.split('-')\n this.inputYear = parseInt(array[0], 10)\n this.inputMonth = parseInt(array[1], 10) - 1\n if (this.type === 'date') {\n this.inputDay = parseInt(array[2], 10)\n }\n } else {\n this.inputYear = this.inputYear || this.now.getFullYear()\n this.inputMonth = this.inputMonth == null ? this.inputMonth : this.now.getMonth()\n this.inputDay = this.inputDay || this.now.getDate()\n }\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--date')\n },\n})\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageNotFound.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageNotFound.vue?vue&type=script&lang=js\"","import http from \"@/plugins/axios\";\n\nconst VERSION = \"/v1\";\n\nexport default {\n /**\n * Retorna uma régua especifica.\n * \n * @param {*} id o id da régua.\n * @returns \n */\n get(id) {\n return http.api.get(VERSION + \"/rule/\" + id);\n },\n\n search(params) {\n return http.api.get(VERSION + \"/rule\", { params });\n },\n\n /**\n * Cria uma régua.\n * \n * @param {*} payload \n * @returns \n */\n create(payload) {\n return http.api.post(VERSION + \"/rule\", payload);\n },\n\n simulate(ruleId, payload) {\n return http.api.post(VERSION + \"/rule/\" + ruleId + \"/simulate\", payload);\n },\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pt-4 text-center\"},[_c('h2',{staticClass:\"text-h5\"},[_vm._v(\" Houve um erro \")]),_c('div',{staticClass:\"mt-4\"},[_c('v-btn',{attrs:{\"to\":\"/\",\"color\":\"primary\"}},[_vm._v(\" Tentar novamente \")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=e5677a50&prod&scoped=true&lang=scss\"","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, getSlot(this))\n },\n})\n","function createUTCDate (year: number, month = 0, day = 1) {\n let date\n if (year < 100 && year >= 0) {\n date = new Date(Date.UTC(year, month, day))\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(year)\n }\n } else {\n date = new Date(Date.UTC(year, month, day))\n }\n\n return date\n}\n\nfunction firstWeekOffset (year: number, firstDayOfWeek: number, firstDayOfYear: number) {\n const firstWeekDayInFirstWeek = 7 + firstDayOfWeek - firstDayOfYear\n const firstWeekDayOfYear = (7 + createUTCDate(year, 0, firstWeekDayInFirstWeek).getUTCDay() - firstDayOfWeek) % 7\n\n return -firstWeekDayOfYear + firstWeekDayInFirstWeek - 1\n}\n\nfunction dayOfYear (year: number, month: number, day: number, firstDayOfWeek: number) {\n let dayOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334][month]\n if (month > 1 && isLeapYear(year)) {\n dayOfYear++\n }\n\n return dayOfYear + day\n}\n\nfunction weeksInYear (year: number, firstDayOfWeek: number, firstDayOfYear: number) {\n const weekOffset = firstWeekOffset(year, firstDayOfWeek, firstDayOfYear)\n const weekOffsetNext = firstWeekOffset(year + 1, firstDayOfWeek, firstDayOfYear)\n const daysInYear = isLeapYear(year) ? 366 : 365\n\n return (daysInYear - weekOffset + weekOffsetNext) / 7\n}\n\nexport function weekNumber (year: number, month: number, day: number, firstDayOfWeek: number, localeFirstDayOfYear: number): number {\n const weekOffset = firstWeekOffset(year, firstDayOfWeek, localeFirstDayOfYear)\n const week = Math.ceil((dayOfYear(year, month, day, firstDayOfWeek) - weekOffset) / 7)\n\n if (week < 1) {\n return week + weeksInYear(year - 1, firstDayOfWeek, localeFirstDayOfYear)\n } else if (week > weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear)) {\n return week - weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear)\n } else {\n return week\n }\n}\n\nexport function isLeapYear (year: number): boolean {\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)\n}\n","// Styles\nimport './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-checkbox',\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n data () {\n return {\n inputIndeterminate: this.indeterminate,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate,\n }\n },\n computedIcon (): string {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon\n } else if (this.isActive) {\n return this.onIcon\n } else {\n return this.offIcon\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.isDisabled && !this.inputIndeterminate) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n },\n\n watch: {\n indeterminate (val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => (this.inputIndeterminate = val))\n },\n inputIndeterminate (val) {\n this.$emit('update:indeterminate', val)\n },\n isActive () {\n if (!this.indeterminate) return\n this.inputIndeterminate = false\n },\n },\n\n methods: {\n genCheckbox () {\n const { title, ...checkboxAttrs } = this.attrs$\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.dense,\n dark: this.dark,\n light: this.light,\n },\n }), this.computedIcon),\n this.genInput('checkbox', {\n ...checkboxAttrs,\n 'aria-checked': this.inputIndeterminate\n ? 'mixed'\n : this.isActive.toString(),\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n genDefaultSlot () {\n return [\n this.genCheckbox(),\n this.genLabel(),\n ]\n },\n },\n})\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 autoGrow (val: boolean) {\n this.$nextTick(() => {\n val\n ? this.calculateInputHeight()\n : this.$refs.input?.style.removeProperty('height')\n })\n },\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ma-n3\"},[(_vm.loading)?_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\"}})],1):_vm._e(),(_vm.loadingError)?_c('v-alert',{attrs:{\"type\":\"error\",\"prominent\":\"\",\"text\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"grow\"},[_vm._v(\" Não foi possível carregar a notificação. \")]),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.loadNotification()}}},[_vm._v(\" Tentar novamente \")])],1)],1)],1):_vm._e(),(_vm.notification && !_vm.loading && !_vm.loadingError)?_c('div',[_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"to\":{\n name: 'Rule',\n params: { id: _vm.notification.rule_id || this.ruleId },\n }}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")])],1),_c('v-toolbar-title',[_vm._v(\" Voltar para as notificações \")]),_c('v-spacer'),_c('v-toolbar-title',{staticClass:\"hidden-sm-and-down font-weight-medium\"},[(_vm.notification.abbreviation)?_c('span',[_vm._v(_vm._s(_vm.notification.abbreviation)+\" -\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.notification.description)+\" \")]),(_vm.notification.id)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"to\":{\n name: 'NotificationHistory',\n params: { notification_id: _vm.notification.id },\n }}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"mdi-history\")])],1)]}}],null,false,3757392687)},[_c('span',[_vm._v(\"Histórico de alterações\")])]):_vm._e(),(_vm.notification.id)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticClass:\"font-weight-light text--secondary\"},'div',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm._f(\"moment\")((_vm.notification.updated_at || _vm.notification.created_at),\"from\", \"now\"))+\" \")])]}}],null,false,3135602473)},[_c('span',[_vm._v(\" \"+_vm._s(_vm._f(\"moment\")((_vm.notification.updated_at || _vm.notification.created_at),\"lll\"))+\" \")])]):_vm._e()],1),_c('div',{staticClass:\"d-flex\"},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":_vm.save}},[_c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-card-text',{ref:\"card\",staticClass:\"pa-3 qj-notification-form-details\"},[_c('v-row',{staticClass:\"my-0\"},[_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.notificationsType,\"label\":\"Tipo da notificação\",\"rules\":[\n () => !!_vm.notification.type || 'Este campo é obrigatório',\n ]},on:{\"change\":function($event){return _vm.reset_fields()}},model:{value:(_vm.notification.type),callback:function ($$v) {_vm.$set(_vm.notification, \"type\", $$v)},expression:\"notification.type\"}}),_c('v-btn',{attrs:{\"icon\":\"\",\"target\":\"_blank\",\"href\":\"https://docs.google.com/document/d/e/2PACX-1vTw_Y7TkOAWyMJmwCZ_PKj0YrwkhO_lhsuz8fSIpIBbz8uE0XGY3LW7VMgEEmd3DH6VXdBlPVTLAquO/pub\"}},[_c('v-icon',[_vm._v(\"mdi-help-circle\")])],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-checkbox',{attrs:{\"label\":\"Ativo\"},model:{value:(_vm.notification.active),callback:function ($$v) {_vm.$set(_vm.notification, \"active\", $$v)},expression:\"notification.active\"}})],1)],1),_c('v-row',{staticClass:\"my-0\"},[_c('v-col',{staticClass:\"text-h5 font-weight-medium\",attrs:{\"cols\":\"12\"}},[_vm._v(\" Parâmetros \")])],1),_c('v-row',{staticClass:\"my-0\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"1\"}},[_c('v-text-field',{attrs:{\"label\":\"Dias\",\"type\":\"number\",\"min\":\"0\",\"disabled\":!_vm.fields.days},model:{value:(_vm.notification.days),callback:function ($$v) {_vm.$set(_vm.notification, \"days\", $$v)},expression:\"notification.days\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('v-select',{attrs:{\"items\":_vm.daysType,\"label\":\"Tipo dos dias\",\"disabled\":!_vm.fields.days_type},model:{value:(_vm.notification.days_type),callback:function ($$v) {_vm.$set(_vm.notification, \"days_type\", $$v)},expression:\"notification.days_type\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('v-select',{attrs:{\"items\":_vm.when,\"label\":\"Quando\",\"disabled\":!_vm.fields.when},model:{value:(_vm.notification.when),callback:function ($$v) {_vm.$set(_vm.notification, \"when\", $$v)},expression:\"notification.when\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"items\":_vm.paymentMethod,\"label\":\"Método de pagamento\",\"disabled\":!_vm.fields.payment_method},model:{value:(_vm.notification.payment_method),callback:function ($$v) {_vm.$set(_vm.notification, \"payment_method\", $$v)},expression:\"notification.payment_method\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('v-select',{attrs:{\"items\":_vm.paymentType,\"label\":\"Tipo do pagamento\",\"disabled\":!_vm.fields.payment_type},model:{value:(_vm.notification.payment_type),callback:function ($$v) {_vm.$set(_vm.notification, \"payment_type\", $$v)},expression:\"notification.payment_type\"}})],1),(false)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"Dias após o Aceite da proposta\",\"type\":\"number\",\"disabled\":!_vm.fields.min_days_after_proposal_agreed},model:{value:(_vm.notification.min_days_after_proposal_agreed),callback:function ($$v) {_vm.$set(_vm.notification, \"min_days_after_proposal_agreed\", $$v)},expression:\"notification.min_days_after_proposal_agreed\"}})],1):_vm._e(),(false)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"Dias até o vencimento\",\"type\":\"number\",\"disabled\":!_vm.fields.min_days_until_due_date},model:{value:(_vm.notification.min_days_until_due_date),callback:function ($$v) {_vm.$set(_vm.notification, \"min_days_until_due_date\", $$v)},expression:\"notification.min_days_until_due_date\"}})],1):_vm._e()],1),_c('v-row',{staticClass:\"my-0\"},[_c('v-col',{staticClass:\"text-h5 font-weight-medium\",attrs:{\"cols\":\"12\"}},[_vm._v(\" Mensagens \")])],1),_c('v-row',{staticClass:\"my-0\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-row',{staticClass:\"my-0\"},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"text-h6\"},[_vm._v(\"SMS\")]),_c('v-textarea',{ref:\"sms\",staticStyle:{\"min-width\":\"50px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Mensagem\",\"color\":\"deep-purple accent-2\",\"rules\":[_vm.validateMessage],\"hint\":\"Não pode conter emojis ou caracteres especiais.\",\"persistent-hint\":\"\",\"rows\":\"3\"},on:{\"click\":function($event){return _vm.setSelectedField('sms')}},model:{value:(_vm.notification.sms),callback:function ($$v) {_vm.$set(_vm.notification, \"sms\", $$v)},expression:\"notification.sms\"}}),_c('span',{staticClass:\"d-flex justify-end\",class:_vm.smsContent > _vm.maxLength ? 'counter-sms' : '',staticStyle:{\"margin-top\":\"-25px\"}},[_vm._v(_vm._s(_vm.smsContent)+\" / \"+_vm._s(_vm.maxLength))]),(_vm.notification.sms)?_c('div',{staticClass:\"z-preview\",domProps:{\"innerHTML\":_vm._s(_vm.showPreview(_vm.notification.sms))}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"text-h6\"},[_vm._v(\"Flash SMS\")]),_c('v-textarea',{ref:\"flash_sms\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Mensagem\",\"color\":\"deep-purple accent-2\",\"rules\":[_vm.validateMessage],\"hint\":\"Não pode conter emojis ou caracteres especiais.\",\"persistent-hint\":\"\",\"rows\":\"3\"},on:{\"click\":function($event){return _vm.setSelectedField('flash_sms')}},model:{value:(_vm.notification.flash_sms),callback:function ($$v) {_vm.$set(_vm.notification, \"flash_sms\", $$v)},expression:\"notification.flash_sms\"}}),(_vm.notification.flash_sms)?_c('div',{staticClass:\"z-preview\",domProps:{\"innerHTML\":_vm._s(_vm.showPreview(_vm.notification.flash_sms))}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"text-h6\"},[_vm._v(\"E-mail\")]),_c('v-text-field',{ref:\"email_subject\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Assunto\",\"color\":\"deep-purple accent-2\",\"rules\":[_vm.validateMessage],\"hide-details\":\"auto\"},on:{\"click\":function($event){return _vm.setSelectedField('email_subject')}},model:{value:(_vm.notification.email_subject),callback:function ($$v) {_vm.$set(_vm.notification, \"email_subject\", $$v)},expression:\"notification.email_subject\"}}),(_vm.notification.email_subject)?_c('div',{staticClass:\"z-preview\",domProps:{\"innerHTML\":_vm._s(_vm.showPreview(_vm.notification.email_subject))}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',[_c('v-textarea',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"URL\",\"color\":\"deep-purple accent-2\",\"rules\":_vm.rules.url,\"hint\":\"Exemplo: https://assets.quiteja.com.br/mail/deal/default/proposal-agreed/v2\",\"persistent-hint\":\"\",\"rows\":\"2\"},on:{\"click\":function($event){return _vm.setSelectedField('email_asset_url')}},model:{value:(_vm.notification.email_asset_url),callback:function ($$v) {_vm.$set(_vm.notification, \"email_asset_url\", $$v)},expression:\"notification.email_asset_url\"}}),_c('div',[_c('v-btn',{staticClass:\"mx-1 mt-1\",attrs:{\"depressed\":\"\",\"color\":\"primary\",\"href\":_vm.assetEditorUrl,\"disabled\":!_vm.assetEditorUrl,\"target\":\"_blank\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-circle-edit-outline\")]),_vm._v(\" Editar \")],1),_c('v-btn',{staticClass:\"mt-1\",attrs:{\"depressed\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.showAsset}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-file-import\")]),_vm._v(\" Importar \")],1)],1)],1),_c('AssetList',{attrs:{\"dialog\":_vm.dialogImport},on:{\"update:dialog\":function($event){_vm.dialogImport=$event},\"selectedUrl\":function($event){return _vm.urlAsset($event)}}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"text-h6\"},[_vm._v(\"Push\")]),_c('v-text-field',{ref:\"push_title\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Título\",\"hint\":\"Não é necessário colocar o link no título ou no corpo do push.\",\"persistent-hint\":\"\",\"color\":\"deep-purple accent-2\",\"rules\":[_vm.validateMessage]},on:{\"click\":function($event){return _vm.setSelectedField('push_title')}},model:{value:(_vm.notification.push_title),callback:function ($$v) {_vm.$set(_vm.notification, \"push_title\", $$v)},expression:\"notification.push_title\"}}),(_vm.notification.push_title)?_c('div',{staticClass:\"z-preview\",domProps:{\"innerHTML\":_vm._s(_vm.showPreview(_vm.notification.push_title))}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{ref:\"push_body\",attrs:{\"label\":\"Corpo\",\"hint\":\"Não é necessário colocar o link no título ou no corpo do push.\",\"persistent-hint\":\"\",\"dense\":\"\",\"outlined\":\"\",\"color\":\"deep-purple accent-2\",\"rules\":[_vm.validateMessage]},on:{\"click\":function($event){return _vm.setSelectedField('push_body')}},model:{value:(_vm.notification.push_body),callback:function ($$v) {_vm.$set(_vm.notification, \"push_body\", $$v)},expression:\"notification.push_body\"}}),(_vm.notification.push_body)?_c('div',{staticClass:\"z-preview\",domProps:{\"innerHTML\":_vm._s(_vm.showPreview(_vm.notification.push_body))}}):_vm._e()],1),_c('v-col',{staticClass:\"py-4\",attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"text-h6\"},[_vm._v(\"WhatsApp\")]),_c('v-text-field',{staticClass:\"mb-4\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Chave da iniciativa no Dodo 🦤\",\"hint\":\"Exemplo: approved_proposal\",\"persistent-hint\":\"\",\"color\":\"deep-purple accent-2\"},on:{\"click\":function($event){return _vm.setSelectedField('initiative_whatsapp')}},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('a',_vm._g(_vm._b({staticClass:\"text-decoration-none\",attrs:{\"href\":'https://dodo.gorillascode.com/#/customerService2/1/initiative/list?showPreview=' + (_vm.notification.whatsapp_initiative || ''),\"target\":\"_blank\"}},'a',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-open-in-new\")])],1)]}}],null,false,1707430354)},[_c('span',[_vm._v(\"Ver iniciativa no Dodo\")])])]},proxy:true}],null,false,1409661202),model:{value:(_vm.notification.whatsapp_initiative),callback:function ($$v) {_vm.$set(_vm.notification, \"whatsapp_initiative\", $$v)},expression:\"notification.whatsapp_initiative\"}}),_c('v-textarea',{attrs:{\"type\":\"url\",\"dense\":\"\",\"outlined\":\"\",\"label\":\"URL do arquivo\",\"hint\":\"Opcional. Pode ser usado para enviar uma imagem para o cliente. No caso do boleto não é necessário pois o boleto é enviado automaticamente na mensagem do WhatsApp.\",\"color\":\"deep-purple accent-2\",\"rules\":_vm.rules.url,\"persistent-hint\":\"\",\"rows\":\"2\"},on:{\"click\":function($event){return _vm.setSelectedField('file_url')}},model:{value:(_vm.notification.whatsapp_params.file_url),callback:function ($$v) {_vm.$set(_vm.notification.whatsapp_params, \"file_url\", $$v)},expression:\"notification.whatsapp_params.file_url\"}})],1)],1)],1),_c('v-col',{staticClass:\"py-0 email-asset-url-preview\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"12\",\"md\":\"6\"}},[(_vm.notification.email_asset_url)?_c('div',{staticClass:\"mt-2\"},[_vm._v(\" Passe o mouse sobre a imagem para ver um exemplo \")]):_vm._e(),_c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function({ hover }){return [(_vm.notification.email_asset_url)?_c('v-img',{staticClass:\"assets-image\",attrs:{\"src\":hover ? _vm.assetPreviewUrl1 : _vm.assetPreviewUrl2},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-row',{staticClass:\"fill-height ma-0\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"blue\"}})],1)]},proxy:true}],null,true)}):_c('div',{staticClass:\"text-h6\",staticStyle:{\"margin-top\":\"70%\"}},[_vm._v(\" Pré-visualização do asset \")])]}}],null,false,335396592)})],1)],1)],1),_c('v-divider'),_c('v-card-actions',[(_vm.notificacaoExistente.id)?_c('v-alert',{staticClass:\"mb-0\",attrs:{\"dense\":\"\",\"type\":\"error\"}},[_vm._v(\" Já existe a notificação: \"),_c('router-link',{staticClass:\"white--text\",attrs:{\"to\":{\n name: 'Notification',\n params: { id: _vm.notificacaoExistente.id },\n },\"target\":\"_blank\"}},[_vm._v(\" Clique aqui \")])],1):_vm._e(),_c('v-spacer'),(_vm.$store.state.enviroment.name == 'production')?_c('div',{staticClass:\"px-4 text--secondary\"},[_vm._v(\" As alterações podem levar até \"),_c('strong',[_vm._v(\"1 hora\")]),_vm._v(\" para serem aplicadas em produção \")]):_vm._e(),_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"primary\",\"type\":\"submit\",\"disabled\":_vm.saving || !_vm.valid,\"loading\":_vm.saving}},[_vm._v(\" Salvar \")])],1)],1)],1),(_vm.verifyFieldSelected(_vm.selectedField))?_c('div',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"primary\",\"dark\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"Variáveis para as mensagens\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.setSelectedField()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-alert',{staticClass:\"ma-0 text-body-2\",attrs:{\"type\":\"info\",\"icon\":false}},[_vm._v(\" No SMS, push e assunto do e-mail coloque o nome da variável sempre dentro de \"),_c('code',[_vm._v(\"{...}\")]),_vm._v(\". Exemplo: \"),_c('code',[_vm._v(\"{name}\")]),_c('br'),_c('br'),_vm._v(\" No template do e-mail (asset) coloque o nome da variável sempre dentro de \"),_c('code',{pre:true},[_vm._v(\"{{...}}\")]),_vm._v(\". Exemplo: \"),_c('code',{pre:true},[_vm._v(\"{{ name }}\")])]),_c('v-list',{staticClass:\"pa-0\"},[_c('div',[_c('v-text-field',{staticClass:\"px-4\",attrs:{\"flat\":\"\",\"placeholder\":\"Pesquisar\",\"prepend-inner-icon\":\"mdi-magnify\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-divider'),_c('v-list-item-group',{staticClass:\"qj-message-variables\"},_vm._l((_vm.variableFiltered),function(messageVariable){return _c('div',{key:messageVariable.id},[_c('v-list-item',{attrs:{\"three-line\":\"\"},on:{\"click\":function($event){return _vm.concatVaribleToMessage(messageVariable)}}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"py-2\"},[_c('span',{staticClass:\"qj-variable-name\"},[_vm._v(\" \"+_vm._s(messageVariable.name)+\" \")]),(messageVariable.lenght)?_c('span',{staticClass:\"ml-2 text--secondary\"},[_vm._v(\" \"+_vm._s(messageVariable.lenght)+\" caracteres \")]):_vm._e()]),_c('v-list-item-subtitle',{staticClass:\"mb-2 qj-variable-description\",domProps:{\"innerHTML\":_vm._s(messageVariable.description)}}),_c('v-list-item-subtitle',[_c('strong',[_vm._v(\"Exemplo: \")]),_vm._v(_vm._s(messageVariable.example))])],1)],1),_c('v-divider')],1)}),0)],1)],1):_vm._e()],1),_c('v-dialog',{attrs:{\"max-width\":\"600\"},model:{value:(_vm.dialogPreviewMessage),callback:function ($$v) {_vm.dialogPreviewMessage=$$v},expression:\"dialogPreviewMessage\"}},[[_c('v-card',[_c('v-toolbar',{attrs:{\"color\":\"primary\",\"dark\":\"\"}},[_vm._v(\"Pré-visualização da mensagem:\")]),_c('v-card-text',[_c('div',{staticClass:\"text-h6 pa-4\"},[_vm._v(_vm._s(_vm.preview))])]),_c('v-card-actions',{staticClass:\"justify-end\"},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.dialogPreviewMessage = false}}},[_vm._v(\"Fechar\")])],1)],1)]],2)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n email: [\n (v) => /.+@.+\\..+/.test(v) || \"E-mail deve ser válido.\",\n ],\n url: [ \n (v) => {\n if(!v) return true;\n return /^$|(http(s)?:\\/\\/)?(?:www\\.)?.{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(.*)$/.test(v) || \n /(?:^|\\s)((https?:\\/\\/)?(?:localhost|[\\w-]+(?:\\.[\\w-]+)+)(:\\d+)?(\\/\\S*)?)$/.test(v) ||\n \"O campo deve ser preenchido com uma URL.\"\n },\n ],\n};","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Notification.vue?vue&type=template&id=93e3b98e&scoped=true\"\nimport script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\nimport style0 from \"./Notification.vue?vue&type=style&index=0&id=93e3b98e&prod&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 \"93e3b98e\",\n null\n \n)\n\nexport default component.exports","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, CalendarCategoryTextFunction, CalendarCategory } 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] as PropType,\n default: '',\n },\n categoryText: {\n type: [String, Function] as PropType,\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 '../../../mixins/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 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 = !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 && dayIdentifier <= event.endIdentifier\n}\n\nexport function isEventHiddenOn (event: CalendarEventParsed, day: CalendarTimestamp): boolean {\n return event.end.time === '00:00' && event.end.date === day.date && event.start.date !== day.date\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// 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 isEventHiddenOn,\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 CalendarCategory,\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: {\n ...props.events,\n ...props.calendar,\n ...props.category,\n },\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 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) => 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 this.type === 'category'\n },\n },\n\n methods: {\n eventColorFunction (e: CalendarEvent): string {\n return typeof this.eventColor === 'function'\n ? this.eventColor(e)\n : e.color || this.eventColor\n },\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 const eventsSorted = events.map(event => ({\n event,\n bottom: event.getBoundingClientRect().bottom,\n })).sort((a, b) => a.bottom - b.bottom)\n let hidden = 0\n\n for (let i = 0; i <= last; i++) {\n const bottom = eventsSorted[i].bottom\n const hide = i === last\n ? (bottom > parentBounds.bottom)\n : (bottom + eventHeight > parentBounds.bottom)\n\n if (hide) {\n eventsSorted[i].event.style.display = 'none'\n hidden++\n }\n }\n\n if (hidden) {\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 || isEventHiddenOn(event, day)) {\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 if (event.start.hasTime) {\n if (timedEvent) {\n const time = timeSummary()\n const delimiter = singline ? ', ' : this.$createElement('br')\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [\n this.$createElement('strong', [name]),\n delimiter,\n time,\n ])\n } else {\n const time = formatTime(event.start, true)\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [\n this.$createElement('strong', [time]),\n ' ',\n name,\n ])\n }\n }\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [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): VNode {\n return this.$createElement('div', {\n staticClass: 'pl-1',\n }, [eventSummary()])\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: this.getDefaultMouseEventHandlers(':more', nativeEvent => {\n return { nativeEvent, ...day }\n }),\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: CalendarCategory): boolean {\n return !this.categoryMode ||\n (typeof category === 'object' && category.categoryName &&\n category.categoryName === event.category) ||\n (typeof event.category === 'string' && 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 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 attrs: {\n role: 'row',\n },\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 attrs: {\n role: 'columnheader',\n },\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 attrs: {\n role: 'row',\n },\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 attrs: {\n role: 'cell',\n },\n on: this.getDefaultMouseEventHandlers(':day', nativeEvent => {\n return { nativeEvent, ...day }\n }),\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 }, nativeEvent => ({ nativeEvent, ...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', nativeEvent => {\n return { nativeEvent, ...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 }, nativeEvent => {\n return { nativeEvent, ...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', nativeEvent => {\n return { nativeEvent, ...this.getSlotScope(this.getTimestampAtEvent(nativeEvent, 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\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', nativeEvent => {\n return { nativeEvent, ...this.getTimestampAtEvent(nativeEvent, 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","import { CalendarCategory, CalendarCategoryTextFunction } from 'types'\n\nexport function parsedCategoryText (\n category: CalendarCategory,\n categoryText: string | CalendarCategoryTextFunction\n): string {\n return typeof categoryText === 'string' && typeof category === 'object' && category\n ? category[categoryText]\n : typeof categoryText === 'function'\n ? categoryText(category)\n : category\n}\n\nexport function getParsedCategories (\n categories: CalendarCategory | CalendarCategory[],\n categoryText: string | CalendarCategoryTextFunction\n): CalendarCategory[] {\n if (typeof categories === 'string') return categories.split(/\\s*,\\s/)\n if (Array.isArray(categories)) {\n return categories.map((category: CalendarCategory) => {\n if (typeof category === 'string') return category\n\n const categoryName = typeof category.categoryName === 'string'\n ? category.categoryName\n : parsedCategoryText(category, categoryText)\n return { ...category, categoryName }\n })\n }\n return []\n}\n","// Styles\nimport './VCalendarCategory.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport VCalendarDaily from './VCalendarDaily'\n\n// Util\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { CalendarCategory, CalendarTimestamp } from 'types'\nimport props from './util/props'\nimport { getParsedCategories } from './util/parser'\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 (): CalendarCategory[] {\n return getParsedCategories(this.categories, this.categoryText)\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 => {\n return this.genDayHeaderCategory(day, this.getCategoryScope(scope, category))\n })\n\n return [this.$createElement('div', data, children)]\n },\n getCategoryScope (scope: any, category: CalendarCategory) {\n const cat = typeof category === 'object' && category &&\n category.categoryName === this.categoryForInvalid ? null : category\n return {\n ...scope,\n category: cat,\n }\n },\n genDayHeaderCategory (day: CalendarTimestamp, scope: any): VNode {\n const headerTitle = typeof scope.category === 'object' ? scope.category.categoryName : scope.category\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(headerTitle),\n getSlot(this, 'day-header', scope),\n ])\n },\n genDayHeaderCategoryTitle (categoryName: string | null) {\n return this.$createElement('div', {\n staticClass: 'v-calendar-category__category',\n }, categoryName === null ? this.categoryForInvalid : categoryName)\n },\n genDays (): VNode[] {\n const days: VNode[] = []\n this.days.forEach((d, j) => {\n const day = new Array(this.parsedCategories.length || 1)\n day.fill(d)\n days.push(...day.map((v, i) => this.genDay(v, j, i)))\n })\n return days\n },\n genDay (day: CalendarTimestamp, index: number, categoryIndex: number): VNode {\n const category = this.parsedCategories[categoryIndex]\n return this.$createElement('div', {\n key: day.date + '-' + categoryIndex,\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, category),\n ...this.genDayBody(day, category),\n ])\n },\n genDayIntervals (index: number, category: CalendarCategory): VNode[] {\n return this.intervals[index].map(v => this.genDayInterval(v, category))\n },\n genDayInterval (interval: CalendarTimestamp, category: CalendarCategory): 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, category }),\n },\n }\n\n const children = getSlot(this, 'interval', () =>\n this.getCategoryScope(this.getSlotScope(interval), category)\n )\n\n return this.$createElement('div', data, children)\n },\n genDayBody (day: CalendarTimestamp, category: CalendarCategory): VNode[] {\n const data = {\n staticClass: 'v-calendar-category__columns',\n }\n\n const children = [this.genDayBodyCategory(day, category)]\n\n return [this.$createElement('div', data, children)]\n },\n genDayBodyCategory (day: CalendarTimestamp, category: CalendarCategory): 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, CalendarCategory } from 'vuetify/types'\nimport { getParsedCategories } from './util/parser'\n\n// Types\ninterface VCalendarRenderProps {\n start: CalendarTimestamp\n end: CalendarTimestamp\n component: string | Component\n maxDays: number\n weekdays: number[]\n categories: CalendarCategory[]\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, 3)\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 (): CalendarCategory[] {\n return getParsedCategories(this.categories, this.categoryText)\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: CalendarCategory[]): CalendarCategory[] {\n if (!this.noEvents) {\n const categoryMap: any = categories.reduce((map: any, category, index) => {\n if (typeof category === 'object' && category.categoryName) map[category.categoryName] = { index, count: 0 }\n else if (typeof category === 'string') map[category] = { index, count: 0 }\n return map\n }, {})\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 = categories.filter((category: CalendarCategory) => {\n if (typeof category === 'object' && category.categoryName) {\n return categoryMap.hasOwnProperty(category.categoryName)\n } else if (typeof category === 'string') {\n return categoryMap.hasOwnProperty(category)\n }\n return false\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 attrs: {\n role: 'grid',\n },\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.updateEventVisibility,\n }],\n on: {\n ...this.$listeners,\n\n 'click:date': (day: CalendarTimestamp, e?: MouseEvent) => {\n if (this.$listeners.input) {\n this.$emit('input', day.date)\n }\n if (this.$listeners['click:date']) {\n this.$emit('click:date', day, e)\n }\n },\n },\n scopedSlots: this.getScopedSlots(),\n })\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"fill-height\"},[_c('v-toolbar',{staticClass:\"qj-bar-color\",attrs:{\"tile\":\"\",\"dark\":\"\",\"elevation\":\"0\"}},[_c('v-toolbar-title',{staticClass:\"text-h5 d-flex align-center mr-10\"},[_c('v-btn',{attrs:{\"fab\":\"\",\"dark\":\"\",\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.$refs.calendar.prev()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" mdi-chevron-left \")])],1),_c('b',{staticStyle:{\"width\":\"200px\",\"text-align\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.title())+\" \")]),_c('v-btn',{attrs:{\"fab\":\"\",\"dark\":\"\",\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.$refs.calendar.next()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" mdi-chevron-right \")])],1)],1),_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"transition\":\"scale-transition\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-text-field',_vm._g(_vm._b({attrs:{\"dark\":\"\",\"dense\":\"\",\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Aceite da proposta\",\"background-color\":\"#00000033\"},model:{value:(_vm.agreementDateFormatted),callback:function ($$v) {_vm.agreementDateFormatted=$$v},expression:\"agreementDateFormatted\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.menuConfirmation),callback:function ($$v) {_vm.menuConfirmation=$$v},expression:\"menuConfirmation\"}},[_c('v-date-picker',{attrs:{\"locale\":\"pt-br\",\"max\":_vm.dueDate},on:{\"input\":function($event){_vm.menuConfirmation = false},\"change\":function($event){return _vm.filtersChanged()}},model:{value:(_vm.agreementDate),callback:function ($$v) {_vm.agreementDate=$$v},expression:\"agreementDate\"}})],1),_c('v-menu',{attrs:{\"offset-y\":\"\",\"min-width\":\"auto\",\"transition\":\"scale-transition\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-text-field',_vm._g(_vm._b({staticClass:\"ml-3\",attrs:{\"dark\":\"\",\"dense\":\"\",\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Vencimento\",\"background-color\":\"#00000033\"},model:{value:(_vm.dueDateFormatted),callback:function ($$v) {_vm.dueDateFormatted=$$v},expression:\"dueDateFormatted\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.menuDueDate),callback:function ($$v) {_vm.menuDueDate=$$v},expression:\"menuDueDate\"}},[_c('v-date-picker',{attrs:{\"locale\":\"pt-br\",\"min\":_vm.agreementDate},on:{\"input\":function($event){_vm.menuDueDate = false},\"change\":function($event){return _vm.filtersChanged()}},model:{value:(_vm.dueDate),callback:function ($$v) {_vm.dueDate=$$v},expression:\"dueDate\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"3\"}},[_c('v-select',{attrs:{\"dark\":\"\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"background-color\":\"#00000033\",\"items\":_vm.paymentMethods,\"label\":\"Método de pagamento\"},model:{value:(_vm.paymentMethod),callback:function ($$v) {_vm.paymentMethod=$$v},expression:\"paymentMethod\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"3\"}},[_c('v-select',{attrs:{\"dark\":\"\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"background-color\":\"#00000033\",\"items\":_vm.paymentTypes,\"label\":\"Tipo de pagamento\"},model:{value:(_vm.paymentType),callback:function ($$v) {_vm.paymentType=$$v},expression:\"paymentType\"}})],1),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"depressed\":\"\",\"color\":\"primary\",\"disabled\":_vm.simulating,\"loading\":_vm.simulating},on:{\"click\":function($event){return _vm.simulate()}}},[_vm._v(\"Testar\")]),_c('v-btn',{staticStyle:{\"left\":\"50px\",\"top\":\"5px\"},attrs:{\"small\":\"\",\"icon\":\"\",\"to\":{ name: 'Rule', params: { id: _vm.id } }}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1),_c('v-calendar',{ref:\"calendar\",staticClass:\"calendar\",attrs:{\"locale\":\"pt-br\"},scopedSlots:_vm._u([{key:\"day-label\",fn:function(day){return [_c('div',[_c('v-btn',{class:{ grey: _vm.verifyStartOrEndDay(day.date) },staticStyle:{\"font-size\":\"15px\"},attrs:{\"icon\":\"\"}},[_vm._v(\" \"+_vm._s(new Date(day.date).getUTCDate())+\" \")])],1)]}},{key:\"day\",fn:function(day){return [_c('h4',{staticClass:\"blacklist\"},[_vm._v(\" \"+_vm._s(_vm.getBlacklistDate(day.date))+\" \")]),_c('v-row',{staticClass:\"px-3 pt-2\"},_vm._l((_vm.getNotifications(day.date)),function(notification){return _c('v-col',{key:notification.id,staticClass:\"px-1 pb-0 pt-2\",attrs:{\"cols\":_vm.getNotifications(day.date).length == 1 ? 12 : 6}},[(_vm.getNotifications(day.date).length == 1)?_c('v-card',{staticClass:\"elevation-0 notification-type rounded-lg\",class:notification.type,staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.openNotification(notification.id)}}},[_c('v-card-title',{staticClass:\"justify-center text-center subtitle-2 pa-2 pb-1\",staticStyle:{\"word-break\":\"normal\",\"line-height\":\"120%\"}},[_c('div',[_vm._v(\" \"+_vm._s(notification.abbreviation)+\" - \"+_vm._s(notification.description)+\" \"),(notification.payment_method)?_c('span',{staticClass:\"payments\"},[_vm._v(\" - \"+_vm._s(_vm._f(\"paymentMethod\")(notification.payment_method))+\" \")]):_vm._e(),(notification.payment_type)?_c('span',{staticClass:\"payments\"},[_vm._v(\" - \"+_vm._s(_vm._f(\"paymentType\")(notification.payment_type))+\" \")]):_vm._e()])]),_c('v-card-text',{staticClass:\"text-center px-2 pb-2 pt-0\",staticStyle:{\"line-height\":\"120%\"}},[(notification.sms)?_c('v-icon',[_vm._v(\"mdi-message-text-outline\")]):_vm._e(),(notification.email_subject)?_c('v-icon',[_vm._v(\"mdi-email-outline\")]):_vm._e(),(notification.push_title || notification.push_body)?_c('v-icon',[_vm._v(\"mdi-bell-outline\")]):_vm._e(),(notification.whatsapp_initiative)?_c('v-icon',[_vm._v(\"mdi-whatsapp\")]):_vm._e()],1)],1):_vm._e(),(_vm.getNotifications(day.date).length > 1)?_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-chip',_vm._g(_vm._b({staticClass:\"notification-type justify-center rounded-lg\",class:notification.type,staticStyle:{\"width\":\"100%\",\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.openNotification(notification.id)}}},'v-chip',attrs,false),on),[_vm._v(\" \"+_vm._s(notification.abbreviation)+\" \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(notification.description)+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm._f(\"paymentMethod\")(notification.payment_method))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm._f(\"paymentType\")(notification.payment_type))+\" \"),_c('br'),(notification.sms)?_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\"mdi-message-text-outline\")]):_vm._e(),(notification.email_subject)?_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\"mdi-email-outline\")]):_vm._e(),(notification.push_title || notification.push_body)?_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\"mdi-bell-outline\")]):_vm._e(),(notification.whatsapp_initiative)?_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\"mdi-whatsapp\")]):_vm._e()],1)]):_vm._e()],1)}),1)]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simulation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simulation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Simulation.vue?vue&type=template&id=791df00b&scoped=true\"\nimport script from \"./Simulation.vue?vue&type=script&lang=js\"\nexport * from \"./Simulation.vue?vue&type=script&lang=js\"\nimport style0 from \"./Simulation.vue?vue&type=style&index=0&id=791df00b&prod&lang=scss\"\nimport style1 from \"./Simulation.vue?vue&type=style&index=1&id=791df00b&prod&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 \"791df00b\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simulation.vue?vue&type=style&index=1&id=791df00b&prod&scoped=true&lang=scss\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.loadingError)?_c('v-alert',{attrs:{\"type\":\"error\",\"prominent\":\"\",\"text\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"grow\"},[_vm._v(\" Não foi possível carregar as notificações. \")]),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.loadNotifications()}}},[_vm._v(\" Tentar novamente \")])],1)],1)],1):_vm._e(),(!_vm.loadingError)?_c('v-row',[(_vm.creditor)?_c('v-row',{staticClass:\"d-flex flex-row align-center mx-4 mt-4\"},[[_c('v-dialog',{attrs:{\"max-width\":\"400\"},model:{value:(_vm.dialogCreateVersion),callback:function ($$v) {_vm.dialogCreateVersion=$$v},expression:\"dialogCreateVersion\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" Deseja criar uma nova versão? \")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.dialogCreateVersion = false}}},[_vm._v(\" Não \")]),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){return _vm.createRule()}}},[_vm._v(\" Sim \")])],1)],1)],1)]],2):_vm._e(),_c('v-col',{staticClass:\"d-flex mt-3\",attrs:{\"cols\":\"12\"}},[(!_vm.loading.notifications)?_c('div',{staticClass:\"text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.allNotifications.length)+\" notificações \")]):_vm._e(),_c('v-spacer'),_c('v-switch',{staticClass:\"mt-0 pt-0\",attrs:{\"label\":\"Exibir inativas\",\"hide-details\":\"\"},on:{\"change\":function($event){return _vm.loadNotifications(_vm.id)}},model:{value:(_vm.showInactiveNotifications),callback:function ($$v) {_vm.showInactiveNotifications=$$v},expression:\"showInactiveNotifications\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',_vm._l((_vm.notifications.others),function(group){return _c('v-col',{key:group.name,attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-card',{attrs:{\"elevation\":\"1\"}},[_c('v-toolbar',{attrs:{\"dense\":\"\",\"flat\":\"\",\"color\":\"primary\"}},[_c('v-toolbar-title',{staticClass:\"white--text font-weight-medium\"},[_vm._v(\" \"+_vm._s(group.name)+\" \")])],1),_c('v-card-text',{staticClass:\"pa-0\"},[(_vm.loading.notifications)?_c('div',{staticClass:\"d-flex justify-center pa-3\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"deep-purple accent-2\"}})],1):_vm._e(),(!_vm.loading.notifications && group.notifications.length == 0)?_c('div',{staticClass:\"d-flex justify-center pa-3\",staticStyle:{\"color\":\"rgba(0, 0, 0, 0.6)\"}},[_vm._v(\" Nenhuma notificação \")]):_vm._e(),(group.notifications.length)?_c('v-list',{staticClass:\"notifications-list\"},_vm._l((group.notifications),function(notification,index){return _c('div',{key:notification.id},[_c('v-list-item',{staticClass:\"notification\",class:{ inactive: !notification.active },attrs:{\"to\":{\n name: 'Notification',\n params: { id: notification.id },\n }}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"text-body-2\"},[_vm._v(\" \"+_vm._s(notification.description)+\" \"),(notification.payment_method && !notification.type.startsWith('BOLETO'))?_c('span',{staticClass:\"ml-2\",staticStyle:{\"color\":\"#757575\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"paymentMethod\")(notification.payment_method))+\" \")]):_vm._e(),(notification.payment_type)?_c('span',{staticStyle:{\"color\":\"#757575\"}},[_vm._v(\" - \"+_vm._s(_vm._f(\"paymentType\")(notification.payment_type))+\" \")]):_vm._e()])],1)],1),(index < group.notifications.length - 1)?_c('v-divider'):_vm._e()],1)}),0):_vm._e()],1)],1)],1)}),1)],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{attrs:{\"elevation\":\"1\"}},[_c('v-toolbar',{attrs:{\"dense\":\"\",\"flat\":\"\",\"color\":\"primary\"}},[_c('v-toolbar-title',{staticClass:\"white--text font-weight-medium\",staticStyle:{\"display\":\"contents\"}},[_vm._v(\" Pré-vencimento \")])],1),_c('v-card-text',{staticClass:\"pa-0\"},[(_vm.loading.notifications)?_c('div',{staticClass:\"d-flex justify-center pa-3\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"deep-purple accent-2\"}})],1):_vm._e(),_c('v-fade-transition',[_c('MatrixNotifications',{attrs:{\"notifications\":_vm.notificationsBeforeDueDate}})],1),(\n !_vm.loading.notifications && _vm.notificationsBeforeDueDate.length == 0\n )?_c('div',{staticClass:\"d-flex justify-center pa-3\"},[_vm._v(\" Nenhuma notificação \")]):_vm._e()],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"430px\"},model:{value:(_vm.dialogPublishVersion),callback:function ($$v) {_vm.dialogPublishVersion=$$v},expression:\"dialogPublishVersion\"}},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":_vm.publishCreditorRule}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"text-h5\"},[_vm._v(\"Publicar em produção a versão \"+_vm._s(_vm.rule.version)+\" ?\")])]),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":\"Informe o motivo da alteração.\",\"rules\":[\n () => !!_vm.rules.description || 'Este campo é obrigatório',\n ]},model:{value:(_vm.rules.description),callback:function ($$v) {_vm.$set(_vm.rules, \"description\", $$v)},expression:\"rules.description\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\"},on:{\"click\":function($event){return _vm.closePublishDialog()}}},[_vm._v(\" Fechar \")]),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\",\"type\":\"submit\"}},[_vm._v(\" Publicar \")])],1)],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{attrs:{\"elevation\":\"1\"}},[_c('v-toolbar',{attrs:{\"dense\":\"\",\"flat\":\"\",\"color\":\"primary\"}},[_c('v-toolbar-title',{staticClass:\"white--text font-weight-medium\"},[_vm._v(\" Pós-vencimento \")])],1),_c('v-card-text',{staticClass:\"pa-0\"},[(_vm.loading.notifications)?_c('div',{staticClass:\"d-flex justify-center pa-3\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"deep-purple accent-2\"}})],1):_vm._e(),_c('v-fade-transition',[_c('MatrixNotifications',{attrs:{\"notifications\":_vm.notificationsAfterDueDate}})],1),(\n !_vm.loading.notifications && _vm.notificationsAfterDueDate.length == 0\n )?_c('div',{staticClass:\"d-flex justify-center pa-3\"},[_vm._v(\" Nenhuma notificação \")]):_vm._e()],1)],1)],1)],1):_vm._e(),_c('div',{staticStyle:{\"position\":\"relative\"}},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticStyle:{\"bottom\":\"40px\"},attrs:{\"color\":\"pink\",\"dark\":\"\",\"fab\":\"\",\"bottom\":\"\",\"right\":\"\",\"fixed\":\"\",\"to\":{ name: 'Notification', query: { rule: _vm.rule.id } }}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-plus\")])],1)]}}])},[_c('span',[_vm._v(\"Criar notificação\")])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.notifications)?_c('div',_vm._l((_vm.matrixNotifications),function(row,index){return _c('v-row',{key:index,style:(index == 0 ? '' : 'border-top: 1px solid #e1e1e1'),attrs:{\"no-gutters\":\"\"}},_vm._l((row),function(notification){return _c('v-col',{key:notification.id,style:('padding-top: 2px;' +\n (notification.there_is_border\n ? ' border-right: 1px solid #e1e1e1'\n : '')),attrs:{\"cols\":\"12\",\"xs\":\"12\",\"sm\":\"6\",\"md\":\"3\",\"lg\":\"2\",\"xl\":\"1\"}},[_c('div',{staticClass:\"notification\",class:{ inactive: !notification.active }},[_c('v-card',{staticClass:\"notification-type\",class:notification.type,attrs:{\"elevation\":\"0\",\"to\":{ name: 'Notification', params: { id: notification.id } }}},[_c('v-card-text',{staticStyle:{\"padding\":\"5px\"}},[_c('h3',{staticStyle:{\"font-weight\":\"500\",\"font-size\":\"14px\",\"font-family\":\"Roboto\",\"color\":\"#212121\",\"line-height\":\"16px\"}},[_vm._v(\" \"+_vm._s(notification.abbreviation)+\" - \"+_vm._s(notification.description)),(notification.payment_method)?_c('samp',{staticStyle:{\"font-weight\":\"500\",\"font-size\":\"12px\",\"font-family\":\"Roboto\",\"color\":\"#757575\"}},[_vm._v(\" - \"+_vm._s(_vm._f(\"paymentMethod\")(notification.payment_method)))]):_vm._e()]),_c('div',{staticStyle:{\"font-weight\":\"500\",\"font-size\":\"12px\",\"font-family\":\"Roboto\",\"color\":\"#757575\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"paymentType\")(notification.payment_type))+\" \")]),_c('div',{staticStyle:{\"margin-top\":\"2px\"}},_vm._l((notification.icons_midayss),function(icon){return _c('v-icon',{key:icon,staticStyle:{\"font-size\":\"20px\",\"color\":\"#757575\"}},[_vm._v(_vm._s(icon))])}),1),_c('div',{staticStyle:{\"margin-top\":\"2px\"}},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(notification.email_subject)?_c('v-icon',_vm._g(_vm._b({staticStyle:{\"font-size\":\"20px\",\"color\":\"#757575\"},attrs:{\"dark\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-email-outline \")]):_vm._e()]}}],null,true)},[_c('span',[_vm._v(\"Notificação E-mail\")])]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(notification.whatsapp_initiative)?_c('v-icon',_vm._g(_vm._b({staticStyle:{\"font-size\":\"20px\",\"color\":\"#757575\"},attrs:{\"dark\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-whatsapp \")]):_vm._e()]}}],null,true)},[_c('span',[_vm._v(\"Notificação Whatsapp\")])]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(notification.sms)?_c('v-icon',_vm._g(_vm._b({staticStyle:{\"font-size\":\"20px\",\"color\":\"#757575\"},attrs:{\"dark\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-message-text-outline \")]):_vm._e()]}}],null,true)},[_c('span',[_vm._v(\"Notificação Sms\")])]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(notification.push_title || notification.push_body)?_c('v-icon',_vm._g(_vm._b({staticStyle:{\"font-size\":\"20px\",\"color\":\"#757575\"},attrs:{\"dark\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-bell-outline \")]):_vm._e()]}}],null,true)},[_c('span',[_vm._v(\"Notificação Push\")])])],1)])],1)],1)])}),1)}),1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MatrixNotifications.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MatrixNotifications.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MatrixNotifications.vue?vue&type=template&id=59b2a246&scoped=true\"\nimport script from \"./MatrixNotifications.vue?vue&type=script&lang=js\"\nexport * from \"./MatrixNotifications.vue?vue&type=script&lang=js\"\nimport style0 from \"./MatrixNotifications.vue?vue&type=style&index=0&id=59b2a246&prod&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 \"59b2a246\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Rule.vue?vue&type=template&id=e6a8574c&scoped=true\"\nimport script from \"./Rule.vue?vue&type=script&lang=js\"\nexport * from \"./Rule.vue?vue&type=script&lang=js\"\nimport style0 from \"./Rule.vue?vue&type=style&index=0&id=e6a8574c&prod&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 \"e6a8574c\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Error.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Error.vue?vue&type=script&lang=js\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('h1',{staticClass:\"mb-8 mt-2 text-center text-h5\"},[_vm._v(\" Tolerância para pagamento \")]),(_vm.loading)?_c('div',{staticClass:\"d-flex justify-center pt-8\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"size\":\"50\"}})],1):_vm._e(),(!_vm.loading)?_c('v-data-table',{staticClass:\"elevation-2 creditors\",attrs:{\"headers\":_vm.creditorsHeaders,\"items\":_vm.creditors,\"items-per-page\":-1,\"hide-default-footer\":\"\"},on:{\"click:row\":_vm.goToRule},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" Nenhum credor encontrado \")]},proxy:true},{key:\"item.name\",fn:function({ item }){return [_c('strong',[_vm._v(_vm._s(item.name))])]}},{key:\"item.down_payment_tolerance_days\",fn:function({ item }){return [(item.down_payment_tolerance_days != null)?_c('div',{staticClass:\"text-lowercase\"},[_vm._v(\" \"+_vm._s(item.down_payment_tolerance_days)+\" dias \"+_vm._s(_vm._f(\"daysType\")(item.down_payment_tolerance_days_type))+\" \")]):_vm._e()]}},{key:\"item.installment_tolerance_days\",fn:function({ item }){return [(item.installment_tolerance_days != null)?_c('div',{staticClass:\"text-lowercase\"},[_vm._v(\" \"+_vm._s(item.installment_tolerance_days)+\" dias \"+_vm._s(_vm._f(\"daysType\")(item.installment_tolerance_days_type))+\" \")]):_vm._e()]}}],null,false,1755407966)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=e5677a50&scoped=true\"\nimport script from \"./Home.vue?vue&type=script&lang=js\"\nexport * from \"./Home.vue?vue&type=script&lang=js\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=e5677a50&prod&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 \"e5677a50\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-sheet',{staticClass:\"mx-auto pa-4 mt-12\",staticStyle:{\"max-width\":\"600px\"},attrs:{\"elevation\":\"2\"}},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":_vm.save}},[_c('v-row',{staticClass:\"pt-3\"},[_c('v-row',{staticClass:\"mx-3\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pr-2\"},[_c('v-text-field',{attrs:{\"required\":\"\",\"dense\":\"\",\"outlined\":\"\",\"label\":\"Nome\",\"color\":\"deep-purple accent-2\",\"autofocus\":\"\",\"rules\":[() => !!_vm.creditor.name || 'Campo obrigatório']},model:{value:(_vm.creditor.name),callback:function ($$v) {_vm.$set(_vm.creditor, \"name\", $$v)},expression:\"creditor.name\"}})],1),(!_vm.creditor.id)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"dense\":\"\",\"outlined\":\"\",\"label\":\"Identificador\",\"color\":\"deep-purple accent-2\",\"hint\":\"Use o mesmo ID da QuiteJá\",\"persistent-hint\":\"\"},model:{value:(_vm.creditorNewId),callback:function ($$v) {_vm.creditorNewId=$$v},expression:\"creditorNewId\"}})],1):_vm._e()],1)],1),_c('div',{staticClass:\"text-subtitle-1 mt-8 mb-4\"},[_vm._v(\" Dias de tolerância para o pagamento \")]),_c('v-row',{staticClass:\"pt-3\"},[_c('v-row',{staticClass:\"mx-3\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pr-2\",attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"min\":\"0\",\"dense\":\"\",\"outlined\":\"\",\"label\":\"Entrada\",\"color\":\"deep-purple accent-2\"},model:{value:(_vm.creditor.down_payment_tolerance_days),callback:function ($$v) {_vm.$set(_vm.creditor, \"down_payment_tolerance_days\", $$v)},expression:\"creditor.down_payment_tolerance_days\"}})],1),_c('v-col',{staticClass:\"pr-4\",attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Dias\",\"color\":\"deep-purple accent-2\",\"item-color\":\"deep-purple accent-2\",\"items\":_vm.daysType},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"daysType\")(data.item))+\" \")]}},{key:\"item\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"daysType\")(data.item))+\" \")]}}]),model:{value:(_vm.creditor.down_payment_tolerance_days_type),callback:function ($$v) {_vm.$set(_vm.creditor, \"down_payment_tolerance_days_type\", $$v)},expression:\"creditor.down_payment_tolerance_days_type\"}})],1),_c('v-col',{staticClass:\"pr-2\",attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"min\":\"0\",\"dense\":\"\",\"outlined\":\"\",\"label\":\"Parcelas\",\"color\":\"deep-purple accent-2\"},model:{value:(_vm.creditor.installment_tolerance_days),callback:function ($$v) {_vm.$set(_vm.creditor, \"installment_tolerance_days\", $$v)},expression:\"creditor.installment_tolerance_days\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Dias\",\"color\":\"deep-purple accent-2\",\"item-color\":\"deep-purple accent-2\",\"items\":_vm.daysType},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"daysType\")(data.item))+\" \")]}},{key:\"item\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"daysType\")(data.item))+\" \")]}}]),model:{value:(_vm.creditor.installment_tolerance_days_type),callback:function ($$v) {_vm.$set(_vm.creditor, \"installment_tolerance_days_type\", $$v)},expression:\"creditor.installment_tolerance_days_type\"}})],1)],1)],1),_c('div',{staticClass:\"d-flex mt-8\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"primary\",\"type\":\"submit\",\"disabled\":_vm.saving,\"loading\":_vm.saving}},[_vm._v(\"Salvar\")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Creditor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Creditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Creditor.vue?vue&type=template&id=7f1dea18&scoped=true\"\nimport script from \"./Creditor.vue?vue&type=script&lang=js\"\nexport * from \"./Creditor.vue?vue&type=script&lang=js\"\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 \"7f1dea18\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simulation.vue?vue&type=style&index=0&id=791df00b&prod&lang=scss\"","import { render, staticRenderFns } from \"./PageNotFound.vue?vue&type=template&id=681f4ad4&scoped=true\"\nimport script from \"./PageNotFound.vue?vue&type=script&lang=js\"\nexport * from \"./PageNotFound.vue?vue&type=script&lang=js\"\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 \"681f4ad4\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=style&index=0&id=93e3b98e&prod&scoped=true&lang=scss\"","// Helpers\nimport { wrapInArray, sortItems, deepEqual, groupItems, searchItems, fillArray } from '../../util/helpers'\nimport Vue, { VNode } from 'vue'\n\n// Types\nimport {\n DataOptions,\n DataPagination,\n DataScopeProps,\n DataSortFunction,\n DataGroupFunction,\n DataSearchFunction,\n ItemGroup,\n} from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Vue.extend({\n name: 'v-data',\n\n inheritAttrs: false,\n\n props: {\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n options: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n sortBy: {\n type: [String, Array],\n } as PropValidator,\n sortDesc: {\n type: [Boolean, Array],\n } as PropValidator,\n customSort: {\n type: Function,\n default: sortItems,\n } as PropValidator,\n mustSort: Boolean,\n multiSort: Boolean,\n page: {\n type: Number,\n default: 1,\n },\n itemsPerPage: {\n type: Number,\n default: 10,\n },\n groupBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n groupDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator,\n customGroup: {\n type: Function,\n default: groupItems,\n } as PropValidator,\n locale: {\n type: String,\n default: 'en-US',\n },\n disableSort: Boolean,\n disablePagination: Boolean,\n disableFiltering: Boolean,\n search: String,\n customFilter: {\n type: Function,\n default: searchItems,\n } as PropValidator,\n serverItemsLength: {\n type: Number,\n default: -1,\n },\n },\n\n data () {\n let internalOptions: DataOptions = {\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n sortBy: wrapInArray(this.sortBy),\n sortDesc: wrapInArray(this.sortDesc),\n groupBy: wrapInArray(this.groupBy),\n groupDesc: wrapInArray(this.groupDesc),\n mustSort: this.mustSort,\n multiSort: this.multiSort,\n }\n\n if (this.options) {\n internalOptions = Object.assign(internalOptions, this.options)\n }\n\n const { sortBy, sortDesc, groupBy, groupDesc } = internalOptions\n const sortDiff = sortBy.length - sortDesc.length\n const groupDiff = groupBy.length - groupDesc.length\n\n if (sortDiff > 0) {\n internalOptions.sortDesc.push(...fillArray(sortDiff, false))\n }\n\n if (groupDiff > 0) {\n internalOptions.groupDesc.push(...fillArray(groupDiff, false))\n }\n\n return {\n internalOptions,\n }\n },\n\n computed: {\n itemsLength (): number {\n return this.serverItemsLength >= 0 ? this.serverItemsLength : this.filteredItems.length\n },\n pageCount (): number {\n return this.internalOptions.itemsPerPage <= 0\n ? 1\n : Math.ceil(this.itemsLength / this.internalOptions.itemsPerPage)\n },\n pageStart (): number {\n if (this.internalOptions.itemsPerPage === -1 || !this.items.length) return 0\n\n return (this.internalOptions.page - 1) * this.internalOptions.itemsPerPage\n },\n pageStop (): number {\n if (this.internalOptions.itemsPerPage === -1) return this.itemsLength\n if (!this.items.length) return 0\n\n return Math.min(this.itemsLength, this.internalOptions.page * this.internalOptions.itemsPerPage)\n },\n isGrouped (): boolean {\n return !!this.internalOptions.groupBy.length\n },\n pagination (): DataPagination {\n return {\n page: this.internalOptions.page,\n itemsPerPage: this.internalOptions.itemsPerPage,\n pageStart: this.pageStart,\n pageStop: this.pageStop,\n pageCount: this.pageCount,\n itemsLength: this.itemsLength,\n }\n },\n filteredItems (): any[] {\n let items = this.items.slice()\n\n if (!this.disableFiltering && this.serverItemsLength <= 0) {\n items = this.customFilter(items, this.search)\n }\n\n return items\n },\n computedItems (): any[] {\n let items = this.filteredItems.slice()\n\n if ((!this.disableSort || this.internalOptions.groupBy.length) && this.serverItemsLength <= 0) {\n items = this.sortItems(items)\n }\n\n if (!this.disablePagination && this.serverItemsLength <= 0) {\n items = this.paginateItems(items)\n }\n\n return items\n },\n groupedItems (): ItemGroup[] | null {\n return this.isGrouped ? this.groupItems(this.computedItems) : null\n },\n scopedProps (): DataScopeProps {\n return {\n sort: this.sort,\n sortArray: this.sortArray,\n group: this.group,\n items: this.computedItems,\n options: this.internalOptions,\n updateOptions: this.updateOptions,\n pagination: this.pagination,\n groupedItems: this.groupedItems,\n originalItemsLength: this.items.length,\n }\n },\n computedOptions (): DataOptions {\n return { ...this.options } as DataOptions\n },\n },\n\n watch: {\n computedOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n\n this.updateOptions(options)\n },\n deep: true,\n immediate: true,\n },\n internalOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n this.$emit('update:options', options)\n },\n deep: true,\n immediate: true,\n },\n page (page: number) {\n this.updateOptions({ page })\n },\n 'internalOptions.page' (page: number) {\n this.$emit('update:page', page)\n },\n itemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage })\n },\n 'internalOptions.itemsPerPage' (itemsPerPage: number) {\n this.$emit('update:items-per-page', itemsPerPage)\n },\n sortBy (sortBy: string | string[]) {\n this.updateOptions({ sortBy: wrapInArray(sortBy) })\n },\n 'internalOptions.sortBy' (sortBy: string[], old: string[]) {\n !deepEqual(sortBy, old) && this.$emit('update:sort-by', Array.isArray(this.sortBy) ? sortBy : sortBy[0])\n },\n sortDesc (sortDesc: boolean | boolean[]) {\n this.updateOptions({ sortDesc: wrapInArray(sortDesc) })\n },\n 'internalOptions.sortDesc' (sortDesc: boolean[], old: boolean[]) {\n !deepEqual(sortDesc, old) && this.$emit('update:sort-desc', Array.isArray(this.sortDesc) ? sortDesc : sortDesc[0])\n },\n groupBy (groupBy: string | string[]) {\n this.updateOptions({ groupBy: wrapInArray(groupBy) })\n },\n 'internalOptions.groupBy' (groupBy: string[], old: string[]) {\n !deepEqual(groupBy, old) && this.$emit('update:group-by', Array.isArray(this.groupBy) ? groupBy : groupBy[0])\n },\n groupDesc (groupDesc: boolean | boolean[]) {\n this.updateOptions({ groupDesc: wrapInArray(groupDesc) })\n },\n 'internalOptions.groupDesc' (groupDesc: boolean[], old: boolean[]) {\n !deepEqual(groupDesc, old) && this.$emit('update:group-desc', Array.isArray(this.groupDesc) ? groupDesc : groupDesc[0])\n },\n multiSort (multiSort: boolean) {\n this.updateOptions({ multiSort })\n },\n 'internalOptions.multiSort' (multiSort: boolean) {\n this.$emit('update:multi-sort', multiSort)\n },\n mustSort (mustSort: boolean) {\n this.updateOptions({ mustSort })\n },\n 'internalOptions.mustSort' (mustSort: boolean) {\n this.$emit('update:must-sort', mustSort)\n },\n pageCount: {\n handler (pageCount: number) {\n this.$emit('page-count', pageCount)\n },\n immediate: true,\n },\n computedItems: {\n handler (computedItems: any[]) {\n this.$emit('current-items', computedItems)\n },\n immediate: true,\n },\n pagination: {\n handler (pagination: DataPagination, old: DataPagination) {\n if (deepEqual(pagination, old)) return\n this.$emit('pagination', this.pagination)\n },\n immediate: true,\n },\n },\n\n methods: {\n toggle (key: string, oldBy: string[], oldDesc: boolean[], page: number, mustSort: boolean, multiSort: boolean) {\n let by = oldBy.slice()\n let desc = oldDesc.slice()\n const byIndex = by.findIndex((k: string) => k === key)\n\n if (byIndex < 0) {\n if (!multiSort) {\n by = []\n desc = []\n }\n\n by.push(key)\n desc.push(false)\n } else if (byIndex >= 0 && !desc[byIndex]) {\n desc[byIndex] = true\n } else if (!mustSort) {\n by.splice(byIndex, 1)\n desc.splice(byIndex, 1)\n } else {\n desc[byIndex] = false\n }\n\n // Reset page to 1 if sortBy or sortDesc have changed\n if (!deepEqual(by, oldBy) || !deepEqual(desc, oldDesc)) {\n page = 1\n }\n\n return { by, desc, page }\n },\n group (key: string): void {\n const { by: groupBy, desc: groupDesc, page } = this.toggle(\n key,\n this.internalOptions.groupBy,\n this.internalOptions.groupDesc,\n this.internalOptions.page,\n true,\n false\n )\n this.updateOptions({ groupBy, groupDesc, page })\n },\n sort (key: string | string[]): void {\n if (Array.isArray(key)) return this.sortArray(key)\n\n const { by: sortBy, desc: sortDesc, page } = this.toggle(\n key,\n this.internalOptions.sortBy,\n this.internalOptions.sortDesc,\n this.internalOptions.page,\n this.internalOptions.mustSort,\n this.internalOptions.multiSort\n )\n this.updateOptions({ sortBy, sortDesc, page })\n },\n sortArray (sortBy: string[]) {\n const sortDesc = sortBy.map(s => {\n const i = this.internalOptions.sortBy.findIndex((k: string) => k === s)\n return i > -1 ? this.internalOptions.sortDesc[i] : false\n })\n\n this.updateOptions({ sortBy, sortDesc })\n },\n updateOptions (options: any) {\n this.internalOptions = {\n ...this.internalOptions,\n ...options,\n page: this.serverItemsLength < 0\n ? Math.max(1, Math.min(options.page || this.internalOptions.page, this.pageCount))\n : options.page || this.internalOptions.page,\n }\n },\n sortItems (items: any[]): any[] {\n let sortBy: string[] = []\n let sortDesc: boolean[] = []\n\n if (!this.disableSort) {\n sortBy = this.internalOptions.sortBy\n sortDesc = this.internalOptions.sortDesc\n }\n\n if (this.internalOptions.groupBy.length) {\n sortBy = [...this.internalOptions.groupBy, ...sortBy]\n sortDesc = [...this.internalOptions.groupDesc, ...sortDesc]\n }\n\n return this.customSort(items, sortBy, sortDesc, this.locale)\n },\n groupItems (items: any[]): ItemGroup[] {\n return this.customGroup(items, this.internalOptions.groupBy, this.internalOptions.groupDesc)\n },\n paginateItems (items: any[]): any[] {\n // Make sure we don't try to display non-existant page if items suddenly change\n // TODO: Could possibly move this to pageStart/pageStop?\n if (this.serverItemsLength === -1 && items.length <= this.pageStart) {\n this.internalOptions.page = Math.max(1, Math.ceil(items.length / this.internalOptions.itemsPerPage)) || 1 // Prevent NaN\n }\n\n return items.slice(this.pageStart, this.pageStop)\n },\n },\n\n render (): VNode {\n return this.$scopedSlots.default && this.$scopedSlots.default(this.scopedProps) as any\n },\n})\n","import './VDataFooter.sass'\n\n// Components\nimport VSelect from '../VSelect/VSelect'\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { DataPagination, DataOptions, DataItemsPerPageOption } from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\nimport { getSlot } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-data-footer',\n\n props: {\n options: {\n type: Object as PropType,\n required: true,\n },\n pagination: {\n type: Object as PropType,\n required: true,\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => ([5, 10, 15, -1]),\n } as PropValidator,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n itemsPerPageAllText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageAll',\n },\n showFirstLastPage: Boolean,\n showCurrentPage: Boolean,\n disablePagination: Boolean,\n disableItemsPerPage: Boolean,\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n },\n\n computed: {\n disableNextPageIcon (): boolean {\n return this.options.itemsPerPage <= 0 ||\n this.options.page * this.options.itemsPerPage >= this.pagination.itemsLength ||\n this.pagination.pageStop < 0\n },\n computedDataItemsPerPageOptions (): any[] {\n return this.itemsPerPageOptions.map(option => {\n if (typeof option === 'object') return option\n else return this.genDataItemsPerPageOption(option)\n })\n },\n },\n\n methods: {\n updateOptions (obj: object) {\n this.$emit('update:options', Object.assign({}, this.options, obj))\n },\n onFirstPage () {\n this.updateOptions({ page: 1 })\n },\n onPreviousPage () {\n this.updateOptions({ page: this.options.page - 1 })\n },\n onNextPage () {\n this.updateOptions({ page: this.options.page + 1 })\n },\n onLastPage () {\n this.updateOptions({ page: this.pagination.pageCount })\n },\n onChangeItemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage, page: 1 })\n },\n genDataItemsPerPageOption (option: number) {\n return {\n text: option === -1 ? this.$vuetify.lang.t(this.itemsPerPageAllText) : String(option),\n value: option,\n }\n },\n genItemsPerPageSelect () {\n let value = this.options.itemsPerPage\n const computedIPPO = this.computedDataItemsPerPageOptions\n\n if (computedIPPO.length <= 1) return null\n\n if (!computedIPPO.find(ippo => ippo.value === value)) value = computedIPPO[0]\n\n return this.$createElement('div', {\n staticClass: 'v-data-footer__select',\n }, [\n this.$vuetify.lang.t(this.itemsPerPageText),\n this.$createElement(VSelect, {\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.itemsPerPageText),\n },\n props: {\n disabled: this.disableItemsPerPage,\n items: computedIPPO,\n value,\n hideDetails: true,\n auto: true,\n minWidth: '75px',\n },\n on: {\n input: this.onChangeItemsPerPage,\n },\n }),\n ])\n },\n genPaginationInfo () {\n let children: VNodeChildrenArrayContents = ['–']\n const itemsLength: number = this.pagination.itemsLength\n let pageStart: number = this.pagination.pageStart\n let pageStop: number = this.pagination.pageStop\n\n if (this.pagination.itemsLength && this.pagination.itemsPerPage) {\n pageStart = this.pagination.pageStart + 1\n pageStop = itemsLength < this.pagination.pageStop || this.pagination.pageStop < 0\n ? itemsLength\n : this.pagination.pageStop\n\n children = this.$scopedSlots['page-text']\n ? [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n : [this.$vuetify.lang.t(this.pageText, pageStart, pageStop, itemsLength)]\n } else if (this.$scopedSlots['page-text']) {\n children = [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n }\n\n return this.$createElement('div', {\n class: 'v-data-footer__pagination',\n }, children)\n },\n genIcon (click: Function, disabled: boolean, label: string, icon: string): VNode {\n return this.$createElement(VBtn, {\n props: {\n disabled: disabled || this.disablePagination,\n icon: true,\n text: true,\n // dark: this.dark, // TODO: add mixin\n // light: this.light // TODO: add mixin\n },\n on: {\n click,\n },\n attrs: {\n 'aria-label': label, // TODO: Localization\n },\n }, [this.$createElement(VIcon, icon)])\n },\n genIcons () {\n const before: VNodeChildrenArrayContents = []\n const after: VNodeChildrenArrayContents = []\n\n before.push(this.genIcon(\n this.onPreviousPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.prevPage'),\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon\n ))\n\n after.push(this.genIcon(\n this.onNextPage,\n this.disableNextPageIcon,\n this.$vuetify.lang.t('$vuetify.dataFooter.nextPage'),\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon\n ))\n\n if (this.showFirstLastPage) {\n before.unshift(this.genIcon(\n this.onFirstPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.firstPage'),\n this.$vuetify.rtl ? this.lastIcon : this.firstIcon\n ))\n\n after.push(this.genIcon(\n this.onLastPage,\n this.options.page >= this.pagination.pageCount || this.options.itemsPerPage === -1,\n this.$vuetify.lang.t('$vuetify.dataFooter.lastPage'),\n this.$vuetify.rtl ? this.firstIcon : this.lastIcon\n ))\n }\n\n return [\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-before',\n }, before),\n this.showCurrentPage && this.$createElement('span', [this.options.page.toString()]),\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-after',\n }, after),\n ]\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-data-footer',\n }, [\n getSlot(this, 'prepend'),\n this.genItemsPerPageSelect(),\n this.genPaginationInfo(),\n this.genIcons(),\n ])\n },\n})\n","// Components\nimport { VData } from '../VData'\nimport VDataFooter from './VDataFooter'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, camelizeObjectKeys, keyCodes } from '../../util/helpers'\nimport { breaking, removed } from '../../util/console'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { DataItemProps, DataScopeProps } from 'vuetify/types'\n\n/* @vue/component */\nexport default mixins(\n Mobile,\n Themeable\n).extend({\n name: 'v-data-iterator',\n\n props: {\n ...VData.options.props, // TODO: filter out props not used\n itemKey: {\n type: String,\n default: 'id',\n },\n value: {\n type: Array,\n default: () => [],\n } as PropValidator,\n singleSelect: Boolean,\n expanded: {\n type: Array,\n default: () => [],\n } as PropValidator,\n mobileBreakpoint: {\n ...Mobile.options.props.mobileBreakpoint,\n default: 600,\n },\n singleExpand: Boolean,\n loading: [Boolean, String],\n noResultsText: {\n type: String,\n default: '$vuetify.dataIterator.noResultsText',\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideDefaultFooter: Boolean,\n footerProps: Object,\n selectableKey: {\n type: String,\n default: 'isSelectable',\n },\n },\n\n data: () => ({\n selection: {} as Record,\n expansion: {} as Record,\n internalCurrentItems: [] as any[],\n shiftKeyDown: false,\n lastEntry: -1,\n }),\n\n computed: {\n everyItem (): boolean {\n return !!this.selectableItems.length && this.selectableItems.every((i: any) => this.isSelected(i))\n },\n someItems (): boolean {\n return this.selectableItems.some((i: any) => this.isSelected(i))\n },\n sanitizedFooterProps (): Record {\n return camelizeObjectKeys(this.footerProps)\n },\n selectableItems (): any[] {\n return this.internalCurrentItems.filter(item => this.isSelectable(item))\n },\n },\n\n watch: {\n value: {\n handler (value: any[]) {\n this.selection = value.reduce((selection, item) => {\n selection[getObjectValueByPath(item, this.itemKey)] = item\n return selection\n }, {})\n },\n immediate: true,\n },\n selection (value: Record, old: Record) {\n if (deepEqual(Object.keys(value), Object.keys(old))) return\n\n this.$emit('input', Object.values(value))\n },\n expanded: {\n handler (value: any[]) {\n this.expansion = value.reduce((expansion, item) => {\n expansion[getObjectValueByPath(item, this.itemKey)] = true\n return expansion\n }, {})\n },\n immediate: true,\n },\n expansion (value: Record, old: Record) {\n if (deepEqual(value, old)) return\n const keys = Object.keys(value).filter(k => value[k])\n const expanded = !keys.length ? [] : this.items.filter(i => keys.includes(String(getObjectValueByPath(i, this.itemKey))))\n this.$emit('update:expanded', expanded)\n },\n },\n\n created () {\n const breakingProps = [\n ['disable-initial-sort', 'sort-by'],\n ['filter', 'custom-filter'],\n ['pagination', 'options'],\n ['total-items', 'server-items-length'],\n ['hide-actions', 'hide-default-footer'],\n ['rows-per-page-items', 'footer-props.items-per-page-options'],\n ['rows-per-page-text', 'footer-props.items-per-page-text'],\n ['prev-icon', 'footer-props.prev-icon'],\n ['next-icon', 'footer-props.next-icon'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n const removedProps = [\n 'expand',\n 'content-class',\n 'content-props',\n 'content-tag',\n ]\n\n /* istanbul ignore next */\n removedProps.forEach(prop => {\n if (this.$attrs.hasOwnProperty(prop)) removed(prop)\n })\n },\n\n mounted () {\n window.addEventListener('keydown', this.onKeyDown)\n window.addEventListener('keyup', this.onKeyUp)\n },\n beforeDestroy () {\n window.removeEventListener('keydown', this.onKeyDown)\n window.removeEventListener('keyup', this.onKeyUp)\n },\n\n methods: {\n onKeyDown (e: KeyboardEvent): void {\n this.shiftKeyDown = e.keyCode === keyCodes.shift || e.shiftKey\n },\n onKeyUp (e: KeyboardEvent): void {\n if (e.keyCode === keyCodes.shift || !e.shiftKey) {\n this.shiftKeyDown = false\n }\n },\n toggleSelectAll (value: boolean): void {\n const selection = Object.assign({}, this.selection)\n\n for (let i = 0; i < this.selectableItems.length; i++) {\n const item = this.selectableItems[i]\n\n if (!this.isSelectable(item)) continue\n\n const key = getObjectValueByPath(item, this.itemKey)\n if (value) selection[key] = item\n else delete selection[key]\n }\n\n this.selection = selection\n this.$emit('toggle-select-all', { items: this.internalCurrentItems, value })\n },\n isSelectable (item: any): boolean {\n return getObjectValueByPath(item, this.selectableKey) !== false\n },\n isSelected (item: any): boolean {\n return !!this.selection[getObjectValueByPath(item, this.itemKey)] || false\n },\n select (item: any, value = true, emit = true): void {\n if (!this.isSelectable(item)) return\n\n const selection = this.singleSelect ? {} : Object.assign({}, this.selection)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) selection[key] = item\n else delete selection[key]\n\n const index = this.selectableItems.findIndex(x => getObjectValueByPath(x, this.itemKey) === key)\n if (this.lastEntry === -1) this.lastEntry = index\n else if (this.shiftKeyDown && !this.singleSelect && emit) {\n const lastEntryKey = getObjectValueByPath(this.selectableItems[this.lastEntry], this.itemKey)\n const lastEntryKeySelected = Object.keys(this.selection).includes(String(lastEntryKey))\n this.multipleSelect(lastEntryKeySelected, emit, selection, index)\n }\n this.lastEntry = index\n\n if (this.singleSelect && emit) {\n const keys = Object.keys(this.selection)\n const old = keys.length && getObjectValueByPath(this.selection[keys[0]], this.itemKey)\n old && old !== key && this.$emit('item-selected', { item: this.selection[old], value: false })\n }\n this.selection = selection\n emit && this.$emit('item-selected', { item, value })\n },\n multipleSelect (value = true, emit = true, selection: any, index: number): void {\n const start = index < this.lastEntry ? index : this.lastEntry\n const end = index < this.lastEntry ? this.lastEntry : index\n for (let i = start; i <= end; i++) {\n const currentItem = this.selectableItems[i]\n const key = getObjectValueByPath(currentItem, this.itemKey)\n if (value) selection[key] = currentItem\n else delete selection[key]\n emit && this.$emit('item-selected', { currentItem, value })\n }\n },\n isExpanded (item: any): boolean {\n return this.expansion[getObjectValueByPath(item, this.itemKey)] || false\n },\n expand (item: any, value = true): void {\n const expansion = this.singleExpand ? {} : Object.assign({}, this.expansion)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) expansion[key] = true\n else delete expansion[key]\n\n this.expansion = expansion\n this.$emit('item-expanded', { item, value })\n },\n createItemProps (item: any, index: number): DataItemProps {\n return {\n item,\n index,\n select: (v: boolean) => this.select(item, v),\n isSelected: this.isSelected(item),\n expand: (v: boolean) => this.expand(item, v),\n isExpanded: this.isExpanded(item),\n isMobile: this.isMobile,\n }\n },\n genEmptyWrapper (content: VNodeChildren) {\n return this.$createElement('div', content)\n },\n genEmpty (originalItemsLength: number, filteredItemsLength: number) {\n if (originalItemsLength === 0 && this.loading) {\n const loading = getSlot(this, 'loading') || this.$vuetify.lang.t(this.loadingText)\n return this.genEmptyWrapper(loading)\n } else if (originalItemsLength === 0) {\n const noData = getSlot(this, 'noData') || this.$vuetify.lang.t(this.noDataText)\n return this.genEmptyWrapper(noData)\n } else if (filteredItemsLength === 0) {\n const noResults = getSlot(this, 'noResults') || this.$vuetify.lang.t(this.noResultsText)\n return this.genEmptyWrapper(noResults)\n }\n\n return null\n },\n genItems (props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n if (this.$scopedSlots.default) {\n return this.$scopedSlots.default({\n ...props,\n isSelected: this.isSelected,\n select: this.select,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n expand: this.expand,\n })\n }\n\n if (this.$scopedSlots.item) {\n return props.items.map((item: any, index) => this.$scopedSlots.item!(this.createItemProps(\n item,\n index\n )))\n }\n\n return []\n },\n genFooter (props: DataScopeProps) {\n if (this.hideDefaultFooter) return null\n\n const data = {\n props: {\n ...this.sanitizedFooterProps,\n options: props.options,\n pagination: props.pagination,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n }\n\n const scopedSlots = getPrefixedScopedSlots('footer.', this.$scopedSlots)\n\n return this.$createElement(VDataFooter, {\n scopedSlots,\n ...data,\n })\n },\n genDefaultScopedSlot (props: any) {\n const outerProps = {\n ...props,\n someItems: this.someItems,\n everyItem: this.everyItem,\n toggleSelectAll: this.toggleSelectAll,\n }\n\n return this.$createElement('div', {\n staticClass: 'v-data-iterator',\n }, [\n getSlot(this, 'header', outerProps, true),\n this.genItems(props),\n this.genFooter(props),\n getSlot(this, 'footer', outerProps, true),\n ])\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: this.$props,\n on: {\n 'update:options': (v: any, old: any) => !deepEqual(v, old) && this.$emit('update:options', v),\n 'update:page': (v: any) => this.$emit('update:page', v),\n 'update:items-per-page': (v: any) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: any) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: any) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: any) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: any) => this.$emit('update:group-desc', v),\n pagination: (v: any, old: any) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'page-count': (v: number) => this.$emit('page-count', v),\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot,\n },\n })\n },\n})\n","import { VDataTable } from '../'\nimport VIcon from '../../VIcon'\nimport VSimpleCheckbox from '../../VCheckbox/VSimpleCheckbox'\nimport ripple from '../../../directives/ripple'\n\nimport Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../../util/mixins'\nimport { DataOptions, DataTableHeader } from 'vuetify/types'\n\ntype VDataTableInstance = InstanceType\n\ninterface options extends Vue {\n dataTable: VDataTableInstance\n}\n\nexport default mixins().extend({\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n options: {\n type: Object,\n default: () => ({\n page: 1,\n itemsPerPage: 10,\n sortBy: [],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: false,\n }),\n } as PropValidator,\n checkboxColor: String,\n sortIcon: {\n type: String,\n default: '$sort',\n },\n everyItem: Boolean,\n someItems: Boolean,\n showGroupBy: Boolean,\n singleSelect: Boolean,\n disableSort: Boolean,\n },\n\n methods: {\n genSelectAll () {\n const data = {\n props: {\n value: this.everyItem,\n indeterminate: !this.everyItem && this.someItems,\n color: this.checkboxColor ?? '',\n },\n on: {\n input: (v: boolean) => this.$emit('toggle-select-all', v),\n },\n }\n\n if (this.$scopedSlots['data-table-select']) {\n return this.$scopedSlots['data-table-select']!(data)\n }\n\n return this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n ...data,\n })\n },\n genSortIcon () {\n return this.$createElement(VIcon, {\n staticClass: 'v-data-table-header__icon',\n props: {\n size: 18,\n },\n }, [this.sortIcon])\n },\n },\n})\n","import { VNode, VNodeChildrenArrayContents } from 'vue'\nimport mixins from '../../util/mixins'\nimport VSelect from '../VSelect/VSelect'\nimport VChip from '../VChip'\nimport header from './mixins/header'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-mobile',\n\n props: {\n sortByText: {\n type: String,\n default: '$vuetify.dataTable.sortBy',\n },\n },\n\n methods: {\n genSortChip (props: any) {\n const children: VNodeChildrenArrayContents = [props.item.text]\n\n const sortIndex = this.options.sortBy.findIndex(k => k === props.item.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n children.push(this.$createElement('div', {\n staticClass: 'v-chip__close',\n class: {\n sortable: true,\n active: beingSorted,\n asc: beingSorted && !isDesc,\n desc: beingSorted && isDesc,\n },\n }, [this.genSortIcon()]))\n\n return this.$createElement(VChip, {\n staticClass: 'sortable',\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('sort', props.item.value)\n },\n },\n }, children)\n },\n genSortSelect (items: any[]) {\n return this.$createElement(VSelect, {\n props: {\n label: this.$vuetify.lang.t(this.sortByText),\n items,\n hideDetails: true,\n multiple: this.options.multiSort,\n value: this.options.multiSort ? this.options.sortBy : this.options.sortBy[0],\n menuProps: { closeOnContentClick: true },\n },\n on: {\n change: (v: string | string[]) => this.$emit('sort', v),\n },\n scopedSlots: {\n selection: props => this.genSortChip(props),\n },\n })\n },\n },\n\n render (h): VNode {\n const children: VNodeChildrenArrayContents = []\n\n const header = this.headers.find(h => h.value === 'data-table-select')\n if (header && !this.singleSelect) {\n children.push(this.$createElement('div', {\n class: [\n 'v-data-table-header-mobile__select',\n ...wrapInArray(header.class),\n ],\n attrs: {\n width: header.width,\n },\n }, [this.genSelectAll()]))\n }\n\n const sortHeaders = this.headers\n .filter(h => h.sortable !== false && h.value !== 'data-table-select')\n .map(h => ({\n text: h.text,\n value: h.value,\n }))\n\n if (!this.disableSort && sortHeaders.length) {\n children.push(this.genSortSelect(sortHeaders))\n }\n\n const th = children.length\n ? h('th', [h('div', { staticClass: 'v-data-table-header-mobile__wrapper' }, children)])\n : undefined\n\n const tr = h('tr', [th])\n\n return h('thead', {\n staticClass: 'v-data-table-header v-data-table-header-mobile',\n }, [tr])\n },\n})\n","// Helpers\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport header from './mixins/header'\nimport { wrapInArray, convertToUnit } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-desktop',\n\n methods: {\n genGroupByToggle (header: DataTableHeader) {\n return this.$createElement('span', {\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('group', header.value)\n },\n },\n }, ['group'])\n },\n getAria (beingSorted: boolean, isDesc: boolean) {\n const $t = (key: string) => this.$vuetify.lang.t(`$vuetify.dataTable.ariaLabel.${key}`)\n\n let ariaSort = 'none'\n let ariaLabel = [\n $t('sortNone'),\n $t('activateAscending'),\n ]\n\n if (!beingSorted) {\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n }\n\n if (isDesc) {\n ariaSort = 'descending'\n ariaLabel = [\n $t('sortDescending'),\n $t(this.options.mustSort ? 'activateAscending' : 'activateNone'),\n ]\n } else {\n ariaSort = 'ascending'\n ariaLabel = [\n $t('sortAscending'),\n $t('activateDescending'),\n ]\n }\n\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n },\n genHeader (header: DataTableHeader) {\n const data: Required> = {\n attrs: {\n role: 'columnheader',\n scope: 'col',\n 'aria-label': header.text || '',\n },\n style: {\n width: convertToUnit(header.width),\n minWidth: convertToUnit(header.width),\n },\n class: [\n `text-${header.align || 'start'}`,\n ...wrapInArray(header.class),\n header.divider && 'v-data-table__divider',\n ],\n on: {},\n }\n const children = []\n\n if (header.value === 'data-table-select' && !this.singleSelect) {\n return this.$createElement('th', data, [this.genSelectAll()])\n }\n\n children.push(\n this.$scopedSlots.hasOwnProperty(header.value)\n ? this.$scopedSlots[header.value]!({ header })\n : this.$createElement('span', [header.text])\n )\n\n if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) {\n data.on.click = () => this.$emit('sort', header.value)\n\n const sortIndex = this.options.sortBy.findIndex(k => k === header.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n data.class.push('sortable')\n\n const { ariaLabel, ariaSort } = this.getAria(beingSorted, isDesc)\n\n data.attrs['aria-label'] += `${header.text ? ': ' : ''}${ariaLabel}`\n data.attrs['aria-sort'] = ariaSort\n\n if (beingSorted) {\n data.class.push('active')\n data.class.push(isDesc ? 'desc' : 'asc')\n }\n\n if (header.align === 'end') children.unshift(this.genSortIcon())\n else children.push(this.genSortIcon())\n\n if (this.options.multiSort && beingSorted) {\n children.push(this.$createElement('span', { class: 'v-data-table-header__sort-badge' }, [String(sortIndex + 1)]))\n }\n }\n\n if (this.showGroupBy && header.groupable !== false) children.push(this.genGroupByToggle(header))\n\n return this.$createElement('th', data, children)\n },\n },\n\n render (): VNode {\n return this.$createElement('thead', {\n staticClass: 'v-data-table-header',\n }, [\n this.$createElement('tr', this.headers.map(header => this.genHeader(header))),\n ])\n },\n})\n","import { VNodeData } from 'vue'\n\n/**\n * Removes duplicate `@input` listeners when\n * using v-model with functional components\n *\n * @see https://github.com/vuetifyjs/vuetify/issues/4460\n */\nexport default function dedupeModelListeners (data: VNodeData): void {\n if (data.model && data.on && data.on.input) {\n if (Array.isArray(data.on.input)) {\n const i = data.on.input.indexOf(data.model.callback)\n if (i > -1) data.on.input.splice(i, 1)\n } else {\n delete data.on.input\n }\n }\n}\n","import { CreateElement, VNode } from 'vue'\n\nexport default function rebuildFunctionalSlots (slots: { [key: string]: VNode[] | undefined }, h: CreateElement) {\n const children: VNode[] = []\n\n for (const slot in slots) {\n if (slots.hasOwnProperty(slot)) {\n children.push(h('template', { slot }, slots[slot]))\n }\n }\n\n return children\n}\n","// Styles\nimport './VDataTableHeader.sass'\n\n// Components\nimport VDataTableHeaderMobile from './VDataTableHeaderMobile'\nimport VDataTableHeaderDesktop from './VDataTableHeaderDesktop'\n\n// Mixins\nimport header from './mixins/header'\n\n// Utilities\nimport dedupeModelListeners from '../../util/dedupeModelListeners'\nimport mergeData from '../../util/mergeData'\nimport rebuildSlots from '../../util/rebuildFunctionalSlots'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-data-table-header',\n\n functional: true,\n\n props: {\n ...header.options.props,\n mobile: Boolean,\n },\n\n render (h, { props, data, slots }) {\n dedupeModelListeners(data)\n const children = rebuildSlots(slots(), h)\n\n data = mergeData(data, { props })\n\n if (props.mobile) {\n return h(VDataTableHeaderMobile, data, children)\n } else {\n return h(VDataTableHeaderDesktop, data, children)\n }\n },\n})\n","// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DataTableHeader } from 'vuetify/types'\n\n// Utils\nimport { getObjectValueByPath, wrapInArray } from '../../util/helpers'\n\nfunction needsTd (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n !['td', 'th'].includes(slot![0]?.tag!)\n}\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns = props.headers.map((header: DataTableHeader) => {\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(...wrapInArray(scopedSlot({\n item: props.item,\n isMobile: false,\n header,\n index: props.index,\n value,\n })))\n } else if (regularSlot) {\n children.push(...wrapInArray(regularSlot))\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return needsTd(children)\n ? h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\n : children\n })\n\n return h('tr', data, columns)\n },\n})\n","import Vue, { VNode } from 'vue'\n\nexport default Vue.extend({\n name: 'row-group',\n\n functional: true,\n\n props: {\n value: {\n type: Boolean,\n default: true,\n },\n headerClass: {\n type: String,\n default: 'v-row-group__header',\n },\n contentClass: String,\n summaryClass: {\n type: String,\n default: 'v-row-group__summary',\n },\n },\n\n render (h, { slots, props }): VNode {\n const computedSlots = slots()\n const children = []\n\n if (computedSlots['column.header']) {\n children.push(h('tr', {\n staticClass: props.headerClass,\n }, computedSlots['column.header']))\n } else if (computedSlots['row.header']) {\n children.push(...computedSlots['row.header'])\n }\n\n if (computedSlots['row.content'] && props.value) children.push(...computedSlots['row.content'])\n\n if (computedSlots['column.summary']) {\n children.push(h('tr', {\n staticClass: props.summaryClass,\n }, computedSlots['column.summary']))\n } else if (computedSlots['row.summary']) {\n children.push(...computedSlots['row.summary'])\n }\n\n return children as any\n },\n})\n","import './VSimpleTable.sass'\n\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\n\nexport default mixins(Themeable).extend({\n name: 'v-simple-table',\n\n props: {\n dense: Boolean,\n fixedHeader: Boolean,\n height: [Number, String],\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-data-table--dense': this.dense,\n 'v-data-table--fixed-height': !!this.height && !this.fixedHeader,\n 'v-data-table--fixed-header': this.fixedHeader,\n 'v-data-table--has-top': !!this.$slots.top,\n 'v-data-table--has-bottom': !!this.$slots.bottom,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genWrapper () {\n return this.$slots.wrapper || this.$createElement('div', {\n staticClass: 'v-data-table__wrapper',\n style: {\n height: convertToUnit(this.height),\n },\n }, [\n this.$createElement('table', getSlot(this)),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-data-table',\n class: this.classes,\n }, [\n getSlot(this, 'top'),\n this.genWrapper(),\n getSlot(this, 'bottom'),\n ])\n },\n})\n","import Vue, { VNode, PropType } from 'vue'\nimport { getObjectValueByPath } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType,\n hideDefaultHeader: Boolean,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns: VNode[] = props.headers.map((header: DataTableHeader) => {\n const classes = {\n 'v-data-table__mobile-row': true,\n }\n\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: true,\n header,\n index: props.index,\n value,\n }))\n } else if (regularSlot) {\n children.push(regularSlot)\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const mobileRowChildren = [\n h('div', {\n staticClass: 'v-data-table__mobile-row__cell',\n }, children),\n ]\n\n if (header.value !== 'dataTableSelect' && !props.hideDefaultHeader) {\n mobileRowChildren.unshift(\n h('div', {\n staticClass: 'v-data-table__mobile-row__header',\n }, [header.text])\n )\n }\n\n return h('td', { class: classes }, mobileRowChildren)\n })\n\n return h('tr', { ...data, staticClass: 'v-data-table__mobile-table-row' }, columns)\n },\n})\n","import './VDataTable.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DataTableHeader,\n DataTableFilterFunction,\n DataScopeProps,\n DataOptions,\n DataPagination,\n DataTableCompareFunction,\n DataItemsPerPageOption,\n ItemGroup,\n RowClassFunction,\n RowStyleFunction,\n DataTableItemProps,\n DataTableFilterMode,\n} from 'vuetify/types'\n\n// Components\nimport { VData } from '../VData'\nimport { VDataFooter, VDataIterator } from '../VDataIterator'\nimport VBtn from '../VBtn'\nimport VDataTableHeader from './VDataTableHeader'\n// import VVirtualTable from './VVirtualTable'\nimport VIcon from '../VIcon'\nimport Row from './Row'\nimport RowGroup from './RowGroup'\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VSimpleTable from './VSimpleTable'\nimport MobileRow from './MobileRow'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Mouse from '../../mixins/mouse'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, defaultFilter, camelizeObjectKeys, getPropertyFromItem } from '../../util/helpers'\nimport { breaking } from '../../util/console'\nimport { mergeClasses, mergeStyles } from '../../util/mergeData'\n\nfunction filterFn (item: any, search: string | null, filter: DataTableFilterFunction) {\n return (header: DataTableHeader) => {\n const value = getObjectValueByPath(item, header.value)\n return header.filter ? header.filter(value, search, item) : filter(value, search, item)\n }\n}\n\nfunction searchTableItems (\n items: any[],\n search: string | null,\n headersWithCustomFilters: DataTableHeader[],\n headersWithoutCustomFilters: DataTableHeader[],\n customFilter: DataTableFilterFunction,\n filterMode: DataTableFilterMode,\n) {\n search = typeof search === 'string' ? search.trim() : null\n\n if (filterMode === 'union') {\n // If the `search` property is empty and there are no custom filters in use, there is nothing to do.\n if (!(search && headersWithoutCustomFilters.length) && !headersWithCustomFilters.length) return items\n\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n if (headersWithCustomFilters.length && headersWithCustomFilters.every(filterFn(item, search, defaultFilter))) {\n return true\n }\n\n // Otherwise, the `search` property is used to filter columns without a custom filter.\n return (search && headersWithoutCustomFilters.some(filterFn(item, search, customFilter)))\n })\n } else if (filterMode === 'intersection') {\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n // We need to match every filter to be included in the results.\n const matchesColumnFilters = headersWithCustomFilters.every(filterFn(item, search, defaultFilter))\n\n // Headers without custom filters are only filtered by the `search` property if it is defined.\n // We only need a single column to match the search term to be included in the results.\n const matchesSearchTerm = !search || headersWithoutCustomFilters.some(filterFn(item, search, customFilter))\n\n return matchesColumnFilters && matchesSearchTerm\n })\n } else {\n return items\n }\n}\n\n/* @vue/component */\nexport default mixins(\n VDataIterator,\n Loadable,\n Mouse,\n).extend({\n name: 'v-data-table',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => [],\n } as PropValidator,\n showSelect: Boolean,\n checkboxColor: String,\n showExpand: Boolean,\n showGroupBy: Boolean,\n // TODO: Fix\n // virtualRows: Boolean,\n height: [Number, String],\n hideDefaultHeader: Boolean,\n caption: String,\n dense: Boolean,\n headerProps: Object,\n calculateWidths: Boolean,\n fixedHeader: Boolean,\n headersLength: Number,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n customFilter: {\n type: Function,\n default: defaultFilter,\n } as PropValidator,\n filterMode: {\n type: String,\n default: 'intersection',\n } as PropValidator,\n itemClass: {\n type: [String, Function],\n default: () => '',\n } as PropValidator,\n itemStyle: {\n type: [String, Function],\n default: () => '',\n } as PropValidator,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n },\n\n data () {\n return {\n internalGroupBy: [] as string[],\n openCache: {} as { [key: string]: boolean },\n widths: [] as number[],\n }\n },\n\n computed: {\n computedHeaders (): DataTableHeader[] {\n if (!this.headers) return []\n const headers = this.headers.filter(h => h.value === undefined || !this.internalGroupBy.find(v => v === h.value))\n const defaultHeader = { text: '', sortable: false, width: '1px' }\n\n if (this.showSelect) {\n const index = headers.findIndex(h => h.value === 'data-table-select')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-select' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n if (this.showExpand) {\n const index = headers.findIndex(h => h.value === 'data-table-expand')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-expand' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n return headers\n },\n colspanAttrs (): object | undefined {\n return this.isMobile ? undefined : {\n colspan: this.headersLength || this.computedHeaders.length,\n }\n },\n columnSorters (): Record {\n return this.computedHeaders.reduce>((acc, header) => {\n if (header.sort) acc[header.value] = header.sort\n return acc\n }, {})\n },\n headersWithCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n headersWithoutCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => !header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n sanitizedHeaderProps (): Record {\n return camelizeObjectKeys(this.headerProps)\n },\n computedItemsPerPage (): number {\n const itemsPerPage = this.options && this.options.itemsPerPage ? this.options.itemsPerPage : this.itemsPerPage\n const itemsPerPageOptions: DataItemsPerPageOption[] | undefined = this.sanitizedFooterProps.itemsPerPageOptions\n\n if (\n itemsPerPageOptions &&\n !itemsPerPageOptions.find(item => typeof item === 'number' ? item === itemsPerPage : item.value === itemsPerPage)\n ) {\n const firstOption = itemsPerPageOptions[0]\n return typeof firstOption === 'object' ? firstOption.value : firstOption\n }\n\n return itemsPerPage\n },\n groupByText (): string {\n return this.headers?.find(header => header.value === this.internalGroupBy?.[0])?.text ?? ''\n },\n },\n\n created () {\n const breakingProps = [\n ['sort-icon', 'header-props.sort-icon'],\n ['hide-headers', 'hide-default-header'],\n ['select-all', 'show-select'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n mounted () {\n // if ((!this.sortBy || !this.sortBy.length) && (!this.options.sortBy || !this.options.sortBy.length)) {\n // const firstSortable = this.headers.find(h => !('sortable' in h) || !!h.sortable)\n // if (firstSortable) this.updateOptions({ sortBy: [firstSortable.value], sortDesc: [false] })\n // }\n\n if (this.calculateWidths) {\n window.addEventListener('resize', this.calcWidths)\n this.calcWidths()\n }\n },\n\n beforeDestroy () {\n if (this.calculateWidths) {\n window.removeEventListener('resize', this.calcWidths)\n }\n },\n\n methods: {\n calcWidths () {\n this.widths = Array.from(this.$el.querySelectorAll('th')).map(e => e.clientWidth)\n },\n customFilterWithColumns (items: any[], search: string) {\n return searchTableItems(\n items,\n search,\n this.headersWithCustomFilters,\n this.headersWithoutCustomFilters,\n this.customFilter,\n this.filterMode\n )\n },\n customSortWithHeaders (items: any[], sortBy: string[], sortDesc: boolean[], locale: string) {\n return this.customSort(items, sortBy, sortDesc, locale, this.columnSorters)\n },\n createItemProps (item: any, index: number): DataTableItemProps {\n const data = {\n ...VDataIterator.options.methods.createItemProps.call(this, item, index),\n headers: this.computedHeaders,\n }\n\n return {\n ...data,\n attrs: {\n class: {\n 'v-data-table__selected': data.isSelected,\n },\n },\n on: {\n ...this.getDefaultMouseEventHandlers(':row', () => data, true),\n // TODO: the first argument should be the event, and the second argument should be data,\n // but this is a breaking change so it's for v3\n click: (event: MouseEvent) => this.$emit('click:row', item, data, event),\n },\n }\n },\n genCaption (props: DataScopeProps) {\n if (this.caption) return [this.$createElement('caption', [this.caption])]\n\n return getSlot(this, 'caption', props, true)\n },\n genColgroup (props: DataScopeProps) {\n return this.$createElement('colgroup', this.computedHeaders.map(header => {\n return this.$createElement('col', {\n class: {\n divider: header.divider,\n },\n })\n }))\n },\n genLoading () {\n const th = this.$createElement('th', {\n staticClass: 'column',\n attrs: this.colspanAttrs,\n }, [this.genProgress()])\n\n const tr = this.$createElement('tr', {\n staticClass: 'v-data-table__progress',\n }, [th])\n\n return this.$createElement('thead', [tr])\n },\n genHeaders (props: DataScopeProps) {\n const data = {\n props: {\n ...this.sanitizedHeaderProps,\n headers: this.computedHeaders,\n options: props.options,\n mobile: this.isMobile,\n showGroupBy: this.showGroupBy,\n checkboxColor: this.checkboxColor,\n someItems: this.someItems,\n everyItem: this.everyItem,\n singleSelect: this.singleSelect,\n disableSort: this.disableSort,\n },\n on: {\n sort: props.sort,\n group: props.group,\n 'toggle-select-all': this.toggleSelectAll,\n },\n }\n\n // TODO: rename to 'head'? (thead, tbody, tfoot)\n const children: VNodeChildrenArrayContents = [getSlot(this, 'header', {\n ...data,\n isMobile: this.isMobile,\n })]\n\n if (!this.hideDefaultHeader) {\n const scopedSlots = getPrefixedScopedSlots('header.', this.$scopedSlots)\n children.push(this.$createElement(VDataTableHeader, {\n ...data,\n scopedSlots,\n }))\n }\n\n if (this.loading) children.push(this.genLoading())\n\n return children\n },\n genEmptyWrapper (content: VNodeChildrenArrayContents) {\n return this.$createElement('tr', {\n staticClass: 'v-data-table__empty-wrapper',\n }, [\n this.$createElement('td', {\n attrs: this.colspanAttrs,\n }, content),\n ])\n },\n genItems (items: any[], props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n return props.groupedItems\n ? this.genGroupedRows(props.groupedItems, props)\n : this.genRows(items, props)\n },\n genGroupedRows (groupedItems: ItemGroup[], props: DataScopeProps) {\n return groupedItems.map(group => {\n if (!this.openCache.hasOwnProperty(group.name)) this.$set(this.openCache, group.name, true)\n\n if (this.$scopedSlots.group) {\n return this.$scopedSlots.group({\n group: group.name,\n options: props.options,\n isMobile: this.isMobile,\n items: group.items,\n headers: this.computedHeaders,\n })\n } else {\n return this.genDefaultGroupedRow(group.name, group.items, props)\n }\n })\n },\n genDefaultGroupedRow (group: string, items: any[], props: DataScopeProps) {\n const isOpen = !!this.openCache[group]\n const children: VNodeChildren = [\n this.$createElement('template', { slot: 'row.content' }, this.genRows(items, props)),\n ]\n const toggleFn = () => this.$set(this.openCache, group, !this.openCache[group])\n const removeFn = () => props.updateOptions({ groupBy: [], groupDesc: [] })\n\n if (this.$scopedSlots['group.header']) {\n children.unshift(this.$createElement('template', { slot: 'column.header' }, [\n this.$scopedSlots['group.header']!({\n group,\n groupBy: props.options.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n remove: removeFn,\n }),\n ]))\n } else {\n const toggle = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: toggleFn,\n },\n }, [this.$createElement(VIcon, [isOpen ? '$minus' : '$plus'])])\n\n const remove = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: removeFn,\n },\n }, [this.$createElement(VIcon, ['$close'])])\n\n const column = this.$createElement('td', {\n staticClass: 'text-start',\n attrs: this.colspanAttrs,\n }, [toggle, `${this.groupByText}: ${group}`, remove])\n\n children.unshift(this.$createElement('template', { slot: 'column.header' }, [column]))\n }\n\n if (this.$scopedSlots['group.summary']) {\n children.push(this.$createElement('template', { slot: 'column.summary' }, [\n this.$scopedSlots['group.summary']!({\n group,\n groupBy: props.options.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n }),\n ]))\n }\n\n return this.$createElement(RowGroup, {\n key: group,\n props: {\n value: isOpen,\n },\n }, children)\n },\n genRows (items: any[], props: DataScopeProps) {\n return this.$scopedSlots.item ? this.genScopedRows(items, props) : this.genDefaultRows(items, props)\n },\n genScopedRows (items: any[], props: DataScopeProps) {\n const rows = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n rows.push(this.$scopedSlots.item!({\n ...this.createItemProps(item, i),\n isMobile: this.isMobile,\n }))\n\n if (this.isExpanded(item)) {\n rows.push(this.$scopedSlots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n index: i,\n item,\n }))\n }\n }\n\n return rows\n },\n genDefaultRows (items: any[], props: DataScopeProps) {\n return this.$scopedSlots['expanded-item']\n ? items.map((item, index) => this.genDefaultExpandedRow(item, index))\n : items.map((item, index) => this.genDefaultSimpleRow(item, index))\n },\n genDefaultExpandedRow (item: any, index: number): VNode {\n const isExpanded = this.isExpanded(item)\n const classes = {\n 'v-data-table__expanded v-data-table__expanded__row': isExpanded,\n }\n const headerRow = this.genDefaultSimpleRow(item, index, classes)\n const expandedRow = this.$createElement('tr', {\n staticClass: 'v-data-table__expanded v-data-table__expanded__content',\n }, [this.$scopedSlots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n item,\n })])\n\n return this.$createElement(RowGroup, {\n props: {\n value: isExpanded,\n },\n }, [\n this.$createElement('template', { slot: 'row.header' }, [headerRow]),\n this.$createElement('template', { slot: 'row.content' }, [expandedRow]),\n ])\n },\n genDefaultSimpleRow (item: any, index: number, classes: Record = {}): VNode {\n const scopedSlots = getPrefixedScopedSlots('item.', this.$scopedSlots)\n\n const data = this.createItemProps(item, index)\n\n if (this.showSelect) {\n const slot = scopedSlots['data-table-select']\n scopedSlots['data-table-select'] = slot ? () => slot({\n ...data,\n isMobile: this.isMobile,\n }) : () => this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n props: {\n value: data.isSelected,\n disabled: !this.isSelectable(item),\n color: this.checkboxColor ?? '',\n },\n on: {\n input: (val: boolean) => data.select(val),\n },\n })\n }\n\n if (this.showExpand) {\n const slot = scopedSlots['data-table-expand']\n scopedSlots['data-table-expand'] = slot ? () => slot(data) : () => this.$createElement(VIcon, {\n staticClass: 'v-data-table__expand-icon',\n class: {\n 'v-data-table__expand-icon--active': data.isExpanded,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n data.expand(!data.isExpanded)\n },\n },\n }, [this.expandIcon])\n }\n\n return this.$createElement(this.isMobile ? MobileRow : Row, {\n key: getObjectValueByPath(item, this.itemKey),\n class: mergeClasses(\n { ...classes, 'v-data-table__selected': data.isSelected },\n getPropertyFromItem(item, this.itemClass)\n ),\n style: mergeStyles({}, getPropertyFromItem(item, this.itemStyle)),\n props: {\n headers: this.computedHeaders,\n hideDefaultHeader: this.hideDefaultHeader,\n index,\n item,\n rtl: this.$vuetify.rtl,\n },\n scopedSlots,\n on: data.on,\n })\n },\n genBody (props: DataScopeProps): VNode | string | VNodeChildren {\n const data = {\n ...props,\n expand: this.expand,\n headers: this.computedHeaders,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n isSelected: this.isSelected,\n select: this.select,\n }\n\n if (this.$scopedSlots.body) {\n return this.$scopedSlots.body!(data)\n }\n\n return this.$createElement('tbody', [\n getSlot(this, 'body.prepend', data, true),\n this.genItems(props.items, props),\n getSlot(this, 'body.append', data, true),\n ])\n },\n genFoot (props: DataScopeProps): VNode[] | undefined {\n return this.$scopedSlots.foot?.(props)\n },\n genFooters (props: DataScopeProps) {\n const data = {\n props: {\n options: props.options,\n pagination: props.pagination,\n itemsPerPageText: '$vuetify.dataTable.itemsPerPageText',\n ...this.sanitizedFooterProps,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n widths: this.widths,\n headers: this.computedHeaders,\n }\n\n const children: VNodeChildren = [\n getSlot(this, 'footer', data, true),\n ]\n\n if (!this.hideDefaultFooter) {\n children.push(this.$createElement(VDataFooter, {\n ...data,\n scopedSlots: getPrefixedScopedSlots('footer.', this.$scopedSlots),\n }))\n }\n\n return children\n },\n genDefaultScopedSlot (props: DataScopeProps): VNode {\n const simpleProps = {\n height: this.height,\n fixedHeader: this.fixedHeader,\n dense: this.dense,\n }\n\n // if (this.virtualRows) {\n // return this.$createElement(VVirtualTable, {\n // props: Object.assign(simpleProps, {\n // items: props.items,\n // height: this.height,\n // rowHeight: this.dense ? 24 : 48,\n // headerHeight: this.dense ? 32 : 48,\n // // TODO: expose rest of props from virtual table?\n // }),\n // scopedSlots: {\n // items: ({ items }) => this.genItems(items, props) as any,\n // },\n // }, [\n // this.proxySlot('body.before', [this.genCaption(props), this.genHeaders(props)]),\n // this.proxySlot('bottom', this.genFooters(props)),\n // ])\n // }\n\n return this.$createElement(VSimpleTable, {\n props: simpleProps,\n class: {\n 'v-data-table--mobile': this.isMobile,\n 'v-data-table--selectable': this.showSelect,\n },\n }, [\n this.proxySlot('top', getSlot(this, 'top', {\n ...props,\n isMobile: this.isMobile,\n }, true)),\n this.genCaption(props),\n this.genColgroup(props),\n this.genHeaders(props),\n this.genBody(props),\n this.genFoot(props),\n this.proxySlot('bottom', this.genFooters(props)),\n ])\n },\n proxySlot (slot: string, content: VNodeChildren) {\n return this.$createElement('template', { slot }, content)\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: {\n ...this.$props,\n customFilter: this.customFilterWithColumns,\n customSort: this.customSortWithHeaders,\n itemsPerPage: this.computedItemsPerPage,\n },\n on: {\n 'update:options': (v: DataOptions, old: DataOptions) => {\n this.internalGroupBy = v.groupBy || []\n !deepEqual(v, old) && this.$emit('update:options', v)\n },\n 'update:page': (v: number) => this.$emit('update:page', v),\n 'update:items-per-page': (v: number) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: string | string[]) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: boolean | boolean[]) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: string | string[]) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: boolean | boolean[]) => this.$emit('update:group-desc', v),\n pagination: (v: DataPagination, old: DataPagination) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'page-count': (v: number) => this.$emit('page-count', v),\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot,\n },\n })\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('div',{staticClass:\"text-center mt-8 mb-4\"},[_c('h1',{staticClass:\"text-h6\"},[_vm._v(\" Variáveis para as mensagens \")])]),(_vm.loading)?_c('div',{staticClass:\"ml-loading\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}})],1):_vm._e(),(_vm.error)?_c('v-alert',{attrs:{\"type\":\"errorr\",\"prominent\":\"\",\"text\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"grow\"},[_vm._v(\" Não foi possível carregar as variáveis. \")]),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.carregar()}}},[_vm._v(\" Tentar novamente \")])],1)],1)],1):_vm._e(),(!_vm.loading && !_vm.error)?_c('v-card',{staticClass:\"variaveis\"},[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.messageVariable.objects,\"items-per-page\":1000,\"hide-default-footer\":\"\",\"no-data-text\":\"Nenhuma variável encontrada\"},scopedSlots:_vm._u([{key:\"item.description\",fn:function({ item }){return [_c('span',{domProps:{\"innerHTML\":_vm._s(item.description)}})]}}],null,false,4168777969)})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageVariable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageVariable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MessageVariable.vue?vue&type=template&id=4dbe44e4&scoped=true\"\nimport script from \"./MessageVariable.vue?vue&type=script&lang=js\"\nexport * from \"./MessageVariable.vue?vue&type=script&lang=js\"\nimport style0 from \"./MessageVariable.vue?vue&type=style&index=0&id=4dbe44e4&prod&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 \"4dbe44e4\",\n null\n \n)\n\nexport default component.exports","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { getSlot, keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : getSlot(this, 'progress') || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageVariable.vue?vue&type=style&index=0&id=4dbe44e4&prod&scoped=true&lang=scss\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.loadingError)?_c('div',{staticClass:\"pl-6\",staticStyle:{\"margin-left\":\"calc(50vh)\",\"margin-top\":\"50px\",\"margin-right\":\"calc(50vh)\"}},[_c('v-alert',{attrs:{\"type\":\"error\",\"text\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"grow\"},[_vm._v(\" Não foi possível carregar a lista de histórico. \")]),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.getCreditorRuleHistory()}}},[_vm._v(\" Tentar novamente \")])],1)],1)],1)],1):_vm._e(),(!_vm.loadingError)?_c('v-data-table',{staticClass:\"mx-auto elevation-1\",staticStyle:{\"max-width\":\"900px\"},attrs:{\"headers\":_vm.headers,\"items\":_vm.creditorRuleHistoryList.objects,\"items-per-page\":10,\"loading\":_vm.loading,\"loading-text\":\"Carregando...\",\"sort-by\":\"updated_at\",\"sort-desc\":true},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('h3',[_vm._v(\"Nenhum histórico de régua encontrado...\")])]},proxy:true},{key:`item.updated_at`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"moment\")(item.updated_at,\"lll\"))+\" \")]}},{key:`item.menu`,fn:function({ item }){return [_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"rounded\":\"\",\"color\":\"primary\",\"dark\":\"\",\"to\":{name: 'Rule', params: { id: item.rule_id }}}},on),[_vm._v(\" Ver a versão \")])]}}],null,true)})]}}],null,true)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./History.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./History.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./History.vue?vue&type=template&id=0335f69e&scoped=true\"\nimport script from \"./History.vue?vue&type=script&lang=js\"\nexport * from \"./History.vue?vue&type=script&lang=js\"\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 \"0335f69e\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=style&index=0&id=e6a8574c&prod&scoped=true&lang=scss\"","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'localable',\n\n props: {\n locale: String,\n },\n\n computed: {\n currentLocale (): string {\n return this.locale || this.$vuetify.lang.current\n },\n },\n})\n","import { render, staticRenderFns } from \"./Error.vue?vue&type=template&id=d436967e&scoped=true\"\nimport script from \"./Error.vue?vue&type=script&lang=js\"\nexport * from \"./Error.vue?vue&type=script&lang=js\"\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 \"d436967e\",\n null\n \n)\n\nexport default component.exports","import { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\nimport { isLeapYear } from '../../../util/dateTimeUtils'\n\nexport const PARSE_REGEX = /^(\\d{4})-(\\d{1,2})(-(\\d{1,2}))?([^\\d]+(\\d{1,2}))?(:(\\d{1,2}))?(:(\\d{1,2}))?$/\nexport const PARSE_TIME = /(\\d\\d?)(:(\\d\\d?)|)(:(\\d\\d?)|)/\n\nexport const DAYS_IN_MONTH: number[] = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_LEAP: number[] = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_MIN = 28\nexport const DAYS_IN_MONTH_MAX = 31\nexport const MONTH_MAX = 12\nexport const MONTH_MIN = 1\nexport const DAY_MIN = 1\nexport const DAYS_IN_WEEK = 7\nexport const MINUTES_IN_HOUR = 60\nexport const MINUTE_MAX = 59\nexport const MINUTES_IN_DAY = 24 * 60\nexport const HOURS_IN_DAY = 24\nexport const HOUR_MAX = 23\nexport const FIRST_HOUR = 0\nexport const OFFSET_YEAR = 10000\nexport const OFFSET_MONTH = 100\nexport const OFFSET_HOUR = 100\nexport const OFFSET_TIME = 10000\n\ntype CalendarTimestampFormatOptions = (timestamp: CalendarTimestamp, short: boolean) => object\ntype CalendarTimestampOperation = (timestamp: CalendarTimestamp) => CalendarTimestamp\nexport type VTime = number | string | {\n hour: number\n minute: number\n}\n\nexport type VTimestampInput = number | string | Date;\n\nexport function getStartOfWeek (timestamp: CalendarTimestamp, weekdays: number[], today?: CalendarTimestamp): CalendarTimestamp {\n const start = copyTimestamp(timestamp)\n findWeekday(start, weekdays[0], prevDay)\n updateFormatted(start)\n if (today) {\n updateRelative(start, today, start.hasTime)\n }\n\n return start\n}\n\nexport function getEndOfWeek (timestamp: CalendarTimestamp, weekdays: number[], today?: CalendarTimestamp): CalendarTimestamp {\n const end = copyTimestamp(timestamp)\n findWeekday(end, weekdays[weekdays.length - 1])\n updateFormatted(end)\n if (today) {\n updateRelative(end, today, end.hasTime)\n }\n\n return end\n}\n\nexport function getStartOfMonth (timestamp: CalendarTimestamp): CalendarTimestamp {\n const start = copyTimestamp(timestamp)\n start.day = DAY_MIN\n updateWeekday(start)\n updateFormatted(start)\n\n return start\n}\n\nexport function getEndOfMonth (timestamp: CalendarTimestamp): CalendarTimestamp {\n const end = copyTimestamp(timestamp)\n end.day = daysInMonth(end.year, end.month)\n updateWeekday(end)\n updateFormatted(end)\n\n return end\n}\n\nexport function validateTime (input: any): input is VTime {\n return (typeof input === 'number' && isFinite(input)) ||\n (!!PARSE_TIME.exec(input)) ||\n (typeof input === 'object' && isFinite(input.hour) && isFinite(input.minute))\n}\n\nexport function parseTime (input: any): number | false {\n if (typeof input === 'number') {\n // when a number is given, it's minutes since 12:00am\n return input\n } else if (typeof input === 'string') {\n // when a string is given, it's a hh:mm:ss format where seconds are optional\n const parts = PARSE_TIME.exec(input)\n if (!parts) {\n return false\n }\n\n return parseInt(parts[1]) * 60 + parseInt(parts[3] || 0)\n } else if (typeof input === 'object') {\n // when an object is given, it must have hour and minute\n if (typeof input.hour !== 'number' || typeof input.minute !== 'number') {\n return false\n }\n\n return input.hour * 60 + input.minute\n } else {\n // unsupported type\n return false\n }\n}\n\nexport function validateTimestamp (input: any): input is VTimestampInput {\n return (typeof input === 'number' && isFinite(input)) ||\n (typeof input === 'string' && !!PARSE_REGEX.exec(input)) ||\n (input instanceof Date)\n}\n\nexport function parseTimestamp (input: VTimestampInput, required?: false, now?: CalendarTimestamp): CalendarTimestamp | null\nexport function parseTimestamp (input: VTimestampInput, required: true, now?: CalendarTimestamp): CalendarTimestamp\nexport function parseTimestamp (input: VTimestampInput, required = false, now?: CalendarTimestamp): CalendarTimestamp | null {\n if (typeof input === 'number' && isFinite(input)) {\n input = new Date(input)\n }\n\n if (input instanceof Date) {\n const date: CalendarTimestamp = parseDate(input)\n\n if (now) {\n updateRelative(date, now, date.hasTime)\n }\n\n return date\n }\n\n if (typeof input !== 'string') {\n if (required) {\n throw new Error(`${input} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`)\n }\n return null\n }\n\n // YYYY-MM-DD hh:mm:ss\n const parts = PARSE_REGEX.exec(input)\n\n if (!parts) {\n if (required) {\n throw new Error(`${input} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`)\n }\n\n return null\n }\n\n const timestamp: CalendarTimestamp = {\n date: input,\n time: '',\n year: parseInt(parts[1]),\n month: parseInt(parts[2]),\n day: parseInt(parts[4]) || 1,\n hour: parseInt(parts[6]) || 0,\n minute: parseInt(parts[8]) || 0,\n weekday: 0,\n hasDay: !!parts[4],\n hasTime: !!(parts[6] && parts[8]),\n past: false,\n present: false,\n future: false,\n }\n\n updateWeekday(timestamp)\n updateFormatted(timestamp)\n\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n\n return timestamp\n}\n\nexport function parseDate (date: Date): CalendarTimestamp {\n return updateFormatted({\n date: '',\n time: '',\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate(),\n weekday: date.getDay(),\n hour: date.getHours(),\n minute: date.getMinutes(),\n hasDay: true,\n hasTime: true,\n past: false,\n present: true,\n future: false,\n })\n}\n\nexport function getDayIdentifier (timestamp: { year: number, month: number, day: number }): number {\n return timestamp.year * OFFSET_YEAR + timestamp.month * OFFSET_MONTH + timestamp.day\n}\n\nexport function getTimeIdentifier (timestamp: { hour: number, minute: number }): number {\n return timestamp.hour * OFFSET_HOUR + timestamp.minute\n}\n\nexport function getTimestampIdentifier (timestamp: CalendarTimestamp): number {\n return getDayIdentifier(timestamp) * OFFSET_TIME + getTimeIdentifier(timestamp)\n}\n\nexport function updateRelative (timestamp: CalendarTimestamp, now: CalendarTimestamp, time = false): CalendarTimestamp {\n let a = getDayIdentifier(now)\n let b = getDayIdentifier(timestamp)\n let present = a === b\n\n if (timestamp.hasTime && time && present) {\n a = getTimeIdentifier(now)\n b = getTimeIdentifier(timestamp)\n present = a === b\n }\n\n timestamp.past = b < a\n timestamp.present = present\n timestamp.future = b > a\n\n return timestamp\n}\n\nexport function isTimedless (input: VTimestampInput): input is (Date | number) {\n return (input instanceof Date) || (typeof input === 'number' && isFinite(input))\n}\n\nexport function updateHasTime (timestamp: CalendarTimestamp, hasTime: boolean, now?: CalendarTimestamp): CalendarTimestamp {\n if (timestamp.hasTime !== hasTime) {\n timestamp.hasTime = hasTime\n if (!hasTime) {\n timestamp.hour = HOUR_MAX\n timestamp.minute = MINUTE_MAX\n timestamp.time = getTime(timestamp)\n }\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n }\n\n return timestamp\n}\n\nexport function updateMinutes (timestamp: CalendarTimestamp, minutes: number, now?: CalendarTimestamp): CalendarTimestamp {\n timestamp.hasTime = true\n timestamp.hour = Math.floor(minutes / MINUTES_IN_HOUR)\n timestamp.minute = minutes % MINUTES_IN_HOUR\n timestamp.time = getTime(timestamp)\n if (now) {\n updateRelative(timestamp, now, true)\n }\n\n return timestamp\n}\n\nexport function updateWeekday (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.weekday = getWeekday(timestamp)\n\n return timestamp\n}\n\nexport function updateFormatted (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.time = getTime(timestamp)\n timestamp.date = getDate(timestamp)\n\n return timestamp\n}\n\nexport function getWeekday (timestamp: CalendarTimestamp): number {\n if (timestamp.hasDay) {\n const _ = Math.floor\n const k = timestamp.day\n const m = ((timestamp.month + 9) % MONTH_MAX) + 1\n const C = _(timestamp.year / 100)\n const Y = (timestamp.year % 100) - (timestamp.month <= 2 ? 1 : 0)\n\n return (((k + _(2.6 * m - 0.2) - 2 * C + Y + _(Y / 4) + _(C / 4)) % 7) + 7) % 7\n }\n\n return timestamp.weekday\n}\n\nexport function daysInMonth (year: number, month: number) {\n return isLeapYear(year) ? DAYS_IN_MONTH_LEAP[month] : DAYS_IN_MONTH[month]\n}\n\nexport function copyTimestamp (timestamp: CalendarTimestamp): CalendarTimestamp {\n const { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future } = timestamp\n\n return { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future }\n}\n\nexport function padNumber (x: number, length: number): string {\n let padded = String(x)\n while (padded.length < length) {\n padded = '0' + padded\n }\n\n return padded\n}\n\nexport function getDate (timestamp: CalendarTimestamp): string {\n let str = `${padNumber(timestamp.year, 4)}-${padNumber(timestamp.month, 2)}`\n\n if (timestamp.hasDay) str += `-${padNumber(timestamp.day, 2)}`\n\n return str\n}\n\nexport function getTime (timestamp: CalendarTimestamp): string {\n if (!timestamp.hasTime) {\n return ''\n }\n\n return `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n}\n\nexport function nextMinutes (timestamp: CalendarTimestamp, minutes: number): CalendarTimestamp {\n timestamp.minute += minutes\n while (timestamp.minute > MINUTES_IN_HOUR) {\n timestamp.minute -= MINUTES_IN_HOUR\n timestamp.hour++\n if (timestamp.hour >= HOURS_IN_DAY) {\n nextDay(timestamp)\n timestamp.hour = FIRST_HOUR\n }\n }\n\n return timestamp\n}\n\nexport function nextDay (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.day++\n timestamp.weekday = (timestamp.weekday + 1) % DAYS_IN_WEEK\n if (timestamp.day > DAYS_IN_MONTH_MIN && timestamp.day > daysInMonth(timestamp.year, timestamp.month)) {\n timestamp.day = DAY_MIN\n timestamp.month++\n if (timestamp.month > MONTH_MAX) {\n timestamp.month = MONTH_MIN\n timestamp.year++\n }\n }\n\n return timestamp\n}\n\nexport function prevDay (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.day--\n timestamp.weekday = (timestamp.weekday + 6) % DAYS_IN_WEEK\n if (timestamp.day < DAY_MIN) {\n timestamp.month--\n if (timestamp.month < MONTH_MIN) {\n timestamp.year--\n timestamp.month = MONTH_MAX\n }\n timestamp.day = daysInMonth(timestamp.year, timestamp.month)\n }\n\n return timestamp\n}\n\nexport function relativeDays (\n timestamp: CalendarTimestamp,\n mover: CalendarTimestampOperation = nextDay,\n days = 1\n): CalendarTimestamp {\n while (--days >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function diffMinutes (min: CalendarTimestamp, max: CalendarTimestamp) {\n const Y = (max.year - min.year) * 525600\n const M = (max.month - min.month) * 43800\n const D = (max.day - min.day) * 1440\n const h = (max.hour - min.hour) * 60\n const m = (max.minute - min.minute)\n\n return Y + M + D + h + m\n}\n\nexport function findWeekday (timestamp: CalendarTimestamp, weekday: number,\n mover: CalendarTimestampOperation = nextDay, maxDays = 6): CalendarTimestamp {\n while (timestamp.weekday !== weekday && --maxDays >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function getWeekdaySkips (weekdays: number[]): number[] {\n const skips: number[] = [1, 1, 1, 1, 1, 1, 1]\n const filled: number[] = [0, 0, 0, 0, 0, 0, 0]\n for (let i = 0; i < weekdays.length; i++) {\n filled[weekdays[i]] = 1\n }\n for (let k = 0; k < DAYS_IN_WEEK; k++) {\n let skip = 1\n for (let j = 1; j < DAYS_IN_WEEK; j++) {\n const next = (k + j) % DAYS_IN_WEEK\n if (filled[next]) {\n break\n }\n skip++\n }\n skips[k] = filled[k] * skip\n }\n\n return skips\n}\n\nexport function timestampToDate (timestamp: CalendarTimestamp): Date {\n const time = `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n const date = timestamp.date\n\n return new Date(`${date}T${time}:00+00:00`)\n}\n\nexport function createDayList (\n start: CalendarTimestamp,\n end: CalendarTimestamp,\n now: CalendarTimestamp,\n weekdaySkips: number[],\n max = 42,\n min = 0\n): CalendarTimestamp[] {\n const stop = getDayIdentifier(end)\n const days: CalendarTimestamp[] = []\n let current = copyTimestamp(start)\n let currentIdentifier = 0\n let stopped = currentIdentifier === stop\n\n if (stop < getDayIdentifier(start)) {\n throw new Error('End date is earlier than start date.')\n }\n\n while ((!stopped || days.length < min) && days.length < max) {\n currentIdentifier = getDayIdentifier(current)\n stopped = stopped || currentIdentifier === stop\n if (weekdaySkips[current.weekday] === 0) {\n current = nextDay(current)\n continue\n }\n const day = copyTimestamp(current)\n updateFormatted(day)\n updateRelative(day, now)\n days.push(day)\n current = relativeDays(current, nextDay, weekdaySkips[current.weekday])\n }\n\n if (!days.length) throw new Error('No dates found using specified start date, end date, and weekdays.')\n\n return days\n}\n\nexport function createIntervalList (timestamp: CalendarTimestamp, first: number,\n minutes: number, count: number, now?: CalendarTimestamp): CalendarTimestamp[] {\n const intervals: CalendarTimestamp[] = []\n\n for (let i = 0; i < count; i++) {\n const mins = first + (i * minutes)\n const int = copyTimestamp(timestamp)\n intervals.push(updateMinutes(int, mins, now))\n }\n\n return intervals\n}\n\nexport function createNativeLocaleFormatter (locale: string, getOptions: CalendarTimestampFormatOptions): CalendarFormatter {\n const emptyFormatter: CalendarFormatter = (_t, _s) => ''\n\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {\n return emptyFormatter\n }\n\n return (timestamp, short) => {\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, getOptions(timestamp, short))\n\n return intlFormatter.format(timestampToDate(timestamp))\n } catch (e) {\n return ''\n }\n }\n}\n","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, getData: MouseHandler, eventFirst = false): MouseEventsMap {\n const listeners = Object.keys(this.$listeners)\n .filter(key => key.endsWith(suffix))\n .reduce((acc, key) => {\n acc[key] = { event: key.slice(0, -suffix.length) }\n return acc\n }, {} as MouseEvents)\n\n return this.getMouseEventHandlers({\n ...listeners,\n ['contextmenu' + suffix]: { event: 'contextmenu', prevent: true, result: false },\n }, getData, eventFirst)\n },\n getMouseEventHandlers (events: MouseEvents, getData: MouseHandler, eventFirst = false): 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\n // Due to TouchEvent target always returns the element that is first placed\n // Even if touch point has since moved outside the interactive area of that element\n // Ref: https://developer.mozilla.org/en-US/docs/Web/API/Touch/target\n // This block of code aims to make sure touchEvent is always dispatched from the element that is being pointed at\n if (e && 'touches' in e) {\n const classSeparator = ' '\n\n const eventTargetClasses = (e.currentTarget as HTMLElement)?.className.split(classSeparator)\n const currentTargets = document.elementsFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY)\n\n // Get \"the same kind\" current hovering target by checking\n // If element has the same class of initial touch start element (which has touch event listener registered)\n const currentTarget = currentTargets.find(t => t.className.split(classSeparator).some(c => eventTargetClasses.includes(c)))\n\n if (currentTarget &&\n !(e.target as HTMLElement)?.isSameNode(currentTarget)\n ) {\n currentTarget.dispatchEvent(new TouchEvent(e.type, {\n changedTouches: e.changedTouches as unknown as Touch[],\n targetTouches: e.targetTouches as unknown as Touch[],\n touches: e.touches as unknown as Touch[],\n }))\n return\n }\n }\n\n // TODO: VCalendar emits the calendar event as the first argument,\n // but it really should be the native event instead so modifiers can be used\n if (eventFirst) {\n this.$emit(event, e, getData(e))\n } else {\n this.$emit(event, getData(e), e)\n }\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","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":""}