{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./src/components/Form/MandatoryFieldFlag.vue?d35e","webpack:///./src/views/TuitionFees/administrator/MirrorUser.vue?be7d","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./src/components/Form/TextInput.vue?d55e","webpack:///./src/components/Form/TextInput.vue","webpack:///./src/components/Form/TextInput.vue?7c43","webpack:///./node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///./src/components/Form/MandatoryFieldFlag.vue?e8f2","webpack:///./src/components/Form/MandatoryFieldFlag.vue?c7c1","webpack:///./src/components/Form/MandatoryFieldFlag.vue?c1c8","webpack:///./src/views/TuitionFees/administrator/MirrorUser.vue?55b9","webpack:///./src/services/tuition-fees/person-service.ts","webpack:///./src/views/TuitionFees/administrator/MirrorUser.vue?cc9a","webpack:///./src/views/TuitionFees/administrator/MirrorUser.vue?785f"],"names":["global","DESCRIPTORS","MISSED_STICKY","classof","defineProperty","f","getInternalState","get","RegExpPrototype","RegExp","prototype","TypeError","configurable","this","sticky","uncurryThis","isForced","inheritIfRequired","createNonEnumerableProperty","getOwnPropertyNames","isPrototypeOf","isRegExp","toString","regExpFlags","stickyHelpers","redefine","fails","hasOwn","enforceInternalState","enforce","setSpecies","wellKnownSymbol","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","MATCH","NativeRegExp","SyntaxError","getFlags","exec","charAt","replace","stringIndexOf","indexOf","stringSlice","slice","IS_NCG","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","BASE_FORCED","handleDotAll","string","chr","length","index","result","brackets","handleNCG","named","names","ncg","groupid","groupname","RegExpWrapper","pattern","flags","rawFlags","dotAll","handled","state","thisIsRegExp","patternIsRegExp","flagsAreUndefined","undefined","groups","rawPattern","constructor","source","raw","error","proxy","key","set","it","keys","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","render","_ctx","_cache","$props","$setup","$data","$options","_component_MandatoryFieldFlag","label","required","readonly","type","value","onInput","$event","placeholder","disabled","maxLength","tabIndex","ref","helpText","invalid","validityMessage","components","MandatoryFieldFlag","props","String","Number","default","Boolean","data","methods","focus","$refs","input","event","$emit","target","regExp","test","setValidityMessage","setInputFilter","textbox","inputFilter","forEach","addEventListener","oldValue","oldSelectionStart","selectionStart","oldSelectionEnd","selectionEnd","Object","hasOwnProperty","call","setSelectionRange","message","setCustomValidity","__exports__","title","$t","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_component_TextInput","_component_Table","searchTerm","onKeyup","searchUsers","id","searchButtonDisabled","onClick","searchResults","rows","overrideColWidthCalculation","td","col","val","onMirrorClicked","row","personalId","displayName","luEduPersonPrimaryId","_","searchDone","endpointController","endpointRoute","parameterName","parameterArgument","getPersons","baseApiUrl","fetch","lucatId","querystring","getPerson","TextInput","Table","computed","$store","commit","then","map","person","email","links","catch","e","console","finally","setItem","MirrorUserSearchTerm","focusTextInput","searchInput","CheckForSearchQuery","getItem","IsMirroringUser","MirroredUser","$router","push","name","mounted"],"mappings":"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","file":"assets/js/chunk-16fec704.15e8480e.js","sourcesContent":["var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineProperty(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./MandatoryFieldFlag.vue?vue&type=style&index=0&id=11cc3317&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./MirrorUser.vue?vue&type=style&index=0&id=09bb57b9&scoped=true&lang=css\"","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","import { toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, resolveDynamicComponent as _resolveDynamicComponent, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"form-group\" }\nconst _hoisted_2 = { class: \"w-100\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = {\n key: 0,\n class: \"form-text text-muted\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"text-danger\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MandatoryFieldFlag = _resolveComponent(\"MandatoryFieldFlag\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", _hoisted_2, [\n (_ctx.label)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.label), 1),\n (_ctx.required)\n ? (_openBlock(), _createBlock(_component_MandatoryFieldFlag, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.readonly ? 'p' : 'input'), {\n class: \"form-control\",\n type: _ctx.type,\n value: _ctx.value,\n onInput: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onInput($event))),\n placeholder: _ctx.placeholder,\n disabled: _ctx.disabled,\n \"aria-label\": _ctx.label ? _ctx.label : '',\n required: _ctx.required,\n maxLength: _ctx.maxLength,\n pattern: _ctx.pattern,\n tabIndex: _ctx.tabIndex,\n ref: \"input\"\n }, null, 8, [\"type\", \"value\", \"placeholder\", \"disabled\", \"aria-label\", \"required\", \"maxLength\", \"pattern\", \"tabIndex\"]))\n ]),\n (_ctx.helpText)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_4, _toDisplayString(_ctx.helpText), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.invalid)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_5, _toDisplayString(_ctx.validityMessage), 1))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport MandatoryFieldFlag from \"@/components/Form/MandatoryFieldFlag.vue\";\r\n\r\n@Options({\r\n components: {\r\n MandatoryFieldFlag,\r\n },\r\n props: {\r\n /**\r\n * The current value\r\n */\r\n value: {\r\n type: [String, Number] as PropType,\r\n required: false,\r\n },\r\n /**\r\n * The label for the input\r\n */\r\n label: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * The placeholder for the input\r\n */\r\n placeholder: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * The help text for the input\r\n */\r\n helpText: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * The input type\r\n * @values text, email, number, password, search, tel, url\r\n */\r\n type: {\r\n type: String as PropType<\r\n \"text\" | \"email\" | \"number\" | \"password\" | \"search\" | \"tel\" | \"url\"\r\n >,\r\n required: false,\r\n default: \"text\",\r\n },\r\n /**\r\n * The maximum number of characters the user can enter into the input\r\n */\r\n maxLength: {\r\n type: Number as PropType,\r\n required: false,\r\n },\r\n /**\r\n * A regular expression the input's value should match\r\n */\r\n pattern: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * If the input is disabled\r\n */\r\n disabled: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n /**\r\n * If the input is readonly\r\n */\r\n readonly: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n /**\r\n * If the input is required\r\n */\r\n required: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n /**\r\n * Custom validity message\r\n */\r\n validityMessage: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * The tab index of the input\r\n */\r\n tabIndex: {\r\n type: Number as PropType,\r\n required: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n invalid: false,\r\n };\r\n },\r\n methods: {\r\n /**\r\n * Set focus on input\r\n */\r\n focus() {\r\n this.$refs.input.focus();\r\n },\r\n\r\n /**\r\n * Gets called when the user updates value\r\n *\r\n * @param {Event} event The event\r\n */\r\n onInput(\r\n event: InputEvent & {\r\n target: HTMLInputElement;\r\n }\r\n ): void {\r\n this.$emit(\"update:value\", event.target.value);\r\n\r\n if (this.pattern) {\r\n const regExp = new RegExp(this.pattern);\r\n\r\n this.invalid = !regExp.test(event.target.value);\r\n\r\n if (this.invalid) {\r\n this.setValidityMessage(this.validityMessage || \"Invalid input\");\r\n } else {\r\n this.setValidityMessage(\"\");\r\n }\r\n\r\n this.setInputFilter(event.target, (value: string) =>\r\n regExp.test(value)\r\n );\r\n }\r\n },\r\n\r\n /*\r\n * Validates user input by setting an input filter.\r\n */\r\n setInputFilter(\r\n textbox: Element,\r\n inputFilter: (value: string) => boolean\r\n ): void {\r\n [\r\n \"input\",\r\n \"keydown\",\r\n \"keyup\",\r\n \"mousedown\",\r\n \"mouseup\",\r\n \"select\",\r\n \"contextmenu\",\r\n \"drop\",\r\n ].forEach(function (event) {\r\n textbox.addEventListener(\r\n event,\r\n function (\r\n this: (HTMLInputElement | HTMLTextAreaElement) & {\r\n oldValue?: string;\r\n oldSelectionStart?: number | null;\r\n oldSelectionEnd?: number | null;\r\n }\r\n ) {\r\n if (inputFilter(this.value)) {\r\n this.oldValue = this.value;\r\n this.oldSelectionStart = this.selectionStart;\r\n this.oldSelectionEnd = this.selectionEnd;\r\n } else if (Object.prototype.hasOwnProperty.call(this, \"oldValue\")) {\r\n this.value = this.oldValue || \"\";\r\n if (\r\n this.oldSelectionStart !== null &&\r\n this.oldSelectionEnd !== null\r\n ) {\r\n this.setSelectionRange(\r\n this.oldSelectionStart ?? 0,\r\n this.oldSelectionEnd ?? 0\r\n );\r\n }\r\n } else {\r\n this.value = \"\";\r\n }\r\n }\r\n );\r\n });\r\n },\r\n\r\n /**\r\n * Sets a custom validity message.\r\n *\r\n * @param {string} message The message to set.\r\n */\r\n setValidityMessage(message: string): void {\r\n this.$refs.input.setCustomValidity(message);\r\n },\r\n },\r\n})\r\nexport default class TextInput extends Vue {}\r\n","import { render } from \"./TextInput.vue?vue&type=template&id=72776d54&ts=true\"\nimport script from \"./TextInput.vue?vue&type=script&lang=ts\"\nexport * from \"./TextInput.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineProperty(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-11cc3317\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"title\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"mandatory-field-flag\",\n title: _ctx.$t('mandatoryField.title')\n }, \" * \", 8, _hoisted_1))\n}","\r\nimport { Vue } from \"vue-class-component\";\r\n\r\nexport default class MandatoryFieldFlag extends Vue {}\r\n","import { render } from \"./MandatoryFieldFlag.vue?vue&type=template&id=11cc3317&scoped=true&ts=true\"\nimport script from \"./MandatoryFieldFlag.vue?vue&type=script&lang=ts\"\nexport * from \"./MandatoryFieldFlag.vue?vue&type=script&lang=ts\"\n\nimport \"./MandatoryFieldFlag.vue?vue&type=style&index=0&id=11cc3317&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-11cc3317\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withKeys as _withKeys, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-09bb57b9\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"container\" }\nconst _hoisted_2 = { class: \"page-heading\" }\nconst _hoisted_3 = { class: \"form-container\" }\nconst _hoisted_4 = { class: \"text-input-container\" }\nconst _hoisted_5 = [\"disabled\", \"aria-label\"]\nconst _hoisted_6 = {\n key: 0,\n class: \"search-results\"\n}\nconst _hoisted_7 = { class: \"page-heading\" }\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = { key: 1 }\nconst _hoisted_10 = { key: 2 }\nconst _hoisted_11 = { key: 3 }\nconst _hoisted_12 = { key: 4 }\nconst _hoisted_13 = { key: 0 }\nconst _hoisted_14 = { key: 1 }\nconst _hoisted_15 = [\"aria-label\", \"onClick\"]\nconst _hoisted_16 = {\n key: 2,\n class: \"wrap-content\"\n}\nconst _hoisted_17 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_TextInput = _resolveComponent(\"TextInput\")!\n const _component_Table = _resolveComponent(\"Table\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t(\"tuition-fees.mirror-user\")), 1),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_TextInput, {\n class: \"mr-2 search-input\",\n ref: \"searchInput\",\n placeholder: _ctx.$t('tuition-fees.search-on') + '...',\n label: \r\n _ctx.$t('tuition-fees.search-term') +\r\n ' (' +\r\n _ctx.$t('tuition-fees.minimum-char') +\r\n ')'\r\n ,\n required: false,\n value: this.searchTerm,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((this.searchTerm) = $event)),\n onKeyup: _withKeys(_ctx.searchUsers, [\"enter\"])\n }, null, 8, [\"placeholder\", \"label\", \"value\", \"onKeyup\"]),\n _createElementVNode(\"button\", {\n id: \"fetchBtn\",\n class: \"btn btn-primary\",\n disabled: _ctx.searchButtonDisabled,\n \"aria-label\": _ctx.$t('shared.search'),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.searchUsers()))\n }, _toDisplayString(_ctx.$t(\"shared.search\")), 9, _hoisted_5)\n ])\n ])\n ]),\n (_ctx.searchResults.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"h2\", _hoisted_7, _toDisplayString(_ctx.$t(\"tuition-fees.search-results\")), 1),\n _createVNode(_component_Table, {\n rows: _ctx.searchResults,\n overrideColWidthCalculation: true,\n id: \"search-result-table\"\n }, {\n td: _withCtx((data) => [\n (data.col === 'displayName')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_8, _toDisplayString(_ctx.$t(\"person.name\")), 1))\n : _createCommentVNode(\"\", true),\n (data.col === 'luEduPersonPrimaryId')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_9, _toDisplayString(_ctx.$t(\"person.lu-account\")), 1))\n : _createCommentVNode(\"\", true),\n (data.col === 'personalId')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, _toDisplayString(_ctx.$t(\"person.personalId\")), 1))\n : _createCommentVNode(\"\", true),\n (data.col === 'email')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_ctx.$t(\"person.email-address\")), 1))\n : _createCommentVNode(\"\", true),\n (data.col === 'links')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_12))\n : _createCommentVNode(\"\", true)\n ]),\n default: _withCtx((data) => [\n (data.col === 'luEduPersonPrimaryId' || data.col === 'email')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_13, _toDisplayString(data.val ? data.val : _ctx.$t(\"tuition-fees.unknown\")), 1))\n : _createCommentVNode(\"\", true),\n (data.col === 'links')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_14, [\n _createElementVNode(\"button\", {\n id: \"mirrorBtn\",\n class: \"btn btn-outline-primary\",\n \"aria-label\": _ctx.$t('tuition-fees.mirror'),\n onClick: ($event: any) => (\r\n _ctx.onMirrorClicked(\r\n data.row.personalId,\r\n data.row.displayName,\r\n data.row.luEduPersonPrimaryId\r\n )\r\n )\n }, _toDisplayString(_ctx.$t(\"tuition-fees.mirror\")), 9, _hoisted_15)\n ]))\n : (data.col === 'displayName')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_16, _toDisplayString(data.val), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"rows\"])\n ]))\n : (_ctx.searchDone && _ctx.searchResults.length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t(\"tuition-fees.no-search-results\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}","import BaseService from \"@/services/base-service\";\r\nimport { TfPerson } from \"@/interfaces/api\";\r\n\r\nclass PersonService extends BaseService {\r\n /**\r\n * Fetches the persons that match the specified search term\r\n *\r\n * @param {string} searchTerm - The search term\r\n * @returns {Promise>} A promise with a list of persons\r\n */\r\n getPersons(searchTerm: string): Promise> {\r\n const endpointController = \"Person\";\r\n const endpointRoute = \"search\";\r\n const parameterName = \"searchTerm\";\r\n const parameterArgument = searchTerm;\r\n const getPersons = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${parameterName}=${parameterArgument}`;\r\n return this.fetch>(getPersons);\r\n }\r\n\r\n /**\r\n * Fetches the person with the specified lucat id\r\n *\r\n * @param {string} lucatId - The person's lucat id\r\n * @returns {Promise} A promise with a person\r\n */\r\n getPerson(lucatId: string): Promise {\r\n const endpointController = \"Person\";\r\n const endpointRoute = \"lucatId\";\r\n const parameterName = \"lucatId\";\r\n const parameterArgument = lucatId;\r\n const querystring = `${parameterName}=${parameterArgument}`;\r\n const getPerson = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${querystring}`;\r\n return this.fetch(getPerson);\r\n }\r\n}\r\n\r\nexport default new PersonService();\r\n","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport Table from \"@/components/Table.vue\";\r\nimport TextInput from \"@/components/Form/TextInput.vue\";\r\nimport { SessionStorageKeys } from \"@/constants/constants\";\r\nimport { TfPerson } from \"@/interfaces/api.ts\";\r\nimport PersonService from \"@/services/tuition-fees/person-service.ts\";\r\nimport SessionStorageService from \"@/services/sessionstorage-service\";\r\n\r\n@Options({\r\n components: {\r\n TextInput,\r\n Table,\r\n },\r\n data: () => ({\r\n /*\r\n * Holds the search term entered in the text input\r\n */\r\n searchTerm: null,\r\n /*\r\n * Holds the search results\r\n */\r\n searchResults: [],\r\n /*\r\n * Used in conjunction with the no results message\r\n */\r\n searchDone: false,\r\n }),\r\n computed: {\r\n /*\r\n * Keeps the search button disabled until a search term of at least 2 characters is entered\r\n */\r\n searchButtonDisabled(): boolean {\r\n return this.searchTerm ? this.searchTerm.length < 2 : true;\r\n },\r\n },\r\n methods: {\r\n /*\r\n * Executes a search for users based on the search term\r\n */\r\n searchUsers(): void {\r\n this.$store.commit(\"showSpinner\", true);\r\n this.searchDone = false;\r\n\r\n PersonService.getPersons(this.searchTerm)\r\n .then((data: Array) => {\r\n this.searchDone = true;\r\n this.searchResults = data.map((person: TfPerson) => {\r\n return {\r\n luEduPersonPrimaryId: person.luEduPersonPrimaryId,\r\n personalId: person.personalId,\r\n displayName: person.displayName,\r\n email: person.email,\r\n links: null,\r\n };\r\n });\r\n })\r\n .catch((e: Error) => {\r\n console.error(e);\r\n this.searchDone = true;\r\n this.searchResults = [];\r\n })\r\n .finally(() => {\r\n SessionStorageService.setItem(\r\n SessionStorageKeys.MirrorUserSearchTerm,\r\n this.searchTerm\r\n );\r\n this.$store.commit(\"showSpinner\", false);\r\n });\r\n },\r\n /*\r\n * Places focus in the text input\r\n */\r\n focusTextInput(): void {\r\n this.$refs.searchInput?.focus();\r\n },\r\n /*\r\n * Checks if there is a search term in session storage and if so, executes a search\r\n */\r\n CheckForSearchQuery(): void {\r\n this.searchTerm = SessionStorageService.getItem(\r\n SessionStorageKeys.MirrorUserSearchTerm\r\n );\r\n\r\n if (this.searchTerm) {\r\n this.searchUsers();\r\n }\r\n },\r\n /*\r\n * Sets the session storage keys MirroringUser & CurrentMirroredUser and navigates to the tuition fee home view\r\n */\r\n onMirrorClicked(\r\n personalId: string,\r\n displayName: string,\r\n lucatId: string\r\n ): void {\r\n SessionStorageService.setItem(SessionStorageKeys.IsMirroringUser, true);\r\n SessionStorageService.setItem(SessionStorageKeys.MirroredUser, {\r\n personalId: personalId,\r\n displayName: displayName,\r\n luEduPersonPrimaryId: lucatId,\r\n });\r\n\r\n this.$router.push({\r\n name: \"TuitionFeeHome\",\r\n });\r\n },\r\n },\r\n mounted(): void {\r\n this.CheckForSearchQuery();\r\n this.focusTextInput();\r\n },\r\n})\r\nexport default class MirrorUser extends Vue {}\r\n","import { render } from \"./MirrorUser.vue?vue&type=template&id=09bb57b9&scoped=true&ts=true\"\nimport script from \"./MirrorUser.vue?vue&type=script&lang=ts\"\nexport * from \"./MirrorUser.vue?vue&type=script&lang=ts\"\n\nimport \"./MirrorUser.vue?vue&type=style&index=0&id=09bb57b9&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-09bb57b9\"]])\n\nexport default __exports__"],"sourceRoot":""}