{"version":3,"file":"angular-vue-plugins.min.mjs","sources":["../src/plugins/angular-vue-plain-plugin.js","../src/plugins/angular-vue-route-plugin.js","../src/plugins/angular-vue-router-plugin.js","../src/plugins/angular-vue-auth-plugin.js","../node_modules/lodash/_root.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/isArray.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/capitalize.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/deburr.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/words.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/camelCase.js","../src/components/vue-ng.js","../src/libs/safe-apply.js","../src/libs/render-v-node-to-dom-element.js","../src/plugins/angular-vue-plugin.js","../src/libs/pascal-case.js"],"sourcesContent":["\nexport default function CreateAngularVuePlainPlugin(ngServiceName, ngService) {\n\n    return {\n        // called by Vue.use(CreateAngularVuePlainPlugin)\n        install(Vue, options) {\n            if(!Vue.prototype[ngServiceName])\n                Vue.prototype[ngServiceName] = ngService;\n        }\n      }\n}","import Vue from 'Vue';\n\nexport default function AngularVueRoutePlugin($injector) {\n\n  if(!$injector)\n    $injector = Vue?.prototype?.$ngVue?.$injector;\n\n    if(!$injector)\n        throw new Error('Angular $injector not provided, cannot use AngularVueRoutePlugin plugin');\n  \n    const $location  = $injector.get('$location');\n    const $route     = $injector.get('$route');\n    const $rootScope = $injector.get('$rootScope');\n  \n    if(!$location)\n        throw new Error('Angular $location service not available, cannot use AngularVueRoutePlugin plugin');\n    if(!$route)\n        throw new Error('Angular $route service not available, cannot use AngularVueRoutePlugin');\n  \n    const observableRoute = window.Vue.observable({\n      _route : null\n    })\n  \n    function updateRoute() {\n      const fullPath = $location.url();\n      const path   = $location.path();\n      const hash   = $location.hash();\n      const query  = { ...($location.search()    || {})};\n      const params = { ...($route.current?.params|| {})};\n\n      observableRoute._route = {\n        get fullPath() { return fullPath; },\n        get path()   { return path; },\n        get hash()   { return hash ? `#${hash}` : ''; },\n        get query()  { return { ...query  }; },\n        get params() { return { ...params }; },\n      }\n    }\n  \n    $rootScope.$on('$routeUpdate',        updateRoute);\n    $rootScope.$on('$routeChangeSuccess', updateRoute);\n  \n    if(!$route.current) { // initial route (at boot time)\n      const cancelWatch = $rootScope.$watch(()=>$route.current, (currentRoute)=>{\n        if(currentRoute===undefined) return;\n        cancelWatch();\n        updateRoute();\n      });\n    }\n  \n    updateRoute();\n  \n    return {\n        install(Vue, options) {\n            if(!Vue.prototype.$route) {\n              Object.defineProperty(Vue.prototype, '$route', {\n                get () { return observableRoute._route }\n              })\n            }\n        }\n      }\n  };","import Vue from 'Vue';\n\nexport default function AngularVueRouterPlugin($injector) {\n    \n    if(!$injector)\n        $injector = Vue?.prototype?.$ngVue?.$injector;\n\n    if(!$injector)\n        throw new Error('Angular $injector not provided, cannot use AngularVueRouterPlugin plugin');\n\n    const $location = $injector.get('$location');\n    const $rootScope = $injector.get('$rootScope');\n    if(!$location)\n        throw new Error('Angular $location service not available, cannot use AngularVueRouterPlugin plugin');\n\n    const ngApply = (callback) => {\n        if($rootScope.$$phase) \n            callback();\n        else \n            $rootScope.$apply(callback);\n    } \n\n    var router ={\n        push ({path, query, hash}){\n            ngApply(() => {\n                if(path)  \n                    $location.path(path);\n                if(query) \n                    $location.search(query||{});\n                if(hash!==undefined) \n                    $location.hash((hash||'').replace(/^#/, ''));\n            });\n        },\n        replace(...args) {\n            ngApply(() => {\n                $location.replace();\n                this.push(...args);\n            });\n        }\n    }\n    return {\n        install(Vue, options) {\n            if(!Vue.prototype.$router)\n                Vue.prototype.$router = router;\n        }\n      }\n}","export default function ({ login, logout, fetchUser }={}) {\n    const state = Vue.observable({\n      user     : null,\n      userToken: null,\n    });\n  \n    const auth = {\n      get user()          { return state.user; },\n      get loggedIn()      { return !!(state.user && state?.user?.isAuthenticated); },\n      setUser(newUser)    { state.user = newUser; },\n      setUserToken(token) { state.userToken = token; },\n  \n      async login(...args)        {\n\n        if(!login) { throw new Error('\"login\" Not Implemented'); } \n\n        if(this.loggedIn) return;\n\n        return await login(...args);\n      },\n      logout()        {\n        if(!logout) { throw new Error('\"logout\" Not Implemented'); } \n\n        logout();\n      },\n      async fetchUser()     {\n        if(!fetchUser) { throw new Error('\"fetchUser\" Not Implemented'); } \n\n        const user = await fetchUser();\n        this.setUser(user);\n        return user;\n      },\n      hasScope(scopeName)      {\n        let rolesToValidate = [];\n        if (typeof scopeName === 'string') rolesToValidate = [ scopeName ];\n        else if (!Array.isArray(scopeName)) throw new Error('`scopeName` must be string or array od string');\n  \n        rolesToValidate = scopeName;\n  \n        const hasRole = rolesToValidate.find((scope) => this.user?.roles.includes(scope));\n  \n        return !!hasRole;\n      },\n      refreshTokens() { throw new Error('Not Implemented'); },\n      onError()       { throw new Error('Not Implemented'); },\n      onRedirect()    { throw new Error('Not Implemented'); },\n      strategy: {\n        token: {\n          get()      { return state.userToken; },\n          set(token) { state.userToken = token; },\n        },\n        get refreshToken() { throw new Error('Not Implemented');  },\n      },\n    };\n  \n    return {\n      install(Vue, options) {\n        if (!Vue.prototype.$auth) {\n          Object.defineProperty(Vue.prototype, '$auth', {\n            get() { return auth; },\n          });\n        }\n      },\n    };\n  }\n  ","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var Symbol = require('./_Symbol'),\n    arrayMap = require('./_arrayMap'),\n    isArray = require('./isArray'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n  var index = -1,\n      length = array.length;\n\n  if (start < 0) {\n    start = -start > length ? 0 : (length + start);\n  }\n  end = end > length ? length : end;\n  if (end < 0) {\n    end += length;\n  }\n  length = start > end ? 0 : ((end - start) >>> 0);\n  start >>>= 0;\n\n  var result = Array(length);\n  while (++index < length) {\n    result[index] = array[index + start];\n  }\n  return result;\n}\n\nmodule.exports = baseSlice;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n  var length = array.length;\n  end = end === undefined ? length : end;\n  return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange  + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n  return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n  return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n  return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var asciiToArray = require('./_asciiToArray'),\n    hasUnicode = require('./_hasUnicode'),\n    unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n  return hasUnicode(string)\n    ? unicodeToArray(string)\n    : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var castSlice = require('./_castSlice'),\n    hasUnicode = require('./_hasUnicode'),\n    stringToArray = require('./_stringToArray'),\n    toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n  return function(string) {\n    string = toString(string);\n\n    var strSymbols = hasUnicode(string)\n      ? stringToArray(string)\n      : undefined;\n\n    var chr = strSymbols\n      ? strSymbols[0]\n      : string.charAt(0);\n\n    var trailing = strSymbols\n      ? castSlice(strSymbols, 1).join('')\n      : string.slice(1);\n\n    return chr[methodName]() + trailing;\n  };\n}\n\nmodule.exports = createCaseFirst;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var toString = require('./toString'),\n    upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n  return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n *  the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  if (initAccum && length) {\n    accumulator = array[++index];\n  }\n  while (++index < length) {\n    accumulator = iteratee(accumulator, array[index], index, array);\n  }\n  return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n  return function(key) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nmodule.exports = basePropertyOf;\n","var deburrLetter = require('./_deburrLetter'),\n    toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n  string = toString(string);\n  return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n  // Latin-1 Supplement block.\n  '\\xc0': 'A',  '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n  '\\xe0': 'a',  '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n  '\\xc7': 'C',  '\\xe7': 'c',\n  '\\xd0': 'D',  '\\xf0': 'd',\n  '\\xc8': 'E',  '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n  '\\xe8': 'e',  '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n  '\\xcc': 'I',  '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n  '\\xec': 'i',  '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n  '\\xd1': 'N',  '\\xf1': 'n',\n  '\\xd2': 'O',  '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n  '\\xf2': 'o',  '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n  '\\xd9': 'U',  '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n  '\\xf9': 'u',  '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n  '\\xdd': 'Y',  '\\xfd': 'y', '\\xff': 'y',\n  '\\xc6': 'Ae', '\\xe6': 'ae',\n  '\\xde': 'Th', '\\xfe': 'th',\n  '\\xdf': 'ss',\n  // Latin Extended-A block.\n  '\\u0100': 'A',  '\\u0102': 'A', '\\u0104': 'A',\n  '\\u0101': 'a',  '\\u0103': 'a', '\\u0105': 'a',\n  '\\u0106': 'C',  '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n  '\\u0107': 'c',  '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n  '\\u010e': 'D',  '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n  '\\u0112': 'E',  '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n  '\\u0113': 'e',  '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n  '\\u011c': 'G',  '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n  '\\u011d': 'g',  '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n  '\\u0124': 'H',  '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n  '\\u0128': 'I',  '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n  '\\u0129': 'i',  '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n  '\\u0134': 'J',  '\\u0135': 'j',\n  '\\u0136': 'K',  '\\u0137': 'k', '\\u0138': 'k',\n  '\\u0139': 'L',  '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n  '\\u013a': 'l',  '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n  '\\u0143': 'N',  '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n  '\\u0144': 'n',  '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n  '\\u014c': 'O',  '\\u014e': 'O', '\\u0150': 'O',\n  '\\u014d': 'o',  '\\u014f': 'o', '\\u0151': 'o',\n  '\\u0154': 'R',  '\\u0156': 'R', '\\u0158': 'R',\n  '\\u0155': 'r',  '\\u0157': 'r', '\\u0159': 'r',\n  '\\u015a': 'S',  '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n  '\\u015b': 's',  '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n  '\\u0162': 'T',  '\\u0164': 'T', '\\u0166': 'T',\n  '\\u0163': 't',  '\\u0165': 't', '\\u0167': 't',\n  '\\u0168': 'U',  '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n  '\\u0169': 'u',  '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n  '\\u0174': 'W',  '\\u0175': 'w',\n  '\\u0176': 'Y',  '\\u0177': 'y', '\\u0178': 'Y',\n  '\\u0179': 'Z',  '\\u017b': 'Z', '\\u017d': 'Z',\n  '\\u017a': 'z',  '\\u017c': 'z', '\\u017e': 'z',\n  '\\u0132': 'IJ', '\\u0133': 'ij',\n  '\\u0152': 'Oe', '\\u0153': 'oe',\n  '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n  return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n  return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsDingbatRange = '\\\\u2700-\\\\u27bf',\n    rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n    rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n    rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n    rsPunctuationRange = '\\\\u2000-\\\\u206f',\n    rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n    rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n    rsVarRange = '\\\\ufe0e\\\\ufe0f',\n    rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n    rsBreak = '[' + rsBreakRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsDigits = '\\\\d+',\n    rsDingbat = '[' + rsDingbatRange + ']',\n    rsLower = '[' + rsLowerRange + ']',\n    rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsUpper = '[' + rsUpperRange + ']',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n    rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n    rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n    rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n    reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n    rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n  rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n  rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n  rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n  rsUpper + '+' + rsOptContrUpper,\n  rsOrdUpper,\n  rsOrdLower,\n  rsDigits,\n  rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n  return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var asciiWords = require('./_asciiWords'),\n    hasUnicodeWord = require('./_hasUnicodeWord'),\n    toString = require('./toString'),\n    unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n  string = toString(string);\n  pattern = guard ? undefined : pattern;\n\n  if (pattern === undefined) {\n    return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n  }\n  return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","var arrayReduce = require('./_arrayReduce'),\n    deburr = require('./deburr'),\n    words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n  return function(string) {\n    return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n  };\n}\n\nmodule.exports = createCompounder;\n","var capitalize = require('./capitalize'),\n    createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n  word = word.toLowerCase();\n  return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","import angular from 'angular';\nimport camelCase from \"lodash/camelCase\";\nimport safeApply from '../libs/safe-apply';\nimport renderVNodeToDomElement from '../libs/render-v-node-to-dom-element'\n\nexport default {\n    render(h) {\n        return h(null, 'angular placeholder')\n    },\n    mounted() {\n\n        if (!this.$ngVue) throw new Error(\"AngularVuePlugin not installed\");\n\n        const { $injector } = this.$ngVue;\n\n        //lookup throughout parent tree first to find closest ngScope.... otherwise  \n        const $parentScope = angular.element(this.$el).parents('.ng-scope:first')?.scope()\n            || $injector.get('$rootScope');\n\n        const $scope = $parentScope.$new(true); // create ew isolated scope!\n        this.$scope = $scope;\n\n        Object.keys(this.$attrs).forEach(attrKey => {\n\n            const propKey = camelCase(attrKey);\n\n            console.debug(`vue(ng): initial set vue => ng (${propKey}):`, this.$attrs[attrKey]);\n\n            $scope[propKey] = this.$attrs[attrKey];\n\n            // From Vue => Angular\n            this.$watch(() => this.$attrs[attrKey], (v) => {\n\n                if ($scope.$$destroyed) return;\n\n                safeApply($scope, () => {\n\n                    if ($scope[propKey] === v) return;\n\n                    console.debug(`vue(ng): vue => ng (${propKey})`, v);\n                    $scope[propKey] = v;\n                });\n            });\n\n            // From Angular => Vue\n            $scope.$watch(() => $scope[propKey], (v) => {\n\n                if (this.$attrs[attrKey] === v) return;\n\n                console.debug(`vue(ng): ng => vue (${propKey})`, v);\n\n                this.$emit(`update:${propKey}`, v)\n            });\n        })\n\n        const domElement = renderVNodeToDomElement(this.$slots.default); // convert default slot to domElement\n        const $compile = $injector.get('$compile');\n        const bindFn = $compile(domElement);\n        const [ngElement] = bindFn($scope); //Bind to scope\n\n        ngElement.$component = this; //save current component to DOM element \n\n        //Replace this component wrapper (this.$el) in the browser DOM with the angular one (ngElement) \n        this.$el.parentElement.replaceChild(ngElement, this.$el);\n    },\n    beforeDestroy() {\n\n        const { $scope } = this;\n\n        if ($scope) {\n            console.debug('vue(ng): destroying ng-scope', $scope)\n            delete this.$scope;\n            $scope.$destroy()\n        }\n    }\n}","export default function safeApply($scope, fn) {\n    var phase = $scope.$root.$$phase;\n\n    if (phase == '$apply' || phase == '$digest') {\n        fn();\n    } else {\n        $scope.$apply(fn);\n    }\n};","export default function renderVNodeToDomElement(vNode) {\n\n    const comp = new Vue({ render: () => vNode }); // create a dummy component that return the VNode from the render fn\n\n    comp.$mount() // Mount as an orphan component\n\n    const domElement = comp.$el; // Save the native DOM Element converted from VNode;\n\n    comp.$destroy();\n\n    return domElement;\n}","import angular from 'angular';\nimport AngularVueComponent from \"../components/vue-ng.js\";\nimport pascalCase from '../libs/pascal-case.js';\n\nexport default function AngularVuePlugin({ $injector, ngApp, vueApp }) {\n\n  // if(!$injector)\n  //     throw new Error('Angular $injector not provided, cannot use AngularVuePlugin plugin');\n\n  const ngVuePlugin = {\n    get $injector()   { return $injector || angular.injector(); },\n    get vueApp()      { return vueApp; },\n    get ngApp()       { return ngApp; },\n  }\n\n  return {\n\n    install(Vue, options) {\n        if(!Vue.prototype.$ngVue) {\n\n          const { vueNgName } = options || {};\n\n          Vue.component(pascalCase(vueNgName || 'VueNg'), AngularVueComponent)\n\n          Object.defineProperty(Vue.prototype, '$ngVue', {\n            get () { return ngVuePlugin }\n          })\n        }\n    }\n  };\n}\n","import camelCase from \"lodash/camelCase\";\n\nexport default function pascalCase(t) {\n  t = camelCase(t);\n\n  if(t) t = t[0].toUpperCase() + t.slice(1);\n\n  return t;\n};\n\n"],"names":["CreateAngularVuePlainPlugin","ngServiceName","ngService","install","Vue","options","prototype","AngularVueRoutePlugin","$injector","$ngVue","Error","$location","get","$route","$rootScope","observableRoute","window","observable","_route","updateRoute","fullPath","url","path","hash","query","search","params","current","$on","cancelWatch","$watch","currentRoute","undefined","Object","defineProperty","AngularVueRouterPlugin","ngApply","callback","$$phase","$apply","router","push","replace","args","this","$router","angularVueAuthPlugin","login","logout","fetchUser","state","user","userToken","auth","loggedIn","isAuthenticated","setUser","newUser","setUserToken","token","async","hasScope","scopeName","rolesToValidate","Array","isArray","find","scope","roles","includes","refreshTokens","onError","onRedirect","strategy","set","refreshToken","$auth","freeGlobal","global","freeSelf","self","_Symbol","Function","Symbol","_arrayMap","array","iteratee","index","length","result","isArray_1","require$$0","objectProto","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","_getRawTag","value","isOwn","call","tag","unmasked","e","getRawTag","require$$1","objectToString","baseGetTag","isObjectLike","arrayMap","require$$2","isSymbol","symbolProto","symbolToString","_baseToString","baseToString","Infinity","toString_1","baseSlice","start","end","_castSlice","reHasUnicode","RegExp","_hasUnicode","string","test","_asciiToArray","split","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsSeq","join","rsSymbol","reUnicode","asciiToArray","hasUnicode","unicodeToArray","match","castSlice","stringToArray","require$$3","upperFirst","methodName","strSymbols","chr","charAt","trailing","slice","createCaseFirst","capitalize_1","toLowerCase","_arrayReduce","accumulator","initAccum","deburrLetter","object","key","basePropertyOf","reLatin","reComboMark","deburr_1","reAsciiWord","_asciiWords","reHasUnicodeWord","_hasUnicodeWord","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsModifier","rsEmoji","reUnicodeWord","asciiWords","hasUnicodeWord","unicodeWords","arrayReduce","deburr","words","pattern","guard","reApos","capitalize","camelCase_1","createCompounder","word","AngularVueComponent","render","h","mounted","$scope","angular","element","$el","parents","$new","keys","$attrs","forEach","attrKey","propKey","camelCase","console","debug","v","$$destroyed","fn","phase","$root","safeApply","$emit","domElement","vNode","comp","$mount","$destroy","renderVNodeToDomElement","$slots","default","bindFn","$compile","ngElement","$component","parentElement","replaceChild","beforeDestroy","AngularVuePlugin","ngApp","vueApp","ngVuePlugin","injector","vueNgName","component","t","toUpperCase"],"mappings":"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"}