{"version":3,"file":"uipath-angular-utilities.mjs","sources":["../../../projects/angular/utilities/src/array/sort.ts","../../../projects/angular/utilities/src/browser/is-browser-platform.ts","../../../projects/angular/utilities/src/browser/is-internet-explorer.ts","../../../projects/angular/utilities/src/browser/extract-cookies.ts","../../../projects/angular/utilities/src/browser/is-edge.ts","../../../projects/angular/utilities/src/browser/has-support-for-prefers-color-scheme.ts","../../../projects/angular/utilities/src/luxon/use-luxon.ts","../../../projects/angular/utilities/src/rxjs/async-of.ts","../../../projects/angular/utilities/src/rxjs/concat-join.ts","../../../projects/angular/utilities/src/rxjs/repeat-stream.ts","../../../projects/angular/utilities/src/string/file-extension.ts","../../../projects/angular/utilities/src/string/identifier.ts","../../../projects/angular/utilities/src/uipath-angular-utilities.ts"],"sourcesContent":["export function sort<T, K extends keyof T>(array: T[], querySort?: string, locale = true): T[] {\n    if (!querySort) {\n        return array;\n    }\n    const sortDirection = querySort.startsWith('-') ? -1 : 1;\n    const sortColumn: K = (sortDirection === 1 ? querySort : querySort.substring(1)) as K;\n    return array.sort((a, b) => {\n        const aValue = a[sortColumn];\n        const bValue = b[sortColumn];\n        let result: number;\n        if (typeof aValue === 'number' && typeof bValue === 'number') {\n            result = aValue - bValue;\n        } else {\n            result = locale\n                ? `${aValue}`.localeCompare(`${bValue}`)\n                : aValue < bValue ? -1 : 1;\n        }\n        return result * sortDirection;\n    });\n}\n","/**\n * Determines if the current platform is a browser.\n *\n */\nexport function isBrowserPlatform() {\n    return typeof window === 'object';\n}\n","import { isBrowserPlatform } from './is-browser-platform';\n\n/**\n * Determines if the current agent is Internet Explorer.\n *\n * @export\n * @returns Returns `true` if the current browser is `Internet Explorer`.\n */\nexport function isInternetExplorer(): boolean {\n    if (!isBrowserPlatform()) { return false; }\n\n    const userAgent = window.navigator.userAgent;\n\n    // IE 10 or older => return version number\n    const msie = userAgent.indexOf('MSIE ');\n    if (msie > -1) { return true; }\n\n    // IE 11 => return version number\n    const trident = userAgent.indexOf('Trident/');\n    if (trident > -1) { return true; }\n\n    return false;\n}\n","import { isBrowserPlatform } from './is-browser-platform';\n\n/**\n * Reads the current application cookies.\n *\n * @export\n * @returns A map with all the cookie KV pairs.\n */\nexport function extractCookies(): Record<string, string> {\n    if (!isBrowserPlatform()) { return {}; }\n\n    return document.cookie.split('; ')\n        .reduce((cookieMap, cookie) => {\n            const [key, value] = cookie.split('=');\n\n            if (!key) { return cookieMap; }\n\n            cookieMap[key] = value;\n            return cookieMap;\n        }, {} as Record<string, string>);\n}\n","import { isBrowserPlatform } from './is-browser-platform';\n\n/**\n * Determines if the current agent is Edge.\n *\n * @export\n * @returns Returns `true` if the current browser is `Edge`.\n */\nexport function isEdge(): boolean {\n    if (!isBrowserPlatform()) { return false; }\n\n    const userAgent = window.navigator.userAgent;\n\n    return userAgent.indexOf('Edge') > -1;\n}\n","import { isBrowserPlatform } from './is-browser-platform';\n\n/**\n * Determines if the browsers can read the OS theme preference.\n *\n * @export\n * @returns Returns `true` if the app can be themed according to the user OS preference.\n */\nexport function hasSupportForPrefersColorScheme() {\n    if (!isBrowserPlatform()) { return false; }\n\n    return !!window.matchMedia && (\n        window.matchMedia('(prefers-color-scheme: light)').matches ||\n        window.matchMedia('(prefers-color-scheme: dark)').matches\n    );\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Temporary token for using Luxon instead of moment.\n * After Luxon becomes the default, this token can be removed.\n *\n */\nexport const USE_LUXON = new InjectionToken<boolean>('Token for using Luxon instead of moment.');\n","import {\n    Observable,\n    of,\n} from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\n/**\n * Static operator to avoid breaking the stream when using catchError.\n *\n * @param obj  Object that will be asynchronously returned.\n * @param [delay=0] The delay applied to the stream until it emits the provided value;\n * @returns The delayed stream.\n */\nexport function asyncOf<T>(obj: T, delayMs = 0): Observable<T> {\n    return of(obj).pipe(delay(delayMs));\n}\n","import {\n    concat,\n    Observable,\n    ObservableInput,\n} from 'rxjs';\nimport {\n    take,\n    toArray,\n} from 'rxjs/operators';\n\nimport { ObservedValueOf } from './internal/observed-value-of';\n\n/* eslint-disable max-len */\n/* eslint-disable  */\n/**\n * @ignore\n */\nexport function concatJoin<O1 extends ObservableInput<any>>(v1: O1): Observable<[ObservedValueOf<O1>]>;\n/**\n * @ignore\n */\nexport function concatJoin<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;\n/**\n * @ignore\n */\nexport function concatJoin<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;\n/**\n * @ignore\n */\nexport function concatJoin<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;\n/**\n * @ignore\n */\nexport function concatJoin<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;\n/**\n * @ignore\n */\nexport function concatJoin<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;\n/* eslint-enable max-len */\n/* eslint-enable */\n\n/**\n * Captures the first emitted value from the provided stream sequence and returns an array with the first emitted value from each.\n *\n * @export\n * @param inputs The input streams.\n * @returns An array with the emitted values.\n */\nexport function concatJoin(...inputs: Observable<any>[]): Observable<any[]> {\n    const streams = inputs.map(input => input.pipe(take(1)));\n\n    return concat(...streams)\n        .pipe(\n            toArray(),\n        );\n}\n","import {\n    Observable,\n    timer,\n} from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\n\ntype StreamFactory<T> = () => Observable<T>;\n\n/**\n * Repeats the requested stream indefinitely.\n *\n * @export\n * @param stream The stream factory.\n * @param [interval=5000] The interval at which to repeat the stream.\n * @returns A hot observable that switches to the provided factory at the requested interval.\n */\nexport function repeatStream<T>(stream: StreamFactory<T>, interval = 5000) {\n    return timer(0, interval)\n        .pipe(\n            switchMap(() => stream()),\n        );\n}\n","export const getFileExtension = (fileName: string) => {\n    const fileNameParts = fileName.split('.');\n    const extension = fileNameParts.length > 1 ? fileNameParts.slice(-1)[0] : '';\n    return extension.toUpperCase();\n};\n","/**\n * @ignore\n */\nconst CHARMAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n/**\n * Generates a random string identifier.\n *\n * @export\n * @param [length=16] The desired identifier length.\n * @returns The generated string identifier.\n */\nexport function identifier(length = 16): string {\n    return Array(length)\n        .fill(void 0)\n        .map(() => CHARMAP.charAt(Math.floor(Math.random() * CHARMAP.length)))\n        .join('');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}