{"version":3,"file":"ngodings-ngx-pipes.mjs","sources":["../../../packages/ngx-pipes/src/lib/array/range.pipe.ts","../../../packages/ngx-pipes/src/lib/helpers.ts","../../../packages/ngx-pipes/src/lib/array/reverse.pipe.ts","../../../packages/ngx-pipes/src/lib/array/unique.pipe.ts","../../../packages/ngx-pipes/src/lib/array/filterby.pipe.ts","../../../packages/ngx-pipes/src/lib/array/orderby.pipe.ts","../../../packages/ngx-pipes/src/lib/array/index.ts","../../../packages/ngx-pipes/src/lib/math/average.pipe.ts","../../../packages/ngx-pipes/src/lib/math/bytes.pipe.ts","../../../packages/ngx-pipes/src/lib/math/max.pipe.ts","../../../packages/ngx-pipes/src/lib/math/min.pipe.ts","../../../packages/ngx-pipes/src/lib/math/precision.pipe.ts","../../../packages/ngx-pipes/src/lib/math/sum.pipe.ts","../../../packages/ngx-pipes/src/lib/math/index.ts","../../../packages/ngx-pipes/src/lib/string/a-or-an.pipe.ts","../../../packages/ngx-pipes/src/lib/string/firstcase.pipe.ts","../../../packages/ngx-pipes/src/lib/string/prefix-suffix.pipe.ts","../../../packages/ngx-pipes/src/lib/string/shorten.pipe.ts","../../../packages/ngx-pipes/src/lib/string/timeago.pipe.ts","../../../packages/ngx-pipes/src/lib/string/titlecase.pipe.ts","../../../packages/ngx-pipes/src/lib/string/index.ts","../../../packages/ngx-pipes/src/lib/pipes.module.ts","../../../packages/ngx-pipes/src/public-api.ts","../../../packages/ngx-pipes/src/ngodings-ngx-pipes.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'range' })\nexport class RangePipe implements PipeTransform {\n    transform(start: number = 1, count: number = 0, step: number = 1): any {\n        return Array(count)\n            .fill('')\n            .map((v, i) => step * i + start);\n    }\n}","export function isUndefined(value: any) {\n    return typeof value === 'undefined';\n}\n\nexport function isNull(value: any) {\n    return value === null;\n}\n\nexport function isFunction(value: any) {\n    return typeof value === 'function';\n}\n\nexport function isNumber(value: any) {\n    return typeof value === 'number';\n}\n\nexport function isString(value: any) {\n    return typeof value === 'string';\n}\n\nexport function isBoolean(value: any) {\n    return typeof value === 'boolean';\n}\n\nexport function isObject(value: any) {\n    return value !== null && typeof value === 'object';\n}\n\nexport function isNumberFinite(value: any) {\n    return isNumber(value) && isFinite(value);\n}\n\nexport function isVowel(letter: string): boolean {\n    const vowels = ['a', 'e', 'i', 'o', 'u'];\n\n    return vowels.indexOf(letter) !== -1;\n}\n\nexport function ucFirst(text: string) {\n    const [part, ...split] = text.split(/\\s/g);\n\n    const ucd = part\n        .toLowerCase()\n        .split(/(?=['|-])/g)\n        .map(\n            (word: any) =>\n                word.indexOf('-') + word.indexOf(\"'\") > -2\n                    ? word.slice(0, 2).toUpperCase() + word.slice(2)\n                    : word.slice(0, 1).toUpperCase() + word.slice(1)\n        )\n        .join('');\n\n    return [ucd, ...split].join(' ');\n}\n\nexport function applyPrecision(num: number, precision: number) {\n    if (precision <= 0) {\n        return Math.round(num);\n    }\n\n    const tho = 10 ** precision;\n\n    return Math.round(num * tho) / tho;\n}\n\nexport function extractDeepPropertyByMapKey(obj: any, map: string): any {\n    const keys = map.split('.');\n    const head = keys.shift();\n\n    return keys.reduce((prop: any, key: string) => {\n        return !isUndefined(prop) && !isNull(prop) && !isUndefined(prop[key]) ? prop[key] : undefined;\n    }, obj[head || '']);\n}\n\nexport function extractDeepPropertyByParentMapKey(obj: any, map: string): any {\n    const keys = map.split('.');\n    const tail = keys.pop();\n    const props = extractDeepPropertyByMapKey(obj, keys.join('.'));\n\n    return { props, tail };\n}\n\nexport function getKeysTwoObjects(obj: any, other: any): any {\n    return [...Object.keys(obj), ...Object.keys(other)].filter((key, index, array) => array.indexOf(key) === index);\n}\n\nexport function isDeepEqual(obj: any, other: any): any {\n    if (!isObject(obj) || !isObject(other)) {\n        return obj === other;\n    }\n\n    return getKeysTwoObjects(obj, other).every(\n        (key: any): boolean => {\n            if (!isObject(obj[key]) && !isObject(other[key])) {\n                return obj[key] === other[key];\n            }\n            if (!isObject(obj[key]) || !isObject(other[key])) {\n                return false;\n            }\n\n            return isDeepEqual(obj[key], other[key]);\n        }\n    );\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers';\n\n@Pipe({ name: 'reverse' })\nexport class ReversePipe implements PipeTransform {\n    transform(input: any): any {\n        if (isString(input)) {\n            return input\n                .split('')\n                .reverse()\n                .join('');\n        }\n\n        return Array.isArray(input) ? input.slice().reverse() : input;\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { extractDeepPropertyByMapKey, isObject, isUndefined } from '../helpers';\n\n@Pipe({ name: 'unique' })\nexport class UniquePipe implements PipeTransform {\n    transform(input: any[], args?: string | undefined): any[];\n    transform<T>(input: T, args?: string | undefined): T;\n\n    transform(input: any, propertyName?: string | undefined): any {\n        const uniques: boolean[] = [];\n\n        return Array.isArray(input)\n            ? isUndefined(propertyName)\n                ? input.filter((e, i) => input.indexOf(e) === i)\n                : input.filter((e, i) => {\n                    let value = extractDeepPropertyByMapKey(e, propertyName!);\n                    value = isObject(value) ? JSON.stringify(value) : value;\n\n                    if (isUndefined(value) || uniques[value]) {\n                        return false;\n                    }\n\n                    uniques[value] = true;\n\n                    return true;\n                })\n            : input;\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport {\n    extractDeepPropertyByMapKey,\n    extractDeepPropertyByParentMapKey,\n    isBoolean,\n    isNumberFinite,\n    isString,\n    isUndefined,\n} from '../helpers';\n\n// tslint:disable no-bitwise\n@Pipe({ name: 'filterBy' })\nexport class FilterByPipe implements PipeTransform {\n    transform<T>(input: T, props: Array<string>, search?: any, strict?: boolean): T;\n    transform(input: any[], props: Array<string>, search?: any, strict?: boolean): any[];\n    transform(input: any, props: Array<string>, search: any = '', strict: boolean = false): any {\n        if (\n            !Array.isArray(input) ||\n            (!Array.isArray(search) && !isString(search) && !isNumberFinite(search) && !isBoolean(search))\n        ) {\n            return input;\n        }\n\n        const terms = String(search)\n            .toLowerCase()\n            .split(',');\n\n        return input.filter(obj => {\n            return props.some(prop => {\n                return terms.some(term => {\n                    const value = extractDeepPropertyByMapKey(obj, prop);\n                    /* tslint:disable */\n                    const { props, tail } = extractDeepPropertyByParentMapKey(obj, prop);\n\n                    if (isUndefined(value) && !isUndefined(props) && Array.isArray(props)) {\n                        return props.some(parent => {\n                            const str = String(parent[tail]).toLowerCase();\n\n                            return strict ? str === term : !!~str.indexOf(term);\n                        });\n                    }\n\n                    if (isUndefined(value)) {\n                        return false;\n                    }\n\n                    const strValue: string = String(value).toLowerCase();\n\n                    return strict ? term === strValue : !!~strValue.indexOf(term);\n                });\n            });\n        });\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { extractDeepPropertyByMapKey, isString, isUndefined } from '../helpers';\n\n@Pipe({ name: 'orderBy' })\nexport class OrderByPipe implements PipeTransform {\n    transform<T>(input: T, config?: any): T;\n    transform(input: any[], config?: any): any[];\n\n    transform(input: any, config?: any): any {\n        if (!Array.isArray(input)) {\n            return input;\n        }\n\n        const out = [...input];\n\n        // sort by multiple properties\n        if (Array.isArray(config)) {\n            return out.sort((a, b) => {\n                const l = config.length;\n                for (let i = 0; i < l; ++i) {\n                    const [prop, asc] = OrderByPipe.extractFromConfig(config[i]);\n                    const pos = OrderByPipe.orderCompare(prop, asc, a, b);\n                    if (pos !== 0) {\n                        return pos;\n                    }\n                }\n\n                return 0;\n            });\n        }\n\n        // sort by a single property value\n        if (isString(config)) {\n            const [prop, asc, sign] = OrderByPipe.extractFromConfig(config);\n\n            if (config.length === 1) {\n                // tslint:disable-next-line:switch-default\n                switch (sign) {\n                    case '+':\n                        return out.sort(OrderByPipe.simpleSort.bind(this));\n                    case '-':\n                        return out.sort(OrderByPipe.simpleSort.bind(this)).reverse();\n                }\n            }\n\n            return out.sort(OrderByPipe.orderCompare.bind(this, prop, asc));\n        }\n\n        // default sort by value\n        return out.sort(OrderByPipe.simpleSort.bind(this));\n    }\n\n    private static simpleSort(a: any, b: any) {\n        return isString(a) && isString(b) ? a.toLowerCase().localeCompare(b.toLowerCase()) : a - b;\n    }\n\n    private static orderCompare(prop: string, asc: boolean, a: any, b: any) {\n        const first = extractDeepPropertyByMapKey(a, prop);\n        const second = extractDeepPropertyByMapKey(b, prop);\n\n        if (first === second) {\n            return 0;\n        }\n\n        if (isUndefined(first) || first === '') {\n            return 1;\n        }\n\n        if (isUndefined(second) || second === '') {\n            return -1;\n        }\n\n        if (isString(first) && isString(second)) {\n            const pos = first.toLowerCase().localeCompare(second.toLowerCase());\n\n            return asc ? pos : -pos;\n        }\n\n        return asc ? first - second : second - first;\n    }\n\n    private static extractFromConfig(config: any) {\n        const sign = config.substr(0, 1);\n        const prop = config.replace(/^[-+]/, '');\n        const asc = sign !== '-';\n\n        return [prop, asc, sign];\n    }\n}","import { NgModule } from '@angular/core';\nimport { RangePipe } from './range.pipe';\nimport { ReversePipe } from './reverse.pipe';\nimport { UniquePipe } from './unique.pipe';\nimport { FilterByPipe } from './filterby.pipe';\nimport { OrderByPipe } from './orderby.pipe';\n\nconst PIPES = [\n    RangePipe,\n    ReversePipe,\n    UniquePipe,\n    FilterByPipe,\n    OrderByPipe,\n];\n\n@NgModule({\n    declarations: PIPES,\n    imports: [],\n    exports: PIPES,\n})\nexport class NgxArrayPipesModule { }\n\nexport { RangePipe } from './range.pipe';\nexport { ReversePipe } from './reverse.pipe';\nexport { UniquePipe } from './unique.pipe';\nexport { FilterByPipe } from './filterby.pipe';\nexport { OrderByPipe } from './orderby.pipe';","import { Pipe, PipeTransform } from '@angular/core';\nimport { isNumberFinite } from '../helpers';\n\n@Pipe({ name: 'average' })\nexport class AveragePipe implements PipeTransform {\n    transform(arr: number[]): string | number {\n        const isValid = arr.every(value => isNumberFinite(value));\n\n        if (!isValid) {\n            return NaN;\n        }\n\n        return arr.length ? arr.reduce((sum, value) => sum + value, 0) / arr.length : 0;\n    }\n}","\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { applyPrecision, isNumberFinite, isUndefined } from '../helpers';\n\n@Pipe({ name: 'bytes' })\nexport class BytesPipe implements PipeTransform {\n    private dictionary: Array<{ max: number; type: string }> = [\n        { max: 1024, type: 'B' },\n        { max: 1048576, type: 'KB' },\n        { max: 1073741824, type: 'MB' },\n        { max: 1.0995116e12, type: 'GB' },\n    ];\n\n    transform(value: number, precision?: number | undefined): string | number {\n        if (!isNumberFinite(value)) {\n            return NaN;\n        }\n\n        const format = this.dictionary.find(d => value < d.max) || this.dictionary[this.dictionary.length - 1];\n        const calc = value / (format.max / 1024);\n        const num = isUndefined(precision) ? calc : applyPrecision(calc, precision!);\n\n        return `${num} ${format.type}`;\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'max' })\nexport class MaxPipe implements PipeTransform {\n    transform(arr: any): number | number[] {\n        return Array.isArray(arr) ? Math.max(...arr) : arr;\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'min' })\nexport class MinPipe implements PipeTransform {\n    transform(arr: any): number | number[] {\n        return Array.isArray(arr) ? Math.min(...arr) : arr;\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { applyPrecision } from '../helpers';\n\n@Pipe({ name: 'precision' })\nexport class PrecisionPipe implements PipeTransform {\n    transform(num: number, precision: number = 0): number {\n        return applyPrecision(num, precision);\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'sum' })\nexport class SumPipe implements PipeTransform {\n    transform(num: any[]): number;\n    transform<T>(num: any): T;\n\n    transform(arr: any): any {\n        return Array.isArray(arr) ? arr.reduce((sum, curr) => sum + curr, 0) : arr;\n    }\n}","import { NgModule } from '@angular/core';\nimport { AveragePipe } from './average.pipe';\nimport { BytesPipe } from './bytes.pipe';\nimport { MaxPipe } from './max.pipe';\nimport { MinPipe } from './min.pipe';\nimport { PrecisionPipe } from './precision.pipe';\nimport { SumPipe } from './sum.pipe';\n\nconst PIPES = [\n    MinPipe,\n    MaxPipe,\n    SumPipe,\n    AveragePipe,\n    PrecisionPipe,\n    BytesPipe,\n];\n\n@NgModule({\n    declarations: PIPES,\n    imports: [],\n    exports: PIPES,\n})\nexport class NgxMathPipesModule { }\n\nexport { MinPipe } from './min.pipe';\nexport { MaxPipe } from './max.pipe';\nexport { SumPipe } from './sum.pipe';\nexport { AveragePipe } from './average.pipe';\nexport { PrecisionPipe } from './precision.pipe';\nexport { BytesPipe } from './bytes.pipe';","import { Pipe, PipeTransform } from '@angular/core';\nimport { isVowel } from '../helpers';\n\n@Pipe({\n    name: 'aOrAn',\n})\n/**\n * Takes a string and returns the string prepended by 'a' or 'an'.\n * Uses both naive and holdout-list approaches.\n * @constructor\n * @param {string} stringEntity - Entity to prepend 'a' or 'an' to.\n */\nexport class AorAnPipe implements PipeTransform {\n    private irregularMap: any = {\n        herb: 'an',\n        honor: 'an',\n        honorable: 'an',\n        hour: 'an',\n        mba: 'an',\n        msc: 'an',\n        'm.sc.': 'an',\n        unicorn: 'a',\n    };\n    transform(stringEntity: string): string {\n        if (!stringEntity || stringEntity === '') {\n            return '';\n        } else {\n            const firstWord = stringEntity.trim().split(' ')[0];\n            if (this.irregularMap[firstWord.toLocaleLowerCase()]) {\n                return `${this.irregularMap[firstWord.toLocaleLowerCase()]} ${stringEntity}`;\n            } else {\n                return isVowel(stringEntity[0]) ? `an ${stringEntity}` : `a ${stringEntity}`;\n            }\n        }\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString, ucFirst } from '../helpers';\n\n@Pipe({ name: 'firstcase' })\nexport class FirstCasePipe implements PipeTransform {\n  transform(input: string): string;\n  transform(input: any): any;\n\n  transform(text: any): string {\n    return isString(text) ? ucFirst(text) : text;\n  }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers';\n\n@Pipe({ name: 'prefixsuffix' })\nexport class PrefixSuffixPipe implements PipeTransform {\n    transform(str: string, prefix: string = '', suffix: string = ''): string {\n        if (!isString(str)) {\n            return str;\n        }\n\n        return (!!prefix && isString(prefix) ? prefix : '') + str + (!!suffix && isString(suffix) ? suffix : '');\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers';\n\n@Pipe({ name: 'shorten' })\nexport class ShortenPipe implements PipeTransform {\n    transform(input: string, length?: number, suffix?: string, wordBreak?: boolean): string;\n    transform(input: any, length?: number, suffix?: string, wordBreak?: boolean): any;\n\n    transform(text: any, length: number = 0, suffix: string = '', wordBreak: boolean = true): string {\n        if (!isString(text)) {\n            return text;\n        }\n\n        if (text.length > length) {\n            if (wordBreak) {\n                return text.slice(0, length) + suffix;\n            }\n\n            // tslint:disable-next-line:no-bitwise\n            if (!!~text.indexOf(' ', length)) {\n                return text.slice(0, text.indexOf(' ', length)) + suffix;\n            }\n        }\n\n        return text;\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'timeAgo' })\nexport class TimeAgoPipe implements PipeTransform {\n    private static YEAR_MS: number = 1000 * 60 * 60 * 24 * 7 * 4 * 12;\n    private static MAPPER: any = [\n        { single: 'last year', many: 'years', div: 1 },\n        { single: 'last month', many: 'months', div: 12 },\n        { single: 'last week', many: 'weeks', div: 4 },\n        { single: 'yesterday', many: 'days', div: 7 },\n        { single: 'an hour ago', many: 'hours', div: 24 },\n        { single: 'just now', many: 'minutes', div: 60 },\n    ];\n\n    public transform(inputDate: any): string {\n        if (!inputDate || (!inputDate.getTime && !inputDate.toDate)) {\n            return 'Invalid date';\n        }\n\n        const past = inputDate.toDate ? inputDate.toDate() : inputDate.getTime();\n        const now = +new Date();\n\n        if (past > now) {\n            return 'in the future';\n        }\n\n        for (let i = 0, l = TimeAgoPipe.MAPPER.length, ms = now - past, div = TimeAgoPipe.YEAR_MS; i < l; ++i) {\n            const elm = TimeAgoPipe.MAPPER[i];\n            const unit = Math.floor(ms / (div /= elm.div));\n\n            if (unit >= 1) {\n                return unit === 1 ? elm.single : `${unit} ${elm.many} ago`;\n            }\n        }\n\n        return 'just now';\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString, ucFirst } from '../helpers';\n\n@Pipe({ name: 'titlecase' })\nexport class TitlecasePipe implements PipeTransform {\n    transform(input: string): string;\n    transform(input: any): any;\n\n    transform(text: any): string {\n        if (isString(text)) {\n            return text\n                .split(' ')\n                .map((sub: any) => ucFirst(sub))\n                .join(' ');\n        }\n\n        return text;\n    }\n}","import { NgModule } from '@angular/core';\nimport { AorAnPipe } from './a-or-an.pipe';\nimport { FirstCasePipe } from './firstcase.pipe';\nimport { PrefixSuffixPipe } from './prefix-suffix.pipe';\nimport { ShortenPipe } from './shorten.pipe';\nimport { TimeAgoPipe } from './timeago.pipe';\nimport { TitlecasePipe } from './titlecase.pipe';\n\nconst PIPES = [\n    TimeAgoPipe,\n    AorAnPipe,\n    ShortenPipe,\n    FirstCasePipe,\n    TitlecasePipe,\n    PrefixSuffixPipe,\n];\n\n@NgModule({\n    declarations: PIPES,\n    imports: [],\n    exports: PIPES,\n})\nexport class NgxStringPipesModule { }\n\nexport { TimeAgoPipe } from './timeago.pipe';\nexport { ShortenPipe } from './shorten.pipe';\nexport { FirstCasePipe } from './firstcase.pipe';\nexport { TitlecasePipe } from './titlecase.pipe';\nexport { PrefixSuffixPipe } from './prefix-suffix.pipe';\nexport { AorAnPipe } from './a-or-an.pipe';","import { NgModule } from '@angular/core';\nimport { NgxArrayPipesModule } from './array';\nimport { NgxMathPipesModule } from './math';\nimport { NgxStringPipesModule } from './string';\n\n@NgModule({\n    exports: [\n        NgxArrayPipesModule,\n        NgxStringPipesModule,\n        NgxMathPipesModule,\n    ],\n})\nexport class NgxPipesModule { }\n\nexport * from './array/index';\nexport * from './math/index';\nexport * from './string/index';","/*\n * Public API Surface of ngx-pipes\n */\n\nexport * from './lib/pipes.module';\nexport * from './lib/helpers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PIPES"],"mappings":"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"}