{"version":3,"file":"onivoro-angular-common.mjs","sources":["../../../projects/common/src/lib/classes/abstract-base-form.component.ts","../../../projects/common/src/lib/classes/abstract-data-entity-service.class.ts","../../../projects/common/src/lib/classes/abstract-entity-service.class.ts","../../../projects/common/src/lib/classes/abstract-http-entity-service.class.ts","../../../projects/common/src/lib/classes/abstract-readonly-http-entity-service.class.ts","../../../projects/common/src/lib/classes/abstract-http-paged-entity-service.class.ts","../../../projects/common/src/lib/classes/abstract-paged-entity-service.class.ts","../../../projects/common/src/lib/classes/in-memory-file-service.class.ts","../../../projects/common/src/lib/classes/redirect-service.class.ts","../../../projects/common/src/lib/components/common/common.service.ts","../../../projects/common/src/lib/components/common/common.component.ts","../../../projects/common/src/lib/constants/colors.constant.ts","../../../projects/common/src/lib/constants/embedded-app-component-template.constant.ts","../../../projects/common/src/lib/constants/states.constant.ts","../../../projects/common/src/lib/directives/typing.directive.ts","../../../projects/common/src/lib/functions/set-then-negate.function.ts","../../../projects/common/src/lib/functions/false-then-true.function.ts","../../../projects/common/src/lib/functions/stylize.function.ts","../../../projects/common/src/lib/functions/kebab-case.function.ts","../../../projects/common/src/lib/functions/init-embedded-component.function.ts","../../../projects/common/src/lib/functions/stylize-with-dataset.function.ts","../../../projects/common/src/lib/functions/init-embedded-component-with-dataset.function.ts","../../../projects/common/src/lib/functions/inject-script.function.ts","../../../projects/common/src/lib/functions/set-css-property.function.ts","../../../projects/common/src/lib/functions/set-css-variable.function.ts","../../../projects/common/src/lib/functions/true-then-false.function.ts","../../../projects/common/src/lib/pipes/calendar-date.pipe.ts","../../../projects/common/src/lib/pipes/money.pipe.ts","../../../projects/common/src/lib/pipes/month-day-year-time.pipe.ts","../../../projects/common/src/lib/pipes/month-day-year.pipe.ts","../../../projects/common/src/lib/pipes/trust.pipe.ts","../../../projects/common/src/lib/services/event-bridge.service.ts","../../../projects/common/src/onivoro-angular-common.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormGroup, FormControl, Validators, ValidatorFn, AbstractControl } from '@angular/forms';\nimport { BehaviorSubject, Observable, Subscription, distinctUntilChanged, map, share, tap } from 'rxjs';\nimport { TKeysOf } from '../types/keys-of.type';\n\n@Component({\n  selector: 'ovo-abstract-base-form',\n  template: '',\n})\nexport abstract class AbstractBaseFormComponent<TFormValue extends Record<string, any>, TExternalValue> implements OnInit, OnDestroy, OnChanges {\n  readonly requiredValidator = { validators: [Validators.required] };\n  form!: FormGroup;\n  protected _form!: FormGroup;\n  valueChanges$$ = new BehaviorSubject<TExternalValue>({} as TExternalValue);\n  valueChanges$ = this.valueChanges$$.asObservable().pipe(share());\n  statusChanges$$ = new BehaviorSubject<boolean>(false);\n  statusChanges$ = this.statusChanges$$.asObservable().pipe(share());\n  private readonly subscriptions: Subscription[] = [];\n  readonly input$$ = new BehaviorSubject<TExternalValue>({} as TExternalValue);\n  private readonly input$ = this.input$$.asObservable().pipe(\n    tap((_) => {\n      if (this.debug) {\n        this.outputDebug('input$ => ', _);\n      }\n    }),\n    tap(() => this._form.markAllAsTouched()),\n    share(),\n  );\n  @Input() debug!: boolean;\n  @Input() input!: TExternalValue;\n  @Output() valueChange = new EventEmitter<TExternalValue>();\n  @Output() statusChange = new EventEmitter<boolean>();\n  initTime!: number;\n  elapsedTime!: number;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const updatedInput = changes['input'];\n    if (updatedInput) {\n      this.input$$.next(updatedInput.currentValue);\n    }\n  }\n\n  ngOnDestroy(): void {\n\n    if (this.debug) {\n      this.outputDebug('unsubscribing from subscriptions')\n    }\n\n    if (this.subscriptions.length) {\n      this.subscriptions.forEach(sub => {\n        if (sub) {\n          try {\n            sub.unsubscribe();\n          } catch (error: any) {\n            if (this.debug) {\n              this.outputDebug('error while unsubscribing from subscription', error)\n            }\n          }\n        }\n      });\n    }\n  }\n\n  ngOnInit(): void {\n    if (this.debug) {\n      this.outputDebug('building form')\n    }\n    this.initTime = Date.now();\n    this._form = this._buildForm();\n\n    if (this.debug) {\n      this.outputDebug('initially provided form controls => ', Object.keys(this._form?.controls || {}).join(', '));\n    }\n\n    if (this.debug) {\n      this.outputDebug('registering subscriptions');\n    }\n\n    this.subscriptions.push(\n\n      this.input$.pipe(\n        tap(value => {\n          const formValue = this._toFormValue(value);\n\n          if (this.debug) {\n            this.outputDebug(value, ' => transformed to form value => ', formValue)\n          }\n\n          this._configureForm(formValue);\n\n          if (this.debug) {\n            this.outputDebug('after configuring form controls => ', Object.keys(this._form?.controls || {}).join(', '));\n          }\n\n          const safeFormValue = this.removeKeysFromFormValueIfNoControlPresent(formValue);\n\n          this._form.setValue(safeFormValue);\n          setTimeout(() => {\n\n            this._form.updateValueAndValidity({ onlySelf: true, emitEvent: true });\n\n            if (!this.form) {\n              if (this.debug) {\n                this.elapsedTime = Date.now() - this.initTime;\n                this.outputDebug(`making private form accessible to the view; ${this.elapsedTime/1000} seconds`)\n              }\n              this.form = this._form;\n            }\n          }, 0);\n        })\n      ).subscribe(),\n\n      this._form.valueChanges.pipe(\n        tap((formValue: TFormValue) => {\n          if (this.debug) {\n            this.outputDebug('value change => ', formValue);\n          }\n        }),\n        distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)),\n        tap(value => this.showErrors(value)),\n        tap(formValue => {\n          if (this.debug) {\n            this.outputDebug('DISTINCT value change => ', formValue);\n            this.outputDebug('configuring form');\n          }\n\n          this._configureForm(formValue);\n\n          const externalValue = this._fromFormValue(formValue);\n\n          if (this.debug) {\n            this.outputDebug(formValue, ' => transformed to external value => ', externalValue);\n          }\n\n          this.valueChange.emit(externalValue);\n          this.valueChanges$$.next(externalValue);\n        }),\n      ).subscribe(),\n\n      this._form.statusChanges.pipe(\n        map(status => status === 'VALID'),\n        distinctUntilChanged(),\n        tap(status => {\n          if (this.debug) {\n            this.outputDebug('form status change => ', status)\n          }\n        }),\n        tap(status => this.statusChanges$$.next(status)),\n        tap(status => this.statusChange.emit(status))\n      ).subscribe(),\n\n      ...this._getFieldLevelValueSubscriptions()\n    );\n  }\n\n  protected requiredIf(predicate: () => boolean): ValidatorFn {\n    const validator: ValidatorFn = (control: AbstractControl) => {\n      if (predicate() && !control.value) {\n        return { required: true };\n      }\n      return null;\n    }\n\n    return validator;\n  };\n\n  get value(): TFormValue {\n    return this._form?.value || {};\n  }\n\n  showErrors(input: TFormValue) {\n    const errors: any = {};\n    Object.entries(this._form.controls).forEach(([name, control]) => {\n      // control.setValue((input || {})[name]);\n      control.markAsDirty();\n      control.markAsTouched();\n      control.updateValueAndValidity();\n      errors[name] = control.errors;\n    });\n    if(this.debug) {\n      this.outputDebug(errors);\n    }\n\n    this._form.markAllAsTouched()\n    // this._form.updateValueAndValidity()\n  }\n\n  abstract _getClassName(): string;\n  abstract _buildForm(): FormGroup<{ [key in keyof TFormValue]: FormControl }>;\n  abstract _configureForm(formValue: TFormValue): void;\n  abstract _toFormValue(externalValue: TExternalValue): TFormValue;\n  abstract _fromFormValue(formValue: TFormValue): TExternalValue;\n  abstract _getFieldLevelValueSubscriptions(): Subscription[];\n\n  protected outputDebug(...args: any[]) {\n    console.warn(this._getClassName(), ...args);\n  }\n\n  protected valueChangesFor(controlName: keyof TFormValue): Observable<any> {\n    try {\n      return (this._form.controls as any)[controlName].valueChanges;\n    } catch (error: any) {\n      this.outputDebug('#valueChangesFor => error locating control', controlName);\n      return new Observable();\n    }\n  }\n\n  private removeKeysFromFormValueIfNoControlPresent<TFormValue extends Record<string, any>>(formValue: TFormValue) {\n    const controlKeys = (Object.keys(this._form.controls));\n\n    const returnValue: TFormValue = {} as any;\n\n    controlKeys.forEach(key => {\n      if (this.debug) {\n        if (key in formValue) {\n          this.outputDebug('removeKeysFromFormValueIfNoControlPresent form value present', key, formValue[key]);\n        } else {\n          this.outputDebug('removeKeysFromFormValueIfNoControlPresent form value missing', key);\n        }\n      }\n\n      (returnValue as any)[key] = formValue[key] || null;\n    });\n\n    return returnValue;\n  }\n\n  protected configureFields(include: boolean, fields: Array<keyof TFormValue>, controls?: Partial<TKeysOf<TFormValue, FormControl>>, skipEmit = false) {\n    return this._configureFields(include, fields, controls, skipEmit, false);\n  }\n\n  protected configureFieldsDryRun(include: boolean, fields: Array<keyof TFormValue>, controls?: Partial<TKeysOf<TFormValue, FormControl>>, skipEmit = false) {\n    return this._configureFields(include, fields, controls, skipEmit, true);\n  }\n\n  private _configureFields(include: boolean, fields: Array<keyof TFormValue>, controls?: Partial<TKeysOf<TFormValue, FormControl>>, skipEmit = false, dryRun = false) {\n    const length = fields.length;\n    const add: string[] = [];\n    const remove: string[] = [];\n    let requiresChanges = false;\n\n    if (this.debug && !dryRun) {\n      this.outputDebug(`configureFields invoked with include:${include} and fields:`, fields);\n    }\n\n    fields.forEach((field: any, i: number) => {\n      const emitEvent = !skipEmit && (length === (i + 1));\n\n      if (include) {\n        if (!this._form.controls[field]) {\n          if (this.debug && !dryRun) {\n            this.outputDebug('configureField adding control:', { field, emitEvent });\n          }\n\n          if (!dryRun) {\n            this._form.addControl(field, controls ? (controls[field] || new FormControl()) : new FormControl(), { emitEvent });\n          }\n\n          add.push(field);\n          requiresChanges = true;\n        }\n      } else {\n        if (this._form.controls[field]) {\n          if (this.debug && !dryRun) {\n            this.outputDebug('configureField removing control:', { field, emitEvent });\n          }\n\n          if (!dryRun) {\n            this._form.removeControl(field, { emitEvent });\n          }\n\n          remove.push(field);\n          requiresChanges = true;\n        }\n      }\n    });\n\n    return { add, remove, requiresChanges };\n  }\n\n  protected subscribe($: Observable<any>) {\n    this.subscriptions.push($.subscribe());\n  }\n\n  protected keysOf(controls: TKeysOf<Partial<TFormValue>, FormControl>, filterFn?: (key: keyof Partial<TFormValue>) => boolean) {\n    const keys = Object.keys(controls);\n\n    return filterFn ?\n      keys.filter(key => filterFn(key)) as Array<keyof Partial<TFormValue>> :\n      keys;\n  }\n}\n","import { BehaviorSubject, map, shareReplay } from 'rxjs';\n\nconst negate = (_: any) => !_;\n\nexport abstract class AbstractDataEntityService<TEntity> {\n  all$$ = new BehaviorSubject<TEntity[]>([]);\n  all$ = this.all$$.asObservable().pipe(shareReplay());\n  loading$$ = new BehaviorSubject<boolean>(false);\n  loading$ = this.loading$$.asObservable().pipe(shareReplay());\n  notLoading$ = this.loading$.pipe(map(negate));\n\n  protected abstract loadAllData(): Promise<TEntity[]>;\n\n  async loadAll() {\n    if (!this.all$$.value?.length) {\n      this.loading$$.next(true);\n    }\n\n    const all = await this.loadAllData();\n\n    this.all$$.next(all);\n    this.loading$$.next(false);\n  }\n}\n","import { BehaviorSubject, map, shareReplay } from 'rxjs';\n\nexport abstract class AbstractEntityService<TEntity> {\n    data$$ = new BehaviorSubject<TEntity[]>([]);\n    data$ = this.data$$.asObservable().pipe(shareReplay());\n    count$ = this.data$.pipe(map(data => data?.length || 0));\n    some$ = this.count$.pipe(map(count => count > 0));\n    none$ = this.some$.pipe(map(present => !present));\n    loading$$ = new BehaviorSubject<boolean>(false);\n    loading$ = this.loading$$.asObservable().pipe(shareReplay());\n    notLoading$ = this.loading$.pipe(map(loading => !loading));\n\n    abstract _index(): Promise<TEntity[]>;\n    abstract _get(...params: any[]): Promise<TEntity>;\n    abstract _post(value: TEntity): Promise<void>;\n    abstract _put(value: TEntity, ...params: any[]): Promise<void>;\n    abstract _delete(...params: any[]): Promise<void>;\n\n    async index(): Promise<TEntity[]> {\n        return await this.load();\n    }\n\n    async get(...params: []) {\n        return await this._get(...params);\n    }\n\n    async post(value: TEntity) {\n        await this._post(value);\n\n        return await this.reload();\n    }\n\n    async put(value: TEntity, ...params: any[]) {\n        await this._put(value, ...params);\n\n        return await this.reload();\n    }\n\n    async delete(...params: any[]) {\n        await this._delete(...params);\n\n        return await this.reload();\n    }\n\n    async load(): Promise<TEntity[]> {\n        if (!this.data$$.value?.length) {\n            await this.reload();\n        }\n\n        return this.data$$.value;\n    }\n\n    async reload(): Promise<TEntity[]> {\n        this.loading$$.next(true);\n\n        try {\n            this.data$$.next(await this._index());\n            this.loading$$.next(false);\n        } catch (error: any) {\n            console.warn('error loading data', error);\n            this.loading$$.next(false);\n            throw error;\n        }\n\n        return this.data$$.value;\n    }\n}\n","import { BehaviorSubject, map, shareReplay } from 'rxjs';\n\nexport abstract class AbstractHttpEntityService<TEntity> {\n    data$$ = new BehaviorSubject<TEntity[]>([]);\n    data$ = this.data$$.asObservable().pipe(shareReplay());\n    count$ = this.data$.pipe(map(data => data?.length || 0));\n    some$ = this.count$.pipe(map(count => count > 0));\n    none$ = this.some$.pipe(map(present => !present));\n    loading$$ = new BehaviorSubject<boolean>(false);\n    loading$ = this.loading$$.asObservable().pipe(shareReplay());\n    notLoading$ = this.loading$.pipe(map(loading => !loading));\n\n    abstract _index(): Promise<TEntity[]>;\n    abstract _get(id: string): Promise<TEntity>;\n    abstract _post(value: TEntity): Promise<void>;\n    abstract _put(id: string, value: TEntity): Promise<void>;\n    abstract _delete(id: string): Promise<void>;\n\n    async index(): Promise<TEntity[]> {\n        return await this.load();\n    }\n\n    async get(id: string) {\n        return await this._get(id);\n    }\n\n    async post(value: TEntity) {\n        await this._post(value);\n\n        return await this.reload();\n    }\n\n    async put(id: string, value: TEntity) {\n        await this._put(id, value);\n\n        return await this.reload();\n    }\n\n    async delete(id: string) {\n        await this._delete(id);\n\n        return await this.reload();\n    }\n\n    async load(): Promise<TEntity[]> {\n        if (!this.data$$.value?.length) {\n            await this.reload();\n        }\n\n        return this.data$$.value;\n    }\n\n    async reload(): Promise<TEntity[]> {\n        this.loading$$.next(true);\n\n        try {\n            this.data$$.next(await this._index());\n            this.loading$$.next(false);\n        } catch (error: any) {\n            console.warn('error loading data', error);\n            this.loading$$.next(false);\n            throw error;\n        }\n\n        return this.data$$.value;\n    }\n}\n","import { BehaviorSubject, map, shareReplay } from 'rxjs';\n\nexport abstract class AbstractReadonlyHttpEntityService<TEntity> {\n    data$$ = new BehaviorSubject<TEntity[]>([]);\n    data$ = this.data$$.asObservable().pipe(shareReplay());\n    count$ = this.data$.pipe(map(data => data?.length || 0));\n    some$ = this.count$.pipe(map(count => count > 0));\n    none$ = this.some$.pipe(map(present => !present));\n    loading$$ = new BehaviorSubject<boolean>(false);\n    loading$ = this.loading$$.asObservable().pipe(shareReplay());\n    notLoading$ = this.loading$.pipe(map(loading => !loading));\n\n    abstract _index(): Promise<TEntity[]>;\n    abstract _get(id: string): Promise<TEntity>;\n\n    async index(): Promise<TEntity[]> {\n        return await this.load();\n    }\n\n    async get(id: string) {\n        return await this._get(id);\n    }\n\n    async load(): Promise<TEntity[]> {\n        if (!this.data$$.value?.length) {\n            await this.reload();\n        }\n\n        return this.data$$.value;\n    }\n\n    async reload(): Promise<TEntity[]> {\n        this.loading$$.next(true);\n\n        try {\n            this.data$$.next(await this._index());\n            this.loading$$.next(false);\n        } catch (error: any) {\n            console.warn('error loading data', error);\n            this.loading$$.next(false);\n            throw error;\n        }\n\n        return this.data$$.value;\n    }\n}\n","import { BehaviorSubject, map, shareReplay } from 'rxjs';\nimport { IPagedData } from './abstract-paged-entity-service.class';\n\nexport abstract class AbstractHttpPagedEntityService<TEntity> {\n    page$$ = new BehaviorSubject<number>(0);\n    page$ = this.page$$.asObservable();\n    pageSize$$ = new BehaviorSubject<number>(2);\n    pageSize$ = this.pageSize$$.asObservable().pipe(shareReplay());\n    term$$ = new BehaviorSubject<string>('');\n    term$ = this.term$$.asObservable().pipe(shareReplay());\n    total$$ = new BehaviorSubject<number>(0);\n    total$ = this.total$$.asObservable().pipe(shareReplay());\n    data$$ = new BehaviorSubject<TEntity[]>([]);\n    data$ = this.data$$.asObservable().pipe(shareReplay());\n    count$ = this.data$.pipe(map(data => data?.length || 0));\n    some$ = this.count$.pipe(map(count => count > 0));\n    none$ = this.some$.pipe(map(present => !present));\n    loading$$ = new BehaviorSubject<boolean>(false);\n    loading$ = this.loading$$.asObservable().pipe(shareReplay());\n    notLoading$ = this.loading$.pipe(map(loading => !loading));\n\n    abstract _index(): Promise<TEntity[]>;\n    abstract _get(id: string): Promise<TEntity>;\n    abstract _post(value: TEntity): Promise<void>;\n    abstract _put(id: string, value: TEntity): Promise<void>;\n    abstract _delete(id: string): Promise<void>;\n\n    async index(): Promise<TEntity[]> {\n        return await this.load();\n    }\n\n    async get(id: string) {\n        return await this._get(id);\n    }\n\n    async post(value: TEntity) {\n        await this._post(value);\n\n        return await this.reload();\n    }\n\n    async put(id: string, value: TEntity) {\n        await this._put(id, value);\n\n        return await this.reload();\n    }\n\n    async delete(id: string) {\n        await this._delete(id);\n\n        return await this.reload();\n    }\n\n    async load(): Promise<TEntity[]> {\n        if (!this.data$$.value?.length) {\n            await this.reload();\n        }\n\n        return this.data$$.value;\n    }\n\n    async reload(): Promise<TEntity[]> {\n       await this.reloadCurrentPage();\n\n       return this.data$$.value;\n    }\n\n    protected abstract loadPageData(): Promise<IPagedData<TEntity>>;\n\n    async reloadCurrentPage() {\n        await this.loadPage(this.page$$.value || 0);\n    }\n\n    async loadPage(page: number) {\n        if (!this.data$$.value?.length) {\n            this.loading$$.next(true);\n        }\n\n        const { data, total } = await this.loadPageData();\n\n        this.page$$.next(page);\n        this.data$$.next(data);\n        this.total$$.next(total);\n        this.loading$$.next(false);\n    }\n}\n","import { BehaviorSubject, Observable, map, shareReplay } from 'rxjs';\n\nconst negate = (_: any) => !_;\n\nexport interface IPagedData<TEntity> {\n  data: TEntity[];\n  total: number;\n  pageSize: number;\n}\n\nexport abstract class AbstractPagedEntityService<TEntity> {\n  all$$ = new BehaviorSubject<TEntity[]>([]);\n  all$ = this.all$$.asObservable().pipe(shareReplay());\n  data$$ = new BehaviorSubject<TEntity[]>([]);\n  data$ = this.data$$.asObservable().pipe(shareReplay());\n  page$$ = new BehaviorSubject<number>(0);\n  page$ = this.page$$.asObservable();\n  pageSize$$ = new BehaviorSubject<number>(2);\n  pageSize$ = this.pageSize$$.asObservable().pipe(shareReplay());\n  term$$ = new BehaviorSubject<string>('');\n  term$ = this.term$$.asObservable().pipe(shareReplay());\n  total$$ = new BehaviorSubject<number>(0);\n  total$ = this.total$$.asObservable().pipe(shareReplay());\n  loading$$ = new BehaviorSubject<boolean>(false);\n  loading$ = this.loading$$.asObservable().pipe(shareReplay());\n  notLoading$ = this.loading$.pipe(map(negate));\n  minDate$$ = new BehaviorSubject<Date | undefined>(undefined);\n  minDate$ = this.minDate$$.asObservable().pipe(shareReplay());\n  maxDate$$ = new BehaviorSubject<Date | undefined>(undefined);\n  maxDate$ = this.maxDate$$.asObservable().pipe(shareReplay());\n\n  protected abstract loadPageData(): Promise<IPagedData<TEntity>>;\n  protected abstract loadAllData(): Promise<TEntity[]>;\n\n  async loadPage(page: number) {\n    if (!this.data$$.value?.length) {\n      this.loading$$.next(true);\n    }\n\n    const { data, total } = await this.loadPageData();\n\n    this.page$$.next(page);\n    this.data$$.next(data);\n    this.total$$.next(total);\n    this.loading$$.next(false);\n  }\n\n  async loadAll() {\n    if (!this.all$$.value?.length) {\n      this.loading$$.next(true);\n    }\n\n    const all = await this.loadAllData();\n\n    this.all$$.next(all);\n    this.loading$$.next(false);\n  }\n\n  async setSearchTerm(term?: string) {\n    this.term$$.next(term || '');\n    this.page$$.next(0);\n    await this.loadPage(0);\n  }\n\n  async setPageIndex(pageIndex?: number) {\n    this.page$$.next(pageIndex || 0);\n    await this.loadPage(this.page$$.value);\n  }\n\n  async setDateRange({ minDue, maxDue }: any) {\n    this.maxDate$$.next(maxDue);\n    this.minDate$$.next(minDue);\n    this.page$$.next(0);\n    await this.loadPage(0);\n  }\n\n  async reloadCurrentPage() {\n    await this.loadPage(this.page$$.value || 0);\n  }\n}\n","export class InMemoryFileService {\n    static downloadBlob(blob: Blob, fileName: string) {\n        const fileURL = URL.createObjectURL(blob);\n        const downloadLink = document.createElement('a');\n        downloadLink.href = fileURL;\n        downloadLink.download = fileName;\n        downloadLink.click();\n        URL.revokeObjectURL(fileURL);\n    }\n\n    static downloadContent(content: any, type: string, fileName: string) {\n        const blob = new Blob([content], { type });\n        InMemoryFileService.downloadBlob(blob, fileName);\n    }\n\n    static downloadCsvContent(rows: string[], fileName: string) {\n        InMemoryFileService.downloadContent(rows.join('\\n'), 'text/csv', fileName);\n    }\n\n    static downloadSvgContent(element: HTMLElement, fileName: string) {\n        InMemoryFileService.downloadContent(element.innerHTML, 'image/svg+xml', fileName);\n    }\n}","export class RedirectService {\n\n    constructor(public baseUrl: string, public loginPath = 'loging', public unauthorizedPath = 'unauthorized') { }\n\n    getLoginRedirectUrl() {\n        const { href } = window.location;\n        const target = `${this.baseUrl}/${this.loginPath}`;\n\n        if (href.includes(this.baseUrl)) {\n            return target;\n        }\n\n        return `${target}/${encodeURIComponent(href)}`;\n    }\n\n    getForbiddenRedirectUrl() {\n        return `${this.baseUrl}/${this.unauthorizedPath}`;\n    }\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CommonService {\n\n  constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'lib-common',\n  standalone: true,\n  imports: [],\n  template: `\n    <p>\n      common works!\n    </p>\n  `,\n  styles: ``\n})\nexport class CommonComponent {\n\n}\n","export const colors = [\n    'primary',\n    'primary-muted',\n    'primary-contrast',\n    'accent',\n    'accent-muted',\n    'accent-contrast',\n    'warn',\n    'warn-muted',\n    'warn-contrast',\n    'base',\n    'base-muted',\n    'contrast',\n    'contrast-muted',\n];\n","export const embeddedAppComponentTemplate = '<div class=\"max-w-screen-2xl mx-auto p-2\"><router-outlet></router-outlet></div>';","export const states = [\n  { label: 'Alabama', value: 'AL' },\n  { label: 'Alaska', value: 'AK' },\n  { label: 'Arizona', value: 'AZ' },\n  { label: 'Arkansas', value: 'AR' },\n  { label: 'California', value: 'CA' },\n  { label: 'Colorado', value: 'CO' },\n  { label: 'Connecticut', value: 'CT' },\n  { label: 'Delaware', value: 'DE' },\n  { label: 'Florida', value: 'FL' },\n  { label: 'Georgia', value: 'GA' },\n  { label: 'Hawaii', value: 'HI' },\n  { label: 'Idaho', value: 'ID' },\n  { label: 'Illinois', value: 'IL' },\n  { label: 'Indiana', value: 'IN' },\n  { label: 'Iowa', value: 'IA' },\n  { label: 'Kansas', value: 'KS' },\n  { label: 'Kentucky', value: 'KY' },\n  { label: 'Louisiana', value: 'LA' },\n  { label: 'Maine', value: 'ME' },\n  { label: 'Maryland', value: 'MD' },\n  { label: 'Massachusetts', value: 'MA' },\n  { label: 'Michigan', value: 'MI' },\n  { label: 'Minnesota', value: 'MN' },\n  { label: 'Mississippi', value: 'MS' },\n  { label: 'Missouri', value: 'MO' },\n  { label: 'Montana', value: 'MT' },\n  { label: 'Nebraska', value: 'NE' },\n  { label: 'Nevada', value: 'NV' },\n  { label: 'New Hampshire', value: 'NH' },\n  { label: 'New Jersey', value: 'NJ' },\n  { label: 'New Mexico', value: 'NM' },\n  { label: 'New York', value: 'NY' },\n  { label: 'North Carolina', value: 'NC' },\n  { label: 'North Dakota', value: 'ND' },\n  { label: 'Ohio', value: 'OH' },\n  { label: 'Oklahoma', value: 'OK' },\n  { label: 'Oregon', value: 'OR' },\n  { label: 'Pennsylvania', value: 'PA' },\n  { label: 'Rhode Island', value: 'RI' },\n  { label: 'South Carolina', value: 'SC' },\n  { label: 'South Dakota', value: 'SD' },\n  { label: 'Tennessee', value: 'TN' },\n  { label: 'Texas', value: 'TX' },\n  { label: 'Utah', value: 'UT' },\n  { label: 'Vermont', value: 'VT' },\n  { label: 'Virginia', value: 'VA' },\n  { label: 'Washington', value: 'WA' },\n  { label: 'West Virginia', value: 'WV' },\n  { label: 'Wisconsin', value: 'WI' },\n  { label: 'Wyoming', value: 'WY' },\n];\n","import {\n  Directive,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\n\n@Directive({\n  selector: '[ovoTyping]',\n  standalone: true,\n})\nexport class OvoTypingDirective implements OnInit, OnChanges {\n  @Input() ovoTyping!: string;\n  @Input() ovoTypingColor!: string;\n\n  constructor(private elementRef: ElementRef<HTMLSpanElement>) { }\n\n  private _count = 0;\n\n  get backgroundSize() {\n    return `calc(${this._count}*1ch) 200%`;\n  }\n\n  get animation() {\n    return `b .035s infinite steps(1), t calc(${this._count}*.015s) steps(${this._count}) forwards`;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.init(changes['text']?.currentValue);\n  }\n\n  ngOnInit(): void {\n    this.init(this.ovoTyping);\n  }\n\n  private init(text: string) {\n    if (text) {\n      this._count = text.length;\n\n      const nativeElement = this.elementRef.nativeElement;\n\n      if (nativeElement) {\n        nativeElement.insertAdjacentHTML(\"beforebegin\", `\n        <style>\n          @keyframes t {\n            from {\n              background-size: 0 200%\n            }\n          }\n\n          @keyframes b {\n            50% {\n              background-position: 0 -100%, 0 0\n            }\n          }\n        </style>\n        `);\n\n        const color = this.ovoTypingColor || window.getComputedStyle(nativeElement, null).getPropertyValue('color');\n        nativeElement.style.setProperty('color', '#0000');\n        nativeElement.style.setProperty('font-family', 'monospace');\n        nativeElement.style.setProperty('background', `linear-gradient(-90deg, ${color} 5px, #0000 0) 10px 0, linear-gradient(${color} 0 0) 0 0`);\n        nativeElement.style.setProperty('-webkit-background-clip', 'padding-box, text');\n        nativeElement.style.setProperty('background-clip', 'padding-box, text');\n        nativeElement.style.setProperty('background-repeat', 'no-repeat');\n        nativeElement.style.animation = this.animation;\n        nativeElement.style.backgroundSize = this.backgroundSize;\n        nativeElement.classList.add('typing');\n        nativeElement.innerHTML = text;\n      }\n    } else {\n      this._count = 0;\n    }\n  }\n}\n","export function setThenNegate<T extends Record<string, any>>(obj: T, property: keyof T, value: boolean): void {\n    obj[property] = value as any;\n    setTimeout(() => {\n        obj[property] = !value as any;\n    }, 0);\n}\n","import { setThenNegate } from \"./set-then-negate.function\";\n\nexport function falseThenTrue<T extends Record<string, any>>(obj: T, property: keyof T): void {\n    setThenNegate(obj, property, false);\n}\n","import { colors } from \"../constants/colors.constant\";\n\nexport function stylize(nativeElement: HTMLElement) {\n    const style = document.createElement('style')\n\n    style.innerHTML = [\n        `:root {`,\n        ...colors.map(color => {\n            const value = nativeElement.getAttribute(color) || '';\n            return value ? `--${color}: ${value};` : '';\n        }),\n        `}`\n    ].join('');\n\n    document.body.appendChild(style);\n}","var REGEX = /[A-Z]/g;\nexport function kebabCase(name: string, separator = '-') {\n    separator = separator || '_';\n    return name.replace(REGEX, function (letter, pos) {\n        return (pos ? separator : '') + letter.toLowerCase();\n    });\n}","import { TApiCredentials } from \"../types/api-credentials.type\";\nimport { stylize } from \"./stylize.function\";\nimport { kebabCase } from './kebab-case.function';\n\nexport function initEmbeddedComponent(nativeElement: HTMLElement, credentialHandler: (credentials: TApiCredentials) => void, attributeMap: Record<string, string> = {}) {\n    const apiId = nativeElement.getAttribute('api-id') || '';\n    const apiKey = nativeElement.getAttribute('api-key') || '';\n\n    credentialHandler({apiId, apiKey});\n\n    stylize(nativeElement);\n\n    const attributes: Record<string, string> = attributeMap || {};\n\n    if(attributeMap) {\n        Object.keys(attributeMap).forEach(key => {\n            const kebabCasedAttr = kebabCase(key);\n            // todo: check dataset for the kebabCasedAttr name and override the attribute value\n            // (not sure if attr or dataset should have precedence... prob dataset)\n            const value = nativeElement.getAttribute(kebabCasedAttr);\n            if(value) {\n                attributes[key] = value;\n            }\n        });\n    }\n\n    return attributes;\n}\n","import { colors } from \"../constants/colors.constant\";\n\nexport function stylizeWithDataset(nativeElement: HTMLElement) {\n    const style = document.createElement('style')\n    const dataset = nativeElement.dataset;\n    style.innerHTML = [\n        `:root {`,\n        ...colors.map(color => {\n            const name = color.replace('-muted', 'Muted').replace('-contrast', 'Contrast');\n            const value = dataset[name] || '';\n            return value ? `--${color}: ${value};` : '';\n        }),\n        `}`\n    ].join('');\n\n    document.body.appendChild(style);\n}","import { TApiCredentials } from \"../types/api-credentials.type\";\nimport { stylizeWithDataset } from \"./stylize-with-dataset.function\";\n\nexport function initEmbeddedComponentWithDataset(nativeElement: HTMLElement, credentialHandler: (credentials: TApiCredentials) => void, attributeMap = {}) {\n    const dataset = nativeElement.dataset;\n\n    const { apiId = '', apiKey = '' } = dataset;\n\n    credentialHandler({ apiId, apiKey });\n\n    stylizeWithDataset(nativeElement);\n\n    Object.entries(dataset).forEach(([key, value]) => (attributeMap as any)[key] = value);\n\n    return attributeMap;\n}\n","export function injectScript(src: string) {\n    return new Promise((resolve, reject) => {\n        const s = document.createElement('script');\n        s.onload = resolve;\n        s.onerror = reject;\n        s.src = src;\n        document.body.appendChild(s);\n    });\n}","export function setCssProperty(key: string, value: string, selector = ':root') {\n    const r: HTMLElement = document.querySelector(selector) as HTMLElement;\n    r.style.setProperty(key, value);\n}\n","import { setCssProperty } from \"./set-css-property.function\";\n\nexport function setCssVariable(name: string, value: string, selector = ':root') {\n    setCssProperty(`--${name}`, value, selector);\n}\n","import { setThenNegate } from \"./set-then-negate.function\";\n\nexport function trueThenFalse<T extends Record<string, any>>(obj: T, property: keyof T): void {\n    setThenNegate(obj, property, true);\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nconst iso8601Regex = /\\d{4}-\\d{2}-\\d{2}/;\n\n@Pipe({ standalone: true, name: 'calendarDate' })\nexport class CalendarDatePipe implements PipeTransform {\n  transform(value: string) {\n    try {\n      if (iso8601Regex.test(value)) {\n        const [date] = value.split('T');\n        const [y, m, d] = date.split('-');\n        return `${m}/${d}/${y}`;\n      }\n\n      return value;\n    } catch (error: any) {\n      return value;\n    }\n  }\n}\n\n","import { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nconst _currencyPipe = new CurrencyPipe('en-US');\n\n@Pipe({ standalone: true, name: 'money' })\nexport class MoneyPipe implements PipeTransform {\n  transform(value: any) {\n    try {\n      const number = Number(value);\n\n      if (number || (number === 0)) {\n        return _currencyPipe.transform(value);\n      }\n\n      return value;\n    } catch (error: any) {\n      return value;\n    }\n  }\n}\n\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\nconst datePipe = new DatePipe('en-US');\n\n@Pipe({ standalone: true, name: 'monthDayYearTime' })\nexport class MonthDayYearTimePipe implements PipeTransform {\n  transform(value: string | number | Date) {\n    try {\n      return datePipe.transform(value, 'MM/dd/YYYY hh:mm aa');\n    } catch (error: any) {\n      return value;\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\nconst datePipe = new DatePipe('en-US');\n\n@Pipe({ standalone: true, name: 'monthDayYear' })\nexport class MonthDayYearPipe implements PipeTransform {\n  transform(value: string | number | Date) {\n    try {\n      return datePipe.transform(value, 'MM/dd/YYYY');\n    } catch (error: any) {\n      return value;\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n  standalone: true, name: 'trust',\n})\nexport class TrustPipe implements PipeTransform {\n  constructor(private sanitizer: DomSanitizer) { }\n\n  transform(v: string): SafeHtml {\n    return this.sanitizer.bypassSecurityTrustHtml(v);\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Observable, Subject, share } from \"rxjs\";\n\n@Injectable({ providedIn: 'root' })\nexport class EventBridgeService {\n    private registered = false;\n    eventBus$$: Record<string, Subject<any>> = {};\n    eventBus$: Record<string, Observable<any>> = {};\n\n    listeners: any = {}\n\n    listen(events: string[]) {\n        if (!this.registered) {\n\n            events.forEach(eventName => {\n                const $$ = new Subject<any>();\n                this.eventBus$$[eventName] = $$;\n                this.eventBus$[eventName] = $$.asObservable().pipe(share());\n                window.addEventListener(eventName, (event: any) => $$.next(event.detail));\n            });\n\n            this.registered = true;\n        }\n    }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["negate","datePipe"],"mappings":"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"}