{"version":3,"file":"ngx-kz-utilities.mjs","sources":["../../../../projects/ngx-kz/utilities/src/lib/ArrayUtil.ts","../../../../projects/ngx-kz/utilities/src/lib/BaseControlValueAccessor.ts","../../../../projects/ngx-kz/utilities/src/lib/ColorUtil.ts","../../../../projects/ngx-kz/utilities/src/lib/Comparators.ts","../../../../projects/ngx-kz/utilities/src/lib/Constants.ts","../../../../projects/ngx-kz/utilities/src/lib/DateUtil.ts","../../../../projects/ngx-kz/utilities/src/lib/ErrorUtil.ts","../../../../projects/ngx-kz/utilities/src/lib/RxJsUtil.ts","../../../../projects/ngx-kz/utilities/src/lib/SerializationUtil.ts","../../../../projects/ngx-kz/utilities/src/lib/StringKeyedMap.ts","../../../../projects/ngx-kz/utilities/src/lib/SubSink.ts","../../../../projects/ngx-kz/utilities/src/lib/StrUtil.ts","../../../../projects/ngx-kz/utilities/src/lib/SetupLeafletIcons.ts","../../../../projects/ngx-kz/utilities/src/lib/Coerce.ts","../../../../projects/ngx-kz/utilities/src/lib/SetImageUrlsForHtmlImages.ts","../../../../projects/ngx-kz/utilities/src/lib/ArrowUpDownFocus.ts","../../../../projects/ngx-kz/utilities/src/lib/calculateOrderIndex.ts","../../../../projects/ngx-kz/utilities/src/lib/rndId.ts","../../../../projects/ngx-kz/utilities/src/lib/UtilMethod.ts","../../../../projects/ngx-kz/utilities/src/lib/throwIfAlreadyLoaded.ts","../../../../projects/ngx-kz/utilities/src/lib/SanitizeHtml.ts","../../../../projects/ngx-kz/utilities/src/public-api.ts","../../../../projects/ngx-kz/utilities/src/ngx-kz-utilities.ts"],"sourcesContent":["/**\n * Исключает элементы первого массива которые имеются во втором массиве\n * @return Исключенные элементы из первого массива\n *\n *\n * К примеру, передаётся [1, 2, 3], [3, 4, 5];\n * Результатом будет [1, 2]\n *\n */\n\nexport function excludeFromFirstArray<T, S>(array1: T[], array2: S[], comparator: (val1: T, val2: S) => boolean) {\n\n  const ret: T[] = [];\n  array1.forEach(val => {\n    const res = array2.find(val2 => comparator(val, val2));\n    if (!res) {\n      ret.push(val);\n    }\n  });\n\n  return ret;\n}\n\nexport function removeIf<T>(array: T[], condition: (value: T) => boolean) {\n  array.forEach((value, index) => {\n    if (condition(value)) {\n      array.splice(index, 1);\n    }\n  });\n}\n\nexport function groupBy<T, K = string>(list: T[], keyGetter: (it: T) => K): Map<K, T[]> {\n  const map = new Map();\n  for (const item of list) {\n    const key = keyGetter(item);\n    const collection = map.get(key);\n    if (!collection) {\n      map.set(key, [item]);\n    } else {\n      collection.push(item);\n    }\n  }\n  return map;\n}\n","import {ControlValueAccessor} from '@angular/forms';\nimport {ChangeDetectorRef} from '@angular/core';\n\nexport class BaseControlValueAccessor<T> implements ControlValueAccessor {\n  public disabled = false;\n  public indeterminate = false;\n  public value: T;\n\n  constructor(\n    private readonly cdr: ChangeDetectorRef,\n  ) {}\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function,@typescript-eslint/no-unused-vars\n  public onChange(_newVal: T) {}\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function,@typescript-eslint/no-unused-vars\n  public onTouched(_?: any) {}\n\n  public writeValue(obj: T): void {\n    this.value = obj;\n    this.cdr.detectChanges();\n  }\n\n  public registerOnChange(fn: any): void { this.onChange = fn; }\n\n  public registerOnTouched(fn: any): void { this.onTouched = fn; }\n\n  public setDisabledState?(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.cdr.detectChanges();\n  }\n}\n","export class ColorUtil {\n\n  public static presetColors: string[] = [\n    '#ff0000', '#ff6500', '#ffd600', '#27ff00',\n    '#00d9ff', '#0048ff', '#6609ff', '#990202',\n    '#ff7c5e', '#d3a52f', '#118607', '#04a59f',\n    '#00336c', '#630078',\n    '#ff8081', '#c3744a',\n    '#294b0b', '#6797fa',\n    '#000000',\n  ];\n\n  public static darkPresetColors: string[] = [\n    '#000000',\n    '#9c0000',\n    '#166800',\n    '#684300',\n    '#003768',\n    '#680066',\n    '#680015',\n\n  ];\n\n  public static getRandomColor(): string {\n\n    const index = Math.floor(Math.random() * this.presetColors.length);\n\n    return this.presetColors[index];\n\n  }\n\n  public static anyStrToColor(str: string): string {\n    const hash = hashCode(str);\n    const colorIndex = hash % ColorUtil.darkPresetColors.length;\n    return this.darkPresetColors[colorIndex];\n  }\n}\n\nfunction hashCode(str: string): number {\n  let hash = 0;\n  for (let i = 0; i < str.length; i++) {\n    // eslint-disable-next-line no-bitwise\n    hash = str.charCodeAt(i) + ((hash << 5) - hash);\n  }\n  return hash;\n}\n","export class Comparators {\n  public static byOrderIndexField = (a, b) => {\n    if (a && b) {\n      if (a.orderIndex === b.orderIndex) {\n        return 0;\n      }\n      return a.orderIndex > b.orderIndex ? 1 : -1;\n    }\n    return -1;\n  };\n\n  public static byKey<T>(key: keyof T, nullsLast: boolean = true): (a: T, b: T) => (-1 | 1 | 0) {\n    return this.byField(item => item[key], nullsLast);\n  }\n\n  public static byField<T, C>(keyGetter: (item: T) => C, nullsLast: boolean = true): (a: T, b: T) => (-1 | 1 | 0) {\n    return (a: T, b: T) => {\n\n      if (a == null || b == null) {\n        return -1;\n      }\n\n      const aField = keyGetter(a);\n      if (nullsLast && aField == null) {\n        return 1;\n      }\n\n      const bField = keyGetter(b);\n      if (!nullsLast && bField == null) {\n        return 1;\n      }\n\n      if (aField === bField) {\n        return 0;\n      }\n\n      return aField > bField ? 1 : -1;\n    };\n  }\n\n  public static equals = (val1, val2) => val1 === val2;\n\n}\n","export const PHONE_REGEXP = /^[\\d+\\-()\\s]+$/;\nexport const EMAIL_REGEXP = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$/;\nexport const PASS_REGEXP = /^(?=.*[A-Z])(?=.*\\d)[A-Za-z\\d!@#$%^&*?_+\\-\\s,.]{8,}$/;\nexport const PASS_SIZE_REGEXP = /^[A-Za-z\\d!@#$%^&*?_+\\-\\s,.]{8,}$/;\nexport const PASS_DIGITS_REGEXP = /.*(?=.*\\d).*/;\nexport const PASS_CAPITALS_REGEXP = /.*(?=.*[A-Z]).*/;\nexport const NUMBER_REGEXP = /^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$/;\nexport const BIN_MASK = 'A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3} A{3}';\n\n\n// todo nabu set data type QuillModules;  import {QuillModules} from 'ngx-quill';\nexport const QUILL_EDITOR_CONFIG: any = {\n  clipboard: {\n    matchVisual: false,\n  },\n  toolbar: {\n    container: [\n      ['bold', 'italic', 'underline'],\n      [{header: [1, 2, 3, 4, 5, 6, false]}],\n      [{align: []}, {list: 'ordered'}, {list: 'bullet'}],\n      [{indent: '-1'}, {indent: '+1'}],\n      ['link'],\n    ],\n  },\n};\n\n\nexport const SUMMERNOTE_CONFIG: any = {\n  width: '100%',\n  height: '100%',\n  dialogsInBody: true,\n  disableResizeEditor: true,\n  focus: false,\n  toolbar: [\n    ['style', []],\n    ['misc', []],\n    ['misc', []],\n    ['para', []],\n    ['insert', []],\n    ['misc', []],\n  ],\n  fontSizes: ['8', '9', '10', '11', '12', '14', '16', '18', '24', '36'],\n  lineHeights: ['0.2', '0.3', '0.4', '0.5', '0.6', '0.8', '1.0', '1.2', '1.4', '1.5', '2.0', '3.0'],\n};\n\nexport const SUMMERNOTE_CONFIG_READONLY: any = {\n  width: '100%',\n  height: '100%',\n  disableResizeEditor: true,\n  disableDragAndDrop: true,\n  toolbar: [],\n  lineHeights: ['0.2', '0.3', '0.4', '0.5', '0.6', '0.8', '1.0', '1.2', '1.4', '1.5', '2.0', '3.0'],\n};\n\nexport const IDENTIFICATION_CODE: any = {\n  firstValues: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, '-', '=', '`', '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+'],\n  reservedWords: ['id', 'in_id', 'out_id', 'inserted_date', 'in_status', 'occupied_id', 'occupied_at', 'removed'],\n  includeFirstValue(value): boolean {\n    value = value.trim();\n    return IDENTIFICATION_CODE.firstValues.some(first => value[0] == first);\n  },\n  equalReservedWord(value): boolean {\n    value = value.trim();\n    return IDENTIFICATION_CODE.reservedWords.some(word => word.toLowerCase() === value.toLowerCase());\n  },\n  filter(value): boolean {\n    return (this.includeFirstValue(value) || this.equalReservedWord(value));\n  },\n};\n\n","import {DatePipe} from '@angular/common';\nimport {differenceInCalendarDays} from 'date-fns';\n\nexport function asDate(date: number | Date | string): Date | undefined {\n  if (!date) { return undefined; }\n  if (date instanceof Date) {\n    return date;\n  }\n  return new Date(date);\n}\n\nexport function asString(date: Date, format?: string): string {\n  if (!date) {\n    return '';\n  }\n\n  if (!format) {\n    format = 'yyyy-MM-ddTHH:mm:ss.sssZ';\n  }\n\n  const datePipe = new DatePipe('en-US');\n  return datePipe.transform(date, format);\n}\n\n// noinspection JSUnusedGlobalSymbols\nexport function clearTimezone(date: Date): Date {\n  if (!date) {\n    return date;\n  }\n  const datePipe = new DatePipe('en-US');\n  const dateStr = datePipe.transform(date, 'yyyy-MM-ddTHH:mm:ss.sss', '0000');\n  return new Date(dateStr + 'Z');\n}\n\nexport function getNzDisabledDate(current: Date, dateOnlyPast: boolean, dateOnlyFuture: boolean) {\n  const today = new Date();\n\n  if (dateOnlyPast) {\n    return differenceInCalendarDays(asDate(current), today) > 0;\n  }\n\n  if (dateOnlyFuture) {\n    return differenceInCalendarDays(asDate(current), today) < 0;\n  }\n\n  return false;\n}\n\nexport function secondsToTimestamp(seconds): string {\n  seconds = Math.floor(seconds);\n  let hour: string | number = Math.floor(seconds / 3600);\n  let min: string | number = Math.floor((seconds - (hour * 3600)) / 60);\n  let sec: string | number = seconds - (hour * 3600) - (min * 60);\n\n  min = min < 10 ? '0' + min : min;\n  sec = sec < 10 ? '0' + sec : sec;\n  if (hour > 0) {\n    hour = hour < 10 ? '0' + hour : hour;\n    return hour + ':' + min + ':' + sec;\n  }\n  return min + ':' + sec;\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport function extractErrorType(reason: HttpErrorResponse): string {\n  if (typeof reason.error === 'string') {\n    const error = JSON.parse(reason.error);\n    return error.errorType;\n  }\n  return reason.error.errorType;\n}\n\nexport function unsupportedOperation(...vars: any[]): Error {\n  return new Error('Unsupported operation exception' + vars.reduce((p, c) => p + ' ' + c, ''));\n}\n\nexport function requireNonNull(var1: any, varName?: string) {\n  if (!var1) {\n    throw new Error(`Variable \\`${varName ? varName : ''}\\` can not be null or undefined`);\n  }\n}\n\nexport function requireNonEmptyArray(arr: any[], arrName?: string) {\n  requireNonNull(arr, arrName);\n  if (arr.length === 0) {\n    throw new Error(`Array \\`${arrName ? arrName : ''}\\` can not be empty`);\n  }\n}\n\nexport function tryOrLog<T>(f: () => T): T {\n  try {\n    return f();\n  } catch (e) {\n    console.error(e);\n    return null;\n  }\n}\n","import {EMPTY, MonoTypeOperatorFunction, Observable, Subscription} from 'rxjs';\nimport {HttpResponse} from '@angular/common/http';\nimport {catchError, map, shareReplay} from 'rxjs/operators';\n\nexport const DEBOUNCE_TIME = 500;\n\nexport function safeUnsub(...subscriptions: Subscription[]) {\n  for (const subscription of subscriptions) {\n    if (subscription) { subscription.unsubscribe(); }\n  }\n}\n\nexport const promisify: <T>(observable: Observable<HttpResponse<T>>) => Promise<T>\n  = <T>(observable: Observable<HttpResponse<T>>) =>\n  (observable.toPromise().then(x => x.body as T) as Promise<T>);\n\nexport const logAndReturnEmpty: (err) => Observable<never> = err => {\n  console.error(err);\n  return EMPTY;\n};\n\n/**\n * Shares the result of observable for subscribers and unsubscribe from\n * source when there is no subscribers\n */\nexport function shareResult<T>(): MonoTypeOperatorFunction<T> {\n  return shareReplay<T>({ bufferSize: 1, refCount: true });\n}\n\nexport const safeObserve: <T>(observable: Observable<T>, catcher?: (err) => Observable<T>) => Observable<T>\n  = <T>(observable: Observable<T>, catcher: (err) => Observable<T> = logAndReturnEmpty) => observable.pipe(catchError(catcher));\n\nexport const mapBody: <T>(observable: Observable<HttpResponse<T>>) => Observable<T>\n  = <T>(observable: Observable<HttpResponse<T>>) => observable.pipe(map(x => x.body as T));\n","export function dateToStr(date: Date): string | null {\n  if (!date) { return null; }\n  return JSON.stringify(date);\n}\n\nexport function strToDate(str: string): Date | null {\n  if (!str) { return null; }\n  return new Date(JSON.parse(str));\n}\n\nexport function arrayToStr<T>(array: T[]): string {\n  if (!array) { return ''; }\n  return JSON.stringify(array);\n}\n\nexport function strToArray<T>(str: string): T[] {\n  if (!str) { return []; }\n  try {\n    return JSON.parse(str) as T[];\n  } catch (e) {\n    return [];\n  }\n}\n\nexport function objectToStr<T>(obj: T): string {\n  return JSON.stringify(obj);\n}\n\nexport function strToObject<T>(str: string): T {\n  if (!str) { return {} as T; }\n  return JSON.parse(str);\n}\n\nexport function strToBoolean(str: string): boolean {\n  if (!str) { return false; }\n  return JSON.parse(str);\n}\n\nexport function clone<T>(a: T): T {\n  if (!a) { return a; }\n  return JSON.parse(JSON.stringify(a));\n}\n\nexport function strToStr(str: string): string {\n  try {\n    return JSON.parse(str);\n  } catch (e) {\n    return String(str);\n  }\n}\n\nexport function mapToObject<K, V>(map: Map<K, V>): any {\n  const out = Object.create(null);\n  map.forEach((value, key) => {\n    if (value instanceof Map) {\n      out[key] = mapToObject(value);\n    } else {\n      out[key] = value;\n    }\n  });\n  return out;\n}\n\nexport function objectToMap (object : Object): Map<string,any> {\n  const outMap = new Map<string,any>();\n  Object.entries(object).forEach(([key, value]) => {\n    outMap.set(key, value);\n  });\n\n  return outMap;\n}\n","// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\ntype StringKeyedMapType<V> = { [key: string]: V; };\n\nexport class StringKeyedMap<V> {\n  private object: StringKeyedMapType<V> = {} as StringKeyedMapType<V>;\n  private len = 0;\n\n  set(key: string, value: V) {\n    if (!this.has(key)) {\n      this.len++;\n    }\n    this.object[key] = value;\n  }\n\n  get(key: string): V {\n    return this.object[key];\n  }\n\n  values(): V[] {\n    return Object.values<V>(this.object);\n  }\n\n  size(): number {\n    return this.len;\n  }\n\n  clear(): void {\n    this.len = 0;\n    this.object = {} as StringKeyedMapType<V>;\n  }\n\n  delete(key: string): boolean {\n    if (!this.has(key)) { return false; }\n    this.len--;\n    delete this.object[key];\n    return true;\n  }\n\n  has(key: string): boolean {\n    return this.object.hasOwnProperty(key);\n  }\n\n  keys(): string[] {\n    return Object.keys(this.object);\n  }\n\n  static withKey<V>(items: V[], extractKey: (item: V) => string): StringKeyedMap<V> {\n    const map = new StringKeyedMap<V>();\n    for (const item of items) {\n      const key = extractKey(item);\n      map.set(key, item);\n    }\n    return map;\n  }\n\n}\n","const isFunction = (fn: any) => typeof fn === 'function';\n\nexport interface SubscriptionLike {\n  unsubscribe(): void;\n}\n\nexport class SubSink {\n\n  protected _subs: SubscriptionLike[] = [];\n\n  constructor() {}\n\n  add(...subscriptions: SubscriptionLike[]) {\n    this._subs = this._subs.concat(subscriptions);\n  }\n\n  set sink(subscription: SubscriptionLike) {\n    this._subs.push(subscription);\n  }\n\n  unsubscribe() {\n    this._subs.forEach(sub => sub && isFunction(sub.unsubscribe) && sub.unsubscribe());\n    this._subs = [];\n  }\n}\n","export function nullToEmptyStr(obj: string | number): string {\n  if (!obj) {\n    return '';\n  }\n  return obj + '';\n}\n\nexport function chunkSubstr(str, size) {\n  const numChunks = Math.ceil(str.length / size);\n  const chunks = new Array(numChunks);\n\n  for (let i = 0, o = 0; i < numChunks; ++i, o += size) {\n    chunks[i] = str.substr(o, size);\n  }\n\n  return chunks;\n}\n","export function setupLeafletIcons(icon, Marker) {\n  const iconRetinaUrl = 'assets/marker-icon-2x.png';\n  const iconUrl = 'assets/marker-icon.png';\n  const shadowUrl = 'assets/marker-shadow.png';\n  Marker.prototype.options.icon = icon({\n    iconRetinaUrl,\n    iconUrl,\n    shadowUrl,\n    iconSize: [25, 41],\n    iconAnchor: [12, 41],\n    popupAnchor: [1, -34],\n    tooltipAnchor: [16, -28],\n    shadowSize: [41, 41],\n  });\n}\n","import {\n  coerceArray as coerceArrayProperty,\n  coerceBooleanProperty,\n  coerceCssPixelValue,\n  coerceElement as coerceElementProperty,\n  coerceNumberProperty,\n} from '@angular/cdk/coercion';\n\nexport const CoerceBoolean = coerce(coerceBooleanProperty);\nexport const CoerceArray = coerce(coerceArrayProperty);\nexport const CoercePixel = coerce(coerceCssPixelValue);\nexport const CoerceElement = coerce(coerceElementProperty);\nexport const CoerceNumber = coerce(coerceNumberProperty);\n\nfunction coerce<T extends { [key in P]: O } = any,\n  P extends string | symbol = string | symbol,\n  I = any,\n  O = any>(\n  coerceFn: (value: I, self: T) => O,\n): PropertyDecorator {\n  return function(target: T, propertyKey: P) {\n    const _key = Symbol();\n    target[_key] = target[propertyKey];\n    Object.defineProperty(target, propertyKey, {\n      get: function() {\n        return this[_key];\n      },\n      set: function(v: I) {\n        this[_key] = coerceFn.call(this, v, this);\n      },\n    });\n  };\n}\n","export function setImageUrlsForHtmlImages(html: string, imageUrl: (fileId: string) => string): string {\n  const els = document.createElement('html');\n  els.innerHTML = html;\n\n  const imgElements = els.getElementsByTagName('img');\n\n  for (let index = 0; index < imgElements.length; index++) {\n    const element = imgElements.item(index);\n    const attr = element.getAttribute('src');\n\n    if (!attr.startsWith('[fileId:') || !attr.endsWith(']')) {\n      continue;\n    }\n\n    const fromFileId = attr.indexOf(':') + 1;\n    const lengthFileId = (attr.length - fromFileId) - 1;\n\n    const fileId = attr.substr(fromFileId, lengthFileId);\n    const newAttrValue = imageUrl(fileId);\n\n    element.setAttribute('src', newAttrValue);\n  }\n\n  return els.getElementsByTagName('body').item(0).innerHTML;\n}\n","export function goUp(currentItemId: string, totalLength: number): void {\n  const delimiterIndex = currentItemId.lastIndexOf('_');\n  const firstPartOfId = currentItemId.substring(0, delimiterIndex + 1);\n  const currentIndex = Number.parseInt(currentItemId.substring(delimiterIndex + 1));\n  const nextIndex = currentIndex === 0 ? totalLength - 1 : currentIndex - 1;\n  document.getElementById(firstPartOfId + nextIndex)?.focus();\n}\n\nexport function goDown(currentItemId: string, totalLength: number): void {\n  const delimiterIndex = currentItemId.lastIndexOf('_');\n  const firstPartOfId = currentItemId.substring(0, delimiterIndex + 1);\n  const currentIndex = Number.parseInt(currentItemId.substring(delimiterIndex + 1));\n  const nextIndex = currentIndex === totalLength - 1 ? 0 : currentIndex + 1;\n  document.getElementById(firstPartOfId + nextIndex)?.focus();\n}","const STEP_SIZE = 10_000;\n\nexport function calculateOrderIndex(prevIndex: number, nextIndex: number) {\n  if (prevIndex == null && nextIndex == null) return STEP_SIZE;\n  if (nextIndex == null) return prevIndex + STEP_SIZE;\n  if (prevIndex == null) return nextIndex - STEP_SIZE;\n\n  const delta = nextIndex - prevIndex;\n  return prevIndex + (delta / 2);\n}\n","export function rndId() {\n  return Math.floor(Math.random() * 10000) + '';\n}\n\nexport function makeId(length) {\n  let result = '';\n  const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n  const charactersLength = characters.length;\n  for (let i = 0; i < length; i++) {\n    result += characters.charAt(Math.floor(Math.random() *\n      charactersLength));\n  }\n  return result;\n}\n\nexport function makeId4() {\n  return makeId(8);\n}\n\nexport function guid() {\n  function s4() {\n    return Math.floor((1 + Math.random()) * 0x10000)\n      .toString(16)\n      .substring(1);\n  }\n\n  return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n}\n","import { Subscription } from 'rxjs';\n\nexport function getOrDefault(value: any, def: any) {\n  return !!value ? value : def;\n}\n\nexport function getByKeyOrDefault(obj: any, key: string, def: any) {\n  try {\n    return !!obj[key] ? obj[key] : def;\n  } catch (e) {\n    return def;\n  }\n}\n\nexport function getOptionById(options: any[], value: string, key: string = 'id') {\n  if (options == null) {\n    return null;\n  }\n  for (const option of options) {\n    if (option[key] === value) {\n      return option;\n    }\n  }\n  return null;\n}\n\n\nexport function unsubscriptionTimeout(timeout: number, sub: Subscription) {\n  setTimeout(() => sub?.unsubscribe?.(),\n    timeout);\n}\n\nexport function unsubscribe(sub: Subscription) {\n  if (!!sub) {\n    sub.unsubscribe();\n  }\n}\n\n\nexport function promiseTimeout(ms, promise) {\n  const timeout = new Promise((resolve, reject) => {\n    const id = setTimeout(() => {\n        clearTimeout(id);\n        reject('Timed out in ' + ms + 'ms.');\n      },\n      ms);\n  });\n\n  return Promise.race([\n    promise,\n    timeout]);\n}\n\nexport function timePromise(ms) {\n  const promise = new Promise(resolve => {\n    setTimeout(() => resolve(null), ms);\n  });\n\n  return promise;\n}\n\nexport function to(promise: Promise<any>): Promise<any> {\n  // Use with async await method its simply\n  return promise.then(data => {\n    return [\n      null,\n      data];\n  })\n    .catch(err => [err]);\n}\n\n\n\n\n\n","export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\n  if (parentModule) {\n    throw new Error(`${moduleName} has already been loaded. Import ${moduleName} modules in the AppModule only.`);\n  }\n}\n","import DOMPurify from 'dompurify';\n\nexport function sanitizeHtml(value: string) {\n  if(!value) return value;\n  const decodedHtml = decodeHTML(value);\n  return DOMPurify.sanitize(decodedHtml);\n}\n\nexport function encodeHTML(input: string): string {\n  if(!input) return input;\n  const htmlEntities: { [key: string]: string } = {\n    '<': '&lt;',\n    '>': '&gt;',\n    '&': '&amp;',\n    '\"': '&quot;',\n    '\\'': '&#39;',\n    '/': '&#x2F;',\n  };\n\n  return input.replace(/[<>&\"'/]/g, (match) => {\n    return htmlEntities[match];\n  });\n}\n\nexport function decodeHTML(input: string) {\n  if(!input) return input;\n\n  const htmlEntities: { [key: string]: string } = {\n    '&lt;': '<',\n    '&gt;': '>',\n    '&amp;': '&',\n    '&quot;': '\"',\n    '&#39;': '\\'',\n    '&#x2F;': '/',\n  };\n\n  return input.replace(/(&lt;|&gt;|&amp;|&quot;|&#39;|&#x2F;)/g, (match) => {\n    return htmlEntities[match];\n  });\n}\n","/*\n * Public API Surface of utilities\n */\n\nexport * from './lib/ArrayUtil';\nexport * from './lib/BaseControlValueAccessor';\nexport * from './lib/ColorUtil';\nexport * from './lib/Comparators';\nexport * from './lib/Constants';\nexport * from './lib/DateUtil';\nexport * from './lib/ErrorUtil';\nexport * from './lib/RxJsUtil';\nexport * from './lib/SerializationUtil';\nexport * from './lib/StringKeyedMap';\nexport * from './lib/SubSink';\nexport * from './lib/StrUtil';\nexport * from './lib/SetupLeafletIcons';\nexport * from './lib/Coerce';\nexport * from './lib/SetImageUrlsForHtmlImages';\nexport * from './lib/ArrowUpDownFocus';\nexport * from './lib/calculateOrderIndex';\nexport * from './lib/rndId';\nexport * from './lib/UtilMethod';\nexport * from './lib/throwIfAlreadyLoaded';\nexport * from './lib/SanitizeHtml';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["coerceArrayProperty","coerceElementProperty"],"mappings":"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"}