{"version":3,"file":"chisquare-tech-ngx-core.mjs","sources":["../../../projects/core/src/lib/utils/misc.util.ts","../../../projects/core/src/lib/services/state.service.ts","../../../projects/core/src/lib/directives/act.directive.ts","../../../projects/core/src/lib/utils/api.util.ts","../../../projects/core/src/lib/utils/env.util.ts","../../../projects/core/src/lib/utils/entities.util.ts","../../../projects/core/src/lib/utils/error.util.ts","../../../projects/core/src/lib/utils/money.util.ts","../../../projects/core/src/lib/utils/notify.util.ts","../../../projects/core/src/lib/utils/proxy.util.ts","../../../projects/core/src/lib/utils/time.util.ts","../../../projects/core/src/lib/services/media.service.ts","../../../projects/core/src/lib/utils/translate.util.ts","../../../projects/core/src/lib/services/store.service.ts","../../../projects/core/src/lib/services/request.service.ts","../../../projects/core/src/lib/services/api.service.ts","../../../projects/core/src/lib/services/dom.service.ts","../../../projects/core/src/lib/services/global-error-handler.ts","../../../projects/core/src/lib/services/markdown.service.ts","../../../projects/core/src/lib/services/memoizer.service.ts","../../../projects/core/src/lib/services/router-reuse-strategy.ts","../../../projects/core/src/lib/services/script-loader.service.ts","../../../projects/core/src/lib/services/title.service.ts","../../../projects/core/src/lib/services/url.service.ts","../../../projects/core/src/lib/services/ws.service.ts","../../../projects/core/src/lib/services/yaml.service.ts","../../../projects/core/src/lib/services/control.service.ts","../../../projects/core/src/lib/directives/base.directive.ts","../../../projects/core/src/lib/directives/control.directive.ts","../../../projects/core/src/lib/directives/allow-all.directive.ts","../../../projects/core/src/lib/directives/allow-any.directive.ts","../../../projects/core/src/lib/directives/belong-to.directive.ts","../../../projects/core/src/lib/directives/delete.directive.ts","../../../projects/core/src/lib/directives/deny-all.directive.ts","../../../projects/core/src/lib/directives/deny-any.directive.ts","../../../projects/core/src/lib/directives/get.directive.ts","../../../projects/core/src/lib/directives/is-logged-in.directive.ts","../../../projects/core/src/lib/directives/is-logged-out.directive.ts","../../../projects/core/src/lib/directives/patch.directive.ts","../../../projects/core/src/lib/directives/post.directive.ts","../../../projects/core/src/lib/directives/put.directive.ts","../../../projects/core/src/lib/directives/router-link.directive.ts","../../../projects/core/src/lib/directives/directives.module.ts","../../../projects/core/src/lib/pipes/append.pipe.ts","../../../projects/core/src/lib/pipes/env.pipe.ts","../../../projects/core/src/lib/pipes/get.pipe.ts","../../../projects/core/src/lib/pipes/major.pipe.ts","../../../projects/core/src/lib/pipes/media.pipe.ts","../../../projects/core/src/lib/pipes/minor.pipe.ts","../../../projects/core/src/lib/pipes/parse.pipe.ts","../../../projects/core/src/lib/pipes/prepend.pipe.ts","../../../projects/core/src/lib/pipes/pretty.pipe.ts","../../../projects/core/src/lib/pipes/replace.pipe.ts","../../../projects/core/src/lib/pipes/root-route.pipe.ts","../../../projects/core/src/lib/pipes/route.pipe.ts","../../../projects/core/src/lib/pipes/safe-html.pipe.ts","../../../projects/core/src/lib/pipes/select.pipe.ts","../../../projects/core/src/lib/pipes/starts-with.pipe.ts","../../../projects/core/src/lib/pipes/time.pipe.ts","../../../projects/core/src/lib/pipes/translate.pipe.ts","../../../projects/core/src/lib/pipes/truncate.pipe.ts","../../../projects/core/src/lib/pipes/pipes.module.ts","../../../projects/core/src/lib/core.module.ts","../../../projects/core/src/lib/guards/allow-all.guard.ts","../../../projects/core/src/lib/guards/allow-any.guard.ts","../../../projects/core/src/lib/guards/belong-to.guard.ts","../../../projects/core/src/lib/guards/deny-all.guard.ts","../../../projects/core/src/lib/guards/deny-any.guard.ts","../../../projects/core/src/lib/guards/is-logged-in.guard.ts","../../../projects/core/src/lib/guards/is-logged-out.guard.ts","../../../projects/core/src/lib/interceptors/jwt.interceptor.ts","../../../projects/core/src/lib/interceptors/notif.interceptor.ts","../../../projects/core/src/lib/shared.module.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/chisquare-tech-ngx-core.ts"],"sourcesContent":["import { InjectionToken, Injector } from '@angular/core';\nimport {\n  ActivatedRoute,\n  Route,\n  Router,\n  UrlSegment,\n  UrlSegmentGroup,\n} from '@angular/router';\n\nimport { Observable, of } from 'rxjs';\nimport { catchError, shareReplay } from 'rxjs/operators';\n\n/**\n *\n * set up a handle for injector\n * to be used to inject services without the contructor\n */\nexport let injector: Injector;\n\nexport function setInjector(anInjector: Injector) {\n  if (!injector) {\n    injector = anInjector;\n  }\n}\n\n/**\n *\n * Useful in places where the official angular `inject` cannot be use\n * i.e outside injection context\n */\nexport function outject<T>(service: T): any {\n  return injector.get<T>(service as any);\n}\n\nexport function keys(obj: Object) {\n  return Object.keys(obj);\n}\n\nexport function cut(oldStr: string, fullStr: string) {\n  return fullStr.split(oldStr).join('');\n}\n\nexport function titleCase(\n  words: string,\n  seperator: string = ' ',\n  joiner: string = ' ',\n) {\n  return words\n    .split(seperator)\n    .map((word) => {\n      return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n    })\n    .join(joiner);\n}\n\nexport function camelCase(\n  words: string,\n  seperator: string = '_',\n  joiner: string = '',\n) {\n  return words\n    .split(seperator)\n    .map((word, i) => {\n      return i == 0\n        ? word.toLowerCase()\n        : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n    })\n    .join(joiner);\n}\n\nexport function merge(...objects: Object[]): Object {\n  return objects.reduce((prev, curr, index) => {\n    return { ...prev, ...curr };\n  }, {});\n}\n\nexport function recursiveMerge(target: any, ...sources: any[]) {\n  for (const source of sources) {\n    for (const key in source) {\n      if (isObject(source[key])) {\n        if (!target[key]) {\n          target[key] = {};\n        }\n        recursiveMerge(target[key], source[key]);\n      } else {\n        target[key] = source[key];\n      }\n    }\n  }\n  return target;\n}\n\nexport function mergeToArray(...items: any[]): any[] {\n  return items.reduce((prev, curr, index) => {\n    return [...prev, ...curr];\n  }, []);\n}\n\nexport function hash(input?: string) {\n  return input ? input : Math.random().toString();\n}\n\nexport function plural(word: string): string {\n  return `${word}s`;\n}\n\nexport function singular(word: string): string {\n  return word;\n}\n\nexport function snakeCase(\n  words: string,\n  seperator: string = ' ',\n  joiner: string = '_',\n) {\n  return (\n    words\n      // insert a space between lower & upper\n      .replace(/([a-z])([A-Z])/g, '$1 $2')\n      // space before last upper in a sequence followed by lower\n      .replace(/\\b([A-Z]+)([A-Z])([a-z])/, '$1 $2$3')\n      // replace space with \"_\"\n      .replace(/ +/g, '_')\n      // lowercase everything\n      .toLowerCase()\n  );\n}\n\nexport function isNumeric(str: string) {\n  return !isNullOrUndefined(str) && /^-?\\d+(\\.\\d+)?$/.test(str);\n}\n\nexport function isNullOrUndefined(value: any) {\n  return value == undefined || value == null;\n}\n\nexport function isUndefined(value: any) {\n  return value == undefined;\n}\n\nexport function isBlankString(value: any) {\n  return value == '';\n}\n\nexport function isFunction(value: any) {\n  return typeof value == 'function';\n}\n\nexport function isObject(x: any) {\n  return typeof x == 'object' && !Array.isArray(x) && x !== null;\n}\n\nexport function isArray(x: any) {\n  return x != null && typeof x == 'object' && Array.isArray(x);\n}\n\nexport function toJSON(mayBeJSON: string, returnJSON: boolean = false) {\n  try {\n    let obj = JSON.parse(mayBeJSON);\n    if (obj && typeof obj == 'object') {\n      return returnJSON ? obj : true;\n    }\n  } catch (e) {}\n  return false;\n}\n\nexport function routeGroupMatcher(haystack: string[]) {\n  return (\n    segments: UrlSegment[],\n    segmentGroup: UrlSegmentGroup,\n    route: Route,\n  ) => {\n    return segments.length == 1 &&\n      haystack.includes(segments[0].path.toLowerCase())\n      ? { consumed: segments }\n      : null;\n  };\n}\n\nexport function numberWithCommas(number: number): string {\n  if (isNullOrUndefined(number)) {\n    return '0';\n  }\n  var parts = number.toString().split('.');\n  parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n  return parts.join('.');\n}\n\nexport function randomString(length: number = 7) {\n  length = 2 + length / 2;\n  return (\n    Math.random().toString(36).substring(2, length) +\n    Math.random().toString(36).substring(2, length)\n  );\n}\n\nexport function isObservable(mayBeObservable: any): boolean {\n  return mayBeObservable instanceof Observable;\n}\n\nexport function copy(obj: Object): Object {\n  return JSON.parse(JSON.stringify(obj));\n}\n\nexport const catchRxErrors = (onError?: (e: any) => void, toReturn?: any) => {\n  return catchError((e) => {\n    onError && onError(e);\n    return of(toReturn);\n  });\n};\n\nexport const get = (store: any, path: string) => {\n  return path.split('.').reduce((prev, curr) => prev?.[curr], store);\n};\n\nexport const set = (store: any, path: string, value: any) => {\n  ((store: any, path: string, value: any) => {\n    const pathArr = path.split('.');\n    if (pathArr.length == 1) store[pathArr[0]] = value;\n    else set(store[pathArr[0]], pathArr.slice(1).join('.'), value);\n  })(store, path, value);\n\n  return { ...store };\n};\n\nexport const leftMerge = (store: any, updates: any) => {\n  for (const key of Object.keys(updates)) {\n    if (!store.hasOwnProperty(key) || typeof updates[key] !== 'object') {\n      store[key] = updates[key];\n    } else {\n      merge(store[key], updates[key]);\n    }\n  }\n\n  return { ...store };\n};\n\nexport const ROUTE_LIST = new InjectionToken<any[]>('x.common.route.list');\n\nexport const mergeRouteList = (routeList: any[]) => {\n  if (!Array.isArray(routeList) || routeList.length == 0) {\n    return {};\n  }\n\n  return routeList.reduce((prev: any, curr: any) => {\n    return { ...prev, ...curr };\n  }, {});\n};\n\nexport const router = () => outject(Router);\n\nexport const route = () => outject(ActivatedRoute);\n\nexport const data = (key?: string) => {\n  const d = route().snapshot.data;\n  if (key) {\n    return d && d[key];\n  }\n  return d;\n};\n\nexport const state = (key?: string) => {\n  const s = router().lastSuccessfulNavigation?.extras.state;\n  if (key) {\n    return s && s[key];\n  }\n  return s;\n};\n\nexport const query = (key?: string) => {\n  const q = route().snapshot.queryParams;\n  if (key) {\n    return q && q[key];\n  }\n  return q;\n};\n\nexport const param = (key?: string) => {\n  const p = route().snapshot.params;\n  if (key) {\n    return p && p[key];\n  }\n  return p;\n};\n\nexport const navigate = (path: string[], state?: any) => {\n  return router().navigate(path, { state });\n};\n\nexport const navigateRelativelly = (\n  path: string[],\n  relativeTo?: ActivatedRoute,\n  state?: any,\n) => {\n  return router().navigate(path, {\n    relativeTo: relativeTo ? relativeTo : route(),\n    state,\n  });\n};\n\nexport const navigateExternal = (url: string, inNewTab = false) => {\n  if (inNewTab) {\n    window.open(url, '_blank');\n  } else {\n    location.href = url;\n  }\n};\n\nexport const reload = (force = false, stripQuery = false) => {\n  if (force) {\n    location.reload();\n    return;\n  }\n\n  const r = router();\n  let currentUrl = r.url;\n\n  const [path, queryString] = currentUrl.split('?');\n  const [cleanPath] = path.split('#'); // Remove any hash\n  const queryParams = queryString\n    ? Object.fromEntries(new URLSearchParams(queryString))\n    : {};\n\n  r.navigateByUrl('/', { skipLocationChange: true }).then(() => {\n    if (stripQuery) {\n      r.navigate([cleanPath]);\n    } else {\n      r.navigate([cleanPath], { queryParams });\n    }\n  });\n};\n\n// just a dummy, implementation is in the ui package, due to dependency on toast component\n// export const notify = () => {}\n\nexport const using = (\n  next: (value: any) => void = () => {},\n  error?: (err: any) => void,\n  complete?: () => void,\n) => ({\n  next,\n  error,\n  complete,\n});\n\nexport const getValueByDottedString = (dottedString: string, data: any) => {\n  if (!dottedString) {\n    return dottedString;\n  }\n\n  const pathArray = dottedString.split('.');\n  let result = data;\n\n  for (const key of pathArray) {\n    if (\n      typeof result !== 'object' ||\n      result == null ||\n      !result.hasOwnProperty(key)\n    ) {\n      return dottedString;\n    }\n    result = result[key];\n  }\n\n  return result;\n};\n\n/**\n * @deprecated\n *\n * Use tzHuman instead\n */\nexport const prettyTime = (input: string | Date) => {\n  const date = input instanceof Date ? input : new Date(input);\n  const formatter = new Intl.RelativeTimeFormat('EN');\n  const ranges = {\n    years: 3600 * 24 * 365,\n    months: 3600 * 24 * 30,\n    weeks: 3600 * 24 * 7,\n    days: 3600 * 24,\n    hours: 3600,\n    minutes: 60,\n    seconds: 1,\n  };\n\n  const secondsElapsed = (date.getTime() - Date.now()) / 1000;\n\n  let output = input;\n  for (let key in ranges) {\n    if (ranges[key as keyof typeof ranges] < Math.abs(secondsElapsed)) {\n      const delta = secondsElapsed / ranges[key as keyof typeof ranges];\n      return (output = formatter.format(\n        Math.round(delta),\n        key as keyof typeof ranges,\n      ));\n    }\n  }\n\n  return output.toLocaleString();\n};\n\nexport const deepCopy = (input: any | any[]): any => {\n  if (isArray(input)) {\n    return input['map']((i: any) => deepCopy(i));\n  } else if (isObject(input)) {\n    let output: any = {};\n    for (const property in input) {\n      if (input.hasOwnProperty(property)) {\n        output[property] = deepCopy(input[property]);\n      }\n    }\n    return output;\n  } else {\n    return input;\n  }\n};\n\nexport interface StartConfig {\n  clientId: string;\n  guardBaseUrl: string;\n  dashboardPath: string[];\n}\n\nexport const X_START_CONFIG = new InjectionToken<StartConfig>(\n  'x.common.start.config',\n);\n\nexport interface Action {\n  type: string;\n  payload?: any;\n}\n\nexport enum DefaultActionType {\n  INIT_STORE = 'default_store_init',\n  EMPTY_STORE = 'default_store_empty',\n}\n\nexport enum CommonActionType {\n  USER_LOGIN = 'x_user_login',\n  USER_LOGOUT = 'x_user_logout',\n  USER_SWITCH = 'x_user_switch',\n  NOTIFICATION_TOAST = 'x_notification_toast',\n  THEME_SWITCH = 'x_theme_toggle',\n\n  APP_CONFIG = 'x_app_config',\n  USER_SESSION = 'x_user_sessions',\n  USER_ATTRIBUTES = 'x_user_attributes',\n  SEARCH_RESULT = 'x_search_result',\n}\n\nexport interface WsSubscribePayload {\n  namespace?: string;\n  event: string;\n}\n\nexport const pretty = (value: string) => {\n  value = value.replace(/([A-Z])/g, ' $1');\n  return titleCase(value?.replace(/_/g, ' '));\n};\n\nexport const getClientId = () => {\n  const url = window.location.href;\n  const hostname = new URL(url).hostname;\n\n  if (hostname == 'localhost') {\n    return hostname;\n  }\n\n  const domainParts = hostname.split('.');\n  const root = domainParts.slice(-2).join('.');\n\n  return root;\n};\n\nexport const getClientName = () => {\n  const hostname = window.location.hostname;\n\n  if (hostname == 'localhost') {\n    return hostname;\n  }\n\n  const parts = hostname.split('.');\n\n  if (parts.length > 2) {\n    return parts[parts.length - 2];\n  }\n\n  return parts[0];\n};\n\nexport const isUrl = (value: string) => {\n  try {\n    new URL(value);\n    return true;\n  } catch (err) {\n    return false;\n  }\n};\n\nexport const clone = (obj: any) => {\n  return Object.assign(Object.create(Object.getPrototypeOf(obj)), obj);\n};\n\nexport const recursiveMergeWithArray = (\n  target: any,\n  ...sources: any[]\n): any => {\n  for (const source of sources) {\n    for (const key in source) {\n      if (isObject(source[key])) {\n        if (!target[key] || !isObject(target[key])) {\n          target[key] = {};\n        }\n        recursiveMergeWithArray(target[key], source[key]);\n      } else if (Array.isArray(source[key])) {\n        if (!Array.isArray(target[key])) {\n          target[key] = [];\n        }\n        target[key] = Array.from(new Set(source[key])); // maybe merge values from both array\n      } else {\n        target[key] = source[key];\n      }\n    }\n  }\n  return target;\n};\n\nexport enum StoreType {\n  Local = 'local',\n  Session = 'session',\n}\n\nconst _asyncCache$: Record<string, Observable<any>> = {};\nexport const asyncCache$ = (obs: Observable<any>, key: string) => {\n  if (key in _asyncCache$) {\n    return _asyncCache$[key];\n  }\n\n  _asyncCache$[key] = obs.pipe(shareReplay(1));\n\n  return _asyncCache$[key];\n};\n\nexport const toBase64 = (file: File): Promise<string> => {\n  if (!(file instanceof File)) {\n    return new Promise((resolve, reject) => {\n      resolve(file);\n    });\n  }\n\n  return new Promise((resolve, reject) => {\n    const reader = new FileReader();\n    reader.readAsDataURL(file);\n    reader.onload = () => resolve(reader.result as string);\n    reader.onerror = reject;\n  });\n};\n\nexport const splitIntoTwo = (value: string, separator = '=') => {\n  const firstEqualsIndex = value.indexOf(separator);\n  if (firstEqualsIndex === -1) {\n    return [value];\n  }\n\n  const first = value.substring(0, firstEqualsIndex);\n  const second = value.substring(firstEqualsIndex + 1);\n  return [first, second];\n};\n\nexport const fetchRouteInfo = (route: ActivatedRoute) => {\n  let params = {\n    ...route.snapshot.params,\n  };\n  let data = {\n    ...route.snapshot.data,\n  };\n  let queries = {\n    ...route.snapshot.queryParams,\n  };\n\n  if (route.children.length > 0) {\n    route.children.forEach((childRoute) => {\n      const [nParams, nData, nQueries] = fetchRouteInfo(childRoute);\n      params = {\n        ...route.snapshot.params,\n        ...nParams,\n      };\n      data = {\n        ...route.snapshot.data,\n        ...nData,\n      };\n      queries = {\n        ...route.snapshot.queryParams,\n        ...nQueries,\n      };\n    });\n  }\n\n  return [params, data, queries];\n};\n\nexport const onlyUnique = <T>(array: T[]) => {\n  const seen = new Set<string>();\n  return array.filter((item) => {\n    const serialized = JSON.stringify(item);\n    if (seen.has(serialized)) return false;\n    seen.add(serialized);\n    return true;\n  });\n};\n\nexport const isEmoji = (value: string): boolean => {\n  // Split into grapheme clusters, not code units\n  const graphemes = [\n    ...value.matchAll(\n      /(\\p{Extended_Pictographic}|\\p{Emoji_Component}|\\p{Emoji_Presentation}|\\p{Emoji_Modifier_Base}|\\p{Emoji}|[\\uD83C\\uDDE6-\\uD83C\\uDDFF]{2})/gu,\n    ),\n  ];\n\n  return graphemes.length > 0;\n};\n\nexport const getPublicIp = async () => {\n  const res = await fetch('https://api.ipify.org/?format=json');\n  if (!res.ok) {\n    return null;\n  }\n\n  const data = await res.json();\n\n  return data?.ip;\n};\n","import { Injectable } from '@angular/core';\nimport {\n  BehaviorSubject,\n  filter,\n  map,\n  Observable,\n  Subject,\n  tap,\n  withLatestFrom,\n} from 'rxjs';\nimport {\n  Action,\n  DefaultActionType,\n  get,\n  isNullOrUndefined,\n  recursiveMerge,\n} from '../utils/misc.util';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class StateService {\n  private exclude: string[] = [];\n\n  private store$ = new BehaviorSubject<any>({});\n\n  private action$ = new Subject<Action>();\n\n  private effect$ = this.action$.pipe(\n    filter((a) => !this.exclude.includes(a.type)),\n  );\n\n  private $reducer = this.action$.pipe(\n    filter((a) => !this.exclude.includes(a.type)),\n    withLatestFrom(this.store$),\n    map(([action, store]) => {\n      return { action, store };\n    }),\n  );\n\n  constructor() {\n    this.$reducer\n      .pipe(\n        map(({ action, store }) => {\n          if (action.type == DefaultActionType.INIT_STORE) {\n            return { ...action.payload };\n          }\n\n          if (action.type == DefaultActionType.EMPTY_STORE) {\n            return {};\n          }\n\n          const newStore = action.payload\n            ? recursiveMerge(store, { [action.type]: action.payload })\n            : store;\n\n          return { ...newStore };\n        }),\n        tap((store: any) => {\n          this.store$.next(store);\n        }),\n      )\n      .subscribe();\n  }\n\n  select<T = any>(path?: string) {\n    return this.store$.pipe(\n      map((store) => (path ? get(store, path) : store) as T),\n      map((store) => {\n        return isNullOrUndefined(store)\n          ? store\n          : Array.isArray(store)\n            ? [...store]\n            : { ...store };\n      }),\n    );\n  }\n\n  dispatch(...actions: Action[]) {\n    actions.map((a) => this.action$.next(a));\n  }\n\n  register(\n    type: string,\n    effect: (effect$: Observable<any>) => Observable<any>,\n  ) {\n    const filteredAction$ = this.effect$.pipe(filter((a) => a.type == type));\n\n    return effect(filteredAction$).subscribe();\n  }\n\n  hydrate(payload: any = {}) {\n    this.dispatch({\n      type: DefaultActionType.INIT_STORE,\n      payload,\n    });\n  }\n\n  empty() {\n    this.dispatch({\n      type: DefaultActionType.EMPTY_STORE,\n    });\n  }\n}\n","import { Directive, HostListener, inject, Input } from '@angular/core';\nimport { StateService } from '../services/state.service';\n\n@Directive({\n  selector: '[act]',\n})\nexport class ActDirective {\n  private readonly stateService = inject(StateService);\n  @Input() act: [string, any] = ['', null];\n\n  @HostListener('click')\n  onClick() {\n    const [type, payload] = this.act;\n    if (type && type !== '') {\n      this.stateService.dispatch({\n        type,\n        payload,\n      });\n    }\n  }\n}\n","export interface BaseRequestParam {\n  query?: string;\n  page?: number;\n  from?: string;\n  to?: string;\n  perPage?: number;\n  relations?: string;\n  columns?: string;\n  [key: string]: any;\n}\n\nexport interface BaseRequestBody {\n  [key: string]: any;\n}\n\nexport interface BaseEntity {\n  id?: string;\n  createdAt?: string;\n  updateAt?: string;\n  deletedAt?: string;\n  [key: string]: any;\n}\n\nexport interface BaseResponseBody {\n  status: 'success' | 'error' | string;\n  title: string;\n  message: string;\n  // code?: string,\n  data?: any;\n  meta?: any;\n  raw?: string;\n  headers?: any;\n  [key: string]: any;\n}\n\nexport enum DynamicImageVariantType {\n  Pixel = 'pixel',\n  Shapes = 'shapes',\n}\n","let env: Record<string, string> = {};\n\nexport const hydrateEnv = (\n  keyValues: Record<string, string>,\n  append = false,\n) => {\n  if (append) {\n    env = { ...env, ...keyValues };\n  } else {\n    env = keyValues;\n  }\n};\n\nexport const setEnv = (key: string, value: string) => {\n  env[key] = value;\n};\n\nexport const getEnv = (key: string, defaultValue?: string) => {\n  return env[key] ?? defaultValue;\n};\n\nexport const hasEnv = (key: string) => {\n  return key in env;\n};\n\nexport const allEnv = () => {\n  return env;\n};\n","import { getEnv } from './env.util';\nimport { navigate, navigateExternal } from './misc.util';\n\nexport const inEntities = (\n  group: string,\n  service: string,\n  entityName: string,\n): boolean => {\n  return !!entities?.[group.toLowerCase()]?.[service.toLowerCase()]?.[\n    entityName.toLowerCase()\n  ];\n};\n\nexport const entityHasLink = (\n  group: string,\n  service: string,\n  entityName: string,\n  type: 'show' | string = 'show',\n): boolean => {\n  return !!entities?.[group.toLowerCase()]?.[service.toLowerCase()]?.[\n    entityName.toLowerCase()\n  ]?.[type.toLowerCase()];\n};\n\nexport const getEntityLink = (\n  group: string,\n  service: string,\n  entityName: string,\n  type: 'show' | string = 'show',\n): Function => {\n  return entities?.[group.toLowerCase()]?.[service.toLowerCase()]?.[\n    entityName.toLowerCase()\n  ]?.[type.toLowerCase()];\n};\n\nexport const navigateToEntity = (link: any) => {\n  if (link?.isInternal) {\n    link && navigate(link.internal);\n  } else {\n    link && navigateExternal(link.external, true);\n  }\n};\n\nexport const entities: any = {\n  common: {\n    assets: {\n      file: {},\n    },\n    capital: {\n      account: {},\n      payment: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'payments', 'payment', id],\n            external: `https://payments.${getEnv('GROUP_URL')}/payment/${id}`,\n          };\n        },\n      },\n      paymentLog: {},\n      plan: {},\n      planType: {},\n      provider: {},\n      card: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'payments', 'card', id],\n            external: `https://payments.${getEnv('GROUP_URL')}/card/${id}`,\n          };\n        },\n      },\n      rate: {},\n      transaction: {},\n      usage: {},\n      voucher: {},\n      voucherType: {},\n      wallet: {},\n    },\n    // alias of capital\n    payments: {\n      account: {},\n      payment: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'payments', 'payment', id],\n            external: `https://payments.${getEnv('GROUP_URL')}/payment/${id}`,\n          };\n        },\n      },\n      paymentLog: {},\n      plan: {},\n      planType: {},\n      provider: {},\n      card: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'payments', 'card', id],\n            external: `https://payments.${getEnv('GROUP_URL')}/card/${id}`,\n          };\n        },\n      },\n      rate: {},\n      transaction: {},\n      usage: {},\n      voucher: {},\n      voucherType: {},\n      wallet: {},\n    },\n    common: {\n      ip: {},\n      project: {},\n      projectType: {},\n      rate: {},\n      rateLog: {},\n      tag: {},\n      tagType: {},\n    },\n    controller: {\n      route: {},\n    },\n    figs: {\n      file: {},\n    },\n    health: {\n      log: {},\n      service: {},\n      summary: {},\n    },\n    identity: {\n      attribute: {},\n      device: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'id', 'account', 'device', id],\n            external: `https://id.${getEnv('GROUP_URL')}/account/device/${id}`,\n          };\n        },\n      },\n      deviceLog: {},\n      deviceSession: {},\n      invite: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'id', 'people', 'member', id],\n            external: `https://id.${getEnv('GROUP_URL')}/people/member/${id}`,\n          };\n        },\n      },\n      permission: {},\n      permissionType: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'id', 'people', 'permission', id],\n            external: `https://id.${getEnv('GROUP_URL')}/people/permission/${id}`,\n          };\n        },\n      },\n      client: {},\n      clientLog: {},\n      provider: {},\n      providerLog: {},\n      role: {},\n      roleType: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'id', 'people', 'role', id],\n            external: `https://id.${getEnv('GROUP_URL')}/people/role/${id}`,\n          };\n        },\n      },\n      token: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'id', 'account', 'token', id],\n            external: `https://id.${getEnv('GROUP_URL')}/account/token/${id}`,\n          };\n        },\n      },\n      user: {},\n      userClientWorkspace: {},\n      workspace: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'id', 'workspace', id],\n            external: `https://id.${getEnv('GROUP_URL')}/workspace/${id}`,\n          };\n        },\n      },\n    },\n    statics: {\n      list: {},\n    },\n  },\n  datastead: {\n    dashboard: {\n      license: {},\n      licenseLog: {},\n    },\n    proxy: {},\n  },\n  origine: {\n    dashboard: {\n      appVar: {},\n      deployment: {},\n      deploymentEvent: {},\n      deploymentLog: {},\n      domain: {},\n      domainContact: {},\n      domainDns: {},\n      domainLog: {},\n      domainNs: {},\n      instance: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'dashboard', 'instance', id, 'deployment'],\n            external: `https://dashboard.${getEnv('GROUP_URL')}/instance/${id}/deployment`,\n          };\n        },\n      },\n      nodeType: {},\n      port: {},\n      record: {},\n      snapshot: {},\n      snapshotRestore: {},\n      source: {},\n      sourceLog: {},\n      sourceNamespace: {},\n      datacenter: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'dashboard', 'datacenter', id],\n            external: `https://dashboard.${getEnv('GROUP_URL')}/datacenter/${id}`,\n          };\n        },\n      },\n      registry: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'dashboard', 'registry', id],\n            external: `https://dashboard.${getEnv('GROUP_URL')}/registry/${id}`,\n          };\n        },\n      },\n      repository: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'dashboard', 'repository', id],\n            external: `https://dashboard.${getEnv('GROUP_URL')}/repository/${id}`,\n          };\n        },\n      },\n      sourceResource: {},\n      sourceTag: {},\n      sourceType: {},\n      var: {},\n      varType: {},\n      variable: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'dashboard', 'setting', 'common', 'variable', id],\n            external: `https://dashboard.${getEnv('GROUP_URL')}/setting/common/variable/${id}`,\n          };\n        },\n      },\n      secret: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'dashboard', 'setting', 'common', 'secret', id],\n            external: `https://dashboard.${getEnv('GROUP_URL')}/setting/common/secret/${id}`,\n          };\n        },\n      },\n      zone: {\n        show: (id: string, group?: string, service?: string) => {\n          return {\n            isInternal:\n              group?.toLowerCase() == 'apps' &&\n              service?.toLowerCase() == 'capital',\n            internal: ['/', 'dashboard', 'zone', id, 'record'],\n            external: `https://dashboard.${getEnv('GROUP_URL')}/zone/${id}/record`,\n          };\n        },\n      },\n    },\n    watchman: {},\n  },\n  polylog: {\n    audit: {\n      log: {},\n    },\n    bonnet: {\n      event: {},\n      eventLog: {},\n    },\n    dashboard: {\n      channel: {},\n      sink: {},\n      sinkType: {},\n      source: {},\n      sourceType: {},\n    },\n    fuss: {\n      history: {},\n      token: {},\n      tokenLog: {},\n    },\n    notification: {\n      log: {},\n      message: {},\n      rule: {},\n      template: {},\n    },\n  },\n  qonsole: {\n    dashboard: {\n      attribute: {},\n      datacenter: {},\n      license: {},\n      leicenseType: {},\n      plan: {},\n      planType: {},\n      preference: {},\n      server: {},\n      user: {},\n      webhook: {},\n    },\n  },\n};\n","export const stackTrace = () => {\n  let error;\n\n  if (typeof Error.captureStackTrace === 'function') {\n    error = {};\n    Error.captureStackTrace(error, stackTrace);\n  } else {\n    error = new Error();\n  }\n\n  return error.stack || '';\n};\n","export const toMajor = (minor: number | string) => {\n  const str =\n    typeof minor === 'number'\n      ? Number.isSafeInteger(minor) && minor >= 0\n        ? minor.toString()\n        : (() => {\n            throw new Error('Invalid number input');\n          })()\n      : /^\\d+$/.test(minor)\n        ? minor\n        : (() => {\n            throw new Error('Invalid string input');\n          })();\n\n  const padded = str.padStart(3, '0'); // ensure at least 3 digits for safe slicing\n  const whole = padded.slice(0, -2);\n  const fraction = padded.slice(-2);\n\n  return `${whole}.${fraction}`;\n};\n\nexport const toMinor = (amount: number | string) => {\n  const [whole, fraction = ''] = amount.toString().split('.');\n\n  const truncatedFraction = (fraction + '00').slice(0, 2); // pad to 2 digits\n  const combined = whole + truncatedFraction;\n\n  const result = Number(combined);\n\n  if (!Number.isSafeInteger(result) || result < 0) {\n    throw new Error('Invalid or unsafe positive amount');\n  }\n\n  return result;\n};\n\nexport const toInt = (amount: number | string): number => {\n  const num = typeof amount === 'number' ? amount : parseFloat(amount);\n\n  if (!Number.isFinite(num) || num < 0) {\n    throw new Error('Amount must be a finite, non-negative number');\n  }\n\n  const truncated = Math.trunc(num);\n\n  if (!Number.isSafeInteger(truncated)) {\n    throw new Error('Truncated value exceeds safe integer range');\n  }\n\n  return truncated;\n};\n","import { StateService } from '../services/state.service';\nimport { CommonActionType, outject } from './misc.util';\n\nexport const notify = (\n  message: string,\n  ref?: string,\n  type = 'info',\n  title?: string,\n) => {\n  const stateService = outject(StateService);\n  stateService.dispatch({\n    type: CommonActionType.NOTIFICATION_TOAST,\n    payload: {\n      ref,\n      type,\n      title,\n      message,\n      autoHide: true,\n      delay: 5000,\n    },\n  });\n};\n","export const withOverrides = <T extends object>(\n  classInstance: T,\n  overrides: Record<string, Function>,\n): T => {\n  return new Proxy(classInstance, {\n    get: (target: T, prop: string | symbol, receiver: any) => {\n      if (typeof prop === 'string' && prop in overrides) {\n        // Return the overridden function, bound to the original instance\n        return overrides[prop].bind(target);\n      }\n\n      // Otherwise, return the original property value\n      const originalValue = Reflect.get(target, prop, receiver);\n      return originalValue;\n    },\n  }) as T;\n};\n","import { formatDate } from '@angular/common';\n\nexport const tzTime = (\n  value: string,\n  timezone = 'America/New_York',\n): string => {\n  if (!value) {\n    return '';\n  }\n\n  const formatted = formatDate(value, 'EEEEEE, MMM d, y', 'en', timezone);\n\n  return formatted;\n};\n\n/**\n * Print a human readable timestamp to the terminal\n * given a number representing seconds\n *\n * Author: Dave Eddy <dave@daveeddy.com>\n * Date: 8/18/2014\n * License: MIT\n */\nexport const tzHuman = (secondOrDate: number | string | Date) => {\n  if (typeof secondOrDate == 'string') {\n    secondOrDate = new Date(secondOrDate);\n  }\n\n  if (secondOrDate instanceof Date) {\n    secondOrDate = Math.round((Date.now() - (secondOrDate as any)) / 1000);\n  }\n\n  var suffix = secondOrDate < 0 ? 'from now' : 'ago';\n  secondOrDate = Math.abs(secondOrDate);\n\n  var times = [\n    secondOrDate / 60 / 60 / 24 / 365, // years\n    secondOrDate / 60 / 60 / 24 / 30, // months\n    secondOrDate / 60 / 60 / 24 / 7, // weeks\n    secondOrDate / 60 / 60 / 24, // days\n    secondOrDate / 60 / 60, // hours\n    secondOrDate / 60, // minutes\n    secondOrDate, // seconds\n  ];\n\n  var names = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second'];\n\n  for (var i = 0; i < names.length; i++) {\n    var time = Math.floor(times[i]);\n    var name = names[i];\n    if (time > 1) name += 's';\n\n    if (time >= 1) return time + ' ' + name + ' ' + suffix;\n  }\n\n  return '0 seconds ' + suffix;\n};\n","import { inject, Injectable } from '@angular/core';\nimport { EventsService } from '@chisquare-tech/ngx-polylog';\nimport hljs from 'highlight.js';\nimport { load } from 'js-yaml';\nimport { marked } from 'marked';\nimport { getHeadingList, gfmHeadingId } from 'marked-gfm-heading-id';\nimport { markedHighlight } from 'marked-highlight';\nimport Mustache from 'mustache';\nimport { lastValueFrom, map } from 'rxjs';\nimport { allEnv, getEnv } from '../utils';\nimport { RequestService } from './request.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class MediaService {\n  private readonly requestService = inject(RequestService);\n  private readonly eventsService = inject(EventsService);\n\n  private options = {\n    headers: {\n      'Context-Type': 'application/yaml',\n      Accept: '*/*',\n    },\n    observe: 'response',\n    body: {},\n    params: {},\n    responseType: 'text',\n  };\n\n  private locales = ['EN'];\n\n  private defaultLanguage = 'EN';\n\n  private store = {} as any;\n\n  constructor() {}\n\n  async load(paths: string[]) {\n    for (let index = 0; index < paths.length; index++) {\n      const path = paths[index];\n      if (this.store[path]) {\n        continue;\n      }\n      try {\n        const $ = this.requestService.raw(\n          'GET',\n          `${getEnv('MEDIA_BASE_URL')}/${path}`.toLowerCase(),\n          null,\n          this.options,\n        );\n        const output = await lastValueFrom($);\n        this.store[path] = output;\n      } catch (error) {\n        this.eventsService.message('web.app.media.miss', { path }, {});\n      }\n    }\n  }\n\n  get(path: string) {\n    const content = this.store[path];\n\n    if (!content) {\n      this.eventsService.message('web.app.media.miss', { path }, {});\n      return '';\n    }\n\n    return content.toString();\n  }\n\n  async loadAndGet(path: string) {\n    await this.load([path]);\n    return this.get(path);\n  }\n\n  manifest(appName?: string) {\n    return {\n      index: () => {\n        return this.requestService\n          .raw(\n            'GET',\n            `${getEnv('MEDIA_BASE_URL')}/manifests/ngx/${getEnv('GROUP_NAME')}/${appName ?? getEnv('APP_NAME')}.yaml`.toLowerCase(),\n            null,\n            this.options,\n          )\n          .pipe(\n            map((yaml) => {\n              if (!yaml || yaml == '') {\n                console.error('Failed to load app manifest');\n                return {};\n              }\n\n              const manifest = load(yaml, {\n                filename: '...',\n                onWarning: (o) => {\n                  console.log('JS_YAML_onWarning', o);\n                },\n                json: true,\n              }) as any;\n\n              if (!manifest) {\n                console.error('Failed to parse app manifest');\n                return {};\n              }\n\n              return this.recursivelyDecode(manifest);\n            }),\n          );\n      },\n    };\n  }\n\n  context(appName?: string) {\n    return {\n      index: () => {\n        return this.requestService\n          .raw(\n            'GET',\n            `${getEnv('MEDIA_BASE_URL')}/context/ngx/${getEnv('GROUP_NAME')}/${appName ?? getEnv('APP_NAME')}/${getEnv('X_PREFERENCE_LANGUAGE')}/index.yaml`.toLowerCase(),\n            null,\n            this.options,\n          )\n          .pipe(\n            map((yaml) => {\n              return Mustache.render(yaml, allEnv());\n            }),\n            map((yaml) => {\n              return load(yaml, {\n                filename: '...',\n                onWarning: (o) => {\n                  console.log('JS_YAML_onWarning', o);\n                },\n                json: true,\n              });\n            }),\n          );\n      },\n\n      article: (name: string, harvestHeaders = false) => {\n        return this.requestService\n          .raw(\n            'GET',\n            `${getEnv('MEDIA_BASE_URL')}/context/ngx/${getEnv('GROUP_NAME')}/${appName ?? getEnv('APP_NAME')}/${getEnv('X_PREFERENCE_LANGUAGE')}/docs/${name}.md`.toLowerCase(),\n            null,\n            this.options,\n          )\n          .pipe(\n            map((md) => {\n              return Mustache.render(md, allEnv());\n            }),\n            map((md) => {\n              let headers = null;\n              marked.use(\n                {\n                  gfm: true,\n                  hooks: {\n                    preprocess: (markdown: string) => {\n                      return markdown;\n                    },\n                    postprocess: (html: string) => {\n                      headers = getHeadingList();\n                      return html;\n                    },\n                  },\n                },\n                gfmHeadingId(),\n                markedHighlight({\n                  langPrefix: 'hljs language-',\n                  highlight(code, lang, info) {\n                    const language = hljs.getLanguage(lang)\n                      ? lang\n                      : 'plaintext';\n                    return hljs.highlight(code, { language }).value;\n                  },\n                }),\n              );\n\n              return harvestHeaders\n                ? {\n                    html: marked.parse(md),\n                    headers,\n                  }\n                : marked.parse(md);\n            }),\n          );\n      },\n\n      asset: (path: string) => {\n        return this.requestService\n          .raw(\n            'GET',\n            `${getEnv('MEDIA_BASE_URL')}/${path}`.toLowerCase(),\n            null,\n            this.options,\n          )\n          .pipe(\n            map((asset) => {\n              return asset;\n            }),\n          );\n      },\n\n      docs: (path: string) => {\n        return this.requestService\n          .raw(\n            'GET',\n            `${getEnv('MEDIA_BASE_URL')}/${path}`.toLowerCase(),\n            null,\n            this.options,\n          )\n          .pipe(\n            map((docs) => {\n              return docs;\n            }),\n          );\n      },\n    };\n  }\n\n  recursivelyDecode(obj: any): any {\n    if (typeof obj !== 'object' || obj === null) {\n      return obj;\n    }\n\n    const newObj: any = Array.isArray(obj) ? [] : {};\n\n    for (const key in obj) {\n      if (typeof obj[key] === 'object' && obj[key] !== null) {\n        newObj[key] = this.recursivelyDecode(obj[key]);\n      } else if (typeof obj[key] === 'string' && obj[key].length > 0) {\n        try {\n          newObj[key] = atob(obj[key]);\n        } catch (error) {\n          console.warn(\n            console.warn(`Skipping invalid base64 string at key: ${key}`),\n            error,\n          );\n          newObj[key] = obj[key];\n        }\n      } else {\n        newObj[key] = obj[key];\n      }\n    }\n\n    return newObj;\n  }\n}\n","import { load } from 'js-yaml';\nimport Mustache from 'mustache';\nimport { MediaService } from '../services/media.service';\nimport { getValueByDottedString, outject } from './misc.util';\n\nlet translationCache = {} as any;\nexport const translate = (path: string, data?: any, locale = 'EN'): string => {\n  path = path.toLowerCase();\n  let [first, second, ...rest] = path.split('.');\n  let groupName: string | null;\n  let serviceName: string | null;\n  if (first.includes('core')) {\n    groupName = null;\n    serviceName = first;\n    rest = [second, ...rest];\n  } else {\n    groupName = first;\n    serviceName = second;\n  }\n\n  if (!data && path in translationCache) {\n    return translationCache[path];\n  }\n\n  if (serviceName in translationCache) {\n    const obj = translationCache[serviceName];\n    return (translationCache[path] = Mustache.render(\n      getValueByDottedString(rest.join('.'), obj),\n      data,\n    ));\n  }\n\n  locale = locale ?? 'EN';\n  const group = groupName ? `/${groupName}` : '';\n  const mediaPath =\n    `translations/${locale}/ngx${group}/${serviceName}.yaml`.toLowerCase();\n  const mediaService = outject(MediaService);\n  let yaml = mediaService.get(mediaPath);\n  if (!yaml) {\n    yaml = mediaService.get(\n      `translations/en/ngx${group}/${serviceName}.yaml`.toLowerCase(),\n    );\n  }\n\n  const obj = load(yaml, {\n    filename: '...',\n    onWarning: (o) => {\n      console.log('JS_YAML_onWarning', o);\n    },\n    json: true,\n  }) as any;\n\n  translationCache[serviceName] = obj;\n\n  return (translationCache[path] = Mustache.render(\n    getValueByDottedString(rest.join('.'), obj),\n    data,\n  ));\n};\n","import { Injectable } from '@angular/core';\nimport { StoreType } from '../utils';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class StoreService {\n  storeType = StoreType.Local;\n  store = localStorage;\n\n  use(storeType: StoreType) {\n    this.storeType = storeType;\n    this.store =\n      this.storeType == StoreType.Local ? localStorage : sessionStorage;\n    return this;\n  }\n\n  set(key: string, value: string) {\n    this.store.setItem(key, value);\n  }\n\n  get(key: string, defaultValue?: string) {\n    const existingValue = this.store.getItem(key);\n\n    return existingValue ?? defaultValue;\n  }\n\n  has(key: string) {\n    return !!this.store.getItem(key);\n  }\n\n  remove(key: string) {\n    this.store.removeItem(key);\n  }\n\n  clear() {\n    this.store.clear();\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { getEnv } from '../utils';\nimport { isNullOrUndefined, isObject } from '../utils/misc.util';\nimport { StoreService } from './store.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class RequestService {\n  private readonly http = inject(HttpClient);\n  private readonly storeService = inject(StoreService);\n\n  private defaultHeaders = {\n    'Content-Type': 'application/json',\n    // Accept: 'application/json',\n  };\n\n  constructor() {}\n\n  raw<T = any>(\n    method: string,\n    url: string,\n    payload: any = {},\n    moreOptions = {},\n  ): Observable<T> {\n    url = url.startsWith('http') ? url : `${getEnv('API_BASE_URL')}/${url}`;\n    // start request and hope things goes as planned\n    return this.http\n      .request(method, url, {\n        headers: this.defaultHeaders,\n        observe: 'response',\n        body: method.toLowerCase() !== 'get' ? JSON.stringify(payload) : {},\n        params: method.toLowerCase() == 'get' ? payload : {},\n        ...moreOptions,\n      })\n      .pipe(\n        map((response) => {\n          return response?.body as any;\n        }),\n        catchError((e) => {\n          const message =\n            e?.error?.message ??\n            e?.message ??\n            'It looks like something snapped in the system. Try again in a bit.';\n\n          throw new Error(message); // e?.error ?? e;\n        }),\n      );\n  }\n\n  request<T = any>(\n    method: string,\n    url: string,\n    payload: any = {},\n    moreOptions = {},\n  ): Observable<T> {\n    url = url.startsWith('http') ? url : `${getEnv('API_BASE_URL')}/${url}`;\n    // start request and hope things goes as planned\n    payload = this.clean(payload);\n    return this.http\n      .request(method, url, {\n        withCredentials: true,\n        headers: this.defaultHeaders,\n        observe: 'response',\n        body: method.toLowerCase() !== 'get' ? JSON.stringify(payload) : {},\n        params: method.toLowerCase() == 'get' ? payload : {},\n        ...moreOptions,\n      })\n      .pipe(\n        map((response) => {\n          if (\n            !response ||\n            !response.status ||\n            !response.body ||\n            !('status' in response.body)\n          ) {\n            const message = 'Network Error. Check your network and try again.';\n\n            throw new Error(message);\n          }\n\n          const body = response.body as any;\n\n          if (body.status != 'success') {\n            const message = `${body?.title} - ${body?.message}`;\n\n            throw new Error(message); //body;\n          }\n\n          return body;\n        }),\n        catchError((e) => {\n          // clear all existing token if user is unauthorized\n          if (e.status == 401) {\n            this.storeService.clear();\n            // location.reload();\n          }\n\n          const message =\n            e?.error?.message ??\n            e?.message ??\n            'It looks like something snapped in the system. Try again in a bit.';\n\n          throw new Error(message); // e?.error ?? e;\n        }),\n      );\n  }\n\n  get<T = any>(url: string, params?: any, options = {}): Observable<T> {\n    return this.request<T>('GET', url, params, options);\n  }\n\n  post<T = any>(url: string, payload?: any, options = {}): Observable<T> {\n    return this.request<T>('POST', url, payload, options);\n  }\n\n  put<T = any>(url: string, payload?: any, options = {}): Observable<T> {\n    return this.request<T>('PUT', url, payload, options);\n  }\n\n  delete<T = any>(url: string, options = {}): Observable<T> {\n    return this.request<T>('DELETE', url, null, options);\n  }\n\n  patch<T = any>(url: string, payload?: any, options = {}): Observable<T> {\n    return this.request<T>('PATCH', url, payload, options);\n  }\n\n  private clean(payload: any) {\n    if (!isObject(payload)) {\n      return payload;\n    }\n\n    let output = {} as any;\n\n    for (const key in payload) {\n      if (Object.prototype.hasOwnProperty.call(payload, key)) {\n        const value = payload[key];\n        if (!isNullOrUndefined(value)) {\n          output[key] = value;\n        }\n      }\n    }\n\n    return output;\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ControlService } from '../services/control.service';\nimport { RequestService } from '../services/request.service';\nimport {\n  BaseEntity,\n  BaseRequestParam,\n  BaseResponseBody,\n  clone,\n} from '../utils';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ApiService {\n  readonly requestService = inject(RequestService);\n  readonly controlService = inject(ControlService);\n\n  name?: string;\n\n  on(name: string) {\n    const clonedThis = clone(this) as ApiService;\n    clonedThis.name = name;\n\n    return clonedThis;\n  }\n\n  create(payload: BaseEntity, options = {}) {\n    return this.post(`${this.name}`, payload, options);\n  }\n\n  upsert(payload: BaseEntity, options = {}) {\n    return this.put(`${this.name}`, payload, options);\n  }\n\n  getOne(id: string, params?: BaseRequestParam, options = {}) {\n    return this.get(`${this.name}/${id}`, params, options);\n  }\n\n  getMany(params?: BaseRequestParam, options = {}) {\n    return this.get(`${this.name}`, params, options);\n  }\n\n  update(id: string, payload: BaseEntity, options = {}) {\n    return this.patch(`${this.name}/${id}`, payload, options);\n  }\n\n  remove(id: string, options = {}) {\n    return this.delete(`${this.name}/${id}`, options);\n  }\n\n  getRelative(id: string, relative: string, options = {}) {\n    return this.get(`${this.name}/${id}/${relative}`, null, options);\n  }\n\n  getMetrics(params = {}, options = {}) {\n    return this.get(`${this.name}/metrics`, params, options);\n  }\n\n  find(\n    params?: BaseRequestParam,\n    type: 'latest' | 'oldest' = 'latest',\n    options = {},\n  ) {\n    return this.get(`${this.name}/find/${type}`, params, options);\n  }\n\n  post(path: string, payload?: any, options = {}) {\n    return this.requestService.post<BaseResponseBody>(path, payload, options);\n  }\n\n  put(path: string, payload?: any, options = {}) {\n    return this.requestService.put<BaseResponseBody>(path, payload, options);\n  }\n\n  get(path: string, params?: any, options = {}) {\n    return this.requestService.get<BaseResponseBody>(path, params, options);\n  }\n\n  patch(path: string, payload = {}, options = {}) {\n    return this.requestService.patch<BaseResponseBody>(path, payload, options);\n  }\n\n  delete(path: string, options = {}) {\n    return this.requestService.delete<BaseResponseBody>(path, options);\n  }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Inject, Injectable, RendererFactory2 } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DomService {\n  private readonly rendererFactory = inject(RendererFactory2);\n  private renderer = this.rendererFactory.createRenderer(null, null);\n\n  constructor(@Inject(DOCUMENT) private document: Document) {}\n\n  set(\n    selector: string,\n    values: Record<string, any>[],\n    type: 'style' | 'property' | 'attribute' = 'style',\n    all = false,\n  ) {\n    if (all) {\n      const elements = this.document.querySelectorAll(selector);\n      elements.forEach(\n        (element) => element && this._set(element, type, values),\n      );\n    } else {\n      const element = this.document.querySelector(selector);\n      element && this._set(element, type, values);\n    }\n  }\n\n  private _set(\n    element: any,\n    type: 'style' | 'property' | 'attribute',\n    values: Record<string, any>,\n  ) {\n    let handler: any;\n    switch (type) {\n      case 'style':\n        handler = this.renderer.setStyle;\n        break;\n      case 'property':\n        handler = this.renderer.setProperty;\n        break;\n      case 'attribute':\n        handler = this.renderer.setAttribute;\n        break;\n    }\n\n    for (const key in values) {\n      if (Object.prototype.hasOwnProperty.call(values, key)) {\n        const value = values[key];\n        handler(element, key, value);\n      }\n    }\n  }\n}\n","import { ErrorHandler, inject, Injectable } from '@angular/core';\nimport { EventsService } from '@chisquare-tech/ngx-polylog';\nimport { notify, stackTrace } from '../utils';\n\nInjectable({ providedIn: 'root' });\nexport class GlobalErrorHandler implements ErrorHandler {\n  private readonly eventsService = inject(EventsService);\n\n  handleError(error: any): void {\n    console.error(error);\n\n    if (error?.message) {\n      notify(error.message, 'x.request.raw', 'error');\n    }\n\n    this.eventsService.message(\n      'apps.common.log.error',\n      {\n        error,\n        location: window?.location,\n        trace: stackTrace(),\n      },\n      {},\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\n@Injectable({\n  providedIn: 'root',\n})\nexport class MarkdownService {\n  toHTML() {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of, shareReplay, Subject, tap } from 'rxjs';\n\n// No in use, needs improvements\n@Injectable({\n  providedIn: 'root',\n})\nexport class MemoizerService {\n  memoize(local: any = null, timeout = 5 * 1000) {\n    let attempted = false;\n    let timer: any = null;\n    let cache$: Observable<any> | null = null;\n    let reset$ = new Subject<void>();\n\n    return {\n      once(action: Observable<any>): Observable<any> {\n        if (local) {\n          return of(local);\n        }\n\n        if (attempted && cache$) {\n          return cache$;\n        }\n\n        attempted = true;\n\n        cache$ = action.pipe(\n          tap((result) => (local = result)),\n          shareReplay(1), // Ensures the observable is shared among multiple subscribers without re-subscribing\n        );\n\n        return cache$;\n      },\n\n      withRetry(action: Observable<any>): Observable<any> {\n        if (local) {\n          return of(local);\n        }\n\n        if (attempted && cache$) {\n          return cache$;\n        }\n\n        attempted = true;\n\n        cache$ = action.pipe(\n          tap((result) => {\n            local = result;\n            attempted = true;\n            clearInterval(timer);\n          }),\n          shareReplay(1), // Caches the observable result for future retries\n        );\n\n        if (!timer) {\n          timer = setInterval(() => {\n            attempted = false;\n            cache$ = null; // Invalidate cache after timeout\n          }, timeout);\n        }\n\n        return cache$;\n      },\n\n      reset() {\n        local = null;\n        attempted = false;\n        cache$ = null;\n        if (timer) {\n          clearInterval(timer);\n          timer = null;\n        }\n        reset$.next(); // Notify all subscribers to reset\n      },\n    };\n  }\n}\n","import {\n  ActivatedRouteSnapshot,\n  DetachedRouteHandle,\n  RouteReuseStrategy,\n  UrlSegment,\n} from '@angular/router';\n\nexport class RouterReuseStrategy implements RouteReuseStrategy {\n  storedHandles: { [key: string]: DetachedRouteHandle } = {};\n\n  shouldDetach(route: ActivatedRouteSnapshot): boolean {\n    return route.data['reuse'] || false;\n  }\n\n  store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\n    const id = this.createIdentifier(route);\n    if (route.data['reuse']) {\n      this.storedHandles[id] = handle;\n    }\n  }\n\n  shouldAttach(route: ActivatedRouteSnapshot): boolean {\n    const id = this.createIdentifier(route);\n    const handle = this.storedHandles[id];\n    const canAttach = !!route.routeConfig && !!handle;\n    return canAttach;\n  }\n\n  retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n    const id = this.createIdentifier(route);\n    if (!route.routeConfig || !this.storedHandles[id]) {\n      return null;\n    }\n    return this.storedHandles[id];\n  }\n\n  shouldReuseRoute(\n    future: ActivatedRouteSnapshot,\n    curr: ActivatedRouteSnapshot,\n  ): boolean {\n    return future.routeConfig == curr.routeConfig;\n  }\n\n  private createIdentifier(route: ActivatedRouteSnapshot) {\n    // Build the complete path from the root to the input route\n    const segments: UrlSegment[][] = route.pathFromRoot.map((r) => r.url);\n    const subpaths = ([] as UrlSegment[])\n      .concat(...segments)\n      .map((segment) => segment.path);\n    // Result: ${route_depth}-${path}\n    return segments.length + '-' + subpaths.join('/');\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\nimport { filter, retry } from 'rxjs/operators';\n\nexport interface Script {\n  name: string;\n  src: string;\n  loaded: boolean;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ScriptLoaderService {\n  private scripts: Script[] = [];\n\n  load(script: Script): Observable<Script> {\n    return new Observable<Script>((observer: Observer<Script>) => {\n      const existingScript: any = null;\n      // const existingScript = this.scripts.find((s) => s.name == script.name)\n\n      // load only if script has not been loaded before\n      if (!existingScript || !existingScript.loaded) {\n        // Load the script\n        let scriptElement = document.createElement('script');\n        scriptElement.type = 'text/javascript';\n        scriptElement.src = script.src;\n\n        scriptElement.onload = () => {\n          script.loaded = true;\n          observer.next(script);\n          observer.complete();\n\n          // Mark the script as loaded in memory\n          this.scripts = [...this.scripts, script];\n        };\n\n        scriptElement.onerror = (error: any) => {\n          observer.error(\"Couldn't load script \" + script.src);\n        };\n\n        document.getElementsByTagName('body')[0].appendChild(scriptElement);\n      }\n    }).pipe(\n      retry({ count: 3, delay: 1000 }),\n      filter((script) => script.loaded),\n    );\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, map, Observable, of } from 'rxjs';\nimport { getEnv, titleCase } from '../utils';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class TitleService {\n  private readonly router = inject(Router);\n  private readonly activatedRoute = inject(ActivatedRoute);\n\n  constructor() {}\n\n  private readonly t = inject(Title);\n\n  set(title: string) {\n    this.t.setTitle(title);\n  }\n\n  get(): string {\n    return this.t.getTitle();\n  }\n\n  get$(): Observable<string> {\n    return of(this.t.getTitle());\n  }\n\n  setFavicon(path: string): void {\n    const head = document.querySelector('head');\n    let link: HTMLLinkElement | null =\n      document.querySelector(\"link[rel*='icon']\");\n\n    if (!link) {\n      link = document.createElement('link');\n      link.rel = 'icon';\n      head?.appendChild(link);\n    }\n\n    link.href = `${getEnv('MEDIA_BASE_URL')}/assets/${path}/favicon.ico`;\n  }\n\n  auto() {\n    this.router.events\n      .pipe(\n        filter((event) => event instanceof NavigationEnd),\n        map((event) => {\n          return (event as NavigationEnd).url.toLowerCase().split('/');\n        }),\n      )\n      .subscribe((segments) => {\n        const appName = getEnv('APP_NAME').toLowerCase();\n        const titleSegments = [appName, ...segments].filter(\n          (s) => !!s && s != '',\n        );\n        this.set(\n          titleCase(this.crumbs([...new Set(titleSegments)]).join(' · ')),\n        );\n      });\n  }\n\n  private crumbs(segments: string[]): string[] {\n    const breadcrumbs: string[] = [];\n    let accumulatedUrl = '';\n    segments.forEach((segment) => {\n      // Check if the segment is a UUID by using regex (adjust as needed)\n      // If it's a UUID, shorten the title to last 7 digits\n      const isUUID =\n        /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(\n          segment,\n        );\n      const title = isUUID ? segment.slice(-7) : titleCase(segment);\n\n      // Reconstruct the URL incrementally for the breadcrumb links\n      accumulatedUrl += `/${segment}`;\n\n      breadcrumbs.push(title);\n    });\n\n    return breadcrumbs;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class UrlService {\n  private prev: string | null = null;\n  private current: string | null = null;\n\n  constructor(private router: Router) {\n    this.router.events.subscribe((event) => {\n      if (event instanceof NavigationStart) {\n        this.prev = this.current;\n        this.current = event.url;\n      }\n    });\n  }\n\n  getPrev(): string | null {\n    return this.prev;\n  }\n\n  getCurrent(): string | null {\n    return this.current;\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { EventsService } from '@chisquare-tech/ngx-polylog';\nimport { io } from 'socket.io-client';\nimport { getEnv, stackTrace } from '../utils';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class WsService {\n  private readonly eventsService = inject(EventsService);\n\n  constructor() {}\n\n  subscribe(\n    event: string,\n    handler: (...messages: any[]) => void,\n    room?: string,\n    namespace = `${getEnv('GROUP_NAME')}-${getEnv('APP_NAME')}`,\n  ) {\n    let uri = namespace\n      ? `${getEnv('WS_BASE_URL')}/${namespace}`\n      : getEnv('WS_BASE_URL');\n\n    const socket = io(uri, {\n      reconnectionDelayMax: 10000,\n      transports: ['websocket'],\n      query: {\n        room,\n      },\n    });\n\n    socket.on('connect', () => {\n      console.log('ws connected');\n      this.eventsService.message(\n        'web.app.socket.connect',\n        {\n          namespace,\n          room,\n          event,\n        },\n        {},\n      );\n    });\n\n    socket.on('connect_error', () => {\n      console.log('ws failed to connect');\n      this.eventsService.message(\n        'web.app.socket.connect_error',\n        {\n          namespace,\n          room,\n          event,\n        },\n        {},\n      );\n    });\n\n    socket.on('disconnect', (reason, details) => {\n      console.log('ws disconnected', reason, details);\n      this.eventsService.message(\n        'web.app.socket.disconnect',\n        {\n          namespace,\n          room,\n          event,\n        },\n        {},\n      );\n    });\n\n    socket.on('error', (error) => {\n      console.log('ws error', error);\n      this.eventsService.message(\n        'apps.common.log.error',\n        {\n          namespace,\n          room,\n          event,\n          trace: stackTrace(),\n        },\n        {},\n      );\n    });\n\n    return socket.on(event, handler);\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class YamlService {\n  toJSON() {}\n\n  toObject() {}\n}\n","import { inject, Injectable } from '@angular/core';\nimport { StoreService } from '.';\nimport { ContextContract, MetaContract } from '../utils/control.util';\nimport { StateService } from './state.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ControlService {\n  private readonly stateService = inject(StateService);\n  private readonly storeService = inject(StoreService);\n\n  private tokenStoreKey = 'x-control-token';\n  private metaStoreKey = 'x-control-meta';\n  private contextStoreKey = 'x-control-context';\n\n  login(\n    token: string,\n    userId: string,\n    clientId: string,\n    workspaceId: string,\n    meta?: MetaContract,\n  ) {\n    this.setToken(token);\n    this.setContext(userId, clientId, workspaceId);\n    meta && this.storeService.set(this.metaStoreKey, JSON.stringify(meta));\n  }\n\n  isLoggedIn(permissions?: string[]) {\n    const token = this.storeService.get(this.tokenStoreKey);\n    return !!token;\n  }\n\n  isLoggedOut(permissions?: string[]) {\n    return !this.isLoggedIn();\n  }\n\n  logout() {\n    this.storeService.remove(this.tokenStoreKey);\n    this.storeService.remove(this.metaStoreKey);\n  }\n\n  switch(\n    token: string,\n    userId: string,\n    clientId: string,\n    workspaceId: string,\n    meta?: MetaContract,\n  ) {\n    this.logout();\n    this.login(token, userId, clientId, workspaceId, meta);\n  }\n\n  setToken(token: string) {\n    this.storeService.set(this.tokenStoreKey, token);\n  }\n\n  setContext(userId: string, clientId: string, workspaceId: string) {\n    this.storeService.set(\n      this.contextStoreKey,\n      JSON.stringify({ userId, clientId, workspaceId }),\n    );\n  }\n\n  getToken() {\n    return this.storeService.get(this.tokenStoreKey);\n  }\n\n  getContext(): ContextContract | null {\n    const context = this.storeService.get(this.contextStoreKey);\n    return context ? JSON.parse(context) : null;\n  }\n\n  getMeta(): MetaContract | null {\n    const meta = this.storeService.get(this.metaStoreKey);\n    return meta ? JSON.parse(meta) : null;\n  }\n\n  getUser() {\n    const meta = this.getMeta();\n    return meta?.user;\n  }\n\n  getRoles() {\n    const meta = this.getMeta();\n    return meta?.roles;\n  }\n\n  getPermissions() {\n    const meta = this.getMeta();\n    return meta?.permissions;\n  }\n\n  belongTo(roles: string[]) {\n    const userRoles = this.getRoles();\n    return roles.some((r) => {\n      return userRoles?.includes(r);\n    });\n  }\n\n  // has(permissions: string[]) {\n  //   const userPermissions = this.getPermissions();\n  //   return permissions.some((p) => {\n  //     return userPermissions.includes(p);\n  //   });\n  // }\n\n  // read as all-of-the-policies-are-true\n  allowAll(permissions: string[]) {\n    const userPermissions = this.getPermissions();\n    return permissions.every((p) => {\n      return this.check(p, userPermissions ?? []);\n    });\n  }\n\n  // read as all-of-the-policies-are-NOT-true\n  denyAll(permissions: string[]) {\n    return !this.allowAll(permissions);\n  }\n\n  // read as any-of-the-policies-is-true\n  allowAny(permissions: string[]) {\n    const userPermissions = this.getPermissions();\n    return permissions.some((p) => {\n      return this.check(p, userPermissions ?? []);\n    });\n  }\n\n  // read as any-of-the-policies-is-NOT-true\n  denyAny(permissions: string[]) {\n    return !this.allowAny(permissions);\n  }\n\n  private async check(needle: string, haystack: string[]): Promise<boolean> {\n    const needles = needle.split('.');\n    if (needles.length < 3) {\n      return false;\n    }\n\n    const [verb, group, service, resource, component] = needles;\n    const options = this.options(\n      verb,\n      group,\n      service,\n      resource,\n      component ?? '',\n    );\n\n    const found = haystack.findIndex((p) => {\n      return options.includes(p);\n    });\n\n    return found !== -1;\n  }\n\n  private options(\n    verb: string,\n    group: string,\n    service: string,\n    resource: string,\n    component: string,\n  ) {\n    const parts = [verb, group, service, resource, component];\n\n    const results = [];\n\n    // Generate all combinations with wildcards\n    for (let i = 0; i < Math.pow(2, parts.length); i++) {\n      let combination = '';\n      for (let j = 0; j < parts.length; j++) {\n        combination += i & (1 << j) ? parts[j] : '*';\n        if (j < parts.length - 1) combination += ':';\n      }\n      results.push(combination);\n    }\n\n    // Add the most generic wildcard entries\n    results.push('*:*:*:*:*', '*');\n\n    return results;\n  }\n}\n","import {\n  AfterViewInit,\n  Directive,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n  inject,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { ApiService } from '../services';\nimport { getEnv, translate, tzHuman, tzTime } from '../utils';\n\n@Directive()\nexport abstract class BaseDirective\n  implements OnInit, AfterViewInit, OnDestroy, OnChanges\n{\n  readonly router = inject(Router);\n  readonly apiService = inject(ApiService);\n\n  $ = new Subject();\n\n  init?: () => void;\n  afterView?: () => void;\n  change?: (changes: SimpleChanges) => void;\n  destroy?: () => void;\n\n  state: any = history.state ?? {};\n\n  ngOnInit(): void {\n    this.init && this.init();\n  }\n\n  ngAfterViewInit(): void {\n    this.afterView && this.afterView();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    this.change && this.change(changes);\n  }\n\n  ngOnDestroy(): void {\n    this.destroy && this.destroy();\n    this.$.next(null);\n    this.$.complete();\n  }\n\n  translate(path: string, data?: any) {\n    return translate(path, data, getEnv('X_PREFERENCE_LANGUAGE'));\n  }\n\n  time(value: string, pretty = true) {\n    return pretty\n      ? tzHuman(new Date(value))\n      : tzTime(value, getEnv('X_PREFERENCE_TIMEZONE'));\n  }\n\n  reload() {\n    let currentUrl = this.router.url;\n    this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\n      this.router.navigate([currentUrl]);\n    });\n  }\n}\n","import {\n  Directive,\n  inject,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport { ControlService } from '../services/control.service';\nimport { ControlValueType, ControlValueTypes } from '../utils/control.util';\nimport { BaseDirective } from './base.directive';\n\n@Directive()\nexport abstract class ControlDirective extends BaseDirective {\n  protected readonly controlService = inject(ControlService);\n  protected readonly templateRef = inject(TemplateRef<any>);\n  protected readonly viewContainerRef = inject(ViewContainerRef);\n\n  protected check!: (permissions: string[]) => boolean;\n  protected elseTemplate?: TemplateRef<any>;\n  protected set value(v: ControlValueTypes) {\n    if (typeof v == 'string') {\n      this._value = [v];\n    }\n\n    if (Array.isArray(v)) {\n      this._value = v;\n    }\n\n    this._value = [];\n  }\n\n  private _value: ControlValueType = [];\n\n  override init = () => {\n    this.display();\n  };\n\n  protected display() {\n    this.viewContainerRef.clear();\n    const permissions = this._value;\n    const allowed = this.check(permissions);\n    if (allowed) {\n      this.viewContainerRef.createEmbeddedView(this.templateRef);\n      return;\n    }\n  }\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ControlValueTypes } from '../utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n  selector: '[xAllowAll]',\n})\nexport class AllowAllDirective extends ControlDirective {\n  protected override check = (permissions: string[]) => {\n    return this.controlService.allowAll(permissions);\n  };\n  protected override elseTemplate = this.xAllowAllElse;\n\n  @Input() set xAllowAll(value: ControlValueTypes) {\n    this.value = value;\n    this.display();\n  }\n\n  @Input() xAllowAllElse?: TemplateRef<any>;\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ControlValueTypes } from '../utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n  selector: '[xAllowAny]',\n})\nexport class AllowAnyDirective extends ControlDirective {\n  protected override check = (permissions: string[]) => {\n    return this.controlService.allowAny(permissions);\n  };\n  protected override elseTemplate = this.xAllowAnyElse;\n\n  @Input() set xAllowAny(value: ControlValueTypes) {\n    this.value = value;\n    this.display();\n  }\n\n  @Input() xAllowAnyElse?: TemplateRef<any>;\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ControlValueTypes } from '../utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n  selector: '[xBelongTo]',\n})\nexport class BelongToDirective extends ControlDirective {\n  protected override check = (permissions: string[]) => {\n    return this.controlService.belongTo(permissions);\n  };\n  protected override elseTemplate = this.xBelongToElse;\n\n  @Input() set xBelongTo(value: ControlValueTypes) {\n    this.value = value;\n    this.display();\n  }\n\n  @Input() xBelongToElse?: TemplateRef<any>;\n}\n","import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  Output,\n  Renderer2,\n} from '@angular/core';\nimport { takeUntil, tap } from 'rxjs';\nimport { RequestService } from '../services/request.service';\nimport { BaseDirective } from './base.directive';\n@Directive({\n  selector: '[xDelete]',\n})\nexport class DeleteDirective extends BaseDirective {\n  private readonly requestService = inject(RequestService);\n  private readonly renderer = inject(Renderer2);\n  private readonly elementRef = inject(ElementRef);\n\n  @Input('xDelete')\n  delete: any[] = [];\n\n  @Output()\n  onDelete = new EventEmitter<any>();\n\n  private onClickHdl?: () => void;\n\n  override init = () => {\n    if (this.delete.length < 1) {\n      throw new Error('Invalid value passed to delete directive');\n    }\n\n    if (!(1 in this.delete)) {\n      this.delete[1] = {};\n    }\n\n    if (!(2 in this.delete)) {\n      this.delete[1] = 'click';\n    }\n\n    const [path, payload, event] = this.delete;\n\n    this.onClickHdl = this.renderer.listen(\n      this.elementRef.nativeElement,\n      event,\n      (e) => {\n        this.requestService\n          .delete(path)\n          .pipe(\n            takeUntil(this.$),\n            tap((r) => {\n              this.onDelete.emit(r);\n            }),\n          )\n          .subscribe();\n      },\n    );\n  };\n\n  override destroy = () => {\n    this.onClickHdl && this.onClickHdl();\n  };\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ControlValueTypes } from '../utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n  selector: '[xDenyAll]',\n})\nexport class DenyAllDirective extends ControlDirective {\n  protected override check = (permissions: string[]) => {\n    return this.controlService.denyAll(permissions);\n  };\n  protected override elseTemplate = this.xDenyAllElse;\n\n  @Input() set xDenyAll(value: ControlValueTypes) {\n    this.value = value;\n    this.display();\n  }\n\n  @Input() xDenyAllElse?: TemplateRef<any>;\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ControlValueTypes } from '../utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n  selector: '[xDenyAny]',\n})\nexport class DenyAnyDirective extends ControlDirective {\n  protected override check = (permissions: string[]) => {\n    return this.controlService.denyAny(permissions);\n  };\n  protected override elseTemplate = this.xDenyAnyElse;\n\n  @Input() set xDenyAny(value: ControlValueTypes) {\n    this.value = value;\n    this.display();\n  }\n\n  @Input() xDenyAnyElse?: TemplateRef<any>;\n}\n","import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  Output,\n  Renderer2,\n} from '@angular/core';\nimport { takeUntil, tap } from 'rxjs';\nimport { RequestService } from '../services/request.service';\nimport { BaseDirective } from './base.directive';\n@Directive({\n  selector: '[xGet]',\n})\nexport class GetDirective extends BaseDirective {\n  private readonly requestService = inject(RequestService);\n  private readonly renderer = inject(Renderer2);\n  private readonly elementRef = inject(ElementRef);\n\n  @Input('xGet')\n  get: any[] = [];\n\n  @Output()\n  onGet = new EventEmitter<any>();\n\n  private onClickHdl?: () => void;\n\n  override init = () => {\n    if (this.get.length < 1) {\n      throw new Error('Invalid value passed to get directive');\n    }\n\n    if (!(1 in this.get)) {\n      this.get[1] = {};\n    }\n\n    if (!(2 in this.get)) {\n      this.get[1] = 'click';\n    }\n\n    const [path, payload, event] = this.get;\n\n    this.onClickHdl = this.renderer.listen(\n      this.elementRef.nativeElement,\n      event,\n      (e) => {\n        this.requestService\n          .get(path)\n          .pipe(\n            takeUntil(this.$),\n            tap((r) => {\n              this.onGet.emit(r);\n            }),\n          )\n          .subscribe();\n      },\n    );\n  };\n\n  override destroy = () => {\n    this.onClickHdl && this.onClickHdl();\n  };\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ControlValueTypes } from '../utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n  selector: '[xIsLoggedIn]',\n})\nexport class IsLoggedInDirective extends ControlDirective {\n  protected override check = (permissions?: string[]) => {\n    return this.controlService.isLoggedIn(permissions);\n  };\n  protected override elseTemplate = this.xIsLoggedInElse;\n\n  @Input() set xIsLoggedIn(value: ControlValueTypes) {\n    this.value = value;\n    this.display();\n  }\n\n  @Input() xIsLoggedInElse?: TemplateRef<any>;\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ControlValueTypes } from '../utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n  selector: '[xIsLoggedOut]',\n})\nexport class IsLoggedOutDirective extends ControlDirective {\n  protected override check = (permissions?: string[]) => {\n    return this.controlService.isLoggedOut(permissions);\n  };\n  protected override elseTemplate = this.xIsLoggedOutElse;\n\n  @Input() set xIsLoggedOut(value: ControlValueTypes) {\n    this.value = value;\n    this.display();\n  }\n\n  @Input() xIsLoggedOutElse?: TemplateRef<any>;\n}\n","import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  Output,\n  Renderer2,\n} from '@angular/core';\nimport { takeUntil, tap } from 'rxjs';\nimport { RequestService } from '../services/request.service';\nimport { BaseDirective } from './base.directive';\n@Directive({\n  selector: '[xPatch]',\n})\nexport class PatchDirective extends BaseDirective {\n  private readonly requestService = inject(RequestService);\n  private readonly renderer = inject(Renderer2);\n  private readonly elementRef = inject(ElementRef);\n\n  @Input('xPatch')\n  patch: any[] = [];\n\n  @Output()\n  onPatch = new EventEmitter<any>();\n\n  private onClickHdl?: () => void;\n\n  override init = () => {\n    if (this.patch.length < 1) {\n      throw new Error('Invalid value passed to patch directive');\n    }\n\n    if (!(1 in this.patch)) {\n      this.patch[1] = {};\n    }\n\n    if (!(2 in this.patch)) {\n      this.patch[1] = 'click';\n    }\n\n    const [path, payload, event] = this.patch;\n\n    this.onClickHdl = this.renderer.listen(\n      this.elementRef.nativeElement,\n      event,\n      (e) => {\n        this.requestService\n          .patch(path)\n          .pipe(\n            takeUntil(this.$),\n            tap((r) => {\n              this.onPatch.emit(r);\n            }),\n          )\n          .subscribe();\n      },\n    );\n  };\n\n  override destroy = () => {\n    this.onClickHdl && this.onClickHdl();\n  };\n}\n","import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  Output,\n  Renderer2,\n} from '@angular/core';\nimport { takeUntil, tap } from 'rxjs';\nimport { RequestService } from '../services/request.service';\nimport { BaseDirective } from './base.directive';\n@Directive({\n  selector: '[xPost]',\n})\nexport class PostDirective extends BaseDirective {\n  private readonly requestService = inject(RequestService);\n  private readonly renderer = inject(Renderer2);\n  private readonly elementRef = inject(ElementRef);\n\n  @Input('xPost')\n  post: any[] = [];\n\n  @Output()\n  onPost = new EventEmitter<any>();\n\n  private onClickHdl?: () => void;\n\n  override init = () => {\n    if (this.post.length < 1) {\n      throw new Error('Invalid value passed to post directive');\n    }\n\n    if (!(1 in this.post)) {\n      this.post[1] = {};\n    }\n\n    if (!(2 in this.post)) {\n      this.post[1] = 'click';\n    }\n\n    const [path, payload, event] = this.post;\n\n    this.onClickHdl = this.renderer.listen(\n      this.elementRef.nativeElement,\n      event,\n      (e) => {\n        this.requestService\n          .post(path)\n          .pipe(\n            takeUntil(this.$),\n            tap((r) => {\n              this.onPost.emit(r);\n            }),\n          )\n          .subscribe();\n      },\n    );\n  };\n\n  override destroy = () => {\n    this.onClickHdl && this.onClickHdl();\n  };\n}\n","import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  Output,\n  Renderer2,\n} from '@angular/core';\nimport { takeUntil, tap } from 'rxjs';\nimport { RequestService } from '../services/request.service';\nimport { BaseDirective } from './base.directive';\n@Directive({\n  selector: '[xPut]',\n})\nexport class PutDirective extends BaseDirective {\n  private readonly requestService = inject(RequestService);\n  private readonly renderer = inject(Renderer2);\n  private readonly elementRef = inject(ElementRef);\n\n  @Input('xPut')\n  put: any[] = [];\n\n  @Output()\n  onPut = new EventEmitter<any>();\n\n  private onClickHdl?: () => void;\n\n  override init = () => {\n    if (this.put.length < 1) {\n      throw new Error('Invalid value passed to put directive');\n    }\n\n    if (!(1 in this.put)) {\n      this.put[1] = {};\n    }\n\n    if (!(2 in this.put)) {\n      this.put[1] = 'click';\n    }\n\n    const [path, payload, event] = this.put;\n\n    this.onClickHdl = this.renderer.listen(\n      this.elementRef.nativeElement,\n      event,\n      (e) => {\n        this.requestService\n          .put(path)\n          .pipe(\n            takeUntil(this.$),\n            tap((r) => {\n              this.onPut.emit(r);\n            }),\n          )\n          .subscribe();\n      },\n    );\n  };\n\n  override destroy = () => {\n    this.onClickHdl && this.onClickHdl();\n  };\n}\n","import {\n  Directive,\n  ElementRef,\n  HostListener,\n  Input,\n  Renderer2,\n  inject,\n} from '@angular/core';\nimport { isArray } from '../utils';\nimport { BaseDirective } from './base.directive';\n\n/**\n * Add this globally \n * .x-router-link::after {\n    font-family: 'FontAwesome';\n    content: '\\f08e';\n    font-size: 0.75em;\n    line-height: 0.08333em;\n    vertical-align: 0.125em;\n  }\n */\n\n@Directive({\n  selector: '[x-router-link]',\n})\nexport class RouterLinkDirective extends BaseDirective {\n  private readonly renderer = inject(Renderer2);\n  private readonly elementRef = inject(ElementRef);\n\n  @Input('x-router-link') routerLink?:\n    | string\n    | [(...args: any[]) => void, any[]];\n\n  @Input('x-router-link-active') routerLinkActive?: string;\n\n  @HostListener('click', ['$event'])\n  handleClick(event: any): void {\n    event?.preventDefault();\n\n    if (this.routerLink && typeof this.routerLink === 'string') {\n      if (this.routerLink && this.isExternal(this.routerLink)) {\n        window.open(this.routerLink, '_blank');\n        return;\n      }\n\n      this.router.navigate([this.routerLink]);\n    }\n\n    if (this.routerLink && isArray(this.routerLink)) {\n      const [fn, args] = this.routerLink as any[];\n      fn && fn(...args);\n    }\n  }\n\n  override init = () => {\n    if (this.routerLink && typeof this.routerLink === 'string') {\n      if (this.routerLinkActive && this.isActive(this.routerLink)) {\n        this.renderer.addClass(\n          this.elementRef.nativeElement,\n          this.routerLinkActive,\n        );\n      }\n\n      if (this.isExternal(this.routerLink)) {\n        this.renderer.addClass(this.elementRef.nativeElement, 'x-router-link');\n        this.renderer.setProperty(\n          this.elementRef.nativeElement,\n          'target',\n          '_blank',\n        );\n      }\n\n      this.renderer.setProperty(\n        this.elementRef.nativeElement,\n        'href',\n        this.routerLink,\n      );\n    }\n  };\n\n  private isExternal(url: string) {\n    return url?.startsWith('http');\n  }\n\n  private isActive(url: string) {\n    return this.router.isActive(url, {\n      paths: 'subset',\n      queryParams: 'subset',\n      fragment: 'ignored',\n      matrixParams: 'ignored',\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { ActDirective } from './act.directive';\nimport { AllowAllDirective } from './allow-all.directive';\nimport { AllowAnyDirective } from './allow-any.directive';\nimport { BelongToDirective } from './belong-to.directive';\nimport { DeleteDirective } from './delete.directive';\nimport { DenyAllDirective } from './deny-all.directive';\nimport { DenyAnyDirective } from './deny-any.directive';\nimport { GetDirective } from './get.directive';\nimport { IsLoggedInDirective } from './is-logged-in.directive';\nimport { IsLoggedOutDirective } from './is-logged-out.directive';\nimport { PatchDirective } from './patch.directive';\nimport { PostDirective } from './post.directive';\nimport { PutDirective } from './put.directive';\nimport { RouterLinkDirective } from './router-link.directive';\n\nexport const DIRECTIVES = [\n  ActDirective,\n  AllowAllDirective,\n  AllowAnyDirective,\n  BelongToDirective,\n  DeleteDirective,\n  DenyAllDirective,\n  DenyAnyDirective,\n  GetDirective,\n  IsLoggedInDirective,\n  IsLoggedOutDirective,\n  PatchDirective,\n  PostDirective,\n  PutDirective,\n  RouterLinkDirective,\n];\n@NgModule({\n  declarations: DIRECTIVES,\n  exports: DIRECTIVES,\n})\nexport class DirectivesModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'xAppend',\n})\nexport class AppendPipe implements PipeTransform {\n  transform(initialValue: any, additionalValue: any): any {\n    return {\n      ...initialValue,\n      ...additionalValue,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getEnv } from '../utils';\n\n@Pipe({\n  name: 'xEnv',\n})\nexport class EnvPipe implements PipeTransform {\n  transform(key: string, defaultValue?: string): any {\n    return getEnv(key, defaultValue);\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { RequestService } from '../services';\n\n@Pipe({\n  name: 'xGet',\n})\nexport class GetPipe implements PipeTransform {\n  private readonly requestService = inject(RequestService);\n\n  transform(value: any[]): Observable<any> {\n    if (value.length < 1) {\n      throw new Error('Invalid value passed to GetPipe');\n    }\n\n    const [path, param, ...filters] = value;\n\n    return this.requestService.get(path, param).pipe(\n      map((r) => {\n        return filters\n          ? filters.reduce((prev, curr) => {\n              return curr(prev);\n            }, r)\n          : r;\n      }),\n    );\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { toMajor } from '../utils';\n\n@Pipe({\n  name: 'xMajor',\n})\nexport class MajorPipe implements PipeTransform {\n  transform(key: number): string {\n    return toMajor(key);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getEnv } from '../utils';\n\n@Pipe({\n  name: 'xMedia',\n})\nexport class MediaPipe implements PipeTransform {\n  constructor() {}\n\n  transform(value: string): string {\n    return `${getEnv('MEDIA_BASE_URL')}/${value}`;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { toMinor } from '../utils';\n\n@Pipe({\n  name: 'xMinor',\n})\nexport class MinorPipe implements PipeTransform {\n  transform(key: string): number {\n    return toMinor(key);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'xParse',\n})\nexport class ParsePipe implements PipeTransform {\n  transform(value: string): any {\n    let output = null;\n    try {\n      output = JSON.parse(value);\n    } catch (error) {\n      console.error(error);\n    }\n\n    return output;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'xPrepend',\n})\nexport class PrependPipe implements PipeTransform {\n  transform(initialValue: any, additionalValue: any): any {\n    return {\n      ...additionalValue,\n      ...initialValue,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { titleCase } from '../utils';\n\n@Pipe({\n  name: 'xPretty',\n})\nexport class PrettyPipe implements PipeTransform {\n  transform(value: string): any {\n    value = value.replace(/([A-Z])/g, ' $1');\n    return titleCase(value?.replace(/_|-/g, ' '));\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'xReplace',\n})\nexport class ReplacePipe implements PipeTransform {\n  transform(value: string, search: string, replace: string): any {\n    return typeof value == 'string' ? value.replace(search, replace) : value;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter, Subscription } from 'rxjs';\n\n@Pipe({\n  name: 'xRootRoute',\n  pure: false,\n})\nexport class RootRoutePipe implements PipeTransform {\n  private route = ['/'];\n  private sub: Subscription;\n\n  constructor(private readonly router: Router) {\n    this.sub = this.router.events\n      .pipe(filter((event) => event instanceof NavigationEnd))\n      .subscribe(() => {\n        const url = this.router.url || '/';\n        const segments = url.split('/').filter(Boolean);\n        this.route = segments.length <= 1 ? ['/'] : ['/', segments[0]];\n      });\n  }\n\n  transform(defaultRoute = '/'): string[] {\n    return this.route;\n  }\n\n  ngOnDestroy(): void {\n    this.sub?.unsubscribe();\n  }\n}\n","import { Inject, Pipe, PipeTransform } from '@angular/core';\nimport {\n  ROUTE_LIST,\n  getValueByDottedString,\n  isFunction,\n  mergeRouteList,\n} from '../utils';\n\n@Pipe({\n  name: 'xRoute',\n})\nexport class RoutePipe implements PipeTransform {\n  private readonly routes = mergeRouteList(this.routeList);\n\n  constructor(@Inject(ROUTE_LIST) private readonly routeList: any) {}\n\n  transform(value: string, ...args: any[]): string {\n    const val = getValueByDottedString(value, this.routes);\n    return isFunction(val) ? val(...args) : val;\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n  name: 'xSafeHtml',\n})\nexport class SafeHtmlPipe implements PipeTransform {\n  private readonly domSanitizer = inject(DomSanitizer);\n\n  transform(value: string) {\n    return this.domSanitizer.bypassSecurityTrustHtml(value);\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { StateService } from '../services/state.service';\n\n@Pipe({\n  name: 'xSelect',\n})\nexport class SelectPipe implements PipeTransform {\n  protected readonly stateService = inject(StateService);\n\n  transform(value: string): Observable<any> {\n    return this.stateService.select(value);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'xStartsWith',\n})\nexport class StartsWithPipe implements PipeTransform {\n  transform(value: any, searchStr: string): boolean {\n    if (!value || typeof value !== 'string') {\n      return false;\n    }\n    return value?.startsWith(searchStr);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getEnv, tzHuman, tzTime } from '../utils';\n\n@Pipe({\n  name: 'xTime',\n})\nexport class TimePipe implements PipeTransform {\n  transform(value: string, pretty = true): any {\n    return pretty\n      ? tzHuman(new Date(value))\n      : tzTime(value, getEnv('X_PREFERENCE_TIMEZONE'));\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getEnv, translate } from '../utils';\n\n@Pipe({\n  name: 'xTranslate',\n})\nexport class TranslatePipe implements PipeTransform {\n  transform(path: string, data?: any): any {\n    return translate(path, data, getEnv('X_PREFERENCE_LANGUAGE'));\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * USAGE:\n * value | truncate: numberOfWords: hasDots\n *\n * EXAMPLE:\n * ipsul lorel kepto | truncate: 2 : true\n */\n@Pipe({\n  name: 'xTruncate',\n})\nexport class TruncatePipe implements PipeTransform {\n  transform(\n    value: string,\n    numberOfWords: number = 1,\n    hasDots: boolean = false,\n  ): any {\n    if (!value) {\n      return value;\n    }\n    const values = value.split(' ');\n    const newValue = values\n      .filter((v, i) => i < numberOfWords)\n      .map((value) => value.trim())\n      .join(' ');\n    return hasDots\n      ? newValue + (values.length > numberOfWords ? '...' : '')\n      : newValue;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { AppendPipe } from './append.pipe';\nimport { EnvPipe } from './env.pipe';\nimport { GetPipe } from './get.pipe';\nimport { MajorPipe } from './major.pipe';\nimport { MediaPipe } from './media.pipe';\nimport { MinorPipe } from './minor.pipe';\nimport { ParsePipe } from './parse.pipe';\nimport { PrependPipe } from './prepend.pipe';\nimport { PrettyPipe } from './pretty.pipe';\nimport { ReplacePipe } from './replace.pipe';\nimport { RootRoutePipe } from './root-route.pipe';\nimport { RoutePipe } from './route.pipe';\nimport { SafeHtmlPipe } from './safe-html.pipe';\nimport { SelectPipe } from './select.pipe';\nimport { StartsWithPipe } from './starts-with.pipe';\nimport { TimePipe } from './time.pipe';\nimport { TranslatePipe } from './translate.pipe';\nimport { TruncatePipe } from './truncate.pipe';\n\nexport const PIPES = [\n  MediaPipe,\n  GetPipe,\n  ParsePipe,\n  PrettyPipe,\n  ReplacePipe,\n  RootRoutePipe,\n  RoutePipe,\n  SafeHtmlPipe,\n  SelectPipe,\n  StartsWithPipe,\n  TruncatePipe,\n  TranslatePipe,\n  TimePipe,\n  EnvPipe,\n  PrependPipe,\n  AppendPipe,\n  MajorPipe,\n  MinorPipe,\n];\n\n@NgModule({\n  declarations: [...PIPES],\n  exports: [...PIPES],\n  imports: [],\n})\nexport class PipesModule {}\n","import {\n  provideHttpClient,\n  withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { DirectivesModule } from './directives/directives.module';\nimport { PipesModule } from './pipes/pipes.module';\n\n@NgModule({\n  providers: [provideHttpClient(withInterceptorsFromDi())],\n  exports: [\n    BrowserModule,\n    FormsModule,\n    ReactiveFormsModule,\n    BrowserAnimationsModule,\n\n    PipesModule,\n    DirectivesModule,\n  ],\n})\nexport class CoreModule {}\n","import { CanActivateFn, Router } from '@angular/router';\nimport { ControlService } from '../services';\nimport { mergeRouteList, outject, ROUTE_LIST } from '../utils';\n\nexport const allowAllGuard: (permissions: string[]) => CanActivateFn =\n  (permissions: string[]) => (route, state) => {\n    const controlService = outject(ControlService);\n    const router = outject(Router);\n    const routeList = mergeRouteList(outject(ROUTE_LIST));\n    const allowed = controlService.allowAll(permissions);\n    if (!allowed) {\n      router.navigate(routeList.root, { state: { url: state.url } });\n    }\n    return allowed;\n  };\n","import { CanActivateFn, Router } from '@angular/router';\nimport { ControlService } from '../services';\nimport { mergeRouteList, outject, ROUTE_LIST } from '../utils';\n\nexport const allowAnyGuard: (permissions: string[]) => CanActivateFn =\n  (permissions: string[]) => (route, state) => {\n    const controlService = outject(ControlService);\n    const router = outject(Router);\n    const routeList = mergeRouteList(outject(ROUTE_LIST));\n    const allowed = controlService.allowAny(permissions);\n    if (!allowed) {\n      router.navigate(routeList.root, { state: { url: state.url } });\n    }\n    return allowed;\n  };\n","import { inject } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\nimport { ControlService } from '../services';\nimport { notify } from '../utils';\n\nexport const belongToGuard: (roles: string[]) => CanActivateFn =\n  (roles: string[]) => (route, state) => {\n    const controlService = inject(ControlService);\n    const allowed = controlService.belongTo(roles);\n    if (!allowed) {\n      notify(\n        \"You don't have permission to access this resource\",\n        'x.guards.belongs-to',\n        'warning',\n      );\n    }\n    return allowed;\n  };\n","import { CanActivateFn, Router } from '@angular/router';\nimport { ControlService } from '../services';\nimport { mergeRouteList, outject, ROUTE_LIST } from '../utils';\n\nexport const denyAllGuard: (permissions: string[]) => CanActivateFn =\n  (permissions: string[]) => (route, state) => {\n    const controlService = outject(ControlService);\n    const router = outject(Router);\n    const routeList = mergeRouteList(outject(ROUTE_LIST));\n    const denyed = controlService.denyAll(permissions);\n    if (!denyed) {\n      router.navigate(routeList.root, { state: { url: state.url } });\n    }\n    return denyed;\n  };\n","import { CanActivateFn, Router } from '@angular/router';\nimport { ControlService } from '../services';\nimport { mergeRouteList, outject, ROUTE_LIST } from '../utils';\n\nexport const denyAnyGuard: (permissions: string[]) => CanActivateFn =\n  (permissions: string[]) => (route, state) => {\n    const controlService = outject(ControlService);\n    const router = outject(Router);\n    const routeList = mergeRouteList(outject(ROUTE_LIST));\n    const allowed = controlService.denyAny(permissions);\n    if (!allowed) {\n      router.navigate(routeList.root, { state: { url: state.url } });\n    }\n    return allowed;\n  };\n","import { CanActivateFn, Router } from '@angular/router';\nimport { ControlService } from '../services';\nimport { ROUTE_LIST, mergeRouteList, notify, outject } from '../utils';\n\nexport const isLoggedInGuard: CanActivateFn = (route, state) => {\n  const controlService = outject(ControlService);\n  const router = outject(Router);\n  const routeList = mergeRouteList(outject(ROUTE_LIST));\n  const allowed = controlService.isLoggedIn();\n  if (!allowed) {\n    router.navigate(routeList.start, { state: { url: state.url } });\n    notify('Login to continue', 'x.guards.is-logged-in', 'warning');\n  }\n  return allowed;\n};\n","import { CanActivateFn, Router } from '@angular/router';\nimport { ControlService } from '../services';\nimport { mergeRouteList, outject, ROUTE_LIST } from '../utils';\n\nexport const isLoggedOutGuard: CanActivateFn = (route, state) => {\n  const controlService = outject(ControlService);\n  const router = outject(Router);\n  const routeList = mergeRouteList(outject(ROUTE_LIST));\n  const allowed = controlService.isLoggedOut();\n  if (!allowed) {\n    router.navigate(routeList.root, { state: { url: state.url } });\n  }\n  return allowed;\n};\n","import {\n  HttpEvent,\n  HttpHandler,\n  HttpInterceptor,\n  HttpRequest,\n} from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ControlService } from '../services/control.service';\nimport { getEnv } from '../utils';\n\n@Injectable()\nexport class JwtInterceptor implements HttpInterceptor {\n  private readonly controlService = inject(ControlService);\n\n  headersMap: any = {\n    'x-ntx-theme': 'X_PREFERENCE_THEME',\n    'x-ntx-language': 'X_PREFERENCE_LANGUAGE',\n    'x-ntx-timezone': 'X_PREFERENCE_TIMEZONE',\n    'x-ntx-country': 'X_PREFERENCE_COUNTRY',\n    'x-ntx-currency': 'X_PREFERENCE_CURRENCY',\n    'x-ntx-period': 'X_PREFERENCE_PERIOD',\n  };\n\n  intercept(\n    request: HttpRequest<unknown>,\n    next: HttpHandler,\n  ): Observable<HttpEvent<unknown>> {\n    const token = this.controlService.getToken();\n\n    let existingHeader = request.headers;\n\n    for (const key in this.headersMap) {\n      if (Object.prototype.hasOwnProperty.call(this.headersMap, key)) {\n        const value = getEnv(this.headersMap[key]);\n        if (value) {\n          existingHeader = existingHeader.set(key, value);\n        }\n      }\n    }\n\n    if (token) {\n      existingHeader = existingHeader.set('authorization', `bearer ${token}`);\n    }\n\n    const clone = request.clone({ headers: existingHeader });\n\n    return next.handle(clone);\n  }\n}\n","import {\n  HttpHandler,\n  HttpInterceptor,\n  HttpRequest,\n} from '@angular/common/http';\nimport { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nexport const PROGRESS_SERVICE_TOKEN = new InjectionToken<ProgressContract>(\n  'x.core.progress-service',\n);\n\nexport interface ProgressContract {\n  show(): void;\n  hide(): void;\n  update(value: number): void;\n  status$(): Observable<boolean>;\n  progress$(): Observable<number | null>;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NotifInterceptor implements HttpInterceptor {\n  constructor(\n    @Inject(PROGRESS_SERVICE_TOKEN) private progressService: ProgressContract,\n  ) {}\n\n  intercept(req: HttpRequest<any>, next: HttpHandler) {\n    this.progressService.show();\n    return next.handle(req).pipe(\n      finalize(() => {\n        this.progressService.hide();\n      }),\n    );\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { DirectivesModule } from './directives';\nimport { PipesModule } from './pipes/pipes.module';\n\n@NgModule({\n  exports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    RouterModule,\n\n    PipesModule,\n    DirectivesModule,\n  ],\n})\nexport class SharedModule {}\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","shareReplay","filter"],"mappings":"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"}