{"version":3,"sources":["webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///./src/design/symbols/htmlSymbols.js","webpack:///./src/mixins/shared/record/recordBadgeMixin.js","webpack:///../../../src/components/VBadge/VBadge.ts","webpack:///./src/model/folder/folderModel.js","webpack:///./src/mixins/shared/record/recordIconMixin.js","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/transitionable/index.ts","webpack:///./src/components/record/RecordBadgeIcon.vue","webpack:///src/components/record/RecordBadgeIcon.vue","webpack:///./src/components/record/RecordBadgeIcon.vue?8bae","webpack:///./src/components/record/RecordBadgeIcon.vue?a765"],"names":["SIZE_MAP","isFontAwesome5","iconType","some","val","includes","isSvgPath","icon","test","length","VIcon","mixins","BindsAttrs","Colorable","Sizeable","Themeable","extend","name","props","dense","Boolean","disabled","left","right","size","Number","String","tag","type","required","default","computed","medium","hasClickListener","this","listeners$","click","methods","getIcon","iconName","$slots","text","trim","remapInternalIcon","getSize","sizes","xSmall","small","large","xLarge","explicitSize","keys","find","key","convertToUnit","getDefaultData","staticClass","class","attrs","undefined","attrs$","on","getSvgWrapperData","fontSize","wrapperData","style","height","width","applyColors","data","themeClasses","setTextColor","color","renderFontIcon","h","newChildren","delimiterIndex","indexOf","isMaterialIcon","push","slice","renderSvgIcon","svgData","xmlns","viewBox","role","d","renderSvgIconComponent","component","nativeOn","render","Vue","$_wrapperFor","functional","children","domProps","textContent","innerHTML","downArrowWithTipLeft","recordBadgeMixin","symbolShortcut","record","badgeOverlap","badgeBordered","badgeLight","badgeDark","badgeAvatar","iconColorClass","infoOnly","computedIconColorClass","recordIconColorClass","isShortcut","_this$record$isLink","_this$record","isLink","onClick","$emit","eventNames","PositionableFactory","Toggleable","Transitionable","avatar","bordered","content","dot","label","inline","offsetX","offsetY","overlap","tile","transition","value","classes","bottom","computedBottom","computedYOffset","computedLeft","isRtl","computedXOffset","computedRight","computedTop","calcPosition","$vuetify","rtl","offset","styles","top","genBadge","lang","$attrs","t","setBackgroundColor","title","directives","isActive","badge","$createElement","genBadgeContent","origin","mode","slot","getSlot","genBadgeWrapper","_x","_y","_z","unshift","folderColor","Color","colorMD","yellow","variantType","darken","variantNumber","n2","documentColor","indigo","n1","folderColorClass","getClassColor","documentColorClass","recordIconMixin","menuItemSettingsMixin","recordIcon","recordTypeId","recordType","FILE","findFileTypeIcon","extension","findRecordTypeIcon","recordTypeIcon","typeId","_record$recordTypeId","recordTypeIconColorClass","RECORD","FOLDER","MEETING","SECTION","ITEM","DOCUMENT","menuItemColorClass","sizeableClasses","factory","prop","event","model","watch","scopedSlots","_vm","fn","_t","proxy","isHistoryMode","components","RecordBadgeBase","staticRenderFns"],"mappings":"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","file":"js/chunk-a0098f16.1e1ca8a0.js","sourcesContent":["import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","const leftArrowWithHook = \"↩\";\r\nconst downArrowWithCornerLeft = \"↵\";\r\nconst downArrowWithTipLeft = \"↲\";\r\n\r\nexport { leftArrowWithHook, downArrowWithCornerLeft, downArrowWithTipLeft };\r\n","// model\r\nimport { eventNames } from \"@/model/common/events/eventConst\";\r\n\r\n// design\r\nimport { downArrowWithTipLeft } from \"@/design/symbols/htmlSymbols\";\r\n\r\nexport const recordBadgeMixin = {\r\n data() {\r\n return {\r\n symbolShortcut: downArrowWithTipLeft\r\n };\r\n },\r\n props: {\r\n /**\r\n * @type {{id:number, name:string, categoryId:number, parentId:number, children:number, createdBy:string, creationDate:string, modificationDate:string, isDeleted:boolean, isDraft:boolean, isComposite:boolean, isLink:boolean, isLocked:boolean, isReadOnly:boolean, recordTypeId:number, recordType:string, stateId:number, state:string, version:number, versionDate:string, versionOwner:string, operations: {name: string, allowed: boolean, valid: boolean}[] }}\r\n */\r\n record: undefined,\r\n /**\r\n * Overlaps the slotted content on top of the component.\r\n * @type {boolean}\r\n */\r\n badgeOverlap: {\r\n type: Boolean,\r\n default: true\r\n },\r\n /**\r\n * Applies a 2px by default and 1.5px border\r\n * around the badge when using the dot property\r\n * @type {boolean}\r\n */\r\n badgeBordered: {\r\n type: Boolean,\r\n default: true\r\n },\r\n /**\r\n * Applies the light theme variant to the component.\r\n */\r\n badgeLight: {\r\n type: Boolean,\r\n default: true\r\n },\r\n badgeDark: {\r\n type: Boolean,\r\n default: false\r\n },\r\n /**\r\n * Removes badge padding for the use of the v-avatar in the badge slot\r\n */\r\n badgeAvatar: {\r\n type: Boolean,\r\n default: false\r\n },\r\n /**\r\n * disabled Record Icon\r\n * @type {boolean}\r\n */\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n /**\r\n * Record icon Color Class\r\n * @type {string}\r\n */\r\n iconColorClass: {\r\n type: String,\r\n default: \"\"\r\n },\r\n /**\r\n * display as information Only\r\n * @type {boolean}\r\n */\r\n infoOnly: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n computed: {\r\n /**\r\n * computed Icon Color Class\r\n * @return {String|string|undefined}\r\n */\r\n computedIconColorClass() {\r\n return this.iconColorClass === \"\"\r\n ? this.recordIconColorClass(this.record)\r\n : this.iconColorClass;\r\n },\r\n /**\r\n * Determines whether provided record is Shortcut\r\n * @return {Boolean|boolean}\r\n */\r\n isShortcut() {\r\n return this.record?.isLink ?? false;\r\n }\r\n },\r\n methods: {\r\n /**\r\n * Handles click event\r\n */\r\n onClick() {\r\n this.$emit(eventNames.click);\r\n }\r\n }\r\n};\r\n","// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n/* @vue/component */\n).extend({\n name: 'v-badge',\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n value: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-badge__badge',\n style: this.styles,\n attrs: {\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n },\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n })\n\n const badge = this.$createElement('span', data, [this.genBadgeContent()])\n\n if (!this.transition) return badge\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [badge])\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return this.$createElement(VIcon, this.icon)\n\n return undefined\n },\n genBadgeWrapper () {\n return this.$createElement('span', {\n staticClass: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (h): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', {\n staticClass: 'v-badge',\n attrs,\n class: this.classes,\n }, children)\n },\n})\n","import {\r\n Color,\r\n colorMD,\r\n variantNumber,\r\n variantType\r\n} from \"@/design/colors/Color\";\r\n\r\n/**\r\n * Get Material Design folder Color\r\n * @returns {{name:string, variant: string, variantNumber:number}}\r\n */\r\nconst folderColor = new Color(\r\n colorMD.yellow,\r\n variantType.darken,\r\n variantNumber.n2\r\n);\r\n\r\n/**\r\n * Get Material Design compound document Color\r\n */\r\nconst documentColor = new Color(\r\n colorMD.indigo,\r\n variantType.darken,\r\n variantNumber.n1\r\n);\r\n\r\n/**\r\n * Folder Color Class\r\n * @returns {string|*}\r\n */\r\nconst folderColorClass = folderColor.getClassColor();\r\n\r\n/**\r\n * Compound document Color Class\r\n * @type {string|*}\r\n */\r\nconst documentColorClass = documentColor.getClassColor();\r\n\r\nexport { folderColor, documentColor, folderColorClass, documentColorClass };\r\n","// model\r\nimport { recordType, findRecordTypeIcon } from \"@/model/record/recordModel\";\r\nimport {\r\n documentColorClass,\r\n folderColorClass\r\n} from \"@/model/folder/folderModel\";\r\nimport { findFileTypeIcon } from \"@/model/record/fileModel\";\r\n\r\n// mixins\r\nimport { menuItemSettingsMixin } from \"../base/settings/menuItemSettingsMixin\";\r\n\r\nexport const recordIconMixin = {\r\n mixins: [menuItemSettingsMixin],\r\n methods: {\r\n /**\r\n * Get record Icon name\r\n * @param {{recordTypeId:number, children:number, extension:string}} record\r\n * @return {string|string}\r\n */\r\n recordIcon(record) {\r\n if (!record) {\r\n return undefined;\r\n }\r\n switch (record.recordTypeId) {\r\n // case recordType.FOLDER:\r\n // case recordType.DOCUMENT: {\r\n // return (record?.children ?? 0) > 0\r\n // ? iconFolderPlus\r\n // : findRecordTypeIcon(type);\r\n // }\r\n // case recordType.SECTION: {\r\n // return (record?.children ?? 0) > 0\r\n // ? iconAgendaSectionPlus\r\n // : findRecordTypeIcon(type);\r\n // }\r\n case recordType.FILE: {\r\n return findFileTypeIcon(record.extension);\r\n }\r\n default: {\r\n return findRecordTypeIcon(record.recordTypeId);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Get record Type Icon\r\n * @param {Number|number} typeId\r\n * @return {string}\r\n */\r\n recordTypeIcon(typeId) {\r\n return findRecordTypeIcon(typeId);\r\n },\r\n\r\n /**\r\n * Get record Icon Color Class\r\n * @param {{recordTypeId:number}} record\r\n * @return {undefined|string}\r\n */\r\n recordIconColorClass(record) {\r\n return record\r\n ? this.recordTypeIconColorClass(\r\n record?.recordTypeId ?? recordType.RECORD\r\n )\r\n : undefined;\r\n },\r\n\r\n /**\r\n * record Type Icon Color Class\r\n * @param {Number|number} typeId\r\n * @return {undefined|string}\r\n */\r\n recordTypeIconColorClass(typeId) {\r\n switch (typeId) {\r\n case recordType.FOLDER:\r\n case recordType.MEETING:\r\n case recordType.SECTION:\r\n case recordType.ITEM: {\r\n return folderColorClass;\r\n }\r\n case recordType.DOCUMENT: {\r\n return documentColorClass;\r\n }\r\n case recordType.RECORD: {\r\n return undefined;\r\n }\r\n default: {\r\n return this.menuItemColorClass;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'transitionable',\n\n props: {\n mode: String,\n origin: String,\n transition: String,\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-badge',{attrs:{\"value\":_vm.isShortcut,\"bottom\":\"\",\"left\":\"\",\"overlap\":\"\",\"bordered\":\"\"},scopedSlots:_vm._u([{key:\"badge\",fn:function(){return [(_vm.isShortcut)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.symbolShortcut)}}):_vm._e()]},proxy:true},{key:\"default\",fn:function(){return [_c('record-badge-base',{attrs:{\"record\":_vm.record,\"badge-overlap\":_vm.badgeOverlap,\"badge-bordered\":_vm.badgeBordered,\"disabled\":_vm.disabled,\"info-only\":_vm.infoOnly,\"icon-color-class\":_vm.iconColorClass,\"is-history-mode\":_vm.isHistoryMode},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._t(\"default\",function(){return [_c('v-icon',{attrs:{\"disabled\":_vm.disabled,\"color\":_vm.computedIconColorClass},on:{\"click\":_vm.onClick}},[_vm._v(_vm._s(_vm.recordIcon(_vm.record))+\" \")])]})]},proxy:true},{key:\"tooltip\",fn:function(){return [_vm._t(\"tooltip\")]},proxy:true}],null,true)})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecordBadgeIcon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecordBadgeIcon.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RecordBadgeIcon.vue?vue&type=template&id=79722fce\"\nimport script from \"./RecordBadgeIcon.vue?vue&type=script&lang=js\"\nexport * from \"./RecordBadgeIcon.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"],"sourceRoot":""}