{"version":3,"file":"tapsellorg-angular-material-library-src-lib-common.mjs","sources":["../../projects/pegah-library/src/lib/common/array-join/array-join.pipe.ts","../../projects/pegah-library/src/lib/common/replace-with/replace-with.pipe.ts","../../projects/pegah-library/src/lib/common/replace-with/replace-with.module.ts","../../projects/pegah-library/src/lib/common/array-join/array-join.module.ts","../../projects/pegah-library/src/lib/common/array-split/array-split.pipe.ts","../../projects/pegah-library/src/lib/common/array-split/array-split.module.ts","../../projects/pegah-library/src/lib/common/utils/string.utils.ts","../../projects/pegah-library/src/lib/common/utils/array.utils.ts","../../projects/pegah-library/src/lib/common/utils/misc.utils.ts","../../projects/pegah-library/src/lib/common/utils/file.utils.ts","../../projects/pegah-library/src/lib/common/utils/object.utils.ts","../../projects/pegah-library/src/lib/common/utils/observed-property-decorator.ts","../../projects/pegah-library/src/lib/common/utils/component-mixins.ts","../../projects/pegah-library/src/lib/common/utils/debounce-decorator.ts","../../projects/pegah-library/src/lib/common/safe/safe.pipe.ts","../../projects/pegah-library/src/lib/common/short-number/short-number.pipe.ts","../../projects/pegah-library/src/lib/common/safe/safe.module.ts","../../projects/pegah-library/src/lib/common/enum-to-array/enum-to-array.pipe.ts","../../projects/pegah-library/src/lib/common/enum-to-array/enum-to-array.module.ts","../../projects/pegah-library/src/lib/common/short-number/short-number.module.ts","../../projects/pegah-library/src/lib/common/error-handler/config.ts","../../projects/pegah-library/src/lib/common/error-handler/error-handler.service.ts","../../projects/pegah-library/src/lib/common/error-handler/error-handler.interceptor.ts","../../projects/pegah-library/src/lib/common/trailing-slash-interceptor/trailing-slash.interceptor.ts","../../projects/pegah-library/src/lib/common/cache-interceptor/config.ts","../../projects/pegah-library/src/lib/common/cache-interceptor/cache-controller.service.ts","../../projects/pegah-library/src/lib/common/cache-interceptor/cache.interceptor.ts","../../projects/pegah-library/src/lib/common/tab-title/token.ts","../../projects/pegah-library/src/lib/common/tab-title/tab-title.service.ts","../../projects/pegah-library/src/lib/common/material-global-options/material-global-options.ts","../../projects/pegah-library/src/lib/common/storage/storage-factory.ts","../../projects/pegah-library/src/lib/common/utils/url.utils.ts","../../projects/pegah-library/src/lib/common/dark-mode/dark-mode.service.ts","../../projects/pegah-library/src/lib/common/tapsellorg-angular-material-library-src-lib-common.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'pghArrayJoin',\n  pure: true,\n  standalone: false,\n})\nexport class PghArrayJoinPipe implements PipeTransform {\n  transform(value: any[], customField?: string | number | null, joinWith: string = ','): string {\n    if (!value) return '';\n    if (!Array.isArray(value)) {\n      throw new Error('pghArrayJoin: value is not an array');\n    }\n    return (value ?? [])\n      .filter(v => !!v)\n      .map(v => (customField ? v[customField] : v))\n      .filter(v => !!v)\n      .join(`${joinWith} `);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'pghReplaceWith',\n  standalone: false,\n})\nexport class PghReplaceWithPipe implements PipeTransform {\n  transform(\n    value: string | boolean | undefined | number,\n    dictionary: Map<string | boolean | undefined | number, string>,\n  ): string {\n    return (dictionary.get(value) as string) ?? 'تعریف نشده';\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghReplaceWithPipe } from './replace-with.pipe';\n\n@NgModule({\n  declarations: [PghReplaceWithPipe],\n  imports: [CommonModule],\n  exports: [PghReplaceWithPipe],\n})\nexport class PghReplaceWithModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghArrayJoinPipe } from './array-join.pipe';\n\n@NgModule({\n  declarations: [PghArrayJoinPipe],\n  exports: [PghArrayJoinPipe],\n  imports: [CommonModule],\n})\nexport class PghArrayJoinModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'pghArraySplit',\n  pure: true,\n  standalone: false,\n})\nexport class PghArraySplitPipe implements PipeTransform {\n  transform(value: string, splitBy: string = ''): any[] {\n    if (typeof value !== 'string') {\n      throw new Error('pghArraySplit: value is not a string');\n    }\n    return (value ?? '').split(splitBy);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghArraySplitPipe } from './array-split.pipe';\n\n@NgModule({\n  declarations: [PghArraySplitPipe],\n  imports: [CommonModule],\n  exports: [PghArraySplitPipe],\n})\nexport class PghArraySplitModule {}\n","// @dynamic\nexport class StringUtils {\n  static copyToClipboard(str: string) {\n    const el = document.createElement('textarea');\n    el.value = str;\n    el.setAttribute('readonly', '');\n    el.style.position = 'absolute';\n    el.style.left = '-9999px';\n    document.body.append(el);\n    el.select();\n    document.execCommand('copy');\n    el.remove();\n  }\n\n  private static engNumbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n  private static perNumbers = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];\n  static convertPersianNumbersToEnglish(theText: string) {\n    return this.stringReplaceBulk(theText, StringUtils.perNumbers, StringUtils.engNumbers);\n  }\n\n  static convertEnglishNumbersToPersian(theText: string) {\n    return this.stringReplaceBulk(theText, StringUtils.engNumbers, StringUtils.perNumbers);\n  }\n\n  static convertToTwoCharactersNumber = (num: number) =>\n    num.toString().length < 2 ? `0${num}` : num;\n\n  static stringReplaceBulk(\n    str: string | undefined | null,\n    findArray: string[],\n    replaceArray: (string | number)[],\n  ) {\n    if (!str) return '';\n    const regex: string[] = [];\n    const map: any = {};\n    findArray.forEach((fItem, index) => {\n      regex.push(fItem.replace(/([#$()*+,.?[\\\\\\]^{|}-])/g, '\\\\$1'));\n      map[fItem] = replaceArray[index];\n    });\n    const regexStr = regex.join('|');\n    str = str.replace(new RegExp(regexStr, 'g'), matched => map[matched] as string);\n    return str;\n  }\n\n  static persianNimFasele() {\n    return '‌'; // nim fasele dare!\n  }\n\n  static capitalizeFirstLetter(string: string) {\n    return string.charAt(0).toUpperCase() + string.slice(1);\n  }\n\n  static getNameTwoLettersAbbr(\n    firstName: string | undefined,\n    lastName: string | undefined,\n    username: string,\n  ): string {\n    return (\n      firstName\n        ? `${firstName.charAt(0)}`\n        : lastName\n        ? `${lastName.charAt(0)}`\n        : `${username.charAt(0)}`\n    ).toUpperCase();\n  }\n\n  static splitColumnedTextToObj<T extends Record<string, true>>(\n    text: string | undefined,\n  ): Partial<T> {\n    if (!text) return {};\n    return text.split(':').reduce<Partial<T>>((result, key) => ({ ...result, [key]: true }), {});\n  }\n}\n","class ArrayUtilsClass {\n  removeDuplicates<T>(array: T[], uniqueBy: (item: T) => number | string | boolean) {\n    const uniqueIds = Array.from(new Set(array.map(uniqueBy)));\n\n    return array.filter(s => {\n      const index = uniqueIds.findIndex(type => uniqueBy(s) === type);\n      if (index !== -1) {\n        uniqueIds.splice(index, 1);\n        return true;\n      }\n      return false;\n    });\n  }\n  arraysAreSame(arr1: any[], arr2: any[]): boolean {\n    if (arr1 === arr2) return true;\n    if (!Array.isArray(arr1) || !Array.isArray(arr2)) return false;\n    if (arr1.length !== arr2.length) return false;\n\n    const sortedArr1 = arr1.concat().sort();\n    const sortedArr2 = arr2.concat().sort();\n\n    return sortedArr1.every((_x, i) => sortedArr1[i] === sortedArr2[i]);\n  }\n  convertArrayToKeyValue<T extends any, V extends any>(\n    arr: T[],\n    keyGetter: (x: T) => string,\n    valueGetter: (x: T) => V,\n  ): Record<string, V> {\n    return arr.reduce<Record<string, any>>((res, x) => {\n      const key = keyGetter(x);\n      const value = valueGetter(x);\n      return { ...res, [key]: value };\n    }, {});\n  }\n\n  searchStringInArray<T>(\n    array: T[],\n    _term: string,\n    valueFunc: (x: T) => string | number | null | undefined,\n  ): T[] {\n    const term = _term ? _term.toLowerCase().replace(/\\s+/g, ' ') : '';\n    return array.filter(item =>\n      (valueFunc(item) ?? '').toString().toLowerCase().replace(/\\s+/g, ' ').includes(term),\n    );\n  }\n}\n\nexport const ArrayUtils = new ArrayUtilsClass();\n","export class MiscUtils {\n  private static colorsTheme: { primary?: string; accent?: string } = {};\n\n  static readonly ALL_MATERIAL_COLORS = [\n    'var(--red)',\n    'var(--green)',\n    'var(--blue)',\n    'var(--orange)',\n    'var(--purple)',\n    'var(--pink)',\n    'var(--teal)',\n    'var(--yellow)',\n    'var(--brown)',\n    'var(--lime)',\n    'var(--cyan)',\n  ];\n  static readonly RANDOM_COLORS = [\n    '#9966cc',\n    '#800000',\n    '#c95911',\n    '#4169e1',\n    '#1a9c8c',\n    '#cea100',\n    '#006400',\n    '#ff69b4',\n    '#003366',\n    '#d52f12',\n    '#e75480',\n    '#36454f',\n    '#279a13',\n    '#999225',\n    '#f88379',\n    '#a78500',\n    '#66023c',\n    '#36454f',\n    '#8f8b66',\n    '#008080',\n    '#cd7f32',\n    '#b38b6d',\n    '#612302',\n  ];\n  static getThemeColor(type: 'primary' | 'accent'): string {\n    return `var(--${type})`;\n  }\n}\n","export class FileUtils {\n  // static retrieveImageBase64(file: File) {\n  //   const reader = new FileReader();\n  //   reader.readAsDataURL(file);\n  //   reader.onload = () => {\n  //     const base64 = reader.result as string;\n  //   };\n  //   reader.onerror = error => {};\n  // }\n\n  static defaultFilename = 'tapsell-file';\n\n  static async urlToFile(url: string, filename?: string) {\n    const res = await fetch(url);\n    const blob = await res.blob();\n    return new File([blob], filename || this.defaultFilename, { type: blob.type });\n  }\n\n  private static base64ToBlob(file: string) {\n    // Split into two parts\n    const parts = file.split(';base64,');\n    // Hold the content type\n    const imageType = parts[0].split(':')[1];\n    // Decode Base64 string\n    const decodedData = window.atob(parts[1]);\n    // Create UNIT8ARRAY of size same as row data length\n    const uInt8Array = new Uint8Array(decodedData.length);\n    // Insert all character code into uInt8Array\n    for (let i = 0; i < decodedData.length; ++i) {\n      uInt8Array[i] = decodedData.charCodeAt(i);\n    }\n    // Return BLOB image after conversion\n    return new Blob([uInt8Array], { type: imageType });\n  }\n\n  static base64ToFile(file: string, filename?: string) {\n    const blob = FileUtils.base64ToBlob(file);\n    return new File([blob], filename || this.defaultFilename, { type: blob.type });\n  }\n\n  static blobToFile(blob: Blob, filename?: string) {\n    return new File([blob], filename || this.defaultFilename, { type: blob.type });\n  }\n\n  static fileOrBlobToBase64(file: File | Blob | undefined) {\n    if (!file) return;\n    return new Promise<string>((resolve, _) => {\n      const reader = new FileReader();\n      reader.onloadend = () => resolve(reader.result as string);\n      reader.readAsDataURL(file);\n    });\n  }\n\n  static fileNameExtension(fileName: string): string {\n    return fileName.split('.').pop() ?? '';\n  }\n\n  static convertFileListToArray(_files: FileList) {\n    const files: File[] = [];\n    for (let i = 0; i < _files.length; i++) {\n      const file = _files[i];\n      files.push(file);\n    }\n    return files;\n  }\n\n  static downloadFile(file: File) {\n    const urlCreator = window.URL || window.webkitURL,\n      link = document.createElement('a'),\n      url = urlCreator.createObjectURL(file);\n\n    link.setAttribute('download', file.name);\n    link.setAttribute('href', url);\n    document.body.appendChild(link);\n\n    link.click();\n    link.remove();\n    urlCreator.revokeObjectURL(url);\n  }\n}\n","export type AnyObject = Record<string, any>;\n\nclass ObjectUtilsClass {\n  convertObjToArrValues<T>(obj: Record<string, T>) {\n    return Object.keys(obj).map(key => obj[key]);\n  }\n  convertObjToArrKeyValue<T>(obj: Record<string, T>) {\n    return Object.keys(obj).map(key => ({ key, value: obj[key] }));\n  }\n\n  cloneObjWithKeys<T extends AnyObject>(obj: T, keys: (keyof T)[]) {\n    return keys.reduce((res, k) => ({ ...res, [k]: obj[k] }), {});\n  }\n\n  removeNullKeysFromObject<T extends AnyObject>(obj: T) {\n    return this.objectFilter(obj, (key, value) => value == null);\n  }\n\n  objectFilter<T extends AnyObject>(obj: T, keyFilterer: (key: keyof T, value: any) => boolean) {\n    Object.keys(obj).forEach(key => {\n      if (keyFilterer(key, obj[key])) {\n        delete obj[key];\n      }\n    });\n    return obj;\n  }\n\n  isObject(item: any) {\n    return item && typeof item === 'object' && !Array.isArray(item);\n  }\n\n  /**\n   * Deep merge two objects.\n   */\n  mergeDeep(target: AnyObject, ...sources: AnyObject[]): AnyObject {\n    if (!sources.length) return target;\n    const source = sources.shift() ?? ({} as AnyObject);\n\n    if (ObjectUtils.isObject(target) && ObjectUtils.isObject(source)) {\n      Object.keys(source).forEach(key => {\n        if (ObjectUtils.isObject(source[key])) {\n          if (!target[key]) {\n            target[key] = {};\n          }\n          ObjectUtils.mergeDeep(target[key], source[key]);\n        } else {\n          target[key] = source[key];\n        }\n      });\n    }\n\n    return ObjectUtils.mergeDeep(target, ...sources);\n  }\n\n  isEqualObject(obj1: AnyObject, obj2: AnyObject): boolean {\n    if (!ObjectUtils.isObject(obj1) || !ObjectUtils.isObject(obj2)) return false;\n    if (Object.keys(obj1).length !== Object.keys(obj2).length) return false;\n\n    return Object.keys(obj1).every(key => obj1[key] === obj2[key]);\n  }\n}\n\nexport const ObjectUtils = new ObjectUtilsClass();\n","import { startWith } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n/**\n * @deprecated Use BehaviorSubject instead. Use its `.next()` and `.value`\n * @param obs\n * @constructor\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function ObservedBy(obs: string) {\n  return function (target: any, propertyName: string) {\n    let store: Subject<any> = target[propertyName];\n\n    const setter = (newVal: any) => {\n      store = newVal;\n      (target[`_${obs}`] as Subject<any>).next(newVal);\n    };\n\n    delete target[propertyName];\n    // if (delete target[propertyName]) {\n    // Create new property with getter and setter\n    Object.defineProperty(target, propertyName, {\n      get: () => store,\n      set: setter,\n      enumerable: true,\n      configurable: true,\n    });\n    // }\n  };\n}\n\n/**\n * @deprecated Use BehaviorSubject instead. Use its `.next()` and `.value`\n * @param store\n * @constructor\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function Observing(store: string) {\n  return function (target: any, propertyName: string) {\n    let subject: Subject<any> = target[propertyName] || new Subject<any>();\n\n    if (delete target[propertyName]) {\n      // observable (getter)\n      Object.defineProperty(target, propertyName, {\n        get: () => subject.pipe(startWith(target[store])),\n        set: () => {},\n        enumerable: true,\n        configurable: true,\n      });\n      // Subject\n      Object.defineProperty(target, `_${propertyName}`, {\n        get: () => subject,\n        set: _subject => {\n          subject = _subject;\n        },\n        enumerable: true,\n        configurable: true,\n      });\n    }\n  };\n}\n","import { Subject } from 'rxjs';\nimport { OnDestroy } from '@angular/core';\n\ntype Constructor<T = {}> = new (...args: any[]) => T;\n\nexport function withDestroy<T extends Constructor>(base: T = class {} as any) {\n  return class extends base implements OnDestroy {\n    _destroyed$ = new Subject();\n    ngOnDestroy() {\n      this._destroyed$.next(undefined);\n      this._destroyed$.complete();\n    }\n  };\n}\n","/**\n * Debounce a method\n */\n\nexport function pghDebounceTime(ms: number) {\n  return function (target: any, key: any, descriptor: any) {\n    const map = new WeakMap();\n    const originalMethod = descriptor.value;\n\n    descriptor.value = function () {\n      let debounced = map.get(this);\n      if (!debounced) {\n        debounced = debounceFn(() => originalMethod.apply(this, arguments), ms);\n        map.set(this, debounced);\n      }\n      debounced();\n    };\n    return descriptor;\n  };\n}\n\nconst debounceFn = (func: Function, ms: number) => {\n  let timeout: number;\n\n  return function () {\n    clearTimeout(timeout);\n    timeout = window.setTimeout(func, ms);\n  };\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {\n  DomSanitizer,\n  SafeHtml,\n  SafeStyle,\n  SafeScript,\n  SafeUrl,\n  SafeResourceUrl,\n} from '@angular/platform-browser';\n\n@Pipe({\n  name: 'pghSafe',\n  pure: true,\n  standalone: false,\n})\nexport class PghSafePipe implements PipeTransform {\n  constructor(private readonly sanitizer: DomSanitizer) {}\n\n  transform(\n    value: string,\n    type: 'html' | 'style' | 'script' | 'url' | 'resourceUrl',\n  ): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n    switch (type) {\n      case 'html':\n        return this.sanitizer.bypassSecurityTrustHtml(value);\n      case 'style':\n        return this.sanitizer.bypassSecurityTrustStyle(value);\n      case 'script':\n        return this.sanitizer.bypassSecurityTrustScript(value);\n      case 'url':\n        return this.sanitizer.bypassSecurityTrustUrl(value);\n      case 'resourceUrl':\n        return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n      default:\n        throw new Error(`Invalid safe type: ${type}`);\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'pghShortNumber',\n  standalone: false,\n})\nexport class PghShortNumberPipe implements PipeTransform {\n  transform(number: number, args?: any): any {\n    if (isNaN(number)) return null;\n    if (number === null) return null;\n    if (number === 0) return 0;\n\n    const isNegative = number < 0;\n    if (isNegative) number = number * -1;\n\n    const suffixes = ['', 'K', 'M', 'B', 'T', 'Q'];\n\n    const exp = Math.floor(Math.log(number) / Math.log(1000));\n    return (isNegative ? '-' : '') + (number / Math.pow(1000, exp)).toFixed(args) + suffixes[exp];\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghSafePipe } from './safe.pipe';\n\n@NgModule({\n  declarations: [PghSafePipe],\n  imports: [CommonModule],\n  exports: [PghSafePipe],\n})\nexport class PghSafeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'pghEnumToArray',\n  standalone: false,\n})\nexport class PghEnumToArrayPipe<D> implements PipeTransform {\n  transform(object: Record<string, D>): { key: string; value: D }[] {\n    return Object.keys(object)\n      .filter(key => isNaN(+key))\n      .map(key => ({ key: key, value: object[key] }));\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghEnumToArrayPipe } from './enum-to-array.pipe';\n\n@NgModule({\n  declarations: [PghEnumToArrayPipe],\n  imports: [CommonModule],\n  exports: [PghEnumToArrayPipe],\n})\nexport class PghEnumToArrayModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghShortNumberPipe } from './short-number.pipe';\n\n@NgModule({\n  declarations: [PghShortNumberPipe],\n  imports: [CommonModule],\n  exports: [PghShortNumberPipe],\n})\nexport class PghShortNumberModule {}\n","import { InjectionToken } from '@angular/core';\nimport { PghErrorHandler } from './model';\n\nexport const PGH_ERROR_HANDLER_OPTIONS = new InjectionToken<PghErrorHandler<Record<string, any>>>(\n  'PGH_ERROR_DEFINER',\n  {\n    providedIn: 'root',\n    factory: () => ({ SERVER_ERRORS: [], UNHANDLED_ERROR_MESSAGE: 'یک خطای ناشناخته رخ داده است' }),\n  },\n);\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ErrorToastMessageGetter, PghErrorHandler, PghErrorHandlerResult } from './model';\nimport { PGH_ERROR_HANDLER_OPTIONS } from './config';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PghErrorHandlerService {\n  private static isHttpErrorResponse(error: any): error is HttpErrorResponse {\n    return error instanceof HttpErrorResponse || (error.error && typeof error.status === 'number');\n  }\n  private static getToastMessageOfErrorDef(\n    textOrFunc: string | ErrorToastMessageGetter<any> | undefined | null,\n    response: HttpErrorResponse,\n  ) {\n    return (\n      textOrFunc &&\n      (typeof textOrFunc === 'string' ? textOrFunc : textOrFunc(response.error, response))\n    );\n  }\n\n  constructor(\n    private router: Router,\n    @Inject(PGH_ERROR_HANDLER_OPTIONS) private errorDefiner: PghErrorHandler<any>,\n  ) {}\n\n  handleError(response: HttpErrorResponse): PghErrorHandlerResult {\n    if (!PghErrorHandlerService.isHttpErrorResponse(response)) {\n      return { isHandled: false, message: this.errorDefiner.UNHANDLED_ERROR_MESSAGE };\n    }\n\n    const errorDef = this.matchErrorDefinition(response);\n    let message: string | undefined;\n\n    if (errorDef) {\n      const errorToastMessage = PghErrorHandlerService.getToastMessageOfErrorDef(\n        errorDef.message,\n        response,\n      );\n\n      if (errorToastMessage) {\n        message = errorToastMessage;\n      }\n      errorDef.callback?.(response.error, response);\n\n      return { isHandled: errorDef.isHandled, message, action: errorDef.action };\n    }\n\n    message = this.errorDefiner.UNHANDLED_ERROR_MESSAGE;\n    return { isHandled: false, message };\n  }\n\n  private matchErrorDefinition(response: HttpErrorResponse) {\n    return this.errorDefiner.SERVER_ERRORS.find(\n      ({ condition }) =>\n        (condition.status == null || condition.status === response.status) &&\n        (condition.pathEndsWith == null || response.url?.endsWith(condition.pathEndsWith)) &&\n        (condition.response == null ||\n          Object.keys(condition.response).every(\n            k => response.error[k] === condition.response?.[k],\n          )) &&\n        (condition.custom == null || condition.custom(response.error, response)),\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  HttpErrorResponse,\n  HttpEvent,\n  HttpHandler,\n  HttpInterceptor,\n  HttpRequest,\n} from '@angular/common/http';\nimport { EMPTY, Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { PghErrorHandlerService } from './error-handler.service';\nimport { PghNotifService } from '@tapsellorg/angular-material-library/notif';\n\n@Injectable()\nexport class PghErrorHandlerInterceptor implements HttpInterceptor {\n  constructor(\n    private pghErrorHandlerService: PghErrorHandlerService,\n    private pghNotifService: PghNotifService,\n  ) {}\n\n  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n    return next.handle(request).pipe(\n      catchError((response: HttpErrorResponse) => {\n        const { isHandled, message, action } = this.pghErrorHandlerService.handleError(response);\n        if (message) {\n          const snack = this.pghNotifService.error(message, { action: action?.buttonName });\n          if (action?.afterClick) {\n            snack.onAction().subscribe(() => action!.afterClick!(response.error, response));\n          }\n        }\n        if (isHandled) {\n          return EMPTY;\n        }\n        return throwError(response);\n      }),\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class PghTrailingSlashInterceptor implements HttpInterceptor {\n  private static isSlashNeeded(request: HttpRequest<unknown>) {\n    return (\n      request.url.endsWith('/') || request.url.includes('?') || request.url.match(/\\.[\\w\\d]+$/)\n    );\n  }\n\n  constructor() {}\n\n  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n    return PghTrailingSlashInterceptor.isSlashNeeded(request)\n      ? next.handle(request)\n      : next.handle(request.clone({ url: `${request.url}/` }));\n  }\n}\n","import { InjectionToken } from '@angular/core';\nimport { PghCacheInterceptorOptions } from './models';\n\nexport const PGH_CACHE_INTERCEPTOR_OPTIONS = new InjectionToken<PghCacheInterceptorOptions>(\n  'PGH_CACHE_INTERCEPTOR_OPTIONS',\n  {\n    providedIn: 'root',\n    factory: () => ({}),\n  },\n);\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CacheControllerService {\n  clearCache$ = new Subject<unknown>();\n  constructor() {}\n  clearAllCache() {\n    this.clearCache$.next(null);\n  }\n}\n","import {\n  HttpEvent,\n  HttpHandler,\n  HttpInterceptor,\n  HttpRequest,\n  HttpResponse,\n} from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { tap, finalize, share } from 'rxjs/operators';\nimport { PGH_CACHE_INTERCEPTOR_OPTIONS } from './config';\nimport { PghCacheInterceptorOptions } from './models';\nimport { CacheControllerService } from './cache-controller.service';\n\n@Injectable()\nexport class CacheInterceptor implements HttpInterceptor {\n  readonly CACHE_EXPIRE_TIME = 5 * 60 * 1000;\n  readonly cachedResponses = new Map<\n    string,\n    { response: HttpResponse<unknown>; savedTime: number }\n  >();\n  readonly pendingRequests = new Map<string, Observable<HttpEvent<unknown>>>();\n\n  constructor(\n    @Inject(PGH_CACHE_INTERCEPTOR_OPTIONS) private options: PghCacheInterceptorOptions,\n    private cacheControllerService: CacheControllerService,\n  ) {\n    this.cacheControllerService.clearCache$.subscribe(() => {\n      this.cachedResponses.clear();\n    });\n  }\n\n  intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n    if (\n      !this.options.forceEnableCacheIf?.(req) &&\n      (req.method !== 'GET' || this.options.disableCacheIf?.(req))\n    ) {\n      return next.handle(req);\n    }\n\n    // Check if there is a pending response for this request\n    const cachedObservable = this.pendingRequests.get(req.urlWithParams);\n    if (cachedObservable) {\n      return cachedObservable;\n    }\n\n    // Check if there is a cached response for this request\n    const cachedResponse = this.cachedResponses.get(req.urlWithParams);\n    if (cachedResponse && cachedResponse.savedTime < Date.now() - this.CACHE_EXPIRE_TIME) {\n      return of(cachedResponse.response.clone());\n    }\n\n    const sharedReqObservable = next.handle(req).pipe(\n      tap(event => {\n        if (event instanceof HttpResponse) {\n          this.cachedResponses.set(req.urlWithParams, {\n            response: event.clone(),\n            savedTime: Date.now(),\n          });\n        }\n      }),\n      finalize(() => {\n        this.pendingRequests.delete(req.urlWithParams);\n      }),\n      share(),\n    );\n\n    this.pendingRequests.set(req.urlWithParams, sharedReqObservable);\n\n    return sharedReqObservable;\n  }\n}\n\n// TODO: expire cache after 5 minutes\n","import { InjectionToken } from '@angular/core';\n\nexport const PGH_PRODUCT_TITLE = new InjectionToken<string>('PGH_PRODUCT_TITLE', {\n  providedIn: 'root',\n  factory: () => 'tapsell',\n});\n","import { Injectable, Inject } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { mergeMap, map, filter } from 'rxjs/operators';\nimport { PGH_PRODUCT_TITLE } from './token';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PghTabTitleService {\n  constructor(\n    private titleService: Title,\n    private router: Router,\n    private activatedRoute: ActivatedRoute,\n    @Inject(PGH_PRODUCT_TITLE) private PRODUCT_TITLE: string,\n  ) {\n    this.setupAllPageTitle();\n  }\n\n  public setupAllPageTitle(): void {\n    this.router.events\n      .pipe(\n        filter(event => event instanceof NavigationEnd),\n        map(() => this.activatedRoute),\n        map(route => {\n          while (route.firstChild) route = route.firstChild;\n          return route;\n        }),\n        filter(route => route.outlet === 'primary'),\n        mergeMap(route => route.data),\n      )\n\n      .subscribe(({ title }) => {\n        this.setTitle(title);\n      });\n  }\n\n  setTitle(title: string) {\n    const currentTitle: string = `${title} - ${this.PRODUCT_TITLE}`;\n    this.titleService.setTitle(title ? currentTitle : this.PRODUCT_TITLE);\n  }\n}\n","import { MAT_RIPPLE_GLOBAL_OPTIONS, RippleGlobalOptions } from '@angular/material/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { DEFAULT_CURRENCY_CODE, LOCALE_ID } from '@angular/core';\nimport { MAT_TABS_CONFIG, MatTabsConfig } from '@angular/material/tabs';\nimport { MAT_RADIO_DEFAULT_OPTIONS, MatRadioDefaultOptions } from '@angular/material/radio';\nimport {\n  MAT_CHECKBOX_DEFAULT_OPTIONS,\n  MatCheckboxDefaultOptions,\n} from '@angular/material/checkbox';\nimport { MAT_SNACK_BAR_DEFAULT_OPTIONS, MatSnackBarConfig } from '@angular/material/snack-bar';\nimport {\n  MAT_PAGINATOR_DEFAULT_OPTIONS,\n  MatPaginatorDefaultOptions,\n} from '@angular/material/paginator';\n\nexport const PGH_MAT_GLOBAL_OPTIONS = [\n  { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'outline' } },\n  { provide: LOCALE_ID, useValue: 'fa-IR' },\n  { provide: DEFAULT_CURRENCY_CODE, useValue: 'IRR' },\n  {\n    provide: MAT_TABS_CONFIG,\n    useValue: { animationDuration: '0ms' } as MatTabsConfig,\n  },\n  {\n    provide: MAT_RADIO_DEFAULT_OPTIONS,\n    useValue: { color: 'primary' } as MatRadioDefaultOptions,\n  },\n  {\n    provide: MAT_CHECKBOX_DEFAULT_OPTIONS,\n    useValue: { color: 'primary' } as MatCheckboxDefaultOptions,\n  },\n  {\n    provide: MAT_SNACK_BAR_DEFAULT_OPTIONS,\n    useValue: {\n      duration: 3000,\n      direction: 'rtl',\n      horizontalPosition: 'start',\n    } as MatSnackBarConfig,\n  },\n  {\n    provide: MAT_RIPPLE_GLOBAL_OPTIONS,\n    useValue: { animation: { enterDuration: 150, exitDuration: 100 } } as RippleGlobalOptions,\n  },\n  {\n    provide: MAT_PAGINATOR_DEFAULT_OPTIONS,\n    useValue: {\n      pageSizeOptions: [15, 25, 50, 100],\n      showFirstLastButtons: true,\n      pageSize: 25,\n    } as MatPaginatorDefaultOptions,\n  },\n];\n","import { PghStorageFactoryModel } from './models';\n\n// @dynamic\nexport class PghStorageFactory implements PghStorageFactoryModel {\n  storage?: PghStorageFactoryModel;\n  static readonly KEY_PREFIX = '_pgh-';\n  inMemoryStorage: Record<string, string> = {};\n\n  constructor(getStorage?: () => PghStorageFactoryModel) {\n    this.storage = getStorage?.();\n    this.checkStorageSupport();\n  }\n\n  static localStorageFactory = () => {\n    try {\n      return new PghStorageFactory(() => localStorage);\n    } catch (e) {\n      return new PghStorageFactory();\n    }\n  };\n\n  private checkStorageSupport() {\n    if (!this.storage) return;\n\n    try {\n      const testKey = '__pgh_rand__';\n      this.storage.setItem(testKey, testKey);\n      this.storage.removeItem(testKey);\n    } catch (_) {\n      this.storage = undefined;\n    }\n  }\n\n  clear(): void {\n    if (this.storage) {\n      this.storage.clear();\n    } else {\n      this.inMemoryStorage = {};\n    }\n  }\n\n  private static getPrefixedName(name: string) {\n    return `${PghStorageFactory.KEY_PREFIX}${name}`;\n  }\n  getItem(name: string): string | null {\n    if (this.storage) {\n      const prefixedName = PghStorageFactory.getPrefixedName(name);\n      return this.storage.getItem(prefixedName);\n    }\n    if (this.inMemoryStorage.hasOwnProperty(name)) {\n      return this.inMemoryStorage[name];\n    }\n    return null;\n  }\n\n  key(index: number): string | null {\n    if (this.storage) {\n      return this.storage.key(index);\n    } else {\n      return Object.keys(this.inMemoryStorage)[index] || null;\n    }\n  }\n\n  removeItem(name: string): void {\n    if (this.storage) {\n      const prefixedName = PghStorageFactory.getPrefixedName(name);\n      this.storage.removeItem(prefixedName);\n    } else {\n      delete this.inMemoryStorage[name];\n    }\n  }\n\n  setItem(name: string, value: string): void {\n    if (this.storage) {\n      const prefixedName = PghStorageFactory.getPrefixedName(name);\n      this.storage.setItem(prefixedName, value);\n    } else {\n      this.inMemoryStorage[name] = String(value); // not everyone uses TypeScript\n    }\n  }\n\n  get length(): number {\n    if (this.storage) {\n      return this.storage.length;\n    } else {\n      return Object.keys(this.inMemoryStorage).length;\n    }\n  }\n}\n","// @dynamic\n\nimport { Router } from '@angular/router';\n\nexport class UrlUtils {\n  private static concatTwoPaths(path1: string | number = '', path2: string | number = '') {\n    path1 = (path1 || '').toString();\n    path2 = (path2 || '').toString();\n    path1 = this.removeTrailingSlashes(path1);\n    path2 = this.removeTrailingSlashes(path2);\n\n    let result = path2 ? `${path1}/${path2}` : `${path1}`;\n    // result = result.replace(/\\/\\//g, '/');\n    result = this.removeTrailingSlashes(result);\n    return result;\n  }\n  static concatPaths(...paths: (string | number | undefined)[]): string {\n    return paths.reduce<string>((res, p) => UrlUtils.concatTwoPaths(res, p), '');\n  }\n\n  static removeTrailingSlashes(path: string): string {\n    return (path || '').replace(/^\\/+|\\/+$/g, '');\n  }\n\n  static mergeParamsToUrl(url: string, params: Record<string, string>): string {\n    const urlObject = new URL(url);\n    const urlParams = urlObject.searchParams;\n    Object.keys(params).forEach(k => {\n      urlParams.set(k, params[k]);\n    });\n    return urlObject.toString();\n  }\n\n  static removeOrigin(url: string): string {\n    const matchProtocolDomainHost = /^[a-zA-Z]{3,5}\\:\\/{2}[a-zA-Z0-9_.:-]+\\//;\n    return url.replace(matchProtocolDomainHost, '');\n  }\n\n  static removeQueryParams(router: Router, paramsToRemove: string[]): void {\n    const url = new URL(location.href);\n    const params: Record<string, string> = {};\n\n    url.searchParams.forEach((value, key) => {\n      if (!paramsToRemove.includes(key)) params[key] = value;\n    });\n\n    // `[url.pathname]` is used instead of `[]` because when the function is executing,\n    // the navigation is not complete yet, and we will always end up in the root path.\n    // So, we have to manually provide the path data.\n    router.navigate([url.pathname], { queryParams: params });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { PghStorageFactory } from '../storage/storage-factory';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PghDarkModeService {\n  private readonly isEnabledStorageKey = 'IS_DARK_MODE_ENABLED';\n  private readonly htmlElement: HTMLHtmlElement = document.getElementsByTagName('html')[0];\n  private localStorageFactory = PghStorageFactory.localStorageFactory();\n  isDarkModeEnabled = false;\n\n  constructor() {\n    this.setupDarkModeToggle();\n  }\n\n  private setupDarkModeToggle() {\n    const isDarkModeEnabled = this.getDarkModeEnabled();\n    this.setDarkMode(isDarkModeEnabled, { store: false });\n  }\n\n  private getUserDevicePreference(): boolean {\n    return window.matchMedia('(prefers-color-scheme: dark)').matches;\n  }\n\n  private getDarkModeEnabled() {\n    const isStorageDarkModeEnabled = this.localStorageFactory.getItem(this.isEnabledStorageKey);\n\n    return isStorageDarkModeEnabled == null\n      ? this.getUserDevicePreference()\n      : isStorageDarkModeEnabled === 'true';\n  }\n\n  toggleDarkMode() {\n    this.setDarkMode(!this.isDarkModeEnabled);\n  }\n\n  private setDarkMode(isDarkModeEnabled: boolean, { store } = { store: true }) {\n    this.isDarkModeEnabled = isDarkModeEnabled;\n\n    if (store) {\n      this.storeDarkModeInStorage();\n    }\n    this.enableDarkTheme();\n  }\n\n  private storeDarkModeInStorage() {\n    this.localStorageFactory.setItem(\n      this.isEnabledStorageKey,\n      this.isDarkModeEnabled ? 'true' : 'false',\n    );\n  }\n\n  private enableDarkTheme() {\n    this.htmlElement.setAttribute('dark', `${this.isDarkModeEnabled}`);\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PghErrorHandlerService","i2","i1.CacheControllerService"],"mappings":"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"}