{"version":3,"sources":["webpack:///./node_modules/vuelidate/lib/params.js","webpack:///./node_modules/vuelidate/lib/validators/integer.js","webpack:///./node_modules/vuelidate/lib/index.js","webpack:///./node_modules/vuelidate/lib/validators/maxLength.js","webpack:///./src/view/components/DashboardInternalBreadcrumbs.vue?997c","webpack:///src/view/components/DashboardInternalBreadcrumbs.vue","webpack:///./src/view/components/DashboardInternalBreadcrumbs.vue?3073","webpack:///./src/view/components/DashboardInternalBreadcrumbs.vue?3ddd","webpack:///./node_modules/vuelidate/lib/validators/and.js","webpack:///./src/view/pages/customerView/Requests.vue?e52d","webpack:///src/view/pages/customerView/Requests.vue","webpack:///./src/view/pages/customerView/Requests.vue?8d18","webpack:///./src/view/pages/customerView/Requests.vue","webpack:///./node_modules/vuelidate/lib/validators/alphaNum.js","webpack:///./node_modules/vuelidate/lib/validators/numeric.js","webpack:///./node_modules/vuelidate/lib/validators/maxValue.js","webpack:///./node_modules/vuelidate/lib/validators/email.js","webpack:///./node_modules/vuelidate/lib/validators/minLength.js","webpack:///./node_modules/vuelidate/lib/validators/alpha.js","webpack:///./node_modules/vuelidate/lib/validators/not.js","webpack:///./node_modules/vuelidate/lib/validators/url.js","webpack:///./node_modules/vuelidate/lib/validators/common.js","webpack:///./node_modules/vuelidate/lib/withParams.js","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:///./node_modules/vuelidate/lib/validators/macAddress.js","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///./node_modules/vuelidate/lib/validators/requiredIf.js","webpack:///./node_modules/vuelidate/lib/validators/index.js","webpack:///./node_modules/vuelidate/lib/validators/sameAs.js","webpack:///./node_modules/vuelidate/lib/validators/decimal.js","webpack:///./node_modules/vuelidate/lib/validators/ipAddress.js","webpack:///./node_modules/vuelidate/lib/withParamsBrowser.js","webpack:///./node_modules/vuelidate/lib/validators/or.js","webpack:///./node_modules/vuelidate/lib/validators/required.js","webpack:///./node_modules/vuelidate/lib/validators/requiredUnless.js","webpack:///./src/view/components/DashboardInternalBreadcrumbs.vue?cd9b","webpack:///./node_modules/vuelidate/lib/validators/minValue.js","webpack:///./node_modules/vuelidate/lib/validators/between.js","webpack:///./src/view/components/customerView/CommunityInfo.vue?1aff","webpack:///./src/view/components/customerView/CommunitySentiment.vue?08e3","webpack:///src/view/components/customerView/CommunitySentiment.vue","webpack:///./src/view/components/customerView/CommunitySentiment.vue?2777","webpack:///../../../src/components/VSlider/VSlider.ts","webpack:///./src/view/components/customerView/CommunitySentiment.vue","webpack:///./src/view/components/customerView/AccountManagerInfo.vue?cea2","webpack:///src/view/components/customerView/AccountManagerInfo.vue","webpack:///./src/view/components/customerView/AccountManagerInfo.vue?9c23","webpack:///./src/view/components/customerView/AccountManagerInfo.vue","webpack:///./src/view/components/customerView/ServiceCenterBox.vue?1373","webpack:///src/view/components/customerView/ServiceCenterBox.vue","webpack:///./src/view/components/customerView/ServiceCenterBox.vue?cf2b","webpack:///./src/view/components/customerView/ServiceCenterBox.vue","webpack:///src/view/components/customerView/CommunityInfo.vue","webpack:///./src/view/components/customerView/CommunityInfo.vue?0dab","webpack:///./src/view/components/customerView/CommunityInfo.vue?8790","webpack:///./node_modules/core-js/modules/es.string.trim-start.js","webpack:///./src/view/components/customerView/CommunityInfo.vue?4d6e","webpack:///./node_modules/vuelidate/lib/vval.js"],"names":["_objectSpread","target","i","arguments","length","source","ownKeys","Object","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","enumerable","forEach","key","_defineProperty","obj","value","defineProperty","configurable","writable","_typeof","Symbol","iterator","constructor","prototype","exports","pushParams","popParams","withParams","_setTarget","stack","x","push","lastTarget","newTarget","pop","Array","isArray","$sub","addParams","params","Error","withParamsDirect","validator","withParamsClosure","add","_len","args","_key","apply","this","closure","_len2","_key2","paramsOrClosure","maybeValidator","undefined","default","_common","_default","regex","Vuelidate","get","_params","validationMixin","_vval","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","TypeError","iter","toString","call","from","arr2","NIL","buildFromKeys","fn","keyFn","reduce","build","isFunction","val","isObject","isPromise","object","then","getPath","ctx","path","fallback","split","__isVuelidateAsyncVm","makePendingAsyncVm","Vue","promise","asyncVm","data","p","v","error","validationGetters","$invalid","_this","proxy","nestedKeys","some","nested","refProxy","ruleKeys","rule","$dirty","_this2","dirty","every","$anyDirty","_this3","$error","$pending","$anyError","_this4","_this5","getRef","$params","_this6","vals","validations","setDirtyRecursive","newState","method","validationMethods","$touch","$reset","$flattenParams","isNested","childParams","j","unshift","name","getterNames","methodNames","_cachedComponent","getComponent","VBase","extend","computed","refs","oldVval","children","patchChildren","c","vm","beforeCreate","beforeDestroy","methods","getModel","lazyModel","prop","model","getModelKey","hasIter","ValidationRule","lazyParentModel","rootModel","runRule","parent","rawOutput","output","rawParams","run","_this7","isArrayDependant","__ob__","arrayDep","dep","depend","_indirectWatcher","Watcher","lazy","_lastModel","evaluate","teardown","destroyed","Validation","_this8","k","_this9","keyDefs","getterDefs","methodDefs","iterDefs","$iter","defineProperties","$model","set","_this10","map","renderNested","renderRule","Boolean","GroupValidation","EachValidation","tracker","_this11","trackBy","$trackBy","getModelLazy","_this12","_this13","def","usedTracks","track","hasOwnProperty","h","root","refVals","$v","join","_cachedVue","getVue","rootVm","super","validateModel","_getComponent","$options","_vuelidate","options","$destroy","mixin","type","max","req","len","render","_vm","_h","$createElement","_c","_self","staticClass","class","widthFluid","container","_l","breadcrumb","attrs","route","_v","_s","title","_e","staticRenderFns","props","breadcrumbs","String","layoutConfig","subheaderClasses","style","classes","component","validators","valid","loading","communityInfo","on","showRelatedCommunity","customerId","callback","$$v","tab","expression","isResident","dueCount","openCount","inProcessCount","onHoldCount","closedCount","getExportFile","search","headers","records","isLoading","$event","scopedSlots","_u","ref","item","getServiceRequestTypeName","requestType","comments","Date","targetCompletionDate","formatDate","dateCreated","permissions","serviceRequest","canDelete","stopPropagation","deleteDialog","$set","deleteRequest","mixins","components","CommunityInfo","InternalBreadcrumbs","text","align","sortable","Number","watch","getPermissions","permissionsObj","$router","$store","setStartingAfter","userInvoices","startingAfter","id","endingBefore","setEndingBefore","createBreadcrumb","dispatch","dateFormatter","formatDateUs","capitalizeFirstLetter","stringFormatter","isPropertyManager","sort","sortBy","VBtn","VCard","VCardActions","VCardText","VCardTitle","VCol","VContainer","VDataTable","VDialog","VIcon","VRow","VSkeletonLoader","VSpacer","VTab","VTabItem","VTabs","VTabsItems","VTextField","test","emailRegex","min","urlRegex","_withParams","_interopRequireDefault","__esModule","isNaN","getTime","_","reference","parentVm","expr","BUILD","inheritAttrs","items","sortDesc","customSort","mustSort","multiSort","page","itemsPerPage","groupBy","groupDesc","customGroup","locale","disableSort","disablePagination","disableFiltering","customFilter","serverItemsLength","internalOptions","sortDiff","groupDiff","itemsLength","filteredItems","pageCount","Math","pageStart","pageStop","isGrouped","pagination","computedItems","sortItems","paginateItems","groupedItems","groupItems","scopedProps","sortArray","group","updateOptions","originalItemsLength","computedOptions","handler","deep","immediate","$emit","toggle","by","oldBy","desc","oldDesc","byIndex","s","$scopedSlots","required","itemsPerPageOptions","prevIcon","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","option","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","genDataItemsPerPageOption","$vuetify","lang","t","genItemsPerPageSelect","computedIPPO","ippo","VSelect","disabled","hideDetails","auto","minWidth","input","genPaginationInfo","genIcon","icon","click","label","genIcons","before","after","rtl","VData","itemKey","singleSelect","expanded","mobileBreakpoint","singleExpand","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","selectableKey","selection","expansion","internalCurrentItems","everyItem","selectableItems","someItems","sanitizedFooterProps","created","breakingProps","original","replacement","removedProps","toggleSelectAll","isSelectable","isSelected","select","emit","old","isExpanded","expand","createItemProps","index","isMobile","genEmptyWrapper","genEmpty","$slots","noData","filteredItemsLength","noResults","genItems","empty","genFooter","genDefaultScopedSlot","outerProps","directives","ripple","sortIcon","showGroupBy","genSelectAll","indeterminate","VSimpleCheckbox","genSortIcon","size","sortByText","genSortChip","sortIndex","findIndex","beingSorted","isDesc","active","asc","VChip","e","genSortSelect","multiple","menuProps","closeOnContentClick","change","header","find","width","sortHeaders","th","tr","genGroupByToggle","getAria","$t","ariaSort","ariaLabel","genHeader","role","scope","slots","slot","functional","mobile","dedupeModelListeners","mergeData","VDataTableHeaderMobile","VDataTableHeaderDesktop","computedSlots","columns","slotName","scopedSlot","regularSlot","textAlign","divider","headerClass","contentClass","summaryClass","dense","fixedHeader","height","themeClasses","genWrapper","wrapper","hideDefaultHeader","mobileRowChildren","filterFn","searchTableItems","matchesColumnFilters","headersWithCustomFilters","matchesSearchTerm","headersWithoutCustomFilters","showSelect","showExpand","caption","headerProps","calculateWidths","headersLength","expandIcon","itemClass","loaderHeight","internalGroupBy","openCache","widths","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","acc","sanitizedHeaderProps","computedItemsPerPage","firstOption","mounted","window","calcWidths","$el","querySelectorAll","customFilterWithColumns","customSortWithHeaders","VDataIterator","genCaption","genColgroup","genLoading","genHeaders","genGroupedRows","genRows","genDefaultGroupedRow","isOpen","toggleFn","removeFn","remove","small","column","RowGroup","genScopedRows","genDefaultRows","rows","genDefaultExpandedRow","headerRow","genDefaultSimpleRow","expandedRow","MobileRow","contextmenu","event","dblclick","genBody","body","genFooters","simpleProps","proxySlot","separator","parts","match","hexValid","hex","toLowerCase","tag","fluid","baseMixins","autoGrow","noResize","rowHeight","parseFloat","parseInt","noResizeHandle","lazyValue","$nextTick","setTimeout","calculateInputHeight","$refs","minHeight","genInput","onInput","onKeyDown","isFocused","_alpha","_alphaNum","_numeric","_between","_email","_ipAddress","_macAddress","_maxLength","_minLength","_required","_requiredIf","_requiredUnless","_sameAs","_url","_or","_and","_not","_minValue","_maxValue","_integer","_decimal","helpers","_interopRequireWildcard","newObj","equalTo","eq","nibbles","nibbleValid","nibble","numeric","global","fakeWithParams","vuelidate","trim","temperature","humidity","weatherLoading","weatherCode","aspireId","relatedCommunityItems","relatedCommunity","userInfo","serviceStatusLoading","staticStyle","getServiceStatusIconPath","serviceStatus","status","rescheduledText","href","navigate","isExactActive","requestsLoading","serviceRequestsNumbers","open","inProcess","closed","canCreate","documents","canView","message","isFilled","isHalfFilled","sentiment","communitySentiment","canEdit","onSentimentChange","onStart","sentimentDialog","sentimentReasonErrors","sentimentReason","messageProcessing","sendMessage","cancelSentimentChange","isNew","subject","attachments","isActionRequired","recipients","startValue","saveSentiment","endValue","newValue","errors","ClickOutside","inverseLabel","step","thumbColor","thumbLabel","thumbSize","tickLabels","ticks","tickSize","trackColor","trackFillColor","vertical","app","oldValue","keyPressed","isActive","noClick","VInput","internalValue","roundValue","trackTransition","minValue","maxValue","stepNumeric","inputWidth","trackFillStyles","startDir","endDir","valueDir","start","end","isDisabled","transition","trackStyles","showTicks","numTicks","showThumbLabel","computedTrackColor","validationState","computedTrackFillColor","computedThumbColor","parsed","beforeMount","document","console","genDefaultSlot","slider","genSlider","onBlur","mousedown","onSliderMouseDown","genChildren","genThumbContainer","readonly","tabindex","$attrs","genTrackContainer","setBackgroundColor","genSteps","range","direction","offsetDirection","filled","thumbLabelContent","genThumbLabelContent","genThumbLabel","setTextColor","getThumbContainerStyles","focus","blur","keydown","keyup","touchstart","onDrag","transform","origin","genThumb","mouseUpOptions","passive","capture","mouseMoveOptions","onSliderMouseUp","onMouseMove","parseMouseMove","parseKeyDown","onKeyUp","onSliderClick","thumb","onFocus","trackLength","clickOffset","clickPos","isInsideTrack","trackStart","up","pageup","pagedown","home","left","right","down","includes","steps","increase","multiplier","trimmedStep","decimals","offset","VRating","VSlider","VTextarea","accountManager","photo","fileUrl","fullName","initials","showMessageAccountManagerArea","showPhone","phone","VAvatar","ninetyDayPlan","orangeReport","proposal","invoice","manageUsers","canAccess","CommunityHeader","CommunitySentiment","ServiceCenterBox","AccountManagerInfo","alertDate","formattedAlertDate","VImg","VProgressCircular","$","$trimStart","forcedStringTrimMethod","FORCED","trimStart","proto","forced","trimLeft","isUndef","isDef","sameVval","vval","createVm","Vm","updateVval","createKeyToOldIdx","beginIdx","endIdx","updateChildren","oldCh","newCh","oldKeyToIdx","idxInOld","elmToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVval","oldEndVval","newEndIdx","newStartVval","newEndVval","patchVval","addVvals","removeVvals","vvals","startIdx","ch"],"mappings":"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","file":"js/chunk-3cf1ec88.a90c5ab5.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.pushParams = pushParams;\nexports.popParams = popParams;\nexports.withParams = withParams;\nexports._setTarget = exports.target = void 0;\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar stack = [];\nvar target = null;\nexports.target = target;\n\nvar _setTarget = function _setTarget(x) {\n exports.target = target = x;\n};\n\nexports._setTarget = _setTarget;\n\nfunction pushParams() {\n if (target !== null) {\n stack.push(target);\n }\n\n exports.target = target = {};\n}\n\nfunction popParams() {\n var lastTarget = target;\n var newTarget = exports.target = target = stack.pop() || null;\n\n if (newTarget) {\n if (!Array.isArray(newTarget.$sub)) {\n newTarget.$sub = [];\n }\n\n newTarget.$sub.push(lastTarget);\n }\n\n return lastTarget;\n}\n\nfunction addParams(params) {\n if (_typeof(params) === 'object' && !Array.isArray(params)) {\n exports.target = target = _objectSpread({}, target, params);\n } else {\n throw new Error('params must be an object');\n }\n}\n\nfunction withParamsDirect(params, validator) {\n return withParamsClosure(function (add) {\n return function () {\n add(params);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return validator.apply(this, args);\n };\n });\n}\n\nfunction withParamsClosure(closure) {\n var validator = closure(addParams);\n return function () {\n pushParams();\n\n try {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validator.apply(this, args);\n } finally {\n popParams();\n }\n };\n}\n\nfunction withParams(paramsOrClosure, maybeValidator) {\n if (_typeof(paramsOrClosure) === 'object' && maybeValidator !== undefined) {\n return withParamsDirect(paramsOrClosure, maybeValidator);\n }\n\n return withParamsClosure(paramsOrClosure);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('integer', /(^[0-9]*$)|(^-[0-9]+$)/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Vuelidate = Vuelidate;\nObject.defineProperty(exports, \"withParams\", {\n enumerable: true,\n get: function get() {\n return _params.withParams;\n }\n});\nexports.default = exports.validationMixin = void 0;\n\nvar _vval = require(\"./vval\");\n\nvar _params = require(\"./params\");\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar NIL = function NIL() {\n return null;\n};\n\nvar buildFromKeys = function buildFromKeys(keys, fn, keyFn) {\n return keys.reduce(function (build, key) {\n build[keyFn ? keyFn(key) : key] = fn(key);\n return build;\n }, {});\n};\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n\nfunction isObject(val) {\n return val !== null && (_typeof(val) === 'object' || isFunction(val));\n}\n\nfunction isPromise(object) {\n return isObject(object) && isFunction(object.then);\n}\n\nvar getPath = function getPath(ctx, obj, path, fallback) {\n if (typeof path === 'function') {\n return path.call(ctx, obj, fallback);\n }\n\n path = Array.isArray(path) ? path : path.split('.');\n\n for (var i = 0; i < path.length; i++) {\n if (obj && _typeof(obj) === 'object') {\n obj = obj[path[i]];\n } else {\n return fallback;\n }\n }\n\n return typeof obj === 'undefined' ? fallback : obj;\n};\n\nvar __isVuelidateAsyncVm = '__isVuelidateAsyncVm';\n\nfunction makePendingAsyncVm(Vue, promise) {\n var asyncVm = new Vue({\n data: {\n p: true,\n v: false\n }\n });\n promise.then(function (value) {\n asyncVm.p = false;\n asyncVm.v = value;\n }, function (error) {\n asyncVm.p = false;\n asyncVm.v = false;\n throw error;\n });\n asyncVm[__isVuelidateAsyncVm] = true;\n return asyncVm;\n}\n\nvar validationGetters = {\n $invalid: function $invalid() {\n var _this = this;\n\n var proxy = this.proxy;\n return this.nestedKeys.some(function (nested) {\n return _this.refProxy(nested).$invalid;\n }) || this.ruleKeys.some(function (rule) {\n return !proxy[rule];\n });\n },\n $dirty: function $dirty() {\n var _this2 = this;\n\n if (this.dirty) {\n return true;\n }\n\n if (this.nestedKeys.length === 0) {\n return false;\n }\n\n return this.nestedKeys.every(function (key) {\n return _this2.refProxy(key).$dirty;\n });\n },\n $anyDirty: function $anyDirty() {\n var _this3 = this;\n\n if (this.dirty) {\n return true;\n }\n\n if (this.nestedKeys.length === 0) {\n return false;\n }\n\n return this.nestedKeys.some(function (key) {\n return _this3.refProxy(key).$anyDirty;\n });\n },\n $error: function $error() {\n return this.$dirty && !this.$pending && this.$invalid;\n },\n $anyError: function $anyError() {\n var _this4 = this;\n\n if (this.$error) return true;\n return this.nestedKeys.some(function (key) {\n return _this4.refProxy(key).$anyError;\n });\n },\n $pending: function $pending() {\n var _this5 = this;\n\n return this.ruleKeys.some(function (key) {\n return _this5.getRef(key).$pending;\n }) || this.nestedKeys.some(function (key) {\n return _this5.refProxy(key).$pending;\n });\n },\n $params: function $params() {\n var _this6 = this;\n\n var vals = this.validations;\n return _objectSpread({}, buildFromKeys(this.nestedKeys, function (key) {\n return vals[key] && vals[key].$params || null;\n }), buildFromKeys(this.ruleKeys, function (key) {\n return _this6.getRef(key).$params;\n }));\n }\n};\n\nfunction setDirtyRecursive(newState) {\n this.dirty = newState;\n var proxy = this.proxy;\n var method = newState ? '$touch' : '$reset';\n this.nestedKeys.forEach(function (key) {\n proxy[key][method]();\n });\n}\n\nvar validationMethods = {\n $touch: function $touch() {\n setDirtyRecursive.call(this, true);\n },\n $reset: function $reset() {\n setDirtyRecursive.call(this, false);\n },\n $flattenParams: function $flattenParams() {\n var proxy = this.proxy;\n var params = [];\n\n for (var key in this.$params) {\n if (this.isNested(key)) {\n var childParams = proxy[key].$flattenParams();\n\n for (var j = 0; j < childParams.length; j++) {\n childParams[j].path.unshift(key);\n }\n\n params = params.concat(childParams);\n } else {\n params.push({\n path: [],\n name: key,\n params: this.$params[key]\n });\n }\n }\n\n return params;\n }\n};\nvar getterNames = Object.keys(validationGetters);\nvar methodNames = Object.keys(validationMethods);\nvar _cachedComponent = null;\n\nvar getComponent = function getComponent(Vue) {\n if (_cachedComponent) {\n return _cachedComponent;\n }\n\n var VBase = Vue.extend({\n computed: {\n refs: function refs() {\n var oldVval = this._vval;\n this._vval = this.children;\n (0, _vval.patchChildren)(oldVval, this._vval);\n var refs = {};\n\n this._vval.forEach(function (c) {\n refs[c.key] = c.vm;\n });\n\n return refs;\n }\n },\n beforeCreate: function beforeCreate() {\n this._vval = null;\n },\n beforeDestroy: function beforeDestroy() {\n if (this._vval) {\n (0, _vval.patchChildren)(this._vval);\n this._vval = null;\n }\n },\n methods: {\n getModel: function getModel() {\n return this.lazyModel ? this.lazyModel(this.prop) : this.model;\n },\n getModelKey: function getModelKey(key) {\n var model = this.getModel();\n\n if (model) {\n return model[key];\n }\n },\n hasIter: function hasIter() {\n return false;\n }\n }\n });\n var ValidationRule = VBase.extend({\n data: function data() {\n return {\n rule: null,\n lazyModel: null,\n model: null,\n lazyParentModel: null,\n rootModel: null\n };\n },\n methods: {\n runRule: function runRule(parent) {\n var model = this.getModel();\n (0, _params.pushParams)();\n var rawOutput = this.rule.call(this.rootModel, model, parent);\n var output = isPromise(rawOutput) ? makePendingAsyncVm(Vue, rawOutput) : rawOutput;\n var rawParams = (0, _params.popParams)();\n var params = rawParams && rawParams.$sub ? rawParams.$sub.length > 1 ? rawParams : rawParams.$sub[0] : null;\n return {\n output: output,\n params: params\n };\n }\n },\n computed: {\n run: function run() {\n var _this7 = this;\n\n var parent = this.lazyParentModel();\n\n var isArrayDependant = Array.isArray(parent) && parent.__ob__;\n\n if (isArrayDependant) {\n var arrayDep = parent.__ob__.dep;\n arrayDep.depend();\n var target = arrayDep.constructor.target;\n\n if (!this._indirectWatcher) {\n var Watcher = target.constructor;\n this._indirectWatcher = new Watcher(this, function () {\n return _this7.runRule(parent);\n }, null, {\n lazy: true\n });\n }\n\n var model = this.getModel();\n\n if (!this._indirectWatcher.dirty && this._lastModel === model) {\n this._indirectWatcher.depend();\n\n return target.value;\n }\n\n this._lastModel = model;\n\n this._indirectWatcher.evaluate();\n\n this._indirectWatcher.depend();\n } else if (this._indirectWatcher) {\n this._indirectWatcher.teardown();\n\n this._indirectWatcher = null;\n }\n\n return this._indirectWatcher ? this._indirectWatcher.value : this.runRule(parent);\n },\n $params: function $params() {\n return this.run.params;\n },\n proxy: function proxy() {\n var output = this.run.output;\n\n if (output[__isVuelidateAsyncVm]) {\n return !!output.v;\n }\n\n return !!output;\n },\n $pending: function $pending() {\n var output = this.run.output;\n\n if (output[__isVuelidateAsyncVm]) {\n return output.p;\n }\n\n return false;\n }\n },\n destroyed: function destroyed() {\n if (this._indirectWatcher) {\n this._indirectWatcher.teardown();\n\n this._indirectWatcher = null;\n }\n }\n });\n var Validation = VBase.extend({\n data: function data() {\n return {\n dirty: false,\n validations: null,\n lazyModel: null,\n model: null,\n prop: null,\n lazyParentModel: null,\n rootModel: null\n };\n },\n methods: _objectSpread({}, validationMethods, {\n refProxy: function refProxy(key) {\n return this.getRef(key).proxy;\n },\n getRef: function getRef(key) {\n return this.refs[key];\n },\n isNested: function isNested(key) {\n return typeof this.validations[key] !== 'function';\n }\n }),\n computed: _objectSpread({}, validationGetters, {\n nestedKeys: function nestedKeys() {\n return this.keys.filter(this.isNested);\n },\n ruleKeys: function ruleKeys() {\n var _this8 = this;\n\n return this.keys.filter(function (k) {\n return !_this8.isNested(k);\n });\n },\n keys: function keys() {\n return Object.keys(this.validations).filter(function (k) {\n return k !== '$params';\n });\n },\n proxy: function proxy() {\n var _this9 = this;\n\n var keyDefs = buildFromKeys(this.keys, function (key) {\n return {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _this9.refProxy(key);\n }\n };\n });\n var getterDefs = buildFromKeys(getterNames, function (key) {\n return {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _this9[key];\n }\n };\n });\n var methodDefs = buildFromKeys(methodNames, function (key) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return _this9[key];\n }\n };\n });\n var iterDefs = this.hasIter() ? {\n $iter: {\n enumerable: true,\n value: Object.defineProperties({}, _objectSpread({}, keyDefs))\n }\n } : {};\n return Object.defineProperties({}, _objectSpread({}, keyDefs, iterDefs, {\n $model: {\n enumerable: true,\n get: function get() {\n var parent = _this9.lazyParentModel();\n\n if (parent != null) {\n return parent[_this9.prop];\n } else {\n return null;\n }\n },\n set: function set(value) {\n var parent = _this9.lazyParentModel();\n\n if (parent != null) {\n parent[_this9.prop] = value;\n\n _this9.$touch();\n }\n }\n }\n }, getterDefs, methodDefs));\n },\n children: function children() {\n var _this10 = this;\n\n return _toConsumableArray(this.nestedKeys.map(function (key) {\n return renderNested(_this10, key);\n })).concat(_toConsumableArray(this.ruleKeys.map(function (key) {\n return renderRule(_this10, key);\n }))).filter(Boolean);\n }\n })\n });\n var GroupValidation = Validation.extend({\n methods: {\n isNested: function isNested(key) {\n return typeof this.validations[key]() !== 'undefined';\n },\n getRef: function getRef(key) {\n var vm = this;\n return {\n get proxy() {\n return vm.validations[key]() || false;\n }\n\n };\n }\n }\n });\n var EachValidation = Validation.extend({\n computed: {\n keys: function keys() {\n var model = this.getModel();\n\n if (isObject(model)) {\n return Object.keys(model);\n } else {\n return [];\n }\n },\n tracker: function tracker() {\n var _this11 = this;\n\n var trackBy = this.validations.$trackBy;\n return trackBy ? function (key) {\n return \"\".concat(getPath(_this11.rootModel, _this11.getModelKey(key), trackBy));\n } : function (x) {\n return \"\".concat(x);\n };\n },\n getModelLazy: function getModelLazy() {\n var _this12 = this;\n\n return function () {\n return _this12.getModel();\n };\n },\n children: function children() {\n var _this13 = this;\n\n var def = this.validations;\n var model = this.getModel();\n\n var validations = _objectSpread({}, def);\n\n delete validations['$trackBy'];\n var usedTracks = {};\n return this.keys.map(function (key) {\n var track = _this13.tracker(key);\n\n if (usedTracks.hasOwnProperty(track)) {\n return null;\n }\n\n usedTracks[track] = true;\n return (0, _vval.h)(Validation, track, {\n validations: validations,\n prop: key,\n lazyParentModel: _this13.getModelLazy,\n model: model[key],\n rootModel: _this13.rootModel\n });\n }).filter(Boolean);\n }\n },\n methods: {\n isNested: function isNested() {\n return true;\n },\n getRef: function getRef(key) {\n return this.refs[this.tracker(key)];\n },\n hasIter: function hasIter() {\n return true;\n }\n }\n });\n\n var renderNested = function renderNested(vm, key) {\n if (key === '$each') {\n return (0, _vval.h)(EachValidation, key, {\n validations: vm.validations[key],\n lazyParentModel: vm.lazyParentModel,\n prop: key,\n lazyModel: vm.getModel,\n rootModel: vm.rootModel\n });\n }\n\n var validations = vm.validations[key];\n\n if (Array.isArray(validations)) {\n var root = vm.rootModel;\n var refVals = buildFromKeys(validations, function (path) {\n return function () {\n return getPath(root, root.$v, path);\n };\n }, function (v) {\n return Array.isArray(v) ? v.join('.') : v;\n });\n return (0, _vval.h)(GroupValidation, key, {\n validations: refVals,\n lazyParentModel: NIL,\n prop: key,\n lazyModel: NIL,\n rootModel: root\n });\n }\n\n return (0, _vval.h)(Validation, key, {\n validations: validations,\n lazyParentModel: vm.getModel,\n prop: key,\n lazyModel: vm.getModelKey,\n rootModel: vm.rootModel\n });\n };\n\n var renderRule = function renderRule(vm, key) {\n return (0, _vval.h)(ValidationRule, key, {\n rule: vm.validations[key],\n lazyParentModel: vm.lazyParentModel,\n lazyModel: vm.getModel,\n rootModel: vm.rootModel\n });\n };\n\n _cachedComponent = {\n VBase: VBase,\n Validation: Validation\n };\n return _cachedComponent;\n};\n\nvar _cachedVue = null;\n\nfunction getVue(rootVm) {\n if (_cachedVue) return _cachedVue;\n var Vue = rootVm.constructor;\n\n while (Vue.super) {\n Vue = Vue.super;\n }\n\n _cachedVue = Vue;\n return Vue;\n}\n\nvar validateModel = function validateModel(model, validations) {\n var Vue = getVue(model);\n\n var _getComponent = getComponent(Vue),\n Validation = _getComponent.Validation,\n VBase = _getComponent.VBase;\n\n var root = new VBase({\n computed: {\n children: function children() {\n var vals = typeof validations === 'function' ? validations.call(model) : validations;\n return [(0, _vval.h)(Validation, '$v', {\n validations: vals,\n lazyParentModel: NIL,\n prop: '$v',\n model: model,\n rootModel: model\n })];\n }\n }\n });\n return root;\n};\n\nvar validationMixin = {\n data: function data() {\n var vals = this.$options.validations;\n\n if (vals) {\n this._vuelidate = validateModel(this, vals);\n }\n\n return {};\n },\n beforeCreate: function beforeCreate() {\n var options = this.$options;\n var vals = options.validations;\n if (!vals) return;\n if (!options.computed) options.computed = {};\n if (options.computed.$v) return;\n\n options.computed.$v = function () {\n return this._vuelidate ? this._vuelidate.refs.$v.proxy : null;\n };\n },\n beforeDestroy: function beforeDestroy() {\n if (this._vuelidate) {\n this._vuelidate.$destroy();\n\n this._vuelidate = null;\n }\n }\n};\nexports.validationMixin = validationMixin;\n\nfunction Vuelidate(Vue) {\n Vue.mixin(validationMixin);\n}\n\nvar _default = Vuelidate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(length) {\n return (0, _common.withParams)({\n type: 'maxLength',\n max: length\n }, function (value) {\n return !(0, _common.req)(value) || (0, _common.len)(value) <= length;\n });\n};\n\nexports.default = _default;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex align-items-center justify-content-between flex-wrap flex-sm-nowrap container\",class:{ 'container-fluid': _vm.widthFluid, container: !_vm.widthFluid }},[_c('div',{staticClass:\"d-flex align-items-center flex-wrap mr-1\"},[_c('ul',{staticClass:\"breadcrumb breadcrumb-transparent breadcrumb-dot font-weight-bold p-0 my-2\"},[_vm._l((_vm.breadcrumbs),function(breadcrumb,i){return [_c('li',{key:(\"internal-\" + i + \"-\" + (breadcrumb.id)),staticClass:\"breadcrumb-item\"},[(breadcrumb.route)?_c('router-link',{key:i,staticClass:\"text-muted\",attrs:{\"to\":breadcrumb.route}},[_vm._v(\" \"+_vm._s(breadcrumb.title)+\" \")]):_vm._e(),(!breadcrumb.route)?_c('span',{key:i,staticClass:\"text-muted orange-color\"},[_vm._v(\" \"+_vm._s(breadcrumb.title)+\" \")]):_vm._e()],1)]})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div\r\n class=\"d-flex align-items-center justify-content-between flex-wrap flex-sm-nowrap container\"\r\n v-bind:class=\"{ 'container-fluid': widthFluid, container: !widthFluid }\"\r\n >\r\n <div class=\"d-flex align-items-center flex-wrap mr-1\">\r\n <!-- <h5 class=\"text-dark font-weight-bold my-2 mr-5\">\r\n {{ title }}\r\n </h5> -->\r\n <ul\r\n class=\"breadcrumb breadcrumb-transparent breadcrumb-dot font-weight-bold p-0 my-2\"\r\n >\r\n <!-- <li class=\"breadcrumb-item\">\r\n <router-link :to=\"'/'\" class=\"subheader-breadcrumbs-home\">\r\n <i class=\"flaticon2-shelter text-muted icon-1x\"></i>\r\n </router-link>\r\n </li> -->\r\n\r\n <template v-for=\"(breadcrumb, i) in breadcrumbs\">\r\n <li class=\"breadcrumb-item\" :key=\"`internal-${i}-${breadcrumb.id}`\">\r\n <router-link\r\n v-if=\"breadcrumb.route\"\r\n :key=\"i\"\r\n :to=\"breadcrumb.route\"\r\n class=\"text-muted\"\r\n >\r\n {{ breadcrumb.title }}\r\n </router-link>\r\n <span\r\n class=\"text-muted orange-color\"\r\n :key=\"i\"\r\n v-if=\"!breadcrumb.route\"\r\n >\r\n {{ breadcrumb.title }}\r\n </span>\r\n </li>\r\n </template>\r\n </ul>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\">\r\n.custom-v-dropdown {\r\n &.dropdown-toggle {\r\n padding: 0;\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n\r\n &.dropdown-toggle-no-caret {\r\n &:after {\r\n content: none;\r\n }\r\n }\r\n }\r\n\r\n &.dropdown-menu {\r\n margin: 0;\r\n padding: 0;\r\n outline: none;\r\n .b-dropdown-text {\r\n padding: 0;\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { mapGetters } from \"vuex\";\r\n\r\nexport default {\r\n name: \"InternalBreadcrumbs\",\r\n props: {\r\n breadcrumbs: Array,\r\n title: String\r\n },\r\n computed: {\r\n ...mapGetters([\"layoutConfig\"]),\r\n\r\n /**\r\n * Check if subheader width is fluid\r\n */\r\n widthFluid() {\r\n return this.layoutConfig(\"subheader.width\") === \"fluid\";\r\n },\r\n\r\n subheaderClasses() {\r\n const classes = [];\r\n const style = this.layoutConfig(\"subheader.style\");\r\n if (style) {\r\n classes.push(style);\r\n\r\n if (style === \"solid\") {\r\n classes.push(\"bg-white\");\r\n }\r\n\r\n if (this.layoutConfig(\"subheader.fixed\")) {\r\n classes.push(\"border-top\");\r\n }\r\n }\r\n return classes.join(\" \");\r\n }\r\n }\r\n};\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardInternalBreadcrumbs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardInternalBreadcrumbs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DashboardInternalBreadcrumbs.vue?vue&type=template&id=142d1822&\"\nimport script from \"./DashboardInternalBreadcrumbs.vue?vue&type=script&lang=js&\"\nexport * from \"./DashboardInternalBreadcrumbs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DashboardInternalBreadcrumbs.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default() {\n for (var _len = arguments.length, validators = new Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n return (0, _common.withParams)({\n type: 'and'\n }, function () {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validators.length > 0 && validators.reduce(function (valid, fn) {\n return valid && fn.apply(_this, args);\n }, true);\n });\n};\n\nexports.default = _default;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-skeleton-loader',{staticClass:\"mx-auto ml-2 mr-2\",attrs:{\"type\":\"card\",\"loading\":_vm.loading}},[_c('CommunityInfo',{attrs:{\"communityInfo\":_vm.communityInfo},on:{\"onRelatedCommunityChanged\":_vm.showRelatedCommunity}}),_c('InternalBreadcrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs}}),_c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-card-title',[_c('span',[_vm._v(\"Requests\")]),_c('router-link',{staticClass:\"link\",attrs:{\"to\":(\"/customerView/\" + _vm.customerId + \"/requests/new\")}},[_c('v-btn',{staticClass:\"ml-5\",attrs:{\"small\":\"\"}},[_vm._v(\"New Request\")])],1)],1),_c('v-card-text',{staticClass:\"mt-3\"},[_c('v-row',[_c('v-col',[_c('v-tabs',{attrs:{\"background-color\":\"transparent\",\"centered\":\"\",\"grow\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[(!_vm.isResident)?_c('v-tab',{attrs:{\"href\":\"#tab-1\"}},[_vm._v(\"Due This Week (\"+_vm._s(_vm.dueCount)+\")\")]):_vm._e(),_c('v-tab',{attrs:{\"href\":\"#tab-2\"}},[_vm._v(\" All Open (\"+_vm._s(_vm.openCount)+\") \")]),_c('v-tab',{attrs:{\"href\":\"#tab-3\"}},[_vm._v(\" In Process (\"+_vm._s(_vm.inProcessCount)+\") \")]),_c('v-tab',{attrs:{\"href\":\"#tab-4\"}},[_vm._v(\" On Hold (\"+_vm._s(_vm.onHoldCount)+\") \")]),_c('v-tab',{attrs:{\"href\":\"#tab-5\"}},[_vm._v(\" Closed (\"+_vm._s(_vm.closedCount)+\") \")])],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((5),function(i){return _c('v-tab-item',{key:i,attrs:{\"value\":'tab-' + i}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[(_vm.isPropertyManager)?_c('v-col',[_c('v-btn',{staticClass:\"orange-bg white--text mt-4\",attrs:{\"small\":\"\"},on:{\"click\":_vm.getExportFile}},[_vm._v(\" Export \")])],1):_vm._e(),_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Search\",\"prepend-inner-icon\":\"mdi-magnify\",\"variant\":\"outlined\",\"hide-details\":\"\",\"single-line\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1)],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.records,\"search\":_vm.search,\"item-key\":\"id\",\"loading\":_vm.isLoading,\"items-per-page\":50,\"footer-props\":{\n 'items-per-page-options': [50, 100, 150, 200, -1]\n },\"options\":_vm.options,\"loading-text\":\"Loading... Please wait\"},on:{\"update:options\":function($event){_vm.options=$event}},scopedSlots:_vm._u([{key:\"item.requestTypeName\",fn:function(ref){\n var item = ref.item;\nreturn [_c('router-link',{staticClass:\"blue-color\",attrs:{\"to\":(\"/customerView/\" + (item.communityId) + \"/requests/\" + (item.id) + \"/update\")}},[_vm._v(\" \"+_vm._s(_vm.getServiceRequestTypeName(item.requestType))+\" \")])]}},{key:\"item.comments\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.comments)+\" \")])]}},{key:\"item.dateCreated\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{style:(new Date(item.targetCompletionDate) < new Date()\n ? 'color: red; font-weight: bold;'\n : '')},[_vm._v(_vm._s(_vm.formatDate(item.dateCreated))+\" \")])]}},{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [(\n _vm.permissions &&\n _vm.permissions.serviceRequest &&\n _vm.permissions.serviceRequest.canDelete\n )?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"text\":\"\",\"icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();item.deleteDialog = true}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1):_vm._e(),_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"290\"},model:{value:(item.deleteDialog),callback:function ($$v) {_vm.$set(item, \"deleteDialog\", $$v)},expression:\"item.deleteDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\" Delete Request \")]),_c('v-card-text',[_vm._v(\"Are you sure you want to delete request: \"),_c('p',[_vm._v(_vm._s(item.title))])]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){item.deleteDialog = false}}},[_vm._v(\" Cancel \")]),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){return _vm.deleteRequest(item)}}},[_vm._v(\" Delete \")])],1)],1)],1)]}}],null,true)})],1)],1)}),1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <v-skeleton-loader class=\"mx-auto ml-2 mr-2\" type=\"card\" :loading=\"loading\">\r\n <!-- <v-container fluid class=\"mb-4\"> -->\r\n <CommunityInfo\r\n :communityInfo=\"communityInfo\"\r\n @onRelatedCommunityChanged=\"showRelatedCommunity\"\r\n />\r\n <InternalBreadcrumbs :breadcrumbs=\"breadcrumbs\" />\r\n <v-card elevation=\"0\">\r\n <v-card-title>\r\n <span>Requests</span>\r\n\r\n <router-link\r\n class=\"link\"\r\n :to=\"`/customerView/${customerId}/requests/new`\"\r\n ><v-btn small class=\"ml-5\">New Request</v-btn></router-link\r\n >\r\n </v-card-title>\r\n <v-card-text class=\"mt-3\">\r\n <!-- Start Requests section -->\r\n <v-row>\r\n <v-col>\r\n <!-- <v-row>\r\n <v-col cols=\"12\" md=\"2\">\r\n <v-select\r\n v-model=\"viewByPriority\"\r\n :items=\"viewByPriorityItems\"\r\n item-text=\"name\"\r\n item-value=\"value\"\r\n label=\"Choose Priority...\"\r\n ></v-select>\r\n </v-col>\r\n </v-row> -->\r\n\r\n <v-tabs\r\n v-model=\"tab\"\r\n background-color=\"transparent\"\r\n centered\r\n grow\r\n >\r\n <v-tab href=\"#tab-1\" v-if=\"!isResident\">Due This Week ({{ dueCount }})</v-tab>\r\n <v-tab href=\"#tab-2\"> All Open ({{ openCount }}) </v-tab>\r\n <v-tab href=\"#tab-3\"> In Process ({{ inProcessCount }}) </v-tab>\r\n <v-tab href=\"#tab-4\"> On Hold ({{ onHoldCount }}) </v-tab>\r\n <v-tab href=\"#tab-5\"> Closed ({{ closedCount }}) </v-tab>\r\n </v-tabs>\r\n\r\n <v-tabs-items v-model=\"tab\">\r\n <v-tab-item v-for=\"i in 5\" :key=\"i\" :value=\"'tab-' + i\">\r\n <v-container fluid>\r\n <v-row>\r\n <v-col v-if=\"isPropertyManager\">\r\n <v-btn\r\n class=\"orange-bg white--text mt-4\"\r\n @click=\"getExportFile\"\r\n small\r\n >\r\n Export\r\n </v-btn></v-col\r\n >\r\n <v-col\r\n ><v-text-field\r\n v-model=\"search\"\r\n label=\"Search\"\r\n prepend-inner-icon=\"mdi-magnify\"\r\n variant=\"outlined\"\r\n hide-details\r\n single-line\r\n ></v-text-field\r\n ></v-col>\r\n </v-row>\r\n\r\n <v-data-table\r\n :headers=\"headers\"\r\n :items=\"records\"\r\n :search=\"search\"\r\n item-key=\"id\"\r\n :loading=\"isLoading\"\r\n :items-per-page=\"50\"\r\n :footer-props=\"{\r\n 'items-per-page-options': [50, 100, 150, 200, -1]\r\n }\"\r\n :options.sync=\"options\"\r\n loading-text=\"Loading... Please wait\"\r\n class=\"elevation-1\"\r\n >\r\n <template #[`item.requestTypeName`]=\"{ item }\">\r\n <router-link\r\n :to=\"\r\n `/customerView/${item.communityId}/requests/${item.id}/update`\r\n \"\r\n class=\"blue-color\"\r\n >\r\n {{ getServiceRequestTypeName(item.requestType) }}\r\n </router-link>\r\n </template>\r\n <template #[`item.comments`]=\"{ item }\">\r\n <span>{{ item.comments }} </span>\r\n </template>\r\n <!-- <template #[`item.location`]=\"{ item }\">\r\n <span>{{ item.location }} </span>\r\n </template> -->\r\n <template #[`item.dateCreated`]=\"{ item }\">\r\n <span\r\n :style=\"\r\n new Date(item.targetCompletionDate) < new Date()\r\n ? 'color: red; font-weight: bold;'\r\n : ''\r\n \"\r\n >{{ formatDate(item.dateCreated) }}\r\n </span>\r\n </template>\r\n <!-- <template #[`item.priorityId`]=\"{ item }\">\r\n <v-tooltip bottom>\r\n <template v-slot:activator=\"{ on, attrs }\">\r\n <v-icon\r\n small\r\n v-bind=\"attrs\"\r\n v-on=\"on\"\r\n :color=\"\r\n item.priority.name === 'Normal'\r\n ? 'green'\r\n : item.priority.name === 'High'\r\n ? 'red'\r\n : 'blue'\r\n \"\r\n >\r\n fas fa-circle\r\n </v-icon>\r\n </template>\r\n <span>{{ item.priority.name }}</span>\r\n </v-tooltip>\r\n </template> -->\r\n <template #[`item.actions`]=\"{ item }\">\r\n <v-btn\r\n v-if=\"\r\n permissions &&\r\n permissions.serviceRequest &&\r\n permissions.serviceRequest.canDelete\r\n \"\r\n class=\"ma-2\"\r\n text\r\n icon\r\n @click.stop=\"item.deleteDialog = true\"\r\n >\r\n <v-icon>mdi-delete</v-icon>\r\n </v-btn>\r\n\r\n <v-dialog\r\n v-model=\"item.deleteDialog\"\r\n persistent\r\n max-width=\"290\"\r\n >\r\n <v-card>\r\n <v-card-title class=\"headline\">\r\n Delete Request\r\n </v-card-title>\r\n <v-card-text\r\n >Are you sure you want to delete request:\r\n <p>{{ item.title }}</p></v-card-text\r\n >\r\n <v-card-actions>\r\n <v-spacer></v-spacer>\r\n <v-btn\r\n color=\"green darken-1\"\r\n text\r\n @click=\"item.deleteDialog = false\"\r\n >\r\n Cancel\r\n </v-btn>\r\n <v-btn\r\n color=\"green darken-1\"\r\n text\r\n @click=\"deleteRequest(item)\"\r\n >\r\n Delete\r\n </v-btn>\r\n </v-card-actions>\r\n </v-card>\r\n </v-dialog>\r\n </template>\r\n </v-data-table>\r\n </v-container>\r\n </v-tab-item>\r\n </v-tabs-items>\r\n </v-col>\r\n </v-row>\r\n <!-- End Requests section -->\r\n </v-card-text>\r\n </v-card>\r\n <!-- </v-container> -->\r\n </v-skeleton-loader>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport CommunityInfo from \"@/view/components/customerView/CommunityInfo.vue\";\r\nimport InternalBreadcrumbs from \"@/view/components/DashboardInternalBreadcrumbs.vue\";\r\nimport {\r\n GET_QUERY,\r\n GET_PAGED,\r\n DELETE,\r\n API_CUSTOMERS,\r\n API_SERVICE_REQUESTS\r\n} from \"@/core/store/crud.module\";\r\nimport crud from \"@/core/helpers/crud\";\r\nimport { SET_BREADCRUMB } from \"@/core/store/breadcrumbs.module\";\r\n// import { API_USERS } from \"@/core/store/crud.module\";\r\nimport dateFormatter from \"@/core/helpers/dateFormatter\";\r\nimport stringFormatter from \"@/core/helpers/stringFormatter\";\r\nimport { validationMixin } from \"vuelidate\";\r\n// import { required } from \"vuelidate/lib/validators\";\r\nimport moment from \"moment\";\r\nimport permissionsHelper from \"@/core/helpers/permissionsHelper\";\r\nimport Mgr from \"@/core/services/security.service\";\r\n\r\nexport default {\r\n mixins: [validationMixin],\r\n components: {\r\n CommunityInfo,\r\n InternalBreadcrumbs\r\n },\r\n data: () => ({\r\n mgr: new Mgr(),\r\n userInfo: null,\r\n permissions: {},\r\n communityInfo: {},\r\n options: {\r\n page: 1,\r\n itemsPerPage: 10,\r\n sortBy: [\"dateCreated\"],\r\n sortDesc: [true]\r\n },\r\n search: \"\",\r\n headers: [\r\n {\r\n text: \"Date Created\",\r\n align: \"start\",\r\n value: \"dateCreated\",\r\n class: \"orange-bg\"\r\n },\r\n { text: \"Issue #\", value: \"id\", class: \"orange-bg\" },\r\n {\r\n text: \"Service Type\",\r\n value: \"requestTypeName\",\r\n class: \"orange-bg\"\r\n },\r\n {\r\n text: \"Property Address\",\r\n value: \"location\",\r\n class: \"orange-bg\"\r\n },\r\n {\r\n text: \"Description\",\r\n value: \"description\",\r\n class: \"orange-bg\"\r\n },\r\n { text: \"Assigned To\", value: \"assignedToFullName\", class: \"orange-bg\" },\r\n // { text: \"Priority\", value: \"priorityId\", class: \"orange-bg\" },\r\n {\r\n text: \"Comments\",\r\n value: \"comments\",\r\n class: \"orange-bg\",\r\n sortable: false\r\n },\r\n { text: \"Actions\", value: \"actions\", class: \"orange-bg\", sortable: false }\r\n ],\r\n records: [],\r\n totalRecords: null,\r\n\r\n // viewByPriority: \"all\",\r\n // viewByPriorityItems: [\r\n // { name: \"View All priorities\", value: \"all\" },\r\n // { name: \"Low\", value: \"Low\" },\r\n // { name: \"Normal\", value: \"Normal\" },\r\n // { name: \"High\", value: \"High\" }\r\n // ],\r\n\r\n tab: null,\r\n\r\n pageText: \"\",\r\n startingAfter: \"\",\r\n endingBefore: \"\",\r\n previousPage: 1,\r\n hasMore: false,\r\n isLoading: false,\r\n loading: false,\r\n snackbarContent: \"\",\r\n snackbarColor: \"#F06835\",\r\n breadcrumbs: [],\r\n newCount: 0,\r\n openCount: 0,\r\n dueCount: 0,\r\n inProcessCount: 0,\r\n onHoldCount: 0,\r\n closedCount: 0\r\n }),\r\n\r\n props: {\r\n customerId: {\r\n type: [Number, String],\r\n default: 0\r\n }\r\n },\r\n validations() {\r\n return true;\r\n // return {\r\n // billingInfo: {\r\n // subscription: {\r\n // nextBillingDates: {\r\n // required,\r\n // minDate: value =>\r\n // dateFormatter.convertToMilliseconds(value) >\r\n // dateFormatter.convertToMilliseconds(new Date())\r\n // }\r\n // }\r\n // }\r\n // };\r\n },\r\n watch: {\r\n // options: async function() {\r\n // await this.getRequests();\r\n // },\r\n // \"options.sortBy\": async function() {\r\n // await this.getRequests();\r\n // },\r\n // viewByPriority: async function() {\r\n // await this.getRequests();\r\n // },\r\n tab: async function() {\r\n await this.getRequests();\r\n }\r\n },\r\n async mounted() {\r\n await this.getRequests();\r\n },\r\n async created() {\r\n this.userInfo = await this.mgr.getUser(); //.then(userInfo => (this.userInfo = userInfo));\r\n permissionsHelper.getPermissions().then(this.getPermissions);\r\n await this.getComunityInfo();\r\n },\r\n methods: {\r\n getServiceRequestTypeName(requestType) {\r\n if (requestType) return requestType.name;\r\n return \"\";\r\n },\r\n getPermissions(permissionsObj) {\r\n this.permissions = permissionsObj;\r\n },\r\n showRelatedCommunity(communityId) {\r\n this.$router.push({\r\n name: \"CustomerView\",\r\n params: { customerId: communityId }\r\n });\r\n },\r\n deleteRequest(item) {\r\n let self = this;\r\n if (!item) return;\r\n\r\n this.$store\r\n .dispatch(DELETE, {\r\n listName: `${API_SERVICE_REQUESTS}`,\r\n id: item.id\r\n })\r\n .then(function() {\r\n item.deleteDialog = false;\r\n\r\n self.getRequests();\r\n });\r\n },\r\n async getComunityInfo() {\r\n if (this.loading) return;\r\n this.loading = true;\r\n\r\n await this.$store\r\n .dispatch(GET_QUERY, {\r\n listName: API_CUSTOMERS,\r\n id: this.customerId\r\n })\r\n .then(response => {\r\n if (response.status >= 200 || response.status <= 204) {\r\n this.communityInfo = crud.getPopulatedComunityInfo(response.data);\r\n\r\n this.createBreadcrumb();\r\n this.setInternalBreadcrumbs();\r\n } else {\r\n this.$snackbar.showMessage({\r\n content: response.data || \"Something went wrong!\",\r\n color: \"red\"\r\n });\r\n }\r\n\r\n this.loading = false;\r\n this.isLoading = false;\r\n });\r\n },\r\n async setInternalBreadcrumbs() {\r\n this.breadcrumbs = [\r\n {\r\n title: this.communityInfo.name,\r\n route: \"/customerView/\" + this.customerId\r\n },\r\n { title: \"Requests\" }\r\n ];\r\n },\r\n\r\n setStartingAfter() {\r\n if (this.userInvoices && this.userInvoices.length > 0) {\r\n this.startingAfter = this.userInvoices[this.userInvoices.length - 1].id;\r\n this.endingBefore = \"\";\r\n }\r\n },\r\n setEndingBefore() {\r\n if (this.userInvoices && this.userInvoices.length > 0) {\r\n this.endingBefore = this.userInvoices[0].id;\r\n this.startingAfter = \"\";\r\n }\r\n },\r\n createBreadcrumb() {\r\n this.$store.dispatch(SET_BREADCRUMB, [\r\n {\r\n title: this.communityInfo.name,\r\n route: \"/customerView/\" + this.customerId\r\n },\r\n { title: \"Service Requests\" }\r\n ]);\r\n },\r\n async submit() {\r\n this.$v.$touch();\r\n if (this.$v.$invalid) {\r\n return;\r\n }\r\n },\r\n formatDate(date) {\r\n return dateFormatter.formatEditDate(date);\r\n },\r\n formatDateUs(date) {\r\n return dateFormatter.formatDateUs(date);\r\n },\r\n capitalizeFirstLetter(string) {\r\n return stringFormatter.capitalizeFirstLetter(string);\r\n },\r\n async getExportFile() {\r\n let url = `${process.env.VUE_APP_API_URL}${API_SERVICE_REQUESTS}/Community/${this.customerId}/export`;\r\n\r\n url += `?mediumFormat=${true}&uid=${this.userInfo.id}&userRole=${\r\n this.userInfo.role\r\n }`;\r\n\r\n window.open(url, \"_blank\");\r\n },\r\n async getRequests() {\r\n if (this.isLoading) return;\r\n this.isLoading = true;\r\n\r\n await this.$store\r\n // .dispatch(GET_QUERY, {\r\n // listName: `${API_SERVICE_REQUESTS}/Community`,\r\n // id: this.customerId\r\n // })\r\n .dispatch(GET_PAGED, {\r\n listName: `${API_SERVICE_REQUESTS}/Community/${this.customerId}`,\r\n params: { mediumFormat: true }\r\n })\r\n .then(response => {\r\n if (response.status >= 200 || response.status <= 204) {\r\n // const { sortBy, sortDesc, page, itemsPerPage } = this.options;\r\n const { sortBy, sortDesc } = this.options;\r\n let items = response.data.$values.filter(el => !el.isInternal);\r\n\r\n let newItems = [];\r\n let dueItems = [];\r\n let openItems = [];\r\n let inProcessItems = [];\r\n let onHoldItems = [];\r\n let closedItems = [];\r\n\r\n let endWeekDate = moment\r\n .utc()\r\n .endOf(\"isoWeek\")\r\n .toDate();\r\n\r\n dueItems = items.filter(\r\n el =>\r\n moment.utc(el.targetCompletionDate).toDate() < endWeekDate &&\r\n !el.isCompleted &&\r\n !el.isNew\r\n );\r\n this.dueCount = dueItems.length;\r\n closedItems = items.filter(el => el.isCompleted);\r\n this.closedCount = closedItems.length;\r\n inProcessItems = items.filter(el => el.isInProcess);\r\n this.inProcessCount = inProcessItems.length;\r\n newItems = items.filter(el => el.isNew);\r\n this.newCount = newItems.length;\r\n onHoldItems = items.filter(el => el.isOnHold);\r\n this.onHoldCount = onHoldItems.length;\r\n\r\n if (this.isResident)\r\n openItems = items.filter(\r\n el => el.isOpen || el.isInProcess || el.isNew\r\n );\r\n else openItems = items.filter(el => el.isOpen || el.isInProcess);\r\n\r\n this.openCount = openItems.length;\r\n\r\n if (this.tab === \"tab-1\") {\r\n // due this week\r\n items = dueItems;\r\n } else if (this.tab === \"tab-5\") {\r\n // closed\r\n items = closedItems;\r\n } else if (this.tab === \"tab-4\") {\r\n // on hold\r\n items = onHoldItems;\r\n } else if (this.tab === \"tab-3\") {\r\n // in process\r\n items = inProcessItems;\r\n } else {\r\n // all open\r\n items = openItems;\r\n }\r\n\r\n // if (this.tab === \"tab-1\") {\r\n // // due this week\r\n // let endWeekDate = moment()\r\n // .endOf(\"isoWeek\")\r\n // .toDate();\r\n\r\n // items = items.filter(\r\n // el =>\r\n // moment(el.targetCompletionDate).toDate() < endWeekDate &&\r\n // !el.isCompleted\r\n // );\r\n // }\r\n\r\n // if (this.tab === \"tab-4\") {\r\n // // closed\r\n // items = items.filter(el => el.isCompleted);\r\n // } else if (this.tab === \"tab-3\") {\r\n // // in process\r\n // items = items.filter(el => el.isInProcess);\r\n // } else {\r\n // // all open\r\n // if (this.isResident)\r\n // items = items.filter(\r\n // el => el.isOpen || el.isInProcess || el.isNew\r\n // );\r\n // else items = items.filter(el => el.isOpen || el.isInProcess);\r\n // }\r\n\r\n items.forEach(function(element) {\r\n element.deleteDialog = false;\r\n element.assignedToFullName = element.assignedTo?.fullName;\r\n // element.priorityId = element.priority.id;\r\n element.requestTypeName = element.requestType?.name;\r\n\r\n // if (element.location)\r\n // element.streetLocation = element.location\r\n // .replace(/\\b\\d+/i, \"\")\r\n // .trimStart();\r\n // else element.streetLocation = \"\";\r\n\r\n // let comments = element.comments.$values;\r\n // if (comments.length > 0) {\r\n // let lastComment = comments.sort((a, b) => {\r\n // return new Date(b.created) - new Date(a.created);\r\n // })[0];\r\n // if (lastComment && lastComment.assignedTo) {\r\n // element.assignedTo = lastComment.assignedTo;\r\n // element.assignedToFullName = element.assignedTo.fullName;\r\n // }\r\n\r\n // if (lastComment && lastComment.targetCompletionDate) {\r\n // element.targetCompletionDate =\r\n // lastComment.targetCompletionDate;\r\n // }\r\n\r\n // if (lastComment.requestType) {\r\n // element.requestType = lastComment.requestType;\r\n // element.requestTypeId = lastComment.requestType.id;\r\n // }\r\n // // if (lastComment.priority) {\r\n // // element.priority = lastComment.priority;\r\n // // element.priorityId = element.priority.id;\r\n // // }\r\n // }\r\n });\r\n\r\n // if (this.viewByPriority && this.viewByPriority !== \"all\") {\r\n // let viewByPriority = this.viewByPriority;\r\n // items = items.filter(el => el.priority.name === viewByPriority);\r\n // }\r\n\r\n const total = items.length;\r\n\r\n if (sortBy.length === 1 && sortDesc.length === 1) {\r\n items = items.sort((a, b) => {\r\n let sortA = a[sortBy[0]];\r\n let sortB = b[sortBy[0]];\r\n\r\n if (sortBy[0] == \"location\") {\r\n if (a[sortBy[0]])\r\n sortA = a[sortBy[0]].replace(/\\b\\d+/i, \"\").trimStart();\r\n else sortA = \"\";\r\n\r\n if (b[sortBy[0]])\r\n sortB = b[sortBy[0]].replace(/\\b\\d+/i, \"\").trimStart();\r\n else sortB = \"\";\r\n }\r\n\r\n if (sortDesc[0]) {\r\n if (sortA < sortB) return 1;\r\n if (sortA > sortB) return -1;\r\n return 0;\r\n } else {\r\n if (sortA < sortB) return -1;\r\n if (sortA > sortB) return 1;\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // if (itemsPerPage > 0) {\r\n // items = items.slice(\r\n // (page - 1) * itemsPerPage,\r\n // page * itemsPerPage\r\n // );\r\n // }\r\n this.records = items;\r\n this.totalRecords = total;\r\n } else {\r\n this.$snackbar.showMessage({\r\n content: response.data || \"Something went wrong!\",\r\n color: \"red\"\r\n });\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n }\r\n },\r\n computed: {\r\n isResident() {\r\n return (\r\n this.userInfo?.profile?.aspireRole ==\r\n \"Tenant/Resident - Neighborhood\" ||\r\n this.userInfo?.profile?.aspireRole == \"Tenant/Resident\"\r\n );\r\n },\r\n isPropertyManager() {\r\n return this.userInfo?.profile?.aspireRole == \"Property Manager\";\r\n },\r\n sort() {\r\n if (\r\n this.options.sortBy &&\r\n this.options.sortBy[0] &&\r\n this.options.sortBy[0].length > 0\r\n ) {\r\n if (this.options.sortBy[0] === \"fullName\") {\r\n return `firstName ${this.options.sortDesc[0] ? \"desc\" : \"asc\"}`;\r\n } else {\r\n return `${this.options.sortBy[0]} ${\r\n this.options.sortDesc[0] ? \"desc\" : \"asc\"\r\n }`;\r\n }\r\n }\r\n return \"\";\r\n }\r\n }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Requests.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Requests.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Requests.vue?vue&type=template&id=0de4fe9d&\"\nimport script from \"./Requests.vue?vue&type=script&lang=js&\"\nexport * from \"./Requests.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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VDataTable,VDialog,VIcon,VRow,VSkeletonLoader,VSpacer,VTab,VTabItem,VTabs,VTabsItems,VTextField})\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('alphaNum', /^[a-zA-Z0-9]*$/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('numeric', /^[0-9]*$/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(max) {\n return (0, _common.withParams)({\n type: 'maxValue',\n max: max\n }, function (value) {\n return !(0, _common.req)(value) || (!/\\s/.test(value) || value instanceof Date) && +value <= +max;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar emailRegex = /^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/;\n\nvar _default = (0, _common.regex)('email', emailRegex);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(length) {\n return (0, _common.withParams)({\n type: 'minLength',\n min: length\n }, function (value) {\n return !(0, _common.req)(value) || (0, _common.len)(value) >= length;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('alpha', /^[a-zA-Z]*$/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(validator) {\n return (0, _common.withParams)({\n type: 'not'\n }, function (value, vm) {\n return !(0, _common.req)(value) || !validator.call(this, value, vm);\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar urlRegex = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i;\n\nvar _default = (0, _common.regex)('url', urlRegex);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"withParams\", {\n enumerable: true,\n get: function get() {\n return _withParams.default;\n }\n});\nexports.regex = exports.ref = exports.len = exports.req = void 0;\n\nvar _withParams = _interopRequireDefault(require(\"../withParams\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar req = function req(value) {\n if (Array.isArray(value)) return !!value.length;\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value === false) {\n return true;\n }\n\n if (value instanceof Date) {\n return !isNaN(value.getTime());\n }\n\n if (_typeof(value) === 'object') {\n for (var _ in value) {\n return true;\n }\n\n return false;\n }\n\n return !!String(value).length;\n};\n\nexports.req = req;\n\nvar len = function len(value) {\n if (Array.isArray(value)) return value.length;\n\n if (_typeof(value) === 'object') {\n return Object.keys(value).length;\n }\n\n return String(value).length;\n};\n\nexports.len = len;\n\nvar ref = function ref(reference, vm, parentVm) {\n return typeof reference === 'function' ? reference.call(vm, parentVm) : parentVm[reference];\n};\n\nexports.ref = ref;\n\nvar regex = function regex(type, expr) {\n return (0, _withParams.default)({\n type: type\n }, function (value) {\n return !req(value) || expr.test(value);\n });\n};\n\nexports.regex = regex;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar withParams = process.env.BUILD === 'web' ? require('./withParamsBrowser').withParams : require('./params').withParams;\nvar _default = withParams;\nexports.default = _default;","// 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<any[]>,\n options: {\n type: Object,\n default: () => ({}),\n } as PropValidator<Partial<DataOptions>>,\n sortBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<string | string[]>,\n sortDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator<boolean | boolean[]>,\n customSort: {\n type: Function,\n default: sortItems,\n } as PropValidator<DataSortFunction>,\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<string | string[]>,\n groupDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator<boolean | boolean[]>,\n customGroup: {\n type: Function,\n default: groupItems,\n } as PropValidator<DataGroupFunction>,\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<DataSearchFunction>,\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.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<any>[] | 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 = this.internalOptions.sortBy\n let sortDesc = this.internalOptions.sortDesc\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<any>[] {\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, this.internalOptions.page - 1)\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'\n\nexport default Vue.extend({\n name: 'v-data-footer',\n\n props: {\n options: {\n type: Object as PropType<DataOptions>,\n required: true,\n },\n pagination: {\n type: Object as PropType<DataPagination>,\n required: true,\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => ([5, 10, 15, -1]),\n } as PropValidator<DataItemsPerPageOption[]>,\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 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 } 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<any[]>,\n singleSelect: Boolean,\n expanded: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\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<string, any>,\n expansion: {} as Record<string, boolean>,\n internalCurrentItems: [] as any[],\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<string, any> {\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<string, boolean>, old: Record<string, boolean>) {\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<string, boolean>, old: Record<string, boolean>) {\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 methods: {\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 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 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 = this.$slots.loading || this.$vuetify.lang.t(this.loadingText)\n return this.genEmptyWrapper(loading)\n } else if (originalItemsLength === 0) {\n const noData = this.$slots['no-data'] || this.$vuetify.lang.t(this.noDataText)\n return this.genEmptyWrapper(noData)\n } else if (filteredItemsLength === 0) {\n const noResults = this.$slots['no-results'] || 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<typeof VDataTable>\n\ninterface options extends Vue {\n dataTable: VDataTableInstance\n}\n\nexport default mixins<options>().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<DataTableHeader[]>,\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<DataOptions>,\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 },\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 = h('th', [h('div', { staticClass: 'v-data-table-header-mobile__wrapper' }, children)])\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<Pick<VNodeData, 'attrs' | 'on' | 'class' | 'style'>> = {\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[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 } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType<DataTableHeader[]>,\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 children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots[slotName]\n const regularSlot = computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: false,\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 textAlign = `text-${header.align || 'start'}`\n\n return h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\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 } 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<string, boolean> {\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', this.$slots.default),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-data-table',\n class: this.classes,\n }, [\n this.$slots.top,\n this.genWrapper(),\n this.$slots.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<DataTableHeader[]>,\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[slotName]\n const regularSlot = 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 DataTableItemProps,\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'\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 } 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) {\n search = typeof search === 'string' ? search.trim() : null\n\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}\n\n/* @vue/component */\nexport default mixins(\n VDataIterator,\n Loadable,\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<DataTableHeader[]>,\n showSelect: Boolean,\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<typeof defaultFilter>,\n itemClass: {\n type: [String, Function],\n default: () => '',\n } as PropValidator<RowClassFunction | string>,\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<string, DataTableCompareFunction> {\n return this.computedHeaders.reduce<Record<string, DataTableCompareFunction>>((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<string, any> {\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 },\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(items, search, this.headersWithCustomFilters, this.headersWithoutCustomFilters, this.customFilter)\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 props = VDataIterator.options.methods.createItemProps.call(this, item, index)\n\n return Object.assign(props, { headers: this.computedHeaders })\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 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 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<any>[], 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, `${props.options.groupBy[0]}: ${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<string, boolean> = {}): 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 },\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 props: {\n headers: this.computedHeaders,\n hideDefaultHeader: this.hideDefaultHeader,\n index,\n item,\n rtl: this.$vuetify.rtl,\n },\n scopedSlots,\n on: {\n // TODO: for click, 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: () => this.$emit('click:row', item, data),\n contextmenu: (event: MouseEvent) => this.$emit('contextmenu:row', event, data),\n dblclick: (event: MouseEvent) => this.$emit('dblclick:row', event, data),\n },\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 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 }, [\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.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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ':';\n return (0, _common.withParams)({\n type: 'macAddress'\n }, function (value) {\n if (!(0, _common.req)(value)) {\n return true;\n }\n\n if (typeof value !== 'string') {\n return false;\n }\n\n var parts = typeof separator === 'string' && separator !== '' ? value.split(separator) : value.length === 12 || value.length === 16 ? value.match(/.{2}/g) : null;\n return parts !== null && (parts.length === 6 || parts.length === 8) && parts.every(hexValid);\n });\n};\n\nexports.default = _default;\n\nvar hexValid = function hexValid(hex) {\n return hex.toLowerCase().match(/^[0-9a-f]{2}$/);\n};","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array<any>({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\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<options &\n InstanceType<typeof VTextField>\n>(\n VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-textarea',\n\n props: {\n autoGrow: Boolean,\n noResize: Boolean,\n rowHeight: {\n type: [Number, String],\n default: 24,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseInt(v, 10)),\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-textarea': true,\n 'v-textarea--auto-grow': this.autoGrow,\n 'v-textarea--no-resize': this.noResizeHandle,\n ...VTextField.options.computed.classes.call(this),\n }\n },\n noResizeHandle (): boolean {\n return this.noResize || this.autoGrow\n },\n },\n\n watch: {\n lazyValue () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n rowHeight () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n },\n\n mounted () {\n setTimeout(() => {\n this.autoGrow && this.calculateInputHeight()\n }, 0)\n },\n\n methods: {\n calculateInputHeight () {\n const input = this.$refs.input\n if (!input) return\n\n input.style.height = '0'\n const height = input.scrollHeight\n const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n // This has to be done ASAP, waiting for Vue\n // to update the DOM causes ugly layout jumping\n input.style.height = Math.max(minHeight, height) + 'px'\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.tag = 'textarea'\n delete input.data!.attrs!.type\n input.data!.attrs!.rows = this.rows\n\n return input\n },\n onInput (e: Event) {\n VTextField.options.methods.onInput.call(this, e)\n this.autoGrow && this.calculateInputHeight()\n },\n onKeyDown (e: KeyboardEvent) {\n // Prevents closing of a\n // dialog when pressing\n // enter\n if (this.isFocused && e.keyCode === 13) {\n e.stopPropagation()\n }\n\n this.$emit('keydown', e)\n },\n },\n})\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(prop) {\n return (0, _common.withParams)({\n type: 'requiredIf',\n prop: prop\n }, function (value, parentVm) {\n return (0, _common.ref)(prop, this, parentVm) ? (0, _common.req)(value) : true;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"alpha\", {\n enumerable: true,\n get: function get() {\n return _alpha.default;\n }\n});\nObject.defineProperty(exports, \"alphaNum\", {\n enumerable: true,\n get: function get() {\n return _alphaNum.default;\n }\n});\nObject.defineProperty(exports, \"numeric\", {\n enumerable: true,\n get: function get() {\n return _numeric.default;\n }\n});\nObject.defineProperty(exports, \"between\", {\n enumerable: true,\n get: function get() {\n return _between.default;\n }\n});\nObject.defineProperty(exports, \"email\", {\n enumerable: true,\n get: function get() {\n return _email.default;\n }\n});\nObject.defineProperty(exports, \"ipAddress\", {\n enumerable: true,\n get: function get() {\n return _ipAddress.default;\n }\n});\nObject.defineProperty(exports, \"macAddress\", {\n enumerable: true,\n get: function get() {\n return _macAddress.default;\n }\n});\nObject.defineProperty(exports, \"maxLength\", {\n enumerable: true,\n get: function get() {\n return _maxLength.default;\n }\n});\nObject.defineProperty(exports, \"minLength\", {\n enumerable: true,\n get: function get() {\n return _minLength.default;\n }\n});\nObject.defineProperty(exports, \"required\", {\n enumerable: true,\n get: function get() {\n return _required.default;\n }\n});\nObject.defineProperty(exports, \"requiredIf\", {\n enumerable: true,\n get: function get() {\n return _requiredIf.default;\n }\n});\nObject.defineProperty(exports, \"requiredUnless\", {\n enumerable: true,\n get: function get() {\n return _requiredUnless.default;\n }\n});\nObject.defineProperty(exports, \"sameAs\", {\n enumerable: true,\n get: function get() {\n return _sameAs.default;\n }\n});\nObject.defineProperty(exports, \"url\", {\n enumerable: true,\n get: function get() {\n return _url.default;\n }\n});\nObject.defineProperty(exports, \"or\", {\n enumerable: true,\n get: function get() {\n return _or.default;\n }\n});\nObject.defineProperty(exports, \"and\", {\n enumerable: true,\n get: function get() {\n return _and.default;\n }\n});\nObject.defineProperty(exports, \"not\", {\n enumerable: true,\n get: function get() {\n return _not.default;\n }\n});\nObject.defineProperty(exports, \"minValue\", {\n enumerable: true,\n get: function get() {\n return _minValue.default;\n }\n});\nObject.defineProperty(exports, \"maxValue\", {\n enumerable: true,\n get: function get() {\n return _maxValue.default;\n }\n});\nObject.defineProperty(exports, \"integer\", {\n enumerable: true,\n get: function get() {\n return _integer.default;\n }\n});\nObject.defineProperty(exports, \"decimal\", {\n enumerable: true,\n get: function get() {\n return _decimal.default;\n }\n});\nexports.helpers = void 0;\n\nvar _alpha = _interopRequireDefault(require(\"./alpha\"));\n\nvar _alphaNum = _interopRequireDefault(require(\"./alphaNum\"));\n\nvar _numeric = _interopRequireDefault(require(\"./numeric\"));\n\nvar _between = _interopRequireDefault(require(\"./between\"));\n\nvar _email = _interopRequireDefault(require(\"./email\"));\n\nvar _ipAddress = _interopRequireDefault(require(\"./ipAddress\"));\n\nvar _macAddress = _interopRequireDefault(require(\"./macAddress\"));\n\nvar _maxLength = _interopRequireDefault(require(\"./maxLength\"));\n\nvar _minLength = _interopRequireDefault(require(\"./minLength\"));\n\nvar _required = _interopRequireDefault(require(\"./required\"));\n\nvar _requiredIf = _interopRequireDefault(require(\"./requiredIf\"));\n\nvar _requiredUnless = _interopRequireDefault(require(\"./requiredUnless\"));\n\nvar _sameAs = _interopRequireDefault(require(\"./sameAs\"));\n\nvar _url = _interopRequireDefault(require(\"./url\"));\n\nvar _or = _interopRequireDefault(require(\"./or\"));\n\nvar _and = _interopRequireDefault(require(\"./and\"));\n\nvar _not = _interopRequireDefault(require(\"./not\"));\n\nvar _minValue = _interopRequireDefault(require(\"./minValue\"));\n\nvar _maxValue = _interopRequireDefault(require(\"./maxValue\"));\n\nvar _integer = _interopRequireDefault(require(\"./integer\"));\n\nvar _decimal = _interopRequireDefault(require(\"./decimal\"));\n\nvar helpers = _interopRequireWildcard(require(\"./common\"));\n\nexports.helpers = helpers;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(equalTo) {\n return (0, _common.withParams)({\n type: 'sameAs',\n eq: equalTo\n }, function (value, parentVm) {\n return value === (0, _common.ref)(equalTo, this, parentVm);\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('decimal', /^[-]?\\d*(\\.\\d+)?$/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.withParams)({\n type: 'ipAddress'\n}, function (value) {\n if (!(0, _common.req)(value)) {\n return true;\n }\n\n if (typeof value !== 'string') {\n return false;\n }\n\n var nibbles = value.split('.');\n return nibbles.length === 4 && nibbles.every(nibbleValid);\n});\n\nexports.default = _default;\n\nvar nibbleValid = function nibbleValid(nibble) {\n if (nibble.length > 3 || nibble.length === 0) {\n return false;\n }\n\n if (nibble[0] === '0' && nibble !== '0') {\n return false;\n }\n\n if (!nibble.match(/^\\d+$/)) {\n return false;\n }\n\n var numeric = +nibble | 0;\n return numeric >= 0 && numeric <= 255;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withParams = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar root = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nvar fakeWithParams = function fakeWithParams(paramsOrClosure, maybeValidator) {\n if (_typeof(paramsOrClosure) === 'object' && maybeValidator !== undefined) {\n return maybeValidator;\n }\n\n return paramsOrClosure(function () {});\n};\n\nvar withParams = root.vuelidate ? root.vuelidate.withParams : fakeWithParams;\nexports.withParams = withParams;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default() {\n for (var _len = arguments.length, validators = new Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n return (0, _common.withParams)({\n type: 'or'\n }, function () {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validators.length > 0 && validators.reduce(function (valid, fn) {\n return valid || fn.apply(_this, args);\n }, false);\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.withParams)({\n type: 'required'\n}, function (value) {\n if (typeof value === 'string') {\n return (0, _common.req)(value.trim());\n }\n\n return (0, _common.req)(value);\n});\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(prop) {\n return (0, _common.withParams)({\n type: 'requiredUnless',\n prop: prop\n }, function (value, parentVm) {\n return !(0, _common.ref)(prop, this, parentVm) ? (0, _common.req)(value) : true;\n });\n};\n\nexports.default = _default;","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardInternalBreadcrumbs.vue?vue&type=style&index=0&lang=scss&\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(min) {\n return (0, _common.withParams)({\n type: 'minValue',\n min: min\n }, function (value) {\n return !(0, _common.req)(value) || (!/\\s/.test(value) || value instanceof Date) && +value >= +min;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(min, max) {\n return (0, _common.withParams)({\n type: 'between',\n min: min,\n max: max\n }, function (value) {\n return !(0, _common.req)(value) || (!/\\s/.test(value) || value instanceof Date) && +min <= +value && +max >= +value;\n });\n};\n\nexports.default = _default;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"syncscape_communityInfo\"}},[_c('CommunityHeader',{attrs:{\"communityName\":_vm.communityInfo.name,\"temperature\":_vm.temperature,\"humidity\":_vm.humidity,\"loading\":_vm.weatherLoading || _vm.communityInfo == null,\"weatherCode\":_vm.weatherCode,\"isInternalView\":false,\"isResidentView\":_vm.isResident,\"communityId\":_vm.communityInfo.aspireId}}),(_vm.relatedCommunityItems.length > 1)?_c('div',{attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('v-select',{attrs:{\"items\":_vm.relatedCommunityItems,\"item-text\":\"communityName\",\"item-value\":\"aspireId\",\"label\":\"Select Related Community...\"},model:{value:(_vm.relatedCommunity),callback:function ($$v) {_vm.relatedCommunity=$$v},expression:\"relatedCommunity\"}})],1):_vm._e(),_c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',[_c('AccountManagerInfo',{attrs:{\"communityInfo\":_vm.communityInfo}})],1)],1),(_vm.userInfo && !_vm.isResident)?_c('v-row',[_c('v-col',[_c('CommunitySentiment',{attrs:{\"communityInfo\":_vm.communityInfo}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"2\",\"sm\":\"6\",\"lg\":\"1\"}},[_c('div',[_c('h6',{staticClass:\"text-center\"},[_vm._v(\"Service Status\")])]),(_vm.serviceStatusLoading)?_c('div',{staticClass:\"text-center\"},[(_vm.serviceStatusLoading)?_c('v-progress-circular',{attrs:{\"active\":_vm.serviceStatusLoading,\"indeterminate\":_vm.serviceStatusLoading,\"color\":\"primary\"}}):_vm._e()],1):_vm._e(),(!_vm.serviceStatusLoading)?_c('div',[_c('div',{staticClass:\"mx-auto\",staticStyle:{\"width\":\"50px\"}},[_c('v-img',{attrs:{\"src\":_vm.getServiceStatusIconPath(_vm.serviceStatus)},model:{value:(_vm.serviceStatus.status),callback:function ($$v) {_vm.$set(_vm.serviceStatus, \"status\", $$v)},expression:\"serviceStatus.status\"}})],1),_c('p',{staticClass:\"text-center orange--text mt-3 mb-0\"},[_vm._v(\" \"+_vm._s(_vm.serviceStatus.status)+\" \")]),(_vm.serviceStatus.rescheduledText)?_c('p',{staticClass:\"text-center mt-0\"},[_vm._v(\" \"+_vm._s(_vm.serviceStatus.rescheduledText)+\" \")]):_vm._e()]):_vm._e()]),_c('v-col',{attrs:{\"justify\":\"space-around\",\"cols\":\"12\",\"md\":\"5\",\"lg\":\"4\"}},[_c('h6',{staticClass:\"font-weight-bold text-center\"},[_c('span',[_vm._v(\"Service Request\")]),_vm._v(\" \"),_c('router-link',{staticClass:\"blue-color\",attrs:{\"to\":(\"/customerView/\" + (_vm.communityInfo.id) + \"/requests\")},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar href = ref.href;\nvar navigate = ref.navigate;\nvar isExactActive = ref.isExactActive;\nreturn [_c('a',{staticClass:\"link\",class:[isExactActive && 'link-active'],attrs:{\"href\":href},on:{\"click\":navigate}},[_vm._v(\" View All \")])]}}],null,false,3080337225)})],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{staticClass:\"text-center\",attrs:{\"md\":\"4\",\"lg\":\"4\",\"sm\":\"4\"}},[_c('h1',{staticClass:\"text-center\",staticStyle:{\"color\":\"#df6526\"}},[(_vm.requestsLoading)?_c('v-progress-circular',{attrs:{\"active\":_vm.requestsLoading,\"indeterminate\":_vm.requestsLoading,\"color\":\"primary\"}}):_vm._e(),(!_vm.requestsLoading)?_c('span',[_vm._v(\" \"+_vm._s(this.communityInfo.serviceRequestsNumbers.open /*communityInfo.serviceRequests.filter(el => el.isOpen || el.isInProcess).length*/)+\" \")]):_vm._e()],1),_c('span',{staticClass:\"text-center\"},[_vm._v(\"Open\")])]),_c('v-col',{staticClass:\"text-center\",attrs:{\"md\":\"4\",\"lg\":\"4\",\"sm\":\"4\"}},[_c('h1',{staticClass:\"text-center\",staticStyle:{\"color\":\"#df6526\"}},[(_vm.requestsLoading)?_c('v-progress-circular',{attrs:{\"active\":_vm.requestsLoading,\"indeterminate\":_vm.requestsLoading,\"color\":\"primary\"}}):_vm._e(),(!_vm.requestsLoading)?_c('span',[_vm._v(\" \"+_vm._s(this.communityInfo.serviceRequestsNumbers.inProcess /*communityInfo.serviceRequests.filter(el => el.isOpen || el.isInProcess).length*/)+\" \")]):_vm._e()],1),_c('span',{staticClass:\"text-center\"},[_vm._v(\"In Process\")])]),_c('v-col',{staticClass:\"text-center\",attrs:{\"md\":\"4\",\"lg\":\"4\",\"sm\":\"4\"}},[_c('h1',{staticClass:\"text-cener\",staticStyle:{\"color\":\"#31c0e3\"}},[(_vm.requestsLoading)?_c('v-progress-circular',{attrs:{\"active\":_vm.requestsLoading,\"indeterminate\":_vm.requestsLoading,\"color\":\"primary\"}}):_vm._e(),(!_vm.requestsLoading)?_c('span',[_vm._v(\" \"+_vm._s(this.communityInfo.serviceRequestsNumbers.closed /*communityInfo.serviceRequests.filter(el => el.isCompleted).length*/)+\" \")]):_vm._e()],1),_c('span',{staticClass:\"text-center\"},[_vm._v(\"Closed\")])])],1),_c('v-row',{attrs:{\"justify\":\"space-around\"}},[_c('v-col',{staticClass:\"text-center\"},[(\n _vm.permissions &&\n _vm.permissions.serviceRequest &&\n _vm.permissions.serviceRequest.canCreate\n )?_c('router-link',{attrs:{\"to\":(\"/customerView/\" + (_vm.communityInfo.id) + \"/requests/new\")}},[_c('v-btn',{staticClass:\"white--text blue-bg\",attrs:{\"small\":\"\",\"rounded\":\"\"}},[_vm._v(\" New Service Request \")])],1):_vm._e()],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"3\"}},[_c('ServiceCenterBox',{attrs:{\"id\":_vm.communityInfo.id}})],1)],1):_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\",\"sm\":\"4\",\"lg\":\"2\"}},[_c('div',[_c('div',{staticClass:\"mx-auto\",staticStyle:{\"width\":\"50px\"}},[_c('v-img',{attrs:{\"src\":\"/media/assets/icons/icons-service.png\"}})],1),_c('p',{staticClass:\"text-center mt-2 mb-0\"},[_c('router-link',{staticClass:\"link\",attrs:{\"to\":(\"/customerView/\" + (_vm.communityInfo.id) + \"/requests\")}},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"small\":\"\"}},[_vm._v(\" Service Requests \")])],1)],1)])]),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\",\"sm\":\"4\",\"lg\":\"2\"}},[_c('div',[_c('div',{staticClass:\"mx-auto\",staticStyle:{\"width\":\"50px\"}},[_c('v-img',{attrs:{\"src\":\"/media/assets/icons/icons-scheduleDocs.png\"}})],1),_c('p',{staticClass:\"text-center mt-2 mb-0\"},[(\n _vm.permissions &&\n _vm.permissions.documents &&\n _vm.permissions.documents.canView\n )?_c('router-link',{staticClass:\"link\",attrs:{\"to\":(\"/customerView/\" + (_vm.communityInfo.id) + \"/documents\")}},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"small\":\"\"}},[_vm._v(\" Schedules & Docs \")])],1):_vm._e()],1)])]),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\",\"sm\":\"4\",\"lg\":\"2\"}},[_c('div',[_c('div',{staticClass:\"mx-auto\",staticStyle:{\"width\":\"50px\"}},[_c('v-img',{attrs:{\"src\":\"/media/assets/icons/icons-message.png\"}})],1),_c('p',{staticClass:\"text-center mt-2 mb-0\"},[(\n _vm.permissions &&\n _vm.permissions.message &&\n _vm.permissions.message.canView\n )?_c('router-link',{staticClass:\"link\",attrs:{\"to\":(\"/customerView/\" + (_vm.communityInfo.id) + \"/messages\")}},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"small\":\"\"}},[_vm._v(\" Messages \")])],1):_vm._e()],1)])]),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\",\"sm\":\"4\",\"lg\":\"2\"}},[_c('div',[_c('div',{staticClass:\"mx-auto\",staticStyle:{\"width\":\"50px\"}},[_c('v-img',{attrs:{\"src\":\"/media/assets/icons/icons-kudos.png\"}})],1),_c('p',{staticClass:\"text-center mt-2 mb-0\"},[_c('router-link',{staticClass:\"link\",attrs:{\"to\":(\"/customerView/\" + (_vm.communityInfo.id) + \"/sendKudos\")}},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"small\":\"\"}},[_vm._v(\" Send Kudos \")])],1)],1)])])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h6',{staticClass:\"font-weight-bold\"},[_vm._v(\" Community Landscape Quality Sentiment \")]),_c('div',{staticClass:\"d-flex\"},[_c('div',{staticStyle:{\"width\":\"200px\"}},[_c('v-rating',{attrs:{\"hover\":\"\",\"half-increments\":\"\",\"length\":\"5\",\"readonly\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(props){return [_c('img',{attrs:{\"height\":\"50\",\"width\":\"40\",\"src\":props.isFilled\n ? 'media/assets/active-leaf.png'\n : props.isHalfFilled\n ? 'media/assets/half-leaf.png'\n : 'media/assets/inactive-leaf.png'}})]}}]),model:{value:(_vm.communityInfo.sentiment.value),callback:function ($$v) {_vm.$set(_vm.communityInfo.sentiment, \"value\", $$v)},expression:\"communityInfo.sentiment.value\"}}),(\n _vm.permissions &&\n _vm.permissions.communitySentiment &&\n _vm.permissions.communitySentiment.canEdit\n )?_c('v-slider',{attrs:{\"step\":\"0.5\",\"min\":\"0\",\"max\":\"5\",\"thumb-label\":\"\",\"ticks\":\"\",\"color\":\"orange\",\"track-color\":\"orange\",\"thumb-color\":\"blue\"},on:{\"change\":_vm.onSentimentChange,\"start\":_vm.onStart},model:{value:(_vm.communityInfo.sentiment.value),callback:function ($$v) {_vm.$set(_vm.communityInfo.sentiment, \"value\", $$v)},expression:\"communityInfo.sentiment.value\"}}):_vm._e()],1),_c('div',{staticClass:\"d-flex ml-4 align-center justify-center\"},[_c('p',{staticClass:\"text-h4 font-weight-black\"},[_vm._v(\" \"+_vm._s(_vm.communityInfo.sentiment.value)+\" / 5 \")])])]),_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"400\"},model:{value:(_vm.sentimentDialog),callback:function ($$v) {_vm.sentimentDialog=$$v},expression:\"sentimentDialog\"}},[_c('v-card',[_c('v-card-title'),_c('v-card-text',[_c('v-textarea',{attrs:{\"label\":\"Please, briefly describe the reason(s) for this rating:\",\"error-messages\":_vm.sentimentReasonErrors,\"required\":\"\"},on:{\"input\":function($event){return _vm.$v.sentimentReason.$touch()},\"blur\":function($event){return _vm.$v.sentimentReason.$touch()}},model:{value:(_vm.sentimentReason),callback:function ($$v) {_vm.sentimentReason=$$v},expression:\"sentimentReason\"}})],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"loading\":_vm.messageProcessing,\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){return _vm.sendMessage()}}},[_vm._v(\" Submit \")]),_c('v-btn',{attrs:{\"color\":\"gray darken-1\",\"text\":\"\"},on:{\"click\":_vm.cancelSentimentChange}},[_vm._v(\" Cancel \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <h6 class=\"font-weight-bold\">\r\n Community Landscape Quality Sentiment\r\n </h6>\r\n <div class=\"d-flex\">\r\n <div style=\"width: 200px;\">\r\n <v-rating\r\n v-model=\"communityInfo.sentiment.value\"\r\n hover\r\n half-increments\r\n length=\"5\"\r\n readonly\r\n >\r\n <template v-slot:item=\"props\">\r\n <img\r\n height=\"50\"\r\n width=\"40\"\r\n :src=\"\r\n props.isFilled\r\n ? 'media/assets/active-leaf.png'\r\n : props.isHalfFilled\r\n ? 'media/assets/half-leaf.png'\r\n : 'media/assets/inactive-leaf.png'\r\n \"\r\n />\r\n </template>\r\n </v-rating>\r\n <v-slider\r\n v-if=\"\r\n permissions &&\r\n permissions.communitySentiment &&\r\n permissions.communitySentiment.canEdit\r\n \"\r\n v-model=\"communityInfo.sentiment.value\"\r\n step=\"0.5\"\r\n min=\"0\"\r\n max=\"5\"\r\n thumb-label\r\n ticks\r\n color=\"orange\"\r\n track-color=\"orange\"\r\n thumb-color=\"blue\"\r\n @change=\"onSentimentChange\"\r\n @start=\"onStart\"\r\n ></v-slider>\r\n </div>\r\n <div class=\"d-flex ml-4 align-center justify-center\">\r\n <p class=\"text-h4 font-weight-black\">\r\n {{ communityInfo.sentiment.value }} / 5\r\n </p>\r\n </div>\r\n </div>\r\n <v-dialog v-model=\"sentimentDialog\" persistent max-width=\"400\">\r\n <v-card>\r\n <v-card-title></v-card-title>\r\n <v-card-text>\r\n <v-textarea\r\n v-model=\"sentimentReason\"\r\n label=\"Please, briefly describe the reason(s) for this rating:\"\r\n :error-messages=\"sentimentReasonErrors\"\r\n @input=\"$v.sentimentReason.$touch()\"\r\n @blur=\"$v.sentimentReason.$touch()\"\r\n required\r\n ></v-textarea>\r\n </v-card-text>\r\n <v-card-actions>\r\n <v-spacer></v-spacer>\r\n <v-btn\r\n :loading=\"messageProcessing\"\r\n color=\"green darken-1\"\r\n text\r\n @click=\"sendMessage()\"\r\n >\r\n Submit\r\n </v-btn>\r\n <v-btn color=\"gray darken-1\" text @click=\"cancelSentimentChange\">\r\n Cancel\r\n </v-btn>\r\n </v-card-actions>\r\n </v-card>\r\n </v-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n POST_DATA,\r\n API_CUSTOMERS,\r\n API_MESSAGES\r\n} from \"@/core/store/crud.module\";\r\nimport { validationMixin } from \"vuelidate\";\r\nimport { required } from \"vuelidate/lib/validators\";\r\nimport permissionsHelper from \"@/core/helpers/permissionsHelper\";\r\n// import moment from \"moment\";\r\n// import crud from \"@/core/helpers/crud\";\r\n\r\nexport default {\r\n mixins: [validationMixin],\r\n name: \"CommunitySentiment\",\r\n props: {\r\n communityInfo: Object\r\n },\r\n validations() {\r\n return {\r\n sentimentReason: {\r\n required\r\n }\r\n };\r\n },\r\n data: () => ({\r\n permissions: [],\r\n sentimentReason: \"\",\r\n messageProcessing: false,\r\n sentimentDialog: false,\r\n startValue: 0,\r\n endValue: 0,\r\n\r\n newRequest: {\r\n communityName: \"\",\r\n title: \"\",\r\n requestType: \"\",\r\n description: \"\",\r\n isInternal: false,\r\n attachments: [],\r\n priority: \"\",\r\n assignedTo: \"\",\r\n targetCompletitioDate: null\r\n }\r\n\r\n // requestTypeItems: [],\r\n // priorityItems: [],\r\n // serviceRequestProcessing: false,\r\n // loadingPriorityItems: false,\r\n // loadingServiceRequestTypes: false\r\n }),\r\n async mounted() {\r\n \r\n },\r\n async created() {\r\n // this.getServiceRequestPriorities();\r\n // this.getServiceRequestTypes();\r\n await permissionsHelper.getPermissions().then(this.getPermissions);\r\n },\r\n methods: {\r\n getPermissions(permissionsObj) {\r\n this.permissions = permissionsObj;\r\n },\r\n sendMessage() {\r\n this.$v.$touch();\r\n if (this.$v.$invalid) {\r\n return;\r\n }\r\n\r\n let newMessage = {\r\n isNew: true,\r\n // sendTo: [],\r\n subject: this.communityInfo.name + \" rated 3.5 or less\",\r\n body:\r\n this.communityInfo.name +\r\n \" rated \" +\r\n this.endValue +\r\n \". The reason: \" +\r\n this.sentimentReason,\r\n attachments: [],\r\n isActionRequired: false,\r\n recipients: [{ id: this.communityInfo.accountManager.id }]\r\n };\r\n\r\n this.messageProcessing = true;\r\n\r\n let self = this;\r\n this.$store\r\n .dispatch(POST_DATA, {\r\n listName: `${API_MESSAGES}`,\r\n data: newMessage\r\n })\r\n .then(response => {\r\n if (response.status >= 200 && response.status <= 204) {\r\n self.snackbarContent = \"Message has been sent\";\r\n\r\n self.saveSentiment(self.endValue);\r\n } else {\r\n self.snackbarContent = response.data;\r\n self.snackbarColor = \"red\";\r\n }\r\n self.$snackbar.showMessage({\r\n content: self.snackbarContent,\r\n color: self.snackbarColor\r\n });\r\n\r\n self.messageProcessing = false;\r\n self.sentimentDialog = false;\r\n });\r\n },\r\n cancelSentimentChange() {\r\n this.sentimentDialog = false;\r\n this.communityInfo.sentiment.value = this.startValue;\r\n },\r\n saveSentiment(newValue) {\r\n this.$store\r\n .dispatch(POST_DATA, {\r\n listName: `${API_CUSTOMERS}/${this.communityInfo.id}/sentiment`,\r\n data: {\r\n value: newValue,\r\n modified: new Date()\r\n }\r\n })\r\n .then(response => {\r\n if (response.status >= 200 || response.status <= 204) {\r\n this.snackbarContent = \"Sentiment has been updated successfully\";\r\n } else {\r\n this.snackbarContent = response.data;\r\n this.snackbarColor = \"red\";\r\n }\r\n this.$snackbar.showMessage({\r\n content: this.snackbarContent,\r\n color: this.snackbarColor\r\n });\r\n\r\n this.confirmDialog = true;\r\n });\r\n },\r\n\r\n onSentimentChange(newValue) {\r\n this.endValue = newValue;\r\n this.sentimentDialog = newValue <= 3.5;\r\n\r\n if (!this.sentimentDialog) this.saveSentiment(newValue);\r\n },\r\n\r\n onStart(startValue) {\r\n this.startValue = startValue;\r\n }\r\n },\r\n computed: {\r\n sentimentReasonErrors() {\r\n const errors = [];\r\n if (!this.$v.sentimentReason.$dirty) return errors;\r\n !this.$v.sentimentReason.required && errors.push(\"Required.\");\r\n return errors;\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style></style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommunitySentiment.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommunitySentiment.vue?vue&type=script&lang=js&\"","import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof VInput,\n typeof Loadable\n ]>\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n ticks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n keyPressed: 0,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.keyPressed >= 2 ? 'none' : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n return (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n },\n trackFillStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n },\n },\n\n // If done in as immediate in\n // value watcher, causes issues\n // with vue-test-utils\n beforeMount () {\n this.internalValue = this.value\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n mousedown: this.onSliderMouseDown,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onSliderMouseDown,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onDrag: Function,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n ...this.$attrs,\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n keyup: this.onKeyUp,\n touchstart: onDrag,\n mousedown: onDrag,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onSliderMouseDown (e: MouseEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.keyPressed = 2\n this.isActive = true\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n if ('touches' in e) {\n this.app.addEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, 'touchend', this.onSliderMouseUp, mouseUpOptions)\n } else {\n this.onMouseMove(e)\n this.app.addEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n }\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n this.keyPressed = 0\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent) {\n const { value } = this.parseMouseMove(e)\n this.internalValue = value\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onKeyUp () {\n this.keyPressed = 0\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect() as any\n const clickOffset = 'touches' in e ? (e as any).touches[0][click] : e[click] // Can we get rid of any here?\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n const isInsideTrack = clickOffset >= trackStart && clickOffset <= trackStart + trackLength\n const value = parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n\n return { value, isInsideTrack }\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n this.keyPressed += 1\n\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n","import { render, staticRenderFns } from \"./CommunitySentiment.vue?vue&type=template&id=b3cdfaf2&\"\nimport script from \"./CommunitySentiment.vue?vue&type=script&lang=js&\"\nexport * from \"./CommunitySentiment.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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VRating } from 'vuetify/lib/components/VRating';\nimport { VSlider } from 'vuetify/lib/components/VSlider';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VRating,VSlider,VSpacer,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.accountManager)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\",\"md\":\"1\"}},[_c('v-avatar',{attrs:{\"size\":\"50\",\"color\":\"primary\"}},[(!_vm.communityInfo.accountManager.photo)?_c('span',{staticClass:\"white--text headline\"},[_vm._v(_vm._s(_vm.initials))]):_c('img',{attrs:{\"src\":_vm.communityInfo.accountManager.photo.fileUrl,\"alt\":_vm.communityInfo.accountManager.fullName}})])],1),_c('v-col',{staticClass:\"d-flex align-center\"},[_c('h6',[_vm._v(\" Your Landscape Account Manager: \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.communityInfo.accountManager.fullName))]),_vm._v(\" \"),(_vm.showMessageAccountManagerArea())?_c('router-link',{staticClass:\"blue--text\",attrs:{\"to\":(\"/customerView/\" + (_vm.communityInfo.id) + \"/messages/new?recipient=\" + (_vm.communityInfo.id))}},[_vm._v(\" Message \"+_vm._s(_vm.communityInfo.accountManager.fullName)+\" \")]):_vm._e(),_vm._v(\" \"),(_vm.showPhone())?_c('span',[_vm._v(_vm._s(_vm.communityInfo.accountManager.phone))]):_vm._e()],1)])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <v-row v-if=\"accountManager\">\r\n <v-col cols=\"2\" md=\"1\">\r\n <v-avatar size=\"50\" color=\"primary\">\r\n <span\r\n v-if=\"!communityInfo.accountManager.photo\"\r\n class=\"white--text headline\"\r\n >{{ initials }}</span\r\n >\r\n <img\r\n v-else\r\n :src=\"communityInfo.accountManager.photo.fileUrl\"\r\n :alt=\"communityInfo.accountManager.fullName\"\r\n />\r\n </v-avatar>\r\n </v-col>\r\n <v-col class=\"d-flex align-center\">\r\n <h6>\r\n Your Landscape Account Manager:\r\n <span class=\"font-weight-bold\">{{\r\n communityInfo.accountManager.fullName\r\n }}</span\r\n > \r\n <router-link\r\n v-if=\"showMessageAccountManagerArea()\"\r\n class=\"blue--text\"\r\n :to=\"\r\n `/customerView/${communityInfo.id}/messages/new?recipient=${communityInfo.id}`\r\n \"\r\n >\r\n Message {{ communityInfo.accountManager.fullName }}\r\n </router-link>\r\n\r\n \r\n <span v-if=\"showPhone()\">{{\r\n communityInfo.accountManager.phone\r\n }}</span>\r\n </h6>\r\n </v-col>\r\n </v-row>\r\n </div>\r\n</template>\r\n<script>\r\nimport stringFormatter from \"@/core/helpers/stringFormatter\";\r\nimport Mgr from \"@/core/services/security.service\";\r\n\r\nexport default {\r\n name: \"AccountManagerInfo\",\r\n data: () => ({\r\n mgr: new Mgr(),\r\n userInfo: null\r\n }),\r\n props: {\r\n communityInfo: Object\r\n },\r\n async mounted() {\r\n await this.mgr.getUser().then(userInfo => (this.userInfo = userInfo));\r\n },\r\n methods: {\r\n showPhone() {\r\n return this.userInfo?.profile.aspireRole == \"Property Manager\";\r\n },\r\n showMessageAccountManagerArea() {\r\n return (\r\n this.userInfo &&\r\n (this.userInfo.profile.aspireRole == \"Property Manager\" ||\r\n this.userInfo.profile.aspireRole == \"Landscape Committee\" ||\r\n this.userInfo.profile.aspireRole == \"Board Member\")\r\n );\r\n },\r\n \r\n },\r\n computed: {\r\n initials() {\r\n return stringFormatter.initials(\r\n this.communityInfo?.accountManager?.firstName,\r\n this.communityInfo?.accountManager?.lastName\r\n );\r\n },\r\n accountManager() {\r\n return this.communityInfo?.accountManager;\r\n }\r\n\r\n // \"Property Manager\",\r\n // \"Board Member\",\r\n // \"Landscape Committee\"\r\n // \"Tenant/Resident\",\r\n // \"Tenant/Resident - Neighborhood\",\r\n }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountManagerInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountManagerInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccountManagerInfo.vue?vue&type=template&id=5fe30da6&\"\nimport script from \"./AccountManagerInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountManagerInfo.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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAvatar,VCol,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card',{staticClass:\"service-box\",attrs:{\"outlined\":\"\",\"elevation\":\"0\"}},[_c('h6',{staticClass:\"orange-bg white--text text-center py-1\"},[_vm._v(\"Service Center\")]),_c('v-card-text',[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"4\",\"md\":\"6\",\"xs\":\"12\"}},[_c('div',[(\n _vm.permissions &&\n _vm.permissions.ninetyDayPlan &&\n _vm.permissions.ninetyDayPlan.canView\n )?_c('router-link',{attrs:{\"to\":(\"/customerView/\" + _vm.id + \"/plans\")},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var href = ref.href;\n var navigate = ref.navigate;\n var isActive = ref.isActive;\n var isExactActive = ref.isExactActive;\nreturn [_c('a',{staticClass:\"service-box-link\",class:[\n isActive && 'service-box-item-active',\n isExactActive && 'service-box-item-active'\n ],attrs:{\"href\":href},on:{\"click\":navigate}},[_vm._v(\" Quarterly Plans \")])]}}],null,false,2423536647)}):_vm._e()],1),_c('div',[(\n _vm.permissions &&\n _vm.permissions.orangeReport &&\n _vm.permissions.orangeReport.canView\n )?_c('router-link',{attrs:{\"to\":(\"/customerView/\" + _vm.id + \"/orange-reports\")},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var href = ref.href;\n var navigate = ref.navigate;\n var isActive = ref.isActive;\n var isExactActive = ref.isExactActive;\nreturn [_c('a',{staticClass:\"service-box-link\",class:[\n isActive && 'service-box-item-active',\n isExactActive && 'service-box-item-active'\n ],attrs:{\"href\":href},on:{\"click\":navigate}},[_vm._v(\" Orange Reports \")])]}}],null,false,2323571211)}):_vm._e()],1),_c('div',[(\n _vm.permissions &&\n _vm.permissions.message &&\n _vm.permissions.message.canView\n )?_c('router-link',{attrs:{\"to\":(\"/customerView/\" + _vm.id + \"/messages\")},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var href = ref.href;\n var navigate = ref.navigate;\n var isActive = ref.isActive;\n var isExactActive = ref.isExactActive;\nreturn [_c('a',{staticClass:\"service-box-link\",class:[\n isActive && 'service-box-item-active',\n isExactActive && 'service-box-item-active'\n ],attrs:{\"href\":href},on:{\"click\":navigate}},[_vm._v(\" Messages \")])]}}],null,false,3589705470)}):_vm._e()],1)]),_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"4\",\"md\":\"6\",\"xs\":\"12\"}},[_c('div',[(\n _vm.permissions &&\n _vm.permissions.proposal &&\n _vm.permissions.proposal.canView\n )?_c('router-link',{attrs:{\"to\":(\"/customerView/\" + _vm.id + \"/proposals\")},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var href = ref.href;\n var navigate = ref.navigate;\n var isActive = ref.isActive;\n var isExactActive = ref.isExactActive;\nreturn [_c('a',{staticClass:\"service-box-link\",class:[\n isActive && 'service-box-item-active',\n isExactActive && 'service-box-item-active'\n ],attrs:{\"href\":href},on:{\"click\":navigate}},[_vm._v(\" Proposals \")])]}}],null,false,1509164633)}):_vm._e()],1),_c('div',[(\n _vm.permissions &&\n _vm.permissions.invoice &&\n _vm.permissions.invoice.canView\n )?_c('router-link',{attrs:{\"to\":(\"/customerView/\" + _vm.id + \"/invoices\")},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var href = ref.href;\n var navigate = ref.navigate;\n var isActive = ref.isActive;\n var isExactActive = ref.isExactActive;\nreturn [_c('a',{staticClass:\"service-box-link\",class:[\n isActive && 'service-box-item-active',\n isExactActive && 'service-box-item-active'\n ],attrs:{\"href\":href},on:{\"click\":navigate}},[_vm._v(\" Invoices \")])]}}],null,false,1961832900)}):_vm._e()],1)]),_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"4\",\"md\":\"6\",\"xs\":\"12\"}},[_c('div',[(\n _vm.permissions &&\n _vm.permissions.documents &&\n _vm.permissions.documents.canView\n )?_c('router-link',{attrs:{\"to\":(\"/customerView/\" + _vm.id + \"/documents\")},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var href = ref.href;\n var navigate = ref.navigate;\n var isActive = ref.isActive;\n var isExactActive = ref.isExactActive;\nreturn [_c('a',{staticClass:\"service-box-link\",class:[\n isActive && 'service-box-item-active',\n isExactActive && 'service-box-item-active'\n ],attrs:{\"href\":href},on:{\"click\":navigate}},[_vm._v(\" Documents \")])]}}],null,false,329769370)}):_vm._e()],1),_c('div',[(\n _vm.permissions &&\n _vm.permissions.manageUsers &&\n _vm.permissions.manageUsers.canAccess\n )?_c('router-link',{attrs:{\"to\":(\"/customerView/\" + _vm.id + \"/manage-portal-access\")},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var href = ref.href;\n var navigate = ref.navigate;\n var isActive = ref.isActive;\n var isExactActive = ref.isExactActive;\nreturn [_c('a',{staticClass:\"service-box-link\",class:[\n isActive && 'service-box-item-active',\n isExactActive && 'service-box-item-active'\n ],attrs:{\"href\":href},on:{\"click\":navigate}},[_vm._v(\" Manage Users \")])]}}],null,false,1815848773)}):_vm._e()],1)])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <v-card outlined elevation=\"0\" class=\"service-box\">\r\n <h6 class=\"orange-bg white--text text-center py-1\">Service Center</h6>\r\n <v-card-text>\r\n <v-row no-gutters>\r\n <v-col cols=\"12\" lg=\"4\" md=\"6\" xs=\"12\">\r\n <div>\r\n <router-link\r\n v-if=\"\r\n permissions &&\r\n permissions.ninetyDayPlan &&\r\n permissions.ninetyDayPlan.canView\r\n \"\r\n :to=\"`/customerView/${id}/plans`\"\r\n v-slot=\"{ href, navigate, isActive, isExactActive }\"\r\n >\r\n <a\r\n :href=\"href\"\r\n class=\"service-box-link\"\r\n :class=\"[\r\n isActive && 'service-box-item-active',\r\n isExactActive && 'service-box-item-active'\r\n ]\"\r\n @click=\"navigate\"\r\n >\r\n Quarterly Plans\r\n </a></router-link\r\n >\r\n </div>\r\n <div>\r\n <router-link\r\n v-if=\"\r\n permissions &&\r\n permissions.orangeReport &&\r\n permissions.orangeReport.canView\r\n \"\r\n :to=\"`/customerView/${id}/orange-reports`\"\r\n v-slot=\"{ href, navigate, isActive, isExactActive }\"\r\n >\r\n <a\r\n :href=\"href\"\r\n class=\"service-box-link\"\r\n :class=\"[\r\n isActive && 'service-box-item-active',\r\n isExactActive && 'service-box-item-active'\r\n ]\"\r\n @click=\"navigate\"\r\n >\r\n Orange Reports\r\n </a></router-link\r\n >\r\n </div>\r\n <div>\r\n <router-link\r\n v-if=\"\r\n permissions &&\r\n permissions.message &&\r\n permissions.message.canView\r\n \"\r\n :to=\"`/customerView/${id}/messages`\"\r\n v-slot=\"{ href, navigate, isActive, isExactActive }\"\r\n >\r\n <a\r\n :href=\"href\"\r\n class=\"service-box-link\"\r\n :class=\"[\r\n isActive && 'service-box-item-active',\r\n isExactActive && 'service-box-item-active'\r\n ]\"\r\n @click=\"navigate\"\r\n >\r\n Messages\r\n </a></router-link\r\n >\r\n </div>\r\n </v-col>\r\n <v-col cols=\"12\" lg=\"4\" md=\"6\" xs=\"12\">\r\n <div>\r\n <router-link\r\n v-if=\"\r\n permissions &&\r\n permissions.proposal &&\r\n permissions.proposal.canView\r\n \"\r\n :to=\"`/customerView/${id}/proposals`\"\r\n v-slot=\"{ href, navigate, isActive, isExactActive }\"\r\n >\r\n <a\r\n :href=\"href\"\r\n class=\"service-box-link\"\r\n :class=\"[\r\n isActive && 'service-box-item-active',\r\n isExactActive && 'service-box-item-active'\r\n ]\"\r\n @click=\"navigate\"\r\n >\r\n Proposals\r\n </a></router-link\r\n >\r\n </div>\r\n <div>\r\n <router-link\r\n v-if=\"\r\n permissions &&\r\n permissions.invoice &&\r\n permissions.invoice.canView\r\n \"\r\n :to=\"`/customerView/${id}/invoices`\"\r\n v-slot=\"{ href, navigate, isActive, isExactActive }\"\r\n >\r\n <a\r\n :href=\"href\"\r\n class=\"service-box-link\"\r\n :class=\"[\r\n isActive && 'service-box-item-active',\r\n isExactActive && 'service-box-item-active'\r\n ]\"\r\n @click=\"navigate\"\r\n >\r\n Invoices\r\n </a></router-link\r\n >\r\n </div>\r\n </v-col>\r\n <v-col cols=\"12\" lg=\"4\" md=\"6\" xs=\"12\">\r\n <div>\r\n <router-link\r\n v-if=\"\r\n permissions &&\r\n permissions.documents &&\r\n permissions.documents.canView\r\n \"\r\n :to=\"`/customerView/${id}/documents`\"\r\n v-slot=\"{ href, navigate, isActive, isExactActive }\"\r\n >\r\n <a\r\n :href=\"href\"\r\n class=\"service-box-link\"\r\n :class=\"[\r\n isActive && 'service-box-item-active',\r\n isExactActive && 'service-box-item-active'\r\n ]\"\r\n @click=\"navigate\"\r\n >\r\n Documents\r\n </a></router-link\r\n >\r\n </div>\r\n <div>\r\n <router-link\r\n v-if=\"\r\n permissions &&\r\n permissions.manageUsers &&\r\n permissions.manageUsers.canAccess\r\n \"\r\n :to=\"`/customerView/${id}/manage-portal-access`\"\r\n v-slot=\"{ href, navigate, isActive, isExactActive }\"\r\n >\r\n <a\r\n :href=\"href\"\r\n class=\"service-box-link\"\r\n :class=\"[\r\n isActive && 'service-box-item-active',\r\n isExactActive && 'service-box-item-active'\r\n ]\"\r\n @click=\"navigate\"\r\n >\r\n Manage Users\r\n </a></router-link\r\n >\r\n </div>\r\n </v-col>\r\n </v-row>\r\n </v-card-text>\r\n </v-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nimport permissionsHelper from \"@/core/helpers/permissionsHelper\";\r\n\r\nexport default {\r\n name: \"CustomerViewServiceCenterBox\",\r\n props: {\r\n id: [String, Number]\r\n },\r\n data: () => ({\r\n hasNewMessage: false,\r\n permissions: []\r\n }),\r\n async mounted() {\r\n permissionsHelper.getPermissions().then(this.getPermissions);\r\n },\r\n methods: {\r\n getPermissions(permissionsObj) {\r\n this.permissions = permissionsObj;\r\n }\r\n }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServiceCenterBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServiceCenterBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ServiceCenterBox.vue?vue&type=template&id=7e28f816&\"\nimport script from \"./ServiceCenterBox.vue?vue&type=script&lang=js&\"\nexport * from \"./ServiceCenterBox.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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VRow})\n","<template>\r\n <div id=\"syncscape_communityInfo\">\r\n <CommunityHeader\r\n :communityName=\"communityInfo.name\"\r\n :temperature=\"temperature\"\r\n :humidity=\"humidity\"\r\n :loading=\"weatherLoading || communityInfo == null\"\r\n :weatherCode=\"weatherCode\"\r\n :isInternalView=\"false\"\r\n :isResidentView=\"isResident\"\r\n :communityId=\"communityInfo.aspireId\"\r\n />\r\n <div cols=\"12\" md=\"2\" v-if=\"relatedCommunityItems.length > 1\">\r\n <v-select\r\n v-model=\"relatedCommunity\"\r\n :items=\"relatedCommunityItems\"\r\n item-text=\"communityName\"\r\n item-value=\"aspireId\"\r\n label=\"Select Related Community...\"\r\n >\r\n </v-select>\r\n </div>\r\n <v-card elevation=\"0\">\r\n <v-card-text>\r\n <v-row>\r\n <v-col>\r\n <AccountManagerInfo :communityInfo=\"communityInfo\" />\r\n </v-col>\r\n </v-row>\r\n <v-row v-if=\"userInfo && !isResident\">\r\n <v-col>\r\n <CommunitySentiment :communityInfo=\"communityInfo\" />\r\n </v-col>\r\n <v-col cols=\"12\" md=\"2\" sm=\"6\" lg=\"1\">\r\n <div>\r\n <h6 class=\"text-center\">Service Status</h6>\r\n </div>\r\n <div class=\"text-center\" v-if=\"serviceStatusLoading\">\r\n <v-progress-circular\r\n v-if=\"serviceStatusLoading\"\r\n :active=\"serviceStatusLoading\"\r\n :indeterminate=\"serviceStatusLoading\"\r\n color=\"primary\"\r\n ></v-progress-circular>\r\n </div>\r\n <div v-if=\"!serviceStatusLoading\">\r\n <div class=\"mx-auto\" style=\"width: 50px;\">\r\n <v-img\r\n v-model=\"serviceStatus.status\"\r\n :src=\"getServiceStatusIconPath(serviceStatus)\"\r\n ></v-img>\r\n </div>\r\n <p class=\"text-center orange--text mt-3 mb-0\">\r\n {{ serviceStatus.status }}\r\n </p>\r\n <p class=\"text-center mt-0\" v-if=\"serviceStatus.rescheduledText\">\r\n {{ serviceStatus.rescheduledText }}\r\n </p>\r\n <!-- <p\r\n class=\"text-center mt-0\"\r\n v-if=\"communityInfo.serviceStatus.noServiceThisWeek\"\r\n >\r\n No service this week\r\n </p>\r\n <p\r\n class=\"text-center mt-0\"\r\n v-else-if=\"communityInfo.serviceStatus.rescheduleDate\"\r\n >\r\n Rescheduled\r\n {{ formatDateUs(communityInfo.serviceStatus.rescheduleDate) }}\r\n </p> -->\r\n </div>\r\n </v-col>\r\n\r\n <v-col justify=\"space-around\" cols=\"12\" md=\"5\" lg=\"4\">\r\n <h6 class=\"font-weight-bold text-center\">\r\n <span>Service Request</span> \r\n <router-link\r\n class=\"blue-color\"\r\n :to=\"`/customerView/${communityInfo.id}/requests`\"\r\n v-slot=\"{ href, navigate, isExactActive }\"\r\n >\r\n <a\r\n :href=\"href\"\r\n class=\"link\"\r\n :class=\"[isExactActive && 'link-active']\"\r\n @click=\"navigate\"\r\n >\r\n View All\r\n </a></router-link\r\n >\r\n </h6>\r\n <v-row justify=\"center\">\r\n <v-col class=\"text-center\" md=\"4\" lg=\"4\" sm=\"4\">\r\n <h1 class=\"text-center\" style=\"color: #df6526;\">\r\n <v-progress-circular\r\n v-if=\"requestsLoading\"\r\n :active=\"requestsLoading\"\r\n :indeterminate=\"requestsLoading\"\r\n color=\"primary\"\r\n ></v-progress-circular>\r\n <span v-if=\"!requestsLoading\">\r\n {{\r\n this.communityInfo.serviceRequestsNumbers.open\r\n /*communityInfo.serviceRequests.filter(el => el.isOpen || el.isInProcess).length*/\r\n }}\r\n </span>\r\n </h1>\r\n <span class=\"text-center\">Open</span>\r\n </v-col>\r\n <v-col class=\"text-center\" md=\"4\" lg=\"4\" sm=\"4\">\r\n <h1 class=\"text-center\" style=\"color: #df6526;\">\r\n <v-progress-circular\r\n v-if=\"requestsLoading\"\r\n :active=\"requestsLoading\"\r\n :indeterminate=\"requestsLoading\"\r\n color=\"primary\"\r\n ></v-progress-circular>\r\n <span v-if=\"!requestsLoading\">\r\n {{\r\n this.communityInfo.serviceRequestsNumbers.inProcess\r\n /*communityInfo.serviceRequests.filter(el => el.isOpen || el.isInProcess).length*/\r\n }}\r\n </span>\r\n </h1>\r\n <span class=\"text-center\">In Process</span>\r\n </v-col>\r\n <v-col class=\"text-center\" md=\"4\" lg=\"4\" sm=\"4\">\r\n <h1 class=\"text-cener\" style=\"color: #31c0e3;\">\r\n <v-progress-circular\r\n v-if=\"requestsLoading\"\r\n :active=\"requestsLoading\"\r\n :indeterminate=\"requestsLoading\"\r\n color=\"primary\"\r\n ></v-progress-circular>\r\n <span v-if=\"!requestsLoading\">\r\n {{\r\n this.communityInfo.serviceRequestsNumbers.closed\r\n /*communityInfo.serviceRequests.filter(el => el.isCompleted).length*/\r\n }}\r\n </span>\r\n </h1>\r\n <span class=\"text-center\">Closed</span>\r\n </v-col>\r\n </v-row>\r\n <v-row justify=\"space-around\">\r\n <v-col class=\"text-center\">\r\n <router-link\r\n v-if=\"\r\n permissions &&\r\n permissions.serviceRequest &&\r\n permissions.serviceRequest.canCreate\r\n \"\r\n :to=\"`/customerView/${communityInfo.id}/requests/new`\"\r\n >\r\n <v-btn small rounded class=\"white--text blue-bg\">\r\n New Service Request\r\n </v-btn>\r\n </router-link>\r\n </v-col>\r\n </v-row>\r\n </v-col>\r\n <v-col cols=\"12\" md=\"6\" lg=\"3\">\r\n <ServiceCenterBox :id=\"communityInfo.id\" />\r\n </v-col>\r\n </v-row>\r\n <v-row v-else>\r\n <v-col cols=\"6\" md=\"3\" sm=\"4\" lg=\"2\">\r\n <div>\r\n <div class=\"mx-auto\" style=\"width: 50px;\">\r\n <v-img src=\"/media/assets/icons/icons-service.png\"></v-img>\r\n </div>\r\n <p class=\"text-center mt-2 mb-0\">\r\n <router-link\r\n :to=\"`/customerView/${communityInfo.id}/requests`\"\r\n class=\"link\"\r\n >\r\n <v-btn class=\"white--text\" small>\r\n Service Requests\r\n </v-btn>\r\n <!-- <a\r\n :href=\"href\"\r\n class=\"link\"\r\n :class=\"[\r\n isActive && 'link-active',\r\n isExactActive && 'link-active'\r\n ]\"\r\n @click=\"navigate\"\r\n >\r\n Service Requests\r\n </a> -->\r\n </router-link>\r\n </p>\r\n </div>\r\n </v-col>\r\n <v-col cols=\"6\" md=\"3\" sm=\"4\" lg=\"2\">\r\n <div>\r\n <div class=\"mx-auto\" style=\"width: 50px;\">\r\n <v-img src=\"/media/assets/icons/icons-scheduleDocs.png\"></v-img>\r\n </div>\r\n <p class=\"text-center mt-2 mb-0\">\r\n <router-link\r\n v-if=\"\r\n permissions &&\r\n permissions.documents &&\r\n permissions.documents.canView\r\n \"\r\n :to=\"`/customerView/${communityInfo.id}/documents`\"\r\n class=\"link\"\r\n >\r\n <v-btn class=\"white--text\" small>\r\n Schedules & Docs\r\n </v-btn>\r\n <!-- <a\r\n :href=\"href\"\r\n class=\"link\"\r\n :class=\"[\r\n isActive && 'link-active',\r\n isExactActive && 'link-active'\r\n ]\"\r\n @click=\"navigate\"\r\n >\r\n Schedules & Docs\r\n </a> -->\r\n </router-link>\r\n </p>\r\n </div>\r\n </v-col>\r\n <v-col cols=\"6\" md=\"3\" sm=\"4\" lg=\"2\">\r\n <div>\r\n <div class=\"mx-auto\" style=\"width: 50px;\">\r\n <v-img src=\"/media/assets/icons/icons-message.png\"></v-img>\r\n </div>\r\n <p class=\"text-center mt-2 mb-0\">\r\n <router-link\r\n v-if=\"\r\n permissions &&\r\n permissions.message &&\r\n permissions.message.canView\r\n \"\r\n :to=\"`/customerView/${communityInfo.id}/messages`\"\r\n class=\"link\"\r\n >\r\n <v-btn class=\"white--text\" small>\r\n Messages\r\n </v-btn>\r\n </router-link>\r\n </p>\r\n </div>\r\n </v-col>\r\n <v-col cols=\"6\" md=\"3\" sm=\"4\" lg=\"2\">\r\n <div>\r\n <div class=\"mx-auto\" style=\"width: 50px;\">\r\n <v-img src=\"/media/assets/icons/icons-kudos.png\"></v-img>\r\n </div>\r\n <p class=\"text-center mt-2 mb-0\">\r\n <router-link\r\n :to=\"`/customerView/${communityInfo.id}/sendKudos`\"\r\n class=\"link\"\r\n >\r\n <v-btn class=\"white--text\" small>\r\n Send Kudos\r\n </v-btn>\r\n <!-- <a\r\n :href=\"href\"\r\n class=\"link\"\r\n :class=\"[\r\n isActive && 'link-active',\r\n isExactActive && 'link-active'\r\n ]\"\r\n @click=\"navigate\"\r\n >\r\n Send Kudos\r\n </a> -->\r\n </router-link>\r\n </p>\r\n </div>\r\n </v-col>\r\n </v-row>\r\n </v-card-text>\r\n </v-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport dateFormatter from \"@/core/helpers/dateFormatter\";\r\nimport stringFormatter from \"@/core/helpers/stringFormatter\";\r\n\r\nimport CommunityHeader from \"@/view/components/CommunityHeader.vue\";\r\nimport CommunitySentiment from \"@/view/components/customerView/CommunitySentiment.vue\";\r\nimport AccountManagerInfo from \"@/view/components/customerView/AccountManagerInfo.vue\";\r\nimport ServiceCenterBox from \"@/view/components/customerView/ServiceCenterBox.vue\";\r\nimport permissionsHelper from \"@/core/helpers/permissionsHelper\";\r\nimport Mgr from \"@/core/services/security.service\";\r\n// import moment from \"moment\";\r\nimport {\r\n GET_QUERY,\r\n API_WEATHER,\r\n API_SERVICE_REQUESTS,\r\n API_CUSTOMERS\r\n} from \"@/core/store/crud.module\";\r\n\r\nexport default {\r\n name: \"CustomerViewCommunityInfo\",\r\n components: {\r\n CommunityHeader,\r\n CommunitySentiment,\r\n ServiceCenterBox,\r\n AccountManagerInfo\r\n },\r\n data: () => ({\r\n mgr: new Mgr(),\r\n userInfo: null,\r\n permissions: {},\r\n serviceStatusDialog: false,\r\n serviceAlert: {\r\n reason: \"\",\r\n target: \"\",\r\n date: null,\r\n date2: null\r\n },\r\n serviceStatus: {},\r\n serviceStatusLoading: false,\r\n serviceAlertDateItems: [\r\n {\r\n name: \"Next business day\",\r\n value: \"Next business day\"\r\n },\r\n {\r\n name: \"2 days later\",\r\n value: \"2 days later\"\r\n },\r\n {\r\n name: \"No service this week\",\r\n value: \"No service this week\"\r\n }\r\n ],\r\n relatedCommunity: null,\r\n relatedCommunityItems: [],\r\n alertMenu: false,\r\n formattedAlertDate: null,\r\n alertDate: null,\r\n isLoading: false,\r\n loading: false,\r\n weatherLoading: false,\r\n relatedLoading: false,\r\n temperature: 0,\r\n humidity: 0,\r\n weatherCode: 800,\r\n requestsLoading: false\r\n }),\r\n props: {\r\n communityInfo: Object\r\n // relatedCommunityItems: Array\r\n },\r\n async mounted() {\r\n this.userInfo = await this.mgr.getUser();\r\n await this.getWeather();\r\n await this.getRelatedComunities();\r\n await this.getServiceRequests();\r\n await this.getServiceStatus();\r\n },\r\n async created() {\r\n permissionsHelper.getPermissions().then(this.getPermissions);\r\n },\r\n watch: {\r\n relatedCommunity: async function() {\r\n // let path = \"/customers/\" + this.relatedCommunity;\r\n // this.$router.push(path);\r\n this.$emit(\"onRelatedCommunityChanged\", this.relatedCommunity);\r\n // this.$router.push({\r\n // name: \"CustomerDetails\",\r\n // params: { customerId: this.relatedCommunity }\r\n // });\r\n },\r\n alertDate: function() {\r\n this.formattedAlertDate = this.formatDate(this.alertDate);\r\n }\r\n },\r\n methods: {\r\n getPermissions(permissionsObj) {\r\n this.permissions = permissionsObj;\r\n },\r\n async getRelatedComunities() {\r\n if (!this.communityInfo || !this.communityInfo.aspireId) return;\r\n this.relatedLoading = true;\r\n this.$emit(\"onRelatedCommunityLoading\");\r\n let self = this;\r\n\r\n await this.$store\r\n .dispatch(GET_QUERY, {\r\n listName: `${API_CUSTOMERS}/${self.communityInfo.aspireId}/relatedCustomers`\r\n })\r\n .then(response => {\r\n if (response.status >= 200 || response.status <= 204) {\r\n self.relatedCommunityItems = response.data;\r\n }\r\n self.relatedLoading = false;\r\n self.$emit(\"onRelatedCommunityLoaded\", self.relatedCommunityItems);\r\n });\r\n },\r\n async getServiceStatus() {\r\n if (!this.communityInfo || !this.communityInfo.aspireId) return;\r\n\r\n if (this.serviceStatusLoading) return;\r\n\r\n this.serviceStatusLoading = true;\r\n\r\n await this.$store\r\n .dispatch(GET_QUERY, {\r\n listName: `${API_CUSTOMERS}/${this.communityInfo.aspireId}/serviceStatus`\r\n })\r\n .then(response => {\r\n if (response.status >= 200 || response.status <= 204) {\r\n this.serviceStatus = response.data;\r\n if (!this.serviceStatus) {\r\n this.serviceStatus = {\r\n status: \"On-Schedule\",\r\n rescheduledDate: null,\r\n noServiceThisWeek: false\r\n };\r\n }\r\n }\r\n // else {\r\n // }\r\n this.serviceStatusLoading = false;\r\n });\r\n },\r\n async getWeather() {\r\n if (this.weatherLoading) return;\r\n\r\n if (\r\n !this.communityInfo ||\r\n !this.communityInfo.address ||\r\n !this.communityInfo.address.postalCode\r\n )\r\n return;\r\n\r\n this.weatherLoading = true;\r\n\r\n await this.$store\r\n .dispatch(GET_QUERY, {\r\n listName: `${API_WEATHER}/${this.communityInfo.address.postalCode}`\r\n })\r\n .then(response => {\r\n if (response.status >= 200 || response.status <= 204) {\r\n this.temperature = response.data.currentTemperature;\r\n this.humidity = response.data.currentHumidity;\r\n this.weatherCode = response.data.currentCondition.id;\r\n }\r\n // else {\r\n // }\r\n this.weatherLoading = false;\r\n });\r\n },\r\n async getServiceRequests() {\r\n if (this.requestsLoading) return;\r\n if (!this.communityInfo) return;\r\n if (!this.communityInfo.aspireId) return;\r\n\r\n this.requestsLoading = true;\r\n await this.$store\r\n .dispatch(GET_QUERY, {\r\n listName: `${API_SERVICE_REQUESTS}/Community/${this.communityInfo.aspireId}/publicNumbers`\r\n })\r\n .then(response => {\r\n if (response.status >= 200 || response.status <= 204) {\r\n this.communityInfo.serviceRequestsNumbers = response.data;\r\n // this.communityInfo.serviceRequests = response.data.$values.filter(\r\n // el => !el.isInternal\r\n // );\r\n } else {\r\n this.$snackbar.showMessage({\r\n content:\r\n response.data ||\r\n \"Cannot receive Service Requests. Something went wrong!\",\r\n color: \"red\"\r\n });\r\n }\r\n\r\n this.requestsLoading = false;\r\n });\r\n },\r\n getServiceStatusIconPath(serviceStatus) {\r\n switch (serviceStatus.status) {\r\n case \"On-Schedule\":\r\n return \"/media/assets/service-status/icons-on-schedule.png\";\r\n case \"Rain-Out\":\r\n return \"/media/assets/service-status/icons-rain-out.png\";\r\n case \"Holiday\":\r\n return \"/media/assets/service-status/icons-holiday.png\";\r\n case \"Conflict\":\r\n return \"/media/assets/service-status/icons-conflict.png\";\r\n }\r\n },\r\n setStartingAfter() {\r\n if (this.userInvoices && this.userInvoices.length > 0) {\r\n this.startingAfter = this.userInvoices[this.userInvoices.length - 1].id;\r\n this.endingBefore = \"\";\r\n }\r\n },\r\n setEndingBefore() {\r\n if (this.userInvoices && this.userInvoices.length > 0) {\r\n this.endingBefore = this.userInvoices[0].id;\r\n this.startingAfter = \"\";\r\n }\r\n },\r\n\r\n async submit() {\r\n this.$v.$touch();\r\n if (this.$v.$invalid) {\r\n return;\r\n }\r\n },\r\n formatDate(date) {\r\n return dateFormatter.formatEditDate(date);\r\n },\r\n formatDateUs(date) {\r\n return dateFormatter.formatDateUs(date);\r\n // return moment.utc(date).format(\"MM/DD/YYYY\");\r\n },\r\n capitalizeFirstLetter(string) {\r\n return stringFormatter.capitalizeFirstLetter(string);\r\n }\r\n },\r\n computed: {\r\n isResident() {\r\n return this.userInfo?.profile?.aspireRole == \"Tenant/Resident\";\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\na.link.router-link-active button,\r\na.link.router-link-exact-active button,\r\na.link button:hover {\r\n background-color: #df6526 !important;\r\n}\r\n\r\na.link button {\r\n background-color: #37bcdf !important;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommunityInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommunityInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CommunityInfo.vue?vue&type=template&id=47708d89&scoped=true&\"\nimport script from \"./CommunityInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./CommunityInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CommunityInfo.vue?vue&type=style&index=0&id=47708d89&lang=scss&scoped=true&\"\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 \"47708d89\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VImg,VProgressCircular,VRow,VSelect})\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n return $trimStart(this);\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\n$({ target: 'String', proto: true, forced: FORCED }, {\n trimStart: trimStart,\n trimLeft: trimStart\n});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommunityInfo.vue?vue&type=style&index=0&id=47708d89&lang=scss&scoped=true&\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.patchChildren = patchChildren;\nexports.h = h;\n\nfunction isUndef(v) {\n return v === null || v === undefined;\n}\n\nfunction isDef(v) {\n return v !== null && v !== undefined;\n}\n\nfunction sameVval(oldVval, vval) {\n return vval.tag === oldVval.tag && vval.key === oldVval.key;\n}\n\nfunction createVm(vval) {\n var Vm = vval.tag;\n vval.vm = new Vm({\n data: vval.args\n });\n}\n\nfunction updateVval(vval) {\n var keys = Object.keys(vval.args);\n\n for (var i = 0; i < keys.length; i++) {\n keys.forEach(function (k) {\n vval.vm[k] = vval.args[k];\n });\n }\n}\n\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) map[key] = i;\n }\n\n return map;\n}\n\nfunction updateChildren(oldCh, newCh) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVval = oldCh[0];\n var oldEndVval = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVval = newCh[0];\n var newEndVval = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, elmToMove;\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVval)) {\n oldStartVval = oldCh[++oldStartIdx];\n } else if (isUndef(oldEndVval)) {\n oldEndVval = oldCh[--oldEndIdx];\n } else if (sameVval(oldStartVval, newStartVval)) {\n patchVval(oldStartVval, newStartVval);\n oldStartVval = oldCh[++oldStartIdx];\n newStartVval = newCh[++newStartIdx];\n } else if (sameVval(oldEndVval, newEndVval)) {\n patchVval(oldEndVval, newEndVval);\n oldEndVval = oldCh[--oldEndIdx];\n newEndVval = newCh[--newEndIdx];\n } else if (sameVval(oldStartVval, newEndVval)) {\n patchVval(oldStartVval, newEndVval);\n oldStartVval = oldCh[++oldStartIdx];\n newEndVval = newCh[--newEndIdx];\n } else if (sameVval(oldEndVval, newStartVval)) {\n patchVval(oldEndVval, newStartVval);\n oldEndVval = oldCh[--oldEndIdx];\n newStartVval = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n idxInOld = isDef(newStartVval.key) ? oldKeyToIdx[newStartVval.key] : null;\n\n if (isUndef(idxInOld)) {\n createVm(newStartVval);\n newStartVval = newCh[++newStartIdx];\n } else {\n elmToMove = oldCh[idxInOld];\n\n if (sameVval(elmToMove, newStartVval)) {\n patchVval(elmToMove, newStartVval);\n oldCh[idxInOld] = undefined;\n newStartVval = newCh[++newStartIdx];\n } else {\n createVm(newStartVval);\n newStartVval = newCh[++newStartIdx];\n }\n }\n }\n }\n\n if (oldStartIdx > oldEndIdx) {\n addVvals(newCh, newStartIdx, newEndIdx);\n } else if (newStartIdx > newEndIdx) {\n removeVvals(oldCh, oldStartIdx, oldEndIdx);\n }\n}\n\nfunction addVvals(vvals, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n createVm(vvals[startIdx]);\n }\n}\n\nfunction removeVvals(vvals, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vvals[startIdx];\n\n if (isDef(ch)) {\n ch.vm.$destroy();\n ch.vm = null;\n }\n }\n}\n\nfunction patchVval(oldVval, vval) {\n if (oldVval === vval) {\n return;\n }\n\n vval.vm = oldVval.vm;\n updateVval(vval);\n}\n\nfunction patchChildren(oldCh, ch) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) updateChildren(oldCh, ch);\n } else if (isDef(ch)) {\n addVvals(ch, 0, ch.length - 1);\n } else if (isDef(oldCh)) {\n removeVvals(oldCh, 0, oldCh.length - 1);\n }\n}\n\nfunction h(tag, key, args) {\n return {\n tag: tag,\n key: key,\n args: args\n };\n}"],"sourceRoot":""}