{"version":3,"sources":["webpack:///./src/services/security/accessControlService.ts","webpack:///./src/components/security/_AccessControl.vue?3cee","webpack:///./src/components/security/AccessControlTable.vue?2bb6","webpack:///./src/components/security/AccessControlTable.vue","webpack:///./src/components/security/AccessControlTable.vue?951b","webpack:///./src/components/security/AccessControlTable.vue?83a7","webpack:///./src/components/security/_AccessControl.vue","webpack:///./src/components/security/_AccessControl.vue?8e2b","webpack:///./src/components/security/_AccessControl.vue?cd05","webpack:///./src/components/layouts/HeaderActionButtons.vue?3b8a","webpack:///./src/components/layouts/HeaderActionButtons.vue?2810","webpack:///./src/components/layouts/HeaderActionButtons.vue","webpack:///./src/components/layouts/HeaderActionButtons.vue?0d84","webpack:///./src/components/layouts/HeaderActionButtons.vue?1c9a"],"names":["getACL","id","a","Promise","resolve","reject","get","then","response","data","error","saveACL","saveAclRequest","post","getUserAcl","type","url","length","getUserInheritedAcl","getUserGroupAcl","render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","_s","$t","name","on","back","save","attrs","_l","res","key","toLowerCase","getResourceByType","updateResourceEntity","_e","staticRenderFns","model","value","callback","$$v","searchQuery","expression","columns","filteredData","scopedSlots","_u","column","fn","colType","item","claims","$event","resourceType","jsonClaims","$set","label","i18n","t","prepareJsonClaims","createTableColumns","$router","push","resource","resourceEntities","newColumns","forEach","k","newColumn","toString","concat","$emit","resEntity","element","filter","x","includes","component","namespace","loaded","fetchData","goBack","mode","evt","preventDefault","resources","filterClaims","updateUserResourceClaims","root","elem","record","prepareClaimsArray","Object","keys","map","result","find","components","AccessControlTable","HeaderActionButtons","directives","rawName","class","sticky","preventSave","showSaveButton","isAdmin","saveAndBack","editorStatus","preventBack","permitionEnum","havePermition","$route","getCurrentUser","permissions","AdminPrivilege","checkPermition","undefined","default","abg","inserted","binding","vnode","offset","window","pageYOffset","getBoundingClientRect","top","doc","document","documentElement","scrollTop","clientTop","context","addEventListener","unbind","removeEventListener"],"mappings":"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","file":"js/chunk-45589b68.ec6691ee.js","sourcesContent":["import { SaveAclRequest, Resource, Acl, EffectivePermissionAcl } from \"@/services/security/types\";\r\nimport Api from \"@/services/api\";\r\nimport { UserResourceClaims } from \"@/store/authentication/types\";\r\n\r\nexport async function getACL(id: string): Promise> {\r\n return new Promise((resolve, reject) => {\r\n Api.get(`/acl/${id}`).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport async function saveACL(saveAclRequest: SaveAclRequest): Promise> {\r\n return new Promise((resolve, reject) => {\r\n Api.post(\"/acl/\", saveAclRequest).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport async function getUserAcl(id: string, type: string = \"\"): Promise {\r\n return new Promise((resolve, reject) => {\r\n const url = type.length === 0 ? `/acl/user/${id}` : `/acl/user/${id}/${type}`;\r\n Api.get(url).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport async function getUserInheritedAcl(id: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n const url = `/acl/user/inheritedAcls/${id}`;\r\n Api.get(url).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport async function getUserGroupAcl(id: string, type: string = \"\"): Promise {\r\n return new Promise((resolve, reject) => {\r\n const url = type.length === 0 ? `/acl/usergroup/${id}` : `/acl/usergroup/${id}/${type}`;\r\n Api.get(url).then(\r\n response => {\r\n resolve(response.data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('header',{staticClass:\"page-header\"},[_c('div',{staticClass:\"d-flex justify-content-between\"},[_c('h2',{staticClass:\"mb-0\"},[_vm._v(_vm._s(_vm.$t('userGroups.manageAccess.title'))+\": \"+_vm._s(this.name))]),_c('HeaderActionButtons',{on:{\"back\":_vm.back,\"save\":_vm.save}})],1)]),_c('div',{staticClass:\"table-with-sidebar-wrapper\"},[(_vm.loaded)?_c('b-tabs',{attrs:{\"content-class\":\"mt-3\"}},_vm._l((_vm.resource),function(res){return _c('b-tab',{key:'tab-' + res.name,attrs:{\"title\":_vm.$t('acl.' + (\"\" + (res.name)).toLowerCase())}},[_c('AccessControlTable',{attrs:{\"Id\":_vm.id,\"resource\":_vm.getResourceByType(res.name),\"resourceType\":res.name},on:{\"updateResourceEntity\":_vm.updateResourceEntity}})],1)}),1):_vm._e()],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',{staticClass:\"panel-body\"},[_c('div',{staticClass:\"table-top-actions\"},[_c('div',{staticClass:\"actions-btn-wrapper\"},[_c('div',{staticClass:\"content-search\"},[_c('b-form-input',{staticClass:\"form-control form-control-sm\",attrs:{\"placeholder\":_vm.$t('common.search')},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}}),_c('button',{staticClass:\"search-btn btn btn-sm\",attrs:{\"type\":\"submit\"}},[_c('svg',{staticClass:\"vc-icon\",attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('use',{attrs:{\"xlink:href\":\"#search-icon\"}})])])],1)])]),_c('div',{staticClass:\"table-wrapper custom-scrollbar darkScroll-grayBg\"},[_c('b-table',{staticClass:\"thead-sticky\",attrs:{\"fields\":_vm.columns,\"items\":_vm.filteredData,\"tbody-tr-class\":\"vsc-item-row\",\"head-variant\":\"light\",\"hover\":\"\",\"fixed\":\"\",\"primary-key\":\"id\",\"responsive\":\"xxxl\",\"show-empty\":\"\"},scopedSlots:_vm._u([_vm._l((_vm.columns),function(column){return {key:(\"cell(\" + (column.key) + \")\"),fn:function(data){return [(column.colType === 'checkbox' && data.item.claims)?_c('div',{key:column.key},[_c('b-form-checkbox',{on:{\"input\":function($event){return _vm.updateResourceEntity(data.item, _vm.resourceType)}},model:{value:(data.item.jsonClaims[column.key]),callback:function ($$v) {_vm.$set(data.item.jsonClaims, column.key, $$v)},expression:\"data.item.jsonClaims[column.key]\"}})],1):(column.colType !== 'checkbox')?_c('div',{key:column.key},[_c('span',[_vm._v(_vm._s(data.item.name))])]):_vm._e()]}}})],null,true)})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport {\r\n TableColumn,\r\n ResourceEntity,\r\n Resource,\r\n Claim\r\n} from \"@/services/security/types\";\r\nimport i18n from \"@/i18n\";\r\n\r\n@Component\r\nexport default class AccessControlTable extends Vue {\r\n @Prop() private Id!: string;\r\n @Prop() private resourceType!: string;\r\n @Prop() private resource!: Resource;\r\n\r\n // local state\r\n columns = [\r\n {\r\n key: \"name\",\r\n label: i18n.t(\"common.name\")\r\n }\r\n ] as Array;\r\n\r\n // filter options\r\n searchQuery = \"\";\r\n\r\n // lifecycle hooks\r\n public created() {\r\n this.prepareJsonClaims();\r\n this.createTableColumns();\r\n }\r\n\r\n // computed\r\n get filteredData() {\r\n return (\r\n this.resource.resourceEntities &&\r\n this.resource.resourceEntities.filter(\r\n x =>\r\n this.searchQuery.length === 0 ||\r\n x.name.toLowerCase().includes(this.searchQuery.toLowerCase())\r\n )\r\n );\r\n }\r\n\r\n // methods\r\n backBtn() {\r\n this.$router.push({\r\n name: \"UserGroups\"\r\n });\r\n }\r\n\r\n createTableColumns() {\r\n const name: string = this.resourceType;\r\n let claims = [] as Array;\r\n if (\r\n this.resource &&\r\n this.resource.resourceEntities[0] &&\r\n this.resource.resourceEntities[0].claims\r\n ) {\r\n claims = this.resource.resourceEntities[0].claims;\r\n }\r\n const newColumns: Array = [];\r\n\r\n claims.forEach(function (k) {\r\n const newColumn = {\r\n key: k.name,\r\n label: i18n.t(\"acl.\" + `${k.name}`.toLowerCase()).toString(),\r\n colType: \"checkbox\"\r\n };\r\n newColumns.push(newColumn);\r\n });\r\n\r\n this.columns = this.columns.concat(newColumns);\r\n }\r\n\r\n updateResourceEntity(data: ResourceEntity, resourceType: string) {\r\n this.$emit(\"updateResourceEntity\", data, resourceType);\r\n }\r\n\r\n prepareJsonClaims() {\r\n let jsonClaims: {\r\n [key: string]: boolean;\r\n } = {};\r\n this.resource.resourceEntities.forEach(function (resEntity) {\r\n resEntity.claims.forEach(function (element: Claim) {\r\n jsonClaims[element.name] = element.value;\r\n });\r\n resEntity.jsonClaims = jsonClaims;\r\n jsonClaims = {};\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessControlTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessControlTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccessControlTable.vue?vue&type=template&id=08c01849&\"\nimport script from \"./AccessControlTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccessControlTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Action } from \"vuex-class\";\r\n// components\r\nimport AccessControlTable from \"@/components/security/AccessControlTable.vue\";\r\n// types\r\nimport {\r\n ResourceEntity,\r\n SaveAclRequest,\r\n Resource,\r\n Claim\r\n} from \"@/services/security/types\";\r\n// service methods\r\nimport { saveACL, getACL } from \"@/services/security/accessControlService\";\r\nimport HeaderActionButtons from \"@/components/layouts/HeaderActionButtons.vue\";\r\nconst namespace: string = \"authentication\";\r\n\r\n@Component({\r\n components: {\r\n AccessControlTable: AccessControlTable,\r\n HeaderActionButtons\r\n }\r\n})\r\nexport default class AccessControl extends Vue {\r\n @Prop() private id!: string;\r\n @Prop() private name!: string;\r\n @Prop() private mode!: string;\r\n\r\n @Action(\"updateUserResourceClaims\", { namespace }) updateUserResourceClaims: any;\r\n\r\n // local state\r\n resource = [] as Array;\r\n\r\n loaded: boolean = false;\r\n\r\n // lifecycle hooks\r\n public created() {\r\n this.fetchData();\r\n }\r\n\r\n // methods\r\n fetchData() {\r\n getACL(this.id).then((response: Array) => {\r\n this.resource = response;\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n back() {\r\n this.goBack();\r\n }\r\n\r\n goBack() {\r\n if (this.mode === \"User\") {\r\n this.$router.push({\r\n name: \"users\"\r\n });\r\n } else if (this.mode === \"UserGroup\") {\r\n this.$router.push({\r\n name: \"UserGroups\"\r\n });\r\n }\r\n }\r\n\r\n save(evt: Event) {\r\n evt.preventDefault();\r\n const saveAclRequest: SaveAclRequest = {\r\n id: this.id,\r\n resources: this.filterClaims(this.resource)\r\n };\r\n saveACL(saveAclRequest).then(data => {\r\n this.updateUserResourceClaims(data);\r\n this.goBack();\r\n });\r\n }\r\n\r\n filterClaims(resource: Array): Array {\r\n resource.forEach(function (resource) {\r\n resource.resourceEntities.forEach(function (resEntity) {\r\n resEntity.claims = resEntity.claims.filter(\r\n x => x.value === true\r\n );\r\n });\r\n });\r\n return resource;\r\n }\r\n\r\n updateResourceEntity(data: ResourceEntity, resourceType: string) {\r\n const root = this;\r\n this.resource.forEach(function (elem) {\r\n if (elem.name === resourceType) {\r\n elem.resourceEntities.forEach(function (record) {\r\n if (record.id === data.id) {\r\n record.claims = root.prepareClaimsArray(\r\n data.jsonClaims\r\n );\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n prepareClaimsArray(jsonClaims: { [key: string]: boolean }): Array {\r\n let claims: Array = [];\r\n claims = Object.keys(jsonClaims).map(key => ({\r\n name: key,\r\n value: jsonClaims[key]\r\n }));\r\n return claims;\r\n }\r\n\r\n getResourceByType(type: string) {\r\n const result = this.resource.find(function (elem) {\r\n return elem.name === type;\r\n });\r\n return result;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_AccessControl.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_AccessControl.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./_AccessControl.vue?vue&type=template&id=4063b162&\"\nimport script from \"./_AccessControl.vue?vue&type=script&lang=ts&\"\nexport * from \"./_AccessControl.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderActionButtons.vue?vue&type=style&index=0&id=1317f3f0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderActionButtons.vue?vue&type=style&index=0&id=1317f3f0&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"abg\",rawName:\"v-abg\"}],staticClass:\"actionButtonGroup\",class:{ sticky : _vm.sticky }},[(_vm.showSaveButton)?_c('b-button',{attrs:{\"disabled\":_vm.preventSave,\"variant\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t(\"common.save\")))]):_vm._e(),(_vm.showSaveButton && _vm.isAdmin)?_c('b-button',{attrs:{\"disabled\":_vm.preventSave,\"variant\":\"primary\"},on:{\"click\":_vm.saveAndBack}},[_vm._v(_vm._s(_vm.$t(\"common.saveAndBack\")))]):_vm._e(),(_vm.editorStatus && !_vm.isAdmin)?_c('b-button',{staticClass:\"btn-combine\",attrs:{\"disabled\":_vm.preventBack,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.$emit('newPostBtn')}}},[_c('span',{staticClass:\"iconBox\"},[_c('svg',{staticClass:\"vc-icon\",attrs:{\"viewBox\":\"0 0 9.9 7.5\"}},[_c('use',{attrs:{\"xlink:href\":\"#plus-icon\"}})])]),_c('span',{staticClass:\"post-combine\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"posts.newPost\"))+\" \")])]):_vm._e(),(_vm.editorStatus && !_vm.isAdmin)?_c('b-button',{staticClass:\"btn-combine\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.$emit('previewEvent')}}},[_c('span',{staticClass:\"iconBox\"},[_c('svg',{staticClass:\"vc-icon\",attrs:{\"viewBox\":\"0 0 9 7\"}},[_c('use',{attrs:{\"xlink:href\":\"#preview-icon\"}})])]),_c('span',{staticClass:\"post-combine\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"common.preview\"))+\" \")])]):_vm._e(),_c('b-button',{staticClass:\"ml-1\",attrs:{\"disabled\":_vm.preventBack,\"variant\":\"secondary\"},on:{\"click\":_vm.back}},[_vm._v(_vm._s(_vm.$t(\"common.back\")))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { HavePermition, PermitionEnum } from \"@/components/security/Permitions\";\r\n\r\nconst namespace: string = \"authentication\";\r\n\r\nvar scroll: any;\r\n\r\n@Component({\r\n directives: {\r\n abg: {\r\n inserted: function (element, binding, vnode) {\r\n var offset = (window.pageYOffset + element.getBoundingClientRect().top) - 50; // 50 is the height of the topbar\r\n scroll = function () {\r\n var doc = document.documentElement;\r\n var top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\r\n if (top >= offset) (vnode.context as any).sticky = true;\r\n else (vnode.context as any).sticky = false;\r\n };\r\n window.addEventListener(\"scroll\", scroll, false);\r\n },\r\n unbind: function (element, binding, vnode) {\r\n window.removeEventListener(\"scroll\", scroll, false);\r\n }\r\n }\r\n }\r\n})\r\nexport default class HeaderActionButtons extends Vue {\r\n @Prop() checkPermition!: PermitionEnum;\r\n @Prop({ default: false }) preventSave!: boolean;\r\n @Prop({ default: false }) preventBack!: boolean;\r\n @Getter(\"getCurrentUser\", { namespace }) getCurrentUser: any;\r\n\r\n // local\r\n permitionEnum = PermitionEnum;\r\n havePermition = HavePermition;\r\n editorStatus = false;\r\n\r\n get isAdmin() : boolean {\r\n return this.havePermition(this.getCurrentUser.permissions,\r\n this.permitionEnum[this.permitionEnum.AdminPrivilege]);\r\n }\r\n\r\n sticky = false;\r\n\r\n save() {\r\n if (!this.isAdmin) this.$emit(\"save\", true);\r\n else this.$emit(\"save\", false);\r\n }\r\n\r\n saveAndBack() {\r\n this.$emit(\"save\", true);\r\n }\r\n\r\n back() {\r\n this.$emit(\"back\");\r\n }\r\n\r\n // header component is detroyed and rebuilt in every page load\r\n // so watchers are unless in this case\r\n mounted() {\r\n this.editorStatus = this.$route.name === \"editorupdatechannel\";\r\n }\r\n\r\n get showSaveButton(): boolean {\r\n return this.checkPermition !== null && this.checkPermition !== undefined\r\n ? this.havePermition(this.getCurrentUser.permissions, this.permitionEnum[this.checkPermition]) : true;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderActionButtons.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderActionButtons.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeaderActionButtons.vue?vue&type=template&id=1317f3f0&scoped=true&\"\nimport script from \"./HeaderActionButtons.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeaderActionButtons.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HeaderActionButtons.vue?vue&type=style&index=0&id=1317f3f0&scoped=true&lang=css&\"\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 \"1317f3f0\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}