{"version":3,"file":"iamboroda-web.mjs","sources":["../../../projects/web/src/web.module.ts","../../../projects/web/src/lib/common/uom/uom.ts","../../../projects/web/src/lib/common/uom/uom.service.ts","../../../projects/web/src/lib/common/uom/uom.pipe.ts","../../../projects/web/src/lib/common/day.js/dp-calendar-ago.pipe.ts","../../../projects/web/src/lib/common/day.js/dp-calendar.pipe.ts","../../../projects/web/src/lib/common/day.js/dp-date-format.pipe.ts","../../../projects/web/src/lib/common/day.js/dp-from-unix.pipe.ts","../../../projects/web/src/lib/common/day.js/dp-time-ago.pipe.ts","../../../projects/web/src/lib/common/google/google-api-loader.service.ts","../../../projects/web/src/lib/common/routing/routing.service.ts","../../../projects/web/src/lib/common/common.module.ts","../../../projects/web/src/lib/common/form/form.ts","../../../projects/web/src/lib/ui-service/model.ts","../../../projects/web/src/lib/ui-service/confirm-dialog/confirm-dialog.component.ts","../../../projects/web/src/lib/ui-service/ui.service.ts","../../../projects/web/src/lib/common/base/base.component.ts","../../../projects/web/src/lib/controls/file-picker/file-picker.component.ts","../../../projects/web/src/lib/controls/file-picker/file-picker.component.html","../../../projects/web/src/lib/controls/map/map-objects/map-objects.component.ts","../../../projects/web/src/lib/controls/map/map-objects/map-objects.component.html","../../../projects/web/src/lib/controls/map/map-picker/map-picker.component.ts","../../../projects/web/src/lib/controls/map/map-picker/map-picker.component.html","../../../projects/web/src/lib/controls/select/select-display.pipe.ts","../../../projects/web/src/lib/common/utils/filter.utils.ts","../../../projects/web/src/lib/controls/select/select.component.ts","../../../projects/web/src/lib/controls/select/select.component.html","../../../projects/web/src/lib/controls/uom-input/uom-input.component.ts","../../../projects/web/src/lib/controls/uom-input/uom-input.component.html","../../../projects/web/src/lib/controls/controls.module.ts","../../../projects/web/src/lib/edit-form/templates/template.base.component.ts","../../../projects/web/src/lib/edit-form/templates/address/address.component.ts","../../../projects/web/src/lib/edit-form/templates/address/address.component.html","../../../projects/web/src/lib/edit-form/templates/chips/chips.component.ts","../../../projects/web/src/lib/edit-form/templates/chips/chips.component.html","../../../projects/web/src/lib/edit-form/templates/data-lookup/data-lookup.component.ts","../../../projects/web/src/lib/edit-form/templates/data-lookup/data-lookup.component.html","../../../projects/web/src/lib/edit-form/templates/date/date.component.ts","../../../projects/web/src/lib/edit-form/templates/date/date.component.html","../../../projects/web/src/lib/edit-form/templates/file/file.component.ts","../../../projects/web/src/lib/edit-form/templates/file/file.component.html","../../../projects/web/src/lib/edit-form/templates/number/number.component.ts","../../../projects/web/src/lib/edit-form/templates/number/number.component.html","../../../projects/web/src/lib/edit-form/templates/password/password.component.ts","../../../projects/web/src/lib/edit-form/templates/password/password.component.html","../../../projects/web/src/lib/edit-form/templates/static-lookup/static-lookup.component.ts","../../../projects/web/src/lib/edit-form/templates/static-lookup/static-lookup.component.html","../../../projects/web/src/lib/edit-form/templates/text/text.component.ts","../../../projects/web/src/lib/edit-form/templates/text/text.component.html","../../../projects/web/src/lib/edit-form/templates/toggle/toggle.component.ts","../../../projects/web/src/lib/edit-form/templates/toggle/toggle.component.html","../../../projects/web/src/lib/edit-form/templates/uom/uom.component.ts","../../../projects/web/src/lib/edit-form/templates/uom/uom.component.html","../../../projects/web/src/lib/edit-form/model.ts","../../../projects/web/src/lib/edit-form/templates/template.pipe.ts","../../../projects/web/src/lib/edit-form/edit-form.component.ts","../../../projects/web/src/lib/edit-form/edit-form.component.html","../../../projects/web/src/lib/edit-form/edit-form.service.ts","../../../projects/web/src/lib/edit-form/edit-form.module.ts","../../../projects/web/src/lib/ui-service/ui.service.module.ts","../../../projects/web/src/iamboroda-web.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\n\r\n@NgModule()\r\nexport class WebModule {}\r\n","import { DecimalPipe } from '@angular/common';\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport interface IUserUomConfig {\r\n  treadDepthUnit?: TreadDepthUnit;\r\n  pressureUnit?: PressureUnit.bar;\r\n  distanceUnit?: DistanceUnit.km;\r\n  temperatureUnit?: TemperatureUnit.celsius;\r\n}\r\n\r\nexport const USER_UOM_CONFIG = new InjectionToken<IUserUomConfig | undefined>(\r\n  'User UOM config'\r\n);\r\n\r\nexport enum UomFormat {\r\n  uom = 0,\r\n  value = 1,\r\n  full = 2,\r\n}\r\n\r\nexport enum UnitType {\r\n  pressure = 0,\r\n  temperature = 1,\r\n  treadDepth = 2,\r\n  distance = 3,\r\n  pricePerTreadDepth = 4,\r\n  pricePerDistance = 5,\r\n}\r\n\r\nexport enum TreadDepthUnit {\r\n  mm = 0,\r\n  thirtySecondOfInch = 1,\r\n}\r\n\r\nexport enum PressureUnit {\r\n  bar = 0,\r\n  psi = 1,\r\n}\r\n\r\nexport enum TemperatureUnit {\r\n  celsius = 0,\r\n  fahrenheit = 1,\r\n}\r\n\r\nexport enum DistanceUnit {\r\n  km = 0,\r\n  miles = 1,\r\n}\r\n\r\nexport class UomDefinition {\r\n  displayName!: string;\r\n  numberFormat!: string;\r\n  multiplier!: number;\r\n  offset!: number;\r\n}\r\n\r\nexport class Uom {\r\n  constructor(uomDefinition: UomDefinition, value: number) {\r\n    this.uomDefinition = uomDefinition;\r\n    this.value = value;\r\n  }\r\n\r\n  private uomDefinition!: UomDefinition;\r\n  private value!: number;\r\n\r\n  convertToDisplay(): number {\r\n    return (\r\n      this.value * this.uomDefinition.multiplier + this.uomDefinition.offset\r\n    );\r\n  }\r\n\r\n  convertToStore(): number {\r\n    return (\r\n      (this.value - this.uomDefinition.offset) / this.uomDefinition.multiplier\r\n    );\r\n  }\r\n\r\n  toString(includeUomDisplay?: boolean): string {\r\n    const formatter = new DecimalPipe('en-US');\r\n    return `${formatter.transform(\r\n      this.convertToDisplay(),\r\n      this.uomDefinition.numberFormat\r\n    )} ${includeUomDisplay ? this.uomDefinition.displayName : ''}`.trim();\r\n  }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\n\r\nimport {\r\n    DistanceUnit, IUserUomConfig, PressureUnit, TemperatureUnit, TreadDepthUnit, UnitType, Uom,\r\n    UomDefinition, USER_UOM_CONFIG\r\n} from './uom';\r\n\r\n@Injectable()\r\nexport class UomService {\r\n  private uoms: {\r\n    [unitType: string]: {\r\n      [uom: number]: UomDefinition;\r\n    };\r\n  } = {};\r\n\r\n  constructor(\r\n    @Optional()\r\n    @Inject(USER_UOM_CONFIG)\r\n    private userUomConfig: IUserUomConfig | undefined\r\n  ) {\r\n    this.initUomDefinitions();\r\n  }\r\n\r\n  getDisplayValue(unit: UnitType, value: number, round?: boolean): number {\r\n    const uom = this.getUom(unit, value);\r\n    let displayValue = uom.convertToDisplay();\r\n    if (round) {\r\n      displayValue = Math.round(displayValue);\r\n    }\r\n    return displayValue;\r\n  }\r\n\r\n  getStoreValue(unit: UnitType, value: number): number {\r\n    const uom = this.getUom(unit, value);\r\n    return uom.convertToStore();\r\n  }\r\n\r\n  getFormattedDisplayValue(\r\n    unit: UnitType,\r\n    value: number,\r\n    includeUomDisplay?: boolean\r\n  ): string {\r\n    const uom = this.getUom(unit, value);\r\n    return uom.toString(includeUomDisplay);\r\n  }\r\n\r\n  getUomDefinition(unit: UnitType): UomDefinition {\r\n    const uomUnit = this.getUnitFromType(unit);\r\n    return this.uoms[unit][uomUnit];\r\n  }\r\n\r\n  private getUnitFromType(unit: UnitType): number {\r\n    switch (unit) {\r\n      case UnitType.treadDepth:\r\n      case UnitType.pricePerTreadDepth:\r\n        return this.userUomConfig?.treadDepthUnit || TreadDepthUnit.mm;\r\n      case UnitType.pressure:\r\n        return this.userUomConfig?.pressureUnit || PressureUnit.bar;\r\n      case UnitType.distance:\r\n      case UnitType.pricePerDistance:\r\n        return this.userUomConfig?.distanceUnit || DistanceUnit.km;\r\n      case UnitType.temperature:\r\n        return this.userUomConfig?.temperatureUnit || TemperatureUnit.celsius;\r\n    }\r\n  }\r\n\r\n  private initUomDefinitions(): void {\r\n    this.uoms[UnitType.treadDepth] = {};\r\n    this.uoms[UnitType.pressure] = {};\r\n    this.uoms[UnitType.distance] = {};\r\n    this.uoms[UnitType.pricePerTreadDepth] = {};\r\n    this.uoms[UnitType.pricePerDistance] = {};\r\n    this.uoms[UnitType.temperature] = {};\r\n    this.uoms[UnitType.treadDepth][TreadDepthUnit.mm] = {\r\n      displayName: 'mm',\r\n      numberFormat: '1.1-2',\r\n      multiplier: 1,\r\n      offset: 0,\r\n    };\r\n    this.uoms[UnitType.treadDepth][TreadDepthUnit.thirtySecondOfInch] = {\r\n      displayName: `1/32″`,\r\n      numberFormat: '1.1-2',\r\n      multiplier: 1.25984,\r\n      offset: 0,\r\n    };\r\n    this.uoms[UnitType.pressure][PressureUnit.bar] = {\r\n      displayName: 'bar',\r\n      numberFormat: '1.1-1',\r\n      multiplier: 1,\r\n      offset: 0,\r\n    };\r\n    this.uoms[UnitType.pressure][PressureUnit.psi] = {\r\n      displayName: 'PSI',\r\n      numberFormat: '1.0-0',\r\n      multiplier: 14.5038,\r\n      offset: 0,\r\n    };\r\n    this.uoms[UnitType.distance][DistanceUnit.km] = {\r\n      displayName: 'km',\r\n      numberFormat: '1.0-0',\r\n      multiplier: 1,\r\n      offset: 0,\r\n    };\r\n    this.uoms[UnitType.distance][DistanceUnit.miles] = {\r\n      displayName: 'mile',\r\n      numberFormat: '1.0-0',\r\n      multiplier: 0.621388,\r\n      offset: 0,\r\n    };\r\n    this.uoms[UnitType.pricePerTreadDepth][TreadDepthUnit.mm] = {\r\n      displayName: 'price per mm',\r\n      numberFormat: '1.1-1',\r\n      multiplier: 1,\r\n      offset: 0,\r\n    };\r\n    this.uoms[UnitType.pricePerTreadDepth][TreadDepthUnit.thirtySecondOfInch] =\r\n      {\r\n        displayName: `price per 1/32″`,\r\n        numberFormat: '1.1-1',\r\n        multiplier: 0.7937515,\r\n        offset: 0,\r\n      };\r\n    this.uoms[UnitType.pricePerDistance][DistanceUnit.km] = {\r\n      displayName: 'price per km',\r\n      numberFormat: '1.0-6',\r\n      multiplier: 1,\r\n      offset: 0,\r\n    };\r\n    this.uoms[UnitType.pricePerDistance][DistanceUnit.miles] = {\r\n      displayName: 'price per mile',\r\n      numberFormat: '1.0-6',\r\n      multiplier: 1.6093004,\r\n      offset: 0,\r\n    };\r\n    this.uoms[UnitType.temperature][TemperatureUnit.celsius] = {\r\n      displayName: '°C',\r\n      numberFormat: '1.0-0',\r\n      multiplier: 1,\r\n      offset: 0,\r\n    };\r\n    this.uoms[UnitType.temperature][TemperatureUnit.fahrenheit] = {\r\n      displayName: '°F',\r\n      numberFormat: '1.0-0',\r\n      multiplier: 1.8,\r\n      offset: 32,\r\n    };\r\n  }\r\n\r\n  private getUom(unit: UnitType, value: number): Uom {\r\n    return new Uom(this.getUomDefinition(unit), value);\r\n  }\r\n}\r\n","import _ from 'lodash';\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { UnitType, UomFormat } from './uom';\r\nimport { UomService } from './uom.service';\r\n\r\n@Pipe({\r\n  name: 'uom',\r\n})\r\nexport class UomPipe implements PipeTransform {\r\n  constructor(private uomService: UomService) {}\r\n\r\n  transform(\r\n    value: number | (number | undefined)[] | undefined | '',\r\n    unit: keyof typeof UnitType | UnitType,\r\n    format: keyof typeof UomFormat | UomFormat,\r\n    func?: 'min',\r\n    refreshId?: number\r\n  ): string {\r\n    const unitType = _.isString(unit) ? UnitType[unit] : unit;\r\n    const unitFormat = _.isString(format) ? UomFormat[format] : format;\r\n    if (unitFormat === UomFormat.uom) {\r\n      return this.uomService.getUomDefinition(unitType).displayName;\r\n    }\r\n    if (value) {\r\n      let measurements: number[] = _.isArray(value)\r\n        ? _.filter(value, (x): x is number => x !== undefined)\r\n        : [value];\r\n      if (measurements.length) {\r\n        if (func === 'min') {\r\n          measurements = [Math.min(...measurements)];\r\n        }\r\n        let res = measurements\r\n          .filter((m) => m)\r\n          .map((v) => this.uomService.getFormattedDisplayValue(unitType, v))\r\n          .join(', ');\r\n        if (unitFormat === UomFormat.full) {\r\n          res = `${res} ${\r\n            this.uomService.getUomDefinition(unitType).displayName\r\n          }`;\r\n        }\r\n        return res;\r\n      }\r\n    }\r\n    return '';\r\n  }\r\n}\r\n","import dayjs from 'dayjs';\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'dpCalendarAgo',\r\n})\r\nexport class DpCalendarAgoPipe implements PipeTransform {\r\n  transform(value: dayjs.Dayjs): any {\r\n    let res = value.calendar(undefined, {\r\n      sameDay: '[Today at] H:mm',\r\n      nextDay: '[Tomorrow at] H:mm',\r\n      nextWeek: 'dddd [at] H:mm',\r\n      lastDay: '[Yesterday at] H:mm',\r\n      lastWeek: '[Last] dddd [at] H:mm',\r\n      sameElse: 'DD/MM/YYYY [at] H:mm',\r\n    });\r\n    if (value.diff(dayjs(), 'day') >= 2) {\r\n      res += ` (${value.fromNow()})`;\r\n    }\r\n    return res;\r\n  }\r\n}\r\n","import dayjs from 'dayjs';\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'dpCalendar'\r\n})\r\nexport class DpCalendarPipe implements PipeTransform {\r\n\r\n  transform(value: dayjs.Dayjs): any {\r\n    return value.calendar(undefined, {\r\n      sameDay: '[Today at] H:mm',\r\n      nextDay: '[Tomorrow at] H:mm',\r\n      nextWeek: 'dddd [at] H:mm',\r\n      lastDay: '[Yesterday at] H:mm',\r\n      lastWeek: '[Last] dddd [at] H:mm',\r\n      sameElse: 'DD/MM/YYYY [at] H:mm'\r\n    });\r\n  }\r\n\r\n}\r\n","\r\nimport dayjs from 'dayjs';\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'dpDateFormat'\r\n})\r\nexport class DpDateFormat implements PipeTransform {\r\n\r\n  transform(value: dayjs.Dayjs | undefined, params: string): any {\r\n    return value ? value.format(params) : undefined;\r\n  }\r\n\r\n}\r\n","import dayjs from 'dayjs';\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'dpFromUnix'\r\n})\r\nexport class DpFromUnixPipe implements PipeTransform {\r\n\r\n  transform(value: number | undefined): any {\r\n    return value ? dayjs.unix(value) : undefined;\r\n  }\r\n\r\n}\r\n","\r\nimport dayjs from 'dayjs';\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'dpTimeAgo'\r\n})\r\nexport class DpTimeAgoPipe implements PipeTransform {\r\n\r\n  transform(value: dayjs.Dayjs): any {\r\n    return value.fromNow();\r\n  }\r\n\r\n}\r\n","import { lastValueFrom, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class GoogleApiLoaderService {\r\n  googleMapsApiLoaded?: boolean;\r\n\r\n  constructor(private httpClient: HttpClient) {}\r\n\r\n  async ensureGoogleMapsApi() {\r\n    if (!this.googleMapsApiLoaded) {\r\n      this.googleMapsApiLoaded = await lastValueFrom(\r\n        this.httpClient\r\n          .jsonp(\r\n            'https://maps.googleapis.com/maps/api/js?key=AIzaSyD3IThgcfAbpPHtV9O0dzQOtx0Hr2rrCLk&libraries=places',\r\n            'callback'\r\n          )\r\n          .pipe(\r\n            map(() => true),\r\n            catchError((err) => {\r\n              console.log(err);\r\n              return of(false);\r\n            })\r\n          )\r\n      );\r\n    }\r\n    return this.googleMapsApiLoaded;\r\n  }\r\n}\r\n","import _ from 'lodash';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class RoutingService {\r\n  private data: any;\r\n  private flags: any[] = [];\r\n\r\n  constructor(private router: Router) {}\r\n\r\n  acknowledge() {\r\n    this.data = undefined;\r\n    this.flags = [];\r\n  }\r\n\r\n  getData(): any {\r\n    const res = _.cloneDeep(this.data);\r\n    this.data = undefined;\r\n    return res;\r\n  }\r\n\r\n  applyData(component: any) {\r\n    const routeData = this.getData();\r\n    for (const key of _.keys(routeData)) {\r\n      _.set(component, key, _.get(routeData, key));\r\n    }\r\n  }\r\n\r\n  setData(data: any): void {\r\n    this.data = _.cloneDeep(data);\r\n  }\r\n\r\n  hasFlag(flag: any): boolean {\r\n    const existingFlags = _.remove(this.flags, (f) => f === flag);\r\n    return existingFlags?.length > 0;\r\n  }\r\n\r\n  addFlag(flag: any): void {\r\n    if (!_.some(this.flags, (f) => f === flag)) {\r\n      this.flags.push(flag);\r\n    }\r\n  }\r\n\r\n  navigateWithParams(route: string, params: any) {\r\n    this.setData(params);\r\n    this.router.navigate([route]);\r\n  }\r\n\r\n  navigateWithFlag(route: string, flag: any) {\r\n    this.addFlag(flag);\r\n    this.router.navigate([route]);\r\n  }\r\n}\r\n","import dayjs from 'dayjs';\r\nimport calendar from 'dayjs/plugin/calendar';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport objectSupport from 'dayjs/plugin/objectSupport';\r\nimport relativeTime from 'dayjs/plugin/relativeTime';\r\n\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { DpCalendarAgoPipe } from './day.js/dp-calendar-ago.pipe';\r\nimport { DpCalendarPipe } from './day.js/dp-calendar.pipe';\r\nimport { DpDateFormat } from './day.js/dp-date-format.pipe';\r\nimport { DpFromUnixPipe } from './day.js/dp-from-unix.pipe';\r\nimport { DpTimeAgoPipe } from './day.js/dp-time-ago.pipe';\r\nimport { GoogleApiLoaderService } from './google/google-api-loader.service';\r\nimport { RoutingService } from './routing/routing.service';\r\nimport { UomPipe } from './uom/uom.pipe';\r\nimport { UomService } from './uom/uom.service';\r\n\r\ndayjs.extend(relativeTime);\r\ndayjs.extend(calendar);\r\ndayjs.extend(customParseFormat);\r\ndayjs.extend(objectSupport);\r\n\r\nconst pipes = [\r\n  UomPipe,\r\n  DpCalendarPipe,\r\n  DpCalendarAgoPipe,\r\n  DpTimeAgoPipe,\r\n  DpFromUnixPipe,\r\n  DpDateFormat,\r\n];\r\n\r\n@NgModule({\r\n  declarations: [...pipes],\r\n  imports: [],\r\n  exports: [...pipes],\r\n})\r\nexport class BdaCommonModule {\r\n  static forRoot(): ModuleWithProviders<BdaCommonModule> {\r\n    return {\r\n      ngModule: BdaCommonModule,\r\n      providers: [UomService, GoogleApiLoaderService, RoutingService],\r\n    };\r\n  }\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\nimport {\r\n    AbstractControl, FormControl, FormControlOptions, FormGroup, ValidatorFn, Validators\r\n} from '@angular/forms';\r\n\r\nexport enum FormOperationType {\r\n  upserted = 0,\r\n  deleted = 1,\r\n}\r\n\r\nexport class FormOperationResult<T> {\r\n  type: FormOperationType;\r\n  entity: T;\r\n\r\n  constructor(type: FormOperationType, entity: T) {\r\n    this.type = type;\r\n    this.entity = entity;\r\n  }\r\n}\r\n\r\nexport type TFormGroupGeneric<T> = { [key in keyof T]: AbstractControl };\r\nexport type TFormGroupValue<T> = {\r\n  [key in keyof TFormGroupGeneric<T>]: TFormGroupGeneric<T>[key]['value'];\r\n};\r\nexport type TFormGroupControls<T> = {\r\n  [key in keyof TFormGroupGeneric<T>]: TFormGroupGeneric<T>[key];\r\n};\r\nexport type ValueOptions = {\r\n  onlySelf?: boolean | undefined;\r\n  emitEvent?: boolean | undefined;\r\n};\r\n\r\nexport class TFormControl<T> extends FormControl {\r\n  override value!: T;\r\n  override valueChanges!: Observable<T>;\r\n\r\n  constructor(params?: {\r\n    formState?: any;\r\n    validatorOrOpts?:\r\n      | ValidatorFn\r\n      | ValidatorFn[]\r\n      | FormControlOptions\r\n      | null\r\n      | undefined;\r\n  }) {\r\n    super(params?.formState, params?.validatorOrOpts ?? Validators.required);\r\n  }\r\n\r\n  override reset(value: T, options?: ValueOptions) {\r\n    super.reset(value, options);\r\n  }\r\n\r\n  override setValue(value: T, options?: ValueOptions): void {\r\n    super.setValue(value, options);\r\n  }\r\n}\r\n\r\nexport class TFormGroup<T> extends FormGroup {\r\n  override value!: TFormGroupValue<T>;\r\n  override valueChanges!: Observable<TFormGroupValue<T>>;\r\n\r\n  override controls!: TFormGroupControls<T>;\r\n\r\n  constructor(controls: TFormGroupControls<T>) {\r\n    super(controls);\r\n  }\r\n\r\n  override reset(\r\n    value?: Partial<TFormGroupValue<T>> | undefined,\r\n    options?: ValueOptions\r\n  ) {\r\n    super.reset(value, options);\r\n  }\r\n\r\n  override setValue(value: TFormGroupValue<T>, options?: ValueOptions): void {\r\n    super.setValue(value, options);\r\n  }\r\n\r\n  override getRawValue(): TFormGroupValue<T> {\r\n    return super.getRawValue();\r\n  }\r\n}\r\n","export class Toast {\r\n    title!: string;\r\n    duration?: number;\r\n    showSpinner = false;\r\n}\r\n\r\nexport class ConfigDialogData {\r\n    title?: string;\r\n    message?: string;\r\n    okayText?: string;\r\n    cancelText?: string;\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { ConfigDialogData } from '../model';\r\n\r\n@Component({\r\n  selector: 'bda-ui-confirm-dialog',\r\n  styles: [':host{display:block;margin-bottom:20px;}'],\r\n  template: ` <h1 mat-dialog-title cdkFocusInitial>\r\n      {{ data.title || 'Are you sure?' }}\r\n    </h1>\r\n    <div mat-dialog-content>\r\n      <p>\r\n        {{ data.message || 'Please confirm you action' }}\r\n      </p>\r\n    </div>\r\n    <div mat-dialog-actions>\r\n      <button mat-raised-button color=\"primary\" [mat-dialog-close]=\"true\">\r\n        {{ data.okayText || 'OK' }}\r\n      </button>\r\n      <div fxFlex></div>\r\n      <button mat-button [mat-dialog-close]=\"false\">\r\n        {{ data.cancelText || 'Cancel' }}\r\n      </button>\r\n    </div>`,\r\n})\r\nexport class ConfirmDialogComponent {\r\n  constructor(\r\n    public dialogRef: MatDialogRef<ConfirmDialogComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: ConfigDialogData\r\n  ) {}\r\n}\r\n","import _ from 'lodash';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\r\nimport { ConfigDialogData, Toast } from './model';\r\n\r\nexport enum DialogCloseResult {\r\n  cancelled = 0,\r\n  ok = 1,\r\n}\r\n\r\n@Injectable()\r\nexport class WebUiService {\r\n  loading$!: Observable<boolean>;\r\n  message$!: Observable<Toast>;\r\n  messageClosed$!: Observable<Toast>;\r\n\r\n  private loading = new Subject<boolean>();\r\n  private message = new Subject<Toast>();\r\n  private messageClosed = new Subject<Toast>();\r\n\r\n  constructor(private dialog: MatDialog) {\r\n    this.loading$ = this.loading;\r\n    this.message$ = this.message;\r\n    this.messageClosed$ = this.messageClosed;\r\n  }\r\n\r\n  toggleLoading(state: boolean) {\r\n    setTimeout(() => {\r\n      this.loading.next(state);\r\n    });\r\n  }\r\n\r\n  confirmDialog(\r\n    data: ConfigDialogData = {},\r\n    width = '350px'\r\n  ): Promise<boolean> {\r\n    return new Promise<any>((resolve) => {\r\n      const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n        width,\r\n        data,\r\n      });\r\n      dialogRef.afterClosed().subscribe((result) => {\r\n        resolve(result);\r\n      });\r\n    });\r\n  }\r\n\r\n  showSuccessMessage() {\r\n    this.showMessage('Data was saved successfully');\r\n  }\r\n\r\n  showErrorMessage(err?: any) {\r\n    this.showMessage(\r\n      _.isString(err) ? err : 'Oops, something went wrong, please try again'\r\n    );\r\n  }\r\n\r\n  showMessage(title: string, duration = 3000, showSpinner = false): Toast {\r\n    const toast = new Toast();\r\n    toast.title = title;\r\n    toast.duration = duration;\r\n    toast.showSpinner = showSpinner;\r\n    this.message.next(toast);\r\n    return toast;\r\n  }\r\n\r\n  closeMessage(toast: Toast) {\r\n    this.messageClosed.next(toast);\r\n  }\r\n}\r\n","import { BehaviorSubject, catchError, Observable, of, Subscription, tap } from 'rxjs';\r\n\r\nimport { Directive, OnDestroy } from '@angular/core';\r\n\r\nimport { WebUiService } from '../../ui-service/ui.service';\r\n\r\n@Directive()\r\nexport class WebBaseComponent implements OnDestroy {\r\n  loading$: Observable<boolean>;\r\n\r\n  protected subs: Subscription[] = [];\r\n\r\n  private loading = new BehaviorSubject<boolean>(false);\r\n\r\n  constructor(protected ui: WebUiService) {\r\n    this.loading$ = this.loading;\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.unsubscribe();\r\n  }\r\n\r\n  toggleLoading(value: boolean) {\r\n    this.loading.next(value);\r\n    this.ui.toggleLoading(value);\r\n  }\r\n\r\n  protected async execSafe<T>(\r\n    exec: () => Promise<T>,\r\n    config?: {\r\n      confirm?: boolean;\r\n      silent?: boolean;\r\n      hideLoading?: boolean;\r\n      errorMessage?: string;\r\n    }\r\n  ): Promise<T | undefined> {\r\n    if (config?.confirm && !(await this.ui.confirmDialog())) {\r\n      return undefined;\r\n    }\r\n    try {\r\n      this.toggleLoading(!config?.hideLoading);\r\n      return await exec();\r\n    } catch (err) {\r\n      console.error(err);\r\n      if (!config?.silent) {\r\n        this.ui.showErrorMessage();\r\n      }\r\n      return undefined;\r\n    } finally {\r\n      this.toggleLoading(false);\r\n    }\r\n  }\r\n\r\n  protected obsSafe(observable: Observable<any>) {\r\n    this.toggleLoading(true);\r\n    return observable.pipe(\r\n      tap(() => this.toggleLoading(false)),\r\n      catchError((err) => {\r\n        console.log(err);\r\n        this.toggleLoading(false);\r\n        return of(undefined);\r\n      })\r\n    );\r\n  }\r\n\r\n  protected unsubscribe() {\r\n    for (const sub of this.subs) {\r\n      sub.unsubscribe();\r\n    }\r\n  }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bda-file-picker',\r\n  templateUrl: './file-picker.component.html',\r\n  styleUrls: ['./file-picker.component.scss'],\r\n})\r\nexport class FilePickerComponent {\r\n  @ViewChild('file', { static: true }) file!: ElementRef;\r\n\r\n  @Input() accept?: string;\r\n\r\n  @Output() filesPicked: EventEmitter<File[]> = new EventEmitter();\r\n\r\n  pickFiles(): void {\r\n    this.file.nativeElement.click();\r\n  }\r\n\r\n  handleFileInput(event: Event): void {\r\n    const selectedFiles = (event.target as HTMLInputElement).files;\r\n    if (selectedFiles) {\r\n      const result: File[] = [];\r\n      for (let i = 0; i < selectedFiles.length; i++) {\r\n        const file = selectedFiles.item(i);\r\n        if (file !== null) {\r\n          result.push(file);\r\n        }\r\n      }\r\n      if (result.length) {\r\n        this.filesPicked.emit(result);\r\n      }\r\n    }\r\n    this.file.nativeElement.value = null;\r\n  }\r\n}\r\n","<input #file type=\"file\" [accept]=\"accept\" (change)=\"handleFileInput($event)\" class=\"input-file\">","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { GoogleMap, MapInfoWindow, MapMarker } from '@angular/google-maps';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { IMapObject, IMapObjectsConfig } from '../model';\r\n\r\n@Component({\r\n  selector: 'bda-map-objects',\r\n  templateUrl: './map-objects.component.html',\r\n  styleUrls: ['./map-objects.component.scss'],\r\n})\r\nexport class MapObjectsComponent implements OnInit {\r\n  @ViewChild(GoogleMap, { static: false }) map!: GoogleMap;\r\n  @ViewChild(MapInfoWindow, { static: false }) infoWindow!: MapInfoWindow;\r\n\r\n  markerOptions: google.maps.MarkerOptions = {\r\n    draggable: false,\r\n  };\r\n  loading = false;\r\n  ready = false;\r\n  hideInitLoading = false;\r\n  selectedPoint!: IMapObject;\r\n\r\n  constructor(\r\n    public dialogRef: MatDialogRef<MapObjectsComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: IMapObjectsConfig\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    setTimeout(() => {\r\n      this.init();\r\n      this.map.tilesloaded.subscribe(() =>\r\n        setTimeout(() => (this.ready = true))\r\n      );\r\n    });\r\n  }\r\n\r\n  openInfoWindow(marker: MapMarker, point: IMapObject): void {\r\n    this.selectedPoint = point;\r\n    this.infoWindow.open(marker);\r\n  }\r\n\r\n  close(): void {\r\n    this.dialogRef.close();\r\n  }\r\n\r\n  private init(): void {\r\n    const bounds = new google.maps.LatLngBounds();\r\n    for (const point of this.data.points) {\r\n      // const icon = {\r\n      //   url: 'https://intirecloudshared.blob.core.windows.net/intire-admin/web-app-assets/router-icon.png',\r\n      //   // size: new google.maps.Size(71, 71),\r\n      //   // origin: new google.maps.Point(0, 0),\r\n      //   // anchor: new google.maps.Point(17, 34),\r\n      //   // scaledSize: new google.maps.Size(25, 25)\r\n      // } as google.maps.Icon;\r\n      bounds.extend(point.location);\r\n    }\r\n    this.map.fitBounds(bounds);\r\n  }\r\n}\r\n","<div class=\"btn-map-close\">\r\n  <button mat-mini-fab color=\"white\" (click)=\"close()\">\r\n    <mat-icon>close</mat-icon>\r\n  </button>\r\n</div>\r\n<div class=\"map-container\">\r\n  <div\r\n    fxLayout=\"column\"\r\n    fxLayoutAlign=\"center center\"\r\n    fxFlexFill\r\n    class=\"init-loading\"\r\n    [ngClass]=\"{ 'animated faster fadeOut': ready }\"\r\n    (animationend)=\"hideInitLoading = true\"\r\n    *ngIf=\"!hideInitLoading\"\r\n  >\r\n    <div [ngClass]=\"{ 'animated faster fadeOut': ready }\" class=\"loader\"></div>\r\n  </div>\r\n  <mat-progress-bar mode=\"indeterminate\" *ngIf=\"loading\"></mat-progress-bar>\r\n  <div fxLayout=\"column\" fxFlexFill fxLayoutGap=\"20px\">\r\n    <google-map height=\"100%\" width=\"100%\">\r\n      <map-marker\r\n        #marker=\"mapMarker\"\r\n        *ngFor=\"let point of data?.points\"\r\n        [position]=\"point.location\"\r\n        [options]=\"{ icon: point.icon }\"\r\n        (mapClick)=\"openInfoWindow(marker, point)\"\r\n      >\r\n      </map-marker>\r\n      <map-info-window>\r\n        {{ selectedPoint?.info }}\r\n      </map-info-window>\r\n    </google-map>\r\n  </div>\r\n</div>\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\nimport { Component, ElementRef, Inject, NgZone, OnInit, ViewChild } from '@angular/core';\r\nimport { GoogleMap } from '@angular/google-maps';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { IAddress, ICountryLink } from '../../../_shared/public-api';\r\nimport { IMapPickerConfig } from '../model';\r\n\r\n@Component({\r\n  selector: 'bda-map-picker',\r\n  templateUrl: './map-picker.component.html',\r\n  styleUrls: ['./map-picker.component.scss'],\r\n  animations: [\r\n    trigger('fade', [\r\n      transition('void => *', [\r\n        style({ opacity: 0 }),\r\n        animate(100, style({ opacity: 1 })),\r\n      ]),\r\n      transition('* => void', [animate(100, style({ opacity: 0 }))]),\r\n    ]),\r\n  ],\r\n})\r\nexport class MapPickerComponent implements OnInit {\r\n  @ViewChild(GoogleMap, { static: false }) map!: GoogleMap;\r\n  @ViewChild('mapSearch', { static: false }) mapSearch!: ElementRef;\r\n\r\n  markerOptions: google.maps.MarkerOptions = {\r\n    draggable: false,\r\n  };\r\n  address!: IAddress;\r\n  location!: google.maps.LatLng;\r\n  center: google.maps.LatLng = new google.maps.LatLng(53.440523, -7.754414);\r\n  zoom = 8;\r\n  loading = false;\r\n  ready = false;\r\n\r\n  private geocoder!: google.maps.Geocoder;\r\n\r\n  constructor(\r\n    private ngZone: NgZone,\r\n    public dialogRef: MatDialogRef<MapPickerComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: IMapPickerConfig\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    setTimeout(() => {\r\n      this.initAutocomplete();\r\n      this.geocoder = new google.maps.Geocoder();\r\n      if (this.data && this.data.point) {\r\n        this.geocodeLatLng(new google.maps.LatLng(this.data.point), true);\r\n      }\r\n      this.map.tilesloaded.subscribe(() =>\r\n        setTimeout(() => (this.ready = true))\r\n      );\r\n    });\r\n  }\r\n\r\n  selectAddress(): void {\r\n    if (!this.data?.readonly) {\r\n      this.dialogRef.close(this.address);\r\n    }\r\n  }\r\n\r\n  cancel(): void {\r\n    this.dialogRef.close();\r\n  }\r\n\r\n  addMarker(event: google.maps.MapMouseEvent): void {\r\n    if (event.latLng && !this.data?.readonly) {\r\n      this.geocodeLatLng(event.latLng);\r\n    }\r\n  }\r\n\r\n  private initAutocomplete(): void {\r\n    // Create the search box and link it to the UI element.\r\n    const searchBox = new google.maps.places.Autocomplete(\r\n      this.mapSearch.nativeElement\r\n    );\r\n    this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(\r\n      this.mapSearch.nativeElement\r\n    );\r\n\r\n    // Listen for the event fired when the user selects a prediction and retrieve\r\n    // more details for that place.\r\n    searchBox.addListener('place_changed', () =>\r\n      this.ngZone.run(() => {\r\n        this.loading = true;\r\n        const place = searchBox.getPlace();\r\n        if (!place || !place.geometry?.location) {\r\n          return;\r\n        }\r\n        this.address = {\r\n          full: place.formatted_address,\r\n          placeId: place.place_id,\r\n          lat: place.geometry.location.lat(),\r\n          lng: place.geometry.location.lng(),\r\n          country: this.getCountryFromAddressComponents(\r\n            place.address_components\r\n          ),\r\n        };\r\n\r\n        this.location = place.geometry.location;\r\n        this.center = place.geometry.location;\r\n        this.zoom = 16;\r\n        this.loading = false;\r\n      })\r\n    );\r\n  }\r\n\r\n  private geocodeLatLng(latlng: google.maps.LatLng, recenter = false): void {\r\n    this.loading = true;\r\n    this.geocoder.geocode({ location: latlng }, (results, status) =>\r\n      this.ngZone.run(() => {\r\n        if (status === 'OK' && results?.length) {\r\n          const geocodePlace = results[0];\r\n          if (geocodePlace) {\r\n            this.location = geocodePlace.geometry.location;\r\n            this.address = {\r\n              full: geocodePlace.formatted_address,\r\n              placeId: geocodePlace.place_id,\r\n              lat: this.location.lat(),\r\n              lng: this.location.lng(),\r\n              country: this.getCountryFromAddressComponents(\r\n                geocodePlace.address_components\r\n              ),\r\n            };\r\n\r\n            if (recenter) {\r\n              this.center = this.location;\r\n            }\r\n            this.mapSearch.nativeElement.value = geocodePlace.formatted_address;\r\n            this.zoom = 16;\r\n          } else {\r\n            window.alert('No results found');\r\n          }\r\n        } else {\r\n          window.alert('Geocoder failed due to: ' + status);\r\n        }\r\n        this.loading = false;\r\n      })\r\n    );\r\n  }\r\n\r\n  private getCountryFromAddressComponents(\r\n    addressComponents: google.maps.GeocoderAddressComponent[] | undefined\r\n  ): ICountryLink | undefined {\r\n    if (!addressComponents) {\r\n      return undefined;\r\n    }\r\n    const countryComp = addressComponents.find((c) =>\r\n      c.types.some((t) => t === 'country')\r\n    );\r\n    if (!countryComp) {\r\n      return undefined;\r\n    }\r\n    const countryLink: ICountryLink = {\r\n      id: countryComp.short_name,\r\n      display: countryComp.long_name,\r\n      codeISO2: countryComp.short_name,\r\n      codeISO3: undefined,\r\n    };\r\n    return countryLink;\r\n  }\r\n}\r\n","<div class=\"map-container\">\r\n  <mat-progress-bar mode=\"indeterminate\" *ngIf=\"loading\"></mat-progress-bar>\r\n  <div\r\n    class=\"init-loading\"\r\n    *ngIf=\"!ready\"\r\n    fxLayout=\"column\"\r\n    fxLayoutAlign=\"center center\"\r\n    fxFlexFill\r\n    [@fade]\r\n  >\r\n    <mat-spinner></mat-spinner>\r\n  </div>\r\n  <div fxLayout=\"column\" fxFlexFill fxLayoutGap=\"20px\">\r\n    <google-map\r\n      height=\"100%\"\r\n      width=\"100%\"\r\n      fxFlex\r\n      [center]=\"center\"\r\n      [zoom]=\"zoom\"\r\n      (mapClick)=\"addMarker($event)\"\r\n    >\r\n      <input\r\n        #mapSearch\r\n        class=\"map-search\"\r\n        type=\"text\"\r\n        placeholder=\"Search Address\"\r\n        [attr.readonly]=\"data?.readonly\"\r\n      />\r\n      <map-marker\r\n        #marker\r\n        [position]=\"location\"\r\n        [options]=\"markerOptions\"\r\n        (mapClick)=\"selectAddress()\"\r\n      >\r\n      </map-marker>\r\n    </google-map>\r\n    <div fxLayout=\"row\" *ngIf=\"!data?.readonly\" class=\"actions\">\r\n      <button\r\n        cdkFocusInitial\r\n        mat-raised-button\r\n        color=\"primary\"\r\n        (click)=\"selectAddress()\"\r\n        [disabled]=\"!address\"\r\n      >\r\n        Select\r\n      </button>\r\n      <div fxFlex></div>\r\n      <button mat-button color=\"primary\" (click)=\"cancel()\">Cancel</button>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import * as _ from 'lodash';\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'selectDisplay',\r\n})\r\nexport class SelectDisplayPipe implements PipeTransform {\r\n  transform(value: any, paths: (string | undefined)[]): string {\r\n    return value\r\n      ? paths\r\n          .map((p) => (p !== undefined ? _.get(value, p) : undefined))\r\n          .filter((p) => p)\r\n          .join(', ')\r\n      : '';\r\n  }\r\n}\r\n","import _ from 'lodash';\r\n\r\nexport class FilterUtils {\r\n  static getSearchTagsPredicate(\r\n    searchString: string | undefined\r\n  ): string | undefined {\r\n    if (searchString) {\r\n      const parts = searchString.split(/ +(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/g);\r\n      const textSearch = parts.map(\r\n        (v) => `$it contains '${v.replace(/['\"]+/g, '').trim().toLowerCase()}'`\r\n      );\r\n      return `tags any (${textSearch.join(' or ')})`;\r\n    } else {\r\n      return undefined;\r\n    }\r\n  }\r\n\r\n  static getFilterPredicate(...searchQueries: (string | undefined)[]): string {\r\n    return _.chain(searchQueries)\r\n      .filter((s) => s !== undefined && s !== '' && s !== ' ')\r\n      .map((s) => `(${s})`)\r\n      .join(' and ')\r\n      .value();\r\n  }\r\n\r\n  static getJointPredicate(\r\n    searchString: string | undefined,\r\n    ...searchQueries: string[]\r\n  ): string {\r\n    return this.getFilterPredicate(\r\n      this.getSearchTagsPredicate(searchString),\r\n      ...searchQueries\r\n    );\r\n  }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport * as _ from 'lodash';\r\nimport { lastValueFrom } from 'rxjs';\r\nimport { startWith, takeWhile, tap } from 'rxjs/operators';\r\n\r\nimport { Component, Input, OnInit, Optional, Self } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NgControl } from '@angular/forms';\r\n\r\nimport { FilterUtils } from '../../common/utils/filter.utils';\r\nimport { ISelectApiLoader, ISelectDataLoader } from './model';\r\n\r\n@Component({\r\n  selector: 'bda-select',\r\n  templateUrl: './select.component.html',\r\n  styleUrls: ['./select.component.scss'],\r\n})\r\nexport class SelectComponent implements OnInit, ControlValueAccessor {\r\n  @Input() apiLoader?: ISelectApiLoader<any>;\r\n  @Input() dataLoader?: ISelectDataLoader<any>;\r\n  @Input() title?: string;\r\n  @Input() displayPaths!: string[];\r\n  @Input() readonlyPaths?: (string | undefined)[];\r\n  @Input() parentControl?: AbstractControl;\r\n  @Input() parentControlValuePath?: string;\r\n  @Input() filterByParentPath?: string;\r\n  @Input() enableSearch?: boolean;\r\n\r\n  dataSource?: any[];\r\n  searchCtrl = new FormControl();\r\n  dataLoadedOnce?: boolean;\r\n  loading?: boolean;\r\n\r\n  get control() {\r\n    return this.ngControl.control as FormControl;\r\n  }\r\n\r\n  private get hasParent() {\r\n    return this.parentControl !== undefined;\r\n  }\r\n\r\n  constructor(@Optional() @Self() public ngControl: NgControl) {\r\n    if (this.ngControl != null) {\r\n      this.ngControl.valueAccessor = this;\r\n    }\r\n  }\r\n\r\n  async ngOnInit(): Promise<void> {\r\n    if (this.hasParent) {\r\n      this.parentControl?.valueChanges\r\n        .pipe(\r\n          startWith(this.parentControl.value),\r\n          tap(() => {\r\n            if (this.dataLoadedOnce) {\r\n              this.control.setValue(undefined);\r\n              this.searchCtrl.setValue(undefined);\r\n            }\r\n          })\r\n        )\r\n        .subscribe(() => this.loadData());\r\n    } else {\r\n      this.control.statusChanges\r\n        .pipe(\r\n          startWith({}),\r\n          takeWhile(() => !this.dataLoadedOnce)\r\n        )\r\n        .subscribe(() => this.loadData());\r\n    }\r\n  }\r\n\r\n  async search(event: Event | undefined): Promise<void> {\r\n    event?.stopPropagation();\r\n    await this.loadData(false);\r\n  }\r\n\r\n  async clearSearch(): Promise<void> {\r\n    this.searchCtrl.setValue(undefined);\r\n    await this.loadData();\r\n  }\r\n\r\n  compareObjects(o1: any, o2: any): boolean {\r\n    const tryCompare = (object1: any, id1: string, object2: any, id2: string) =>\r\n      _.has(object1, id1) &&\r\n      _.has(object2, id2) &&\r\n      _.get(object1, id1) === _.get(object2, id2);\r\n\r\n    const res =\r\n      o1 &&\r\n      o2 &&\r\n      (o1 === o2 ||\r\n        tryCompare(o1, 'id', o2, 'id') ||\r\n        tryCompare(o1, 'id', o2, 'uid') ||\r\n        tryCompare(o1, 'uid', o2, 'uid') ||\r\n        tryCompare(o1, 'uid', o2, 'id'));\r\n    return res;\r\n  }\r\n\r\n  getParentValue() {\r\n    if (!this.hasParent) {\r\n      return undefined;\r\n    }\r\n    let parentValue = this.parentControl?.value;\r\n    if (this.parentControlValuePath) {\r\n      parentValue = _.get(parentValue, this.parentControlValuePath);\r\n    }\r\n    return parentValue;\r\n  }\r\n\r\n  writeValue(_obj: any): void {}\r\n\r\n  registerOnChange(_fn: any): void {}\r\n\r\n  registerOnTouched(_fn: any): void {}\r\n\r\n  private async loadData(ensureCurrentValue = true): Promise<void> {\r\n    if (!this.control.enabled) {\r\n      return;\r\n    }\r\n    this.loading = true;\r\n    this.dataSource = await this.getDataSource();\r\n    if (this.dataSource) {\r\n      if (ensureCurrentValue) {\r\n        this.ensureCurrentValue();\r\n      }\r\n      this.dataLoadedOnce = true;\r\n    }\r\n    this.loading = false;\r\n  }\r\n\r\n  private async getDataSource() {\r\n    if (this.apiLoader) {\r\n      const predicates: (string | undefined)[] = [];\r\n      if (this.hasParent) {\r\n        if (!this.filterByParentPath) {\r\n          return undefined;\r\n        }\r\n        let parentValue = this.getParentValue();\r\n        if (!parentValue) {\r\n          return undefined;\r\n        }\r\n        if (!_.isNumber(parentValue)) {\r\n          parentValue = `'${parentValue}'`;\r\n        }\r\n        predicates.push(`${this.filterByParentPath} = ${parentValue}`);\r\n      }\r\n      predicates.push(\r\n        FilterUtils.getSearchTagsPredicate(this.searchCtrl.value)\r\n      );\r\n      const query = _.filter(predicates, (q) => q).join(' and ');\r\n      const res = await lastValueFrom(\r\n        this.apiLoader.list(\r\n          {\r\n            limit: 20,\r\n            query: query !== '' ? query : undefined,\r\n            fields: undefined,\r\n            nextToken: undefined,\r\n          },\r\n          {\r\n            searchQuery: this.searchCtrl.value,\r\n          }\r\n        )\r\n      );\r\n      return res.items;\r\n    } else if (this.dataLoader) {\r\n      return await lastValueFrom(this.dataLoader.list(this));\r\n    } else {\r\n      return undefined;\r\n    }\r\n  }\r\n\r\n  private ensureCurrentValue(): void {\r\n    const currentValue = this.control.value;\r\n    if (\r\n      currentValue &&\r\n      !this.dataSource?.some((v) => this.compareObjects(v, currentValue))\r\n    ) {\r\n      this.dataSource?.unshift(currentValue);\r\n    }\r\n  }\r\n}\r\n","<mat-form-field>\r\n  <mat-label *ngIf=\"title\">{{ title }}</mat-label>\r\n  <ng-container *ngIf=\"control.enabled; else disabledInput\">\r\n    <mat-select [formControl]=\"control\" [compareWith]=\"compareObjects\">\r\n      <div\r\n        *ngIf=\"enableSearch\"\r\n        fxLayout=\"row\"\r\n        fxLayoutAlign=\"start center\"\r\n        class=\"lookup-search\"\r\n      >\r\n        <input\r\n          fxFlex=\"grow\"\r\n          [formControl]=\"searchCtrl\"\r\n          (keyup.enter)=\"search($event)\"\r\n          (keydown)=\"$event.stopPropagation()\"\r\n          placeholder=\"search\"\r\n          class=\"search\"\r\n        />\r\n        <div fxFlex=\"64px\" fxLayout=\"row\" fxLayoutAlign=\"end center\">\r\n          <button\r\n            mat-icon-button\r\n            (click)=\"clearSearch()\"\r\n            *ngIf=\"searchCtrl.value && searchCtrl.value !== ''\"\r\n          >\r\n            <mat-icon>clear</mat-icon>\r\n          </button>\r\n          <button mat-icon-button (click)=\"search($event)\">\r\n            <mat-icon>search</mat-icon>\r\n          </button>\r\n        </div>\r\n        <mat-progress-bar\r\n          *ngIf=\"loading\"\r\n          mode=\"indeterminate\"\r\n        ></mat-progress-bar>\r\n      </div>\r\n      <ng-container *ngIf=\"dataSource?.length; else noDataTmpl\">\r\n        <mat-option *ngFor=\"let v of dataSource\" [value]=\"v\">\r\n          {{ v | selectDisplay : displayPaths }}\r\n        </mat-option>\r\n      </ng-container>\r\n      <ng-template #noDataTmpl>\r\n        <mat-option disabled=\"true\"> No data to display </mat-option>\r\n      </ng-template>\r\n    </mat-select>\r\n  </ng-container>\r\n  <ng-template #disabledInput>\r\n    <input\r\n      matInput\r\n      [value]=\"\r\n        control.value\r\n          | selectDisplay\r\n            : (readonlyPaths?.length ? readonlyPaths! : displayPaths)\r\n      \"\r\n      disabled\r\n    />\r\n  </ng-template>\r\n  <mat-progress-bar\r\n    *ngIf=\"loading && !dataLoadedOnce\"\r\n    mode=\"indeterminate\"\r\n    class=\"front\"\r\n  ></mat-progress-bar>\r\n</mat-form-field>\r\n","import { Subject } from 'rxjs';\r\n\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport {\r\n    Component, ElementRef, HostBinding, Input, OnDestroy, OnInit, Optional, Self\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NgControl } from '@angular/forms';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\n\r\nimport { UnitType } from '../../common/uom/uom';\r\nimport { UomService } from '../../common/uom/uom.service';\r\n\r\n@Component({\r\n  selector: 'bda-uom-input',\r\n  templateUrl: './uom-input.component.html',\r\n  styleUrls: ['./uom-input.component.scss'],\r\n  providers: [{ provide: MatFormFieldControl, useExisting: UomInputComponent }],\r\n})\r\nexport class UomInputComponent\r\n  implements\r\n    OnInit,\r\n    OnDestroy,\r\n    MatFormFieldControl<number>,\r\n    ControlValueAccessor\r\n{\r\n  constructor(\r\n    @Optional() @Self() public ngControl: NgControl,\r\n    private uom: UomService,\r\n    private fm: FocusMonitor,\r\n    private elRef: ElementRef<HTMLElement>\r\n  ) {\r\n    if (this.ngControl !== null) {\r\n      this.ngControl.valueAccessor = this as any;\r\n    }\r\n    fm.monitor(elRef, true).subscribe((origin) => {\r\n      this.focused = !!origin;\r\n      this.stateChanges.next();\r\n    });\r\n  }\r\n\r\n  static nextId = 0;\r\n\r\n  @Input() unit!: UnitType;\r\n  @Input() hideUomName?: boolean;\r\n\r\n  @Input()\r\n  get value(): number | null {\r\n    const displayValue = this.displayValueCtrl.value;\r\n    return displayValue\r\n      ? this.uom.getStoreValue(this.unit, displayValue)\r\n      : null;\r\n  }\r\n  set value(storeValue: number | null) {\r\n    this.displayValueCtrl.setValue(\r\n      storeValue\r\n        ? this.uom.getFormattedDisplayValue(this.unit, storeValue)\r\n        : null,\r\n      { onlySelf: true, emitEvent: false }\r\n    );\r\n  }\r\n\r\n  @Input()\r\n  get placeholder(): string {\r\n    return this.inputPlaceholder;\r\n  }\r\n  set placeholder(plh) {\r\n    this.inputPlaceholder = plh;\r\n    this.stateChanges.next();\r\n  }\r\n\r\n  @Input()\r\n  get required(): boolean {\r\n    return this.inputRequired;\r\n  }\r\n  set required(req) {\r\n    this.inputRequired = coerceBooleanProperty(req);\r\n    this.stateChanges.next();\r\n  }\r\n\r\n  @Input()\r\n  get disabled(): boolean {\r\n    return this.inputDisabled;\r\n  }\r\n  set disabled(value: boolean) {\r\n    const options = { onlySelf: true, emitEvent: false };\r\n    this.inputDisabled = coerceBooleanProperty(value);\r\n    this.inputDisabled\r\n      ? this.displayValueCtrl.disable(options)\r\n      : this.displayValueCtrl.enable(options);\r\n    this.stateChanges.next();\r\n  }\r\n\r\n  get empty(): boolean {\r\n    return !this.displayValueCtrl.value;\r\n  }\r\n\r\n  displayValueCtrl: FormControl = new FormControl();\r\n  stateChanges = new Subject<void>();\r\n  focused = false;\r\n  errorState = false;\r\n  controlType = 'uom-input';\r\n\r\n  private inputPlaceholder!: string;\r\n  private inputRequired = false;\r\n  private inputDisabled = false;\r\n\r\n  @HostBinding() id = `uom-input-${UomInputComponent.nextId++}`;\r\n\r\n  @HostBinding('class.floating')\r\n  get shouldLabelFloat(): boolean {\r\n    return this.focused || !this.empty;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.displayValueCtrl.valueChanges.subscribe(() => {\r\n      this.stateChanges.next();\r\n      this.onChange(this.value || undefined);\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.stateChanges.complete();\r\n    this.fm.stopMonitoring(this.elRef);\r\n  }\r\n\r\n  setDescribedByIds(ids: string[]): void {\r\n    const controlElement = this.elRef.nativeElement.querySelector(\r\n      '.uom-input-container'\r\n    );\r\n    if (controlElement) {\r\n      controlElement.setAttribute('aria-describedby', ids.join(' '));\r\n    }\r\n  }\r\n\r\n  onContainerClick(event: MouseEvent): void {\r\n    if ((event.target as Element).tagName.toLowerCase() !== 'input') {\r\n      this.elRef.nativeElement.querySelector('input')?.focus();\r\n    }\r\n  }\r\n\r\n  onChange = (_: any) => {};\r\n  onTouched = () => {};\r\n\r\n  writeValue(v: number): void {\r\n    this.value = v;\r\n  }\r\n\r\n  registerOnChange(onChange: any): void {\r\n    this.onChange = onChange;\r\n  }\r\n\r\n  registerOnTouched(onTouched: any): void {\r\n    this.onTouched = onTouched;\r\n  }\r\n}\r\n","<input [formControl]=\"displayValueCtrl\" type=\"number\" step=\"0.1\" />\r\n<span class=\"uom-name\" *ngIf=\"!hideUomName\" matSuffix>{{\r\n  \"\" | uom: unit:\"uom\"\r\n}}</span>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\n\r\nimport { BdaCommonModule } from '../common/common.module';\r\nimport { FilePickerComponent } from './file-picker/file-picker.component';\r\nimport { MapObjectsComponent } from './map/map-objects/map-objects.component';\r\nimport { MapPickerComponent } from './map/map-picker/map-picker.component';\r\nimport { SelectDisplayPipe } from './select/select-display.pipe';\r\nimport { SelectComponent } from './select/select.component';\r\nimport { UomInputComponent } from './uom-input/uom-input.component';\r\n\r\nconst controls = [\r\n  FilePickerComponent,\r\n  SelectComponent,\r\n  UomInputComponent,\r\n  MapObjectsComponent,\r\n  MapPickerComponent,\r\n];\r\nconst pipes = [SelectDisplayPipe];\r\n\r\n@NgModule({\r\n  declarations: [...controls, ...pipes],\r\n  imports: [\r\n    CommonModule,\r\n    BdaCommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    FlexLayoutModule,\r\n    GoogleMapsModule,\r\n    MatButtonModule,\r\n    MatDialogModule,\r\n    MatIconModule,\r\n    MatChipsModule,\r\n    MatFormFieldModule,\r\n    MatInputModule,\r\n    MatProgressBarModule,\r\n    MatSelectModule,\r\n    MatProgressSpinnerModule,\r\n    MatDatepickerModule,\r\n    MatExpansionModule,\r\n  ],\r\n  exports: [...controls],\r\n})\r\nexport class BdaControlsModule {}\r\n","import { Directive, Inject } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\n\r\nimport { EDIT_FORM_ITEM_DATA, EditFormItem, EditItemTemplateData } from '../model';\r\n\r\n@Directive()\r\nexport abstract class EditFormTemplateBaseComponent<\r\n  T extends EditFormItem<any>\r\n> {\r\n  item!: T;\r\n  control!: FormControl;\r\n  formGroup!: FormGroup;\r\n  entity?: any;\r\n\r\n  constructor(\r\n    @Inject(EDIT_FORM_ITEM_DATA) protected data: EditItemTemplateData<T>\r\n  ) {\r\n    this.item = data.item;\r\n    this.control = data.formGroup.controls[data.item.path] as FormControl;\r\n    this.formGroup = data.formGroup;\r\n    this.entity = data.entity;\r\n  }\r\n}\r\n","import _ from 'lodash';\r\n\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { IAddress } from '../../../_shared/public-api';\r\nimport { GoogleApiLoaderService } from '../../../common/public-api';\r\nimport {\r\n  IMapPickerConfig,\r\n  MapPickerComponent,\r\n} from '../../../controls/public-api';\r\nimport { WebUiService } from '../../../ui-service/ui.service';\r\nimport {\r\n  AddressEditFormItem,\r\n  EDIT_FORM_ITEM_DATA,\r\n  EditItemTemplateData,\r\n} from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-address',\r\n  templateUrl: './address.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class AddressEditFormItemComponent extends EditFormTemplateBaseComponent<AddressEditFormItem> {\r\n  constructor(\r\n    @Inject(EDIT_FORM_ITEM_DATA)\r\n    protected override data: EditItemTemplateData<AddressEditFormItem>,\r\n    private googleApiLoader: GoogleApiLoaderService,\r\n    public dialog: MatDialog,\r\n    private ui: WebUiService\r\n  ) {\r\n    super(data);\r\n    if (navigator) {\r\n      navigator.geolocation.getCurrentPosition((pos) => {\r\n        this.item.defaultValue = {\r\n          lat: +pos.coords.latitude,\r\n          lng: +pos.coords.longitude,\r\n        };\r\n      });\r\n    }\r\n  }\r\n\r\n  async openMapPicker(): Promise<void> {\r\n    // this.loading = true;\r\n    const mapApiLoaded = await this.googleApiLoader.ensureGoogleMapsApi();\r\n    if (!mapApiLoaded) {\r\n      this.ui.showErrorMessage('Failed to load map, please try again.');\r\n      return;\r\n    }\r\n    let config: IMapPickerConfig | undefined;\r\n    const currentAddress =\r\n      (_.get(this.entity, this.item.path) as IAddress) ||\r\n      this.item.defaultValue;\r\n    if (currentAddress) {\r\n      config = {};\r\n      config.point = { lat: currentAddress.lat, lng: currentAddress.lng };\r\n    }\r\n    const dialogRef = this.dialog.open(MapPickerComponent, {\r\n      width: '70%',\r\n      height: '80%',\r\n      data: config,\r\n    });\r\n    dialogRef.afterClosed().subscribe((result: IAddress) => {\r\n      if (result) {\r\n        const formControl = this.formGroup.controls[this.item.path];\r\n        formControl.setValue(result);\r\n        formControl.markAsDirty();\r\n      }\r\n    });\r\n    // this.loading = false;\r\n  }\r\n\r\n  //TODO add button to clear address\r\n\r\n  // clearAddress() {\r\n  //   const formControl = this.formGroup.controls[this.item.path];\r\n  //   formControl.setValue(undefined);\r\n  //   formControl.markAsDirty();\r\n  // }\r\n}\r\n","<mat-form-field class=\"cursor-pointer\">\r\n  <mat-label>{{ item.title }}</mat-label>\r\n  <textarea\r\n    cdkTextareaAutosize\r\n    [value]=\"control.value?.full\"\r\n    (click)=\"openMapPicker()\"\r\n    matInput\r\n    class=\"ctrl-map-picker\"\r\n    type=\"text\"\r\n    readonly\r\n  ></textarea>\r\n  <mat-icon matSuffix>place</mat-icon>\r\n  <!-- <button *ngIf=\"control.value\" mat-icon-button matSuffix (click)=\"clearAddress()\">\r\n    <mat-icon>clear</mat-icon>\r\n  </button> -->\r\n</mat-form-field>\r\n","import { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { Component } from '@angular/core';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\n\r\nimport { ChipsEditFormItem } from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-chips',\r\n  templateUrl: './chips.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class ChipsEditFormItemComponent extends EditFormTemplateBaseComponent<ChipsEditFormItem> {\r\n  readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n  addChip(event: MatChipInputEvent): void {\r\n    const value = event.value;\r\n    const formControl = this.formGroup.controls[this.item.path];\r\n    const chips: string[] = formControl.value || [];\r\n    if ((value || '').trim()) {\r\n      chips.push(value.trim());\r\n    }\r\n    formControl.setValue(chips);\r\n    formControl.markAsDirty();\r\n    const input = event.chipInput?.inputElement;\r\n    if (input) {\r\n      input.value = '';\r\n    }\r\n  }\r\n\r\n  removeChip(chip: string): void {\r\n    const formControl = this.formGroup.controls[this.item.path];\r\n    const chips: string[] = formControl.value || [];\r\n    const index = chips.indexOf(chip);\r\n    if (index >= 0) {\r\n      chips.splice(index, 1);\r\n    }\r\n    formControl.setValue(chips);\r\n    formControl.markAsDirty();\r\n  }\r\n}\r\n","<mat-form-field>\r\n  <mat-chip-list #chipList>\r\n    <mat-chip\r\n      *ngFor=\"let tag of control.value\"\r\n      selectable=\"true\"\r\n      [removable]=\"!item.disableEdit\"\r\n      (removed)=\"removeChip(tag)\"\r\n    >\r\n      {{ tag }}\r\n      <mat-icon *ngIf=\"!item.disableEdit\" matChipRemove>cancel</mat-icon>\r\n    </mat-chip>\r\n    <input\r\n      [placeholder]=\"item.title\"\r\n      [matChipInputFor]=\"chipList\"\r\n      [disabled]=\"item.disableEdit\"\r\n      [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n      matChipInputAddOnBlur=\"true\"\r\n      (matChipInputTokenEnd)=\"addChip($event)\"\r\n    />\r\n  </mat-chip-list>\r\n</mat-form-field>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { DataLookupEditFormItem } from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-data-lookup',\r\n  templateUrl: './data-lookup.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class DataLookupFormItemComponent extends EditFormTemplateBaseComponent<DataLookupEditFormItem> {}\r\n","<bda-select\r\n  [formControl]=\"control\"\r\n  [displayPaths]=\"item.displayPaths\"\r\n  [readonlyPaths]=\"item.readonlyPaths\"\r\n  [apiLoader]=\"item.apiLoader\"\r\n  [dataLoader]=\"item.dataLoader\"\r\n  [title]=\"item.title\"\r\n  [parentControl]=\"formGroup.controls[item.parentEditItem || '']\"\r\n  [parentControlValuePath]=\"item.parentEditItemValuePath\"\r\n  [filterByParentPath]=\"item.filterByParentPath\"\r\n  [enableSearch]=\"item.enableSearch\"\r\n>\r\n</bda-select>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { DateEditFormItem } from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-date',\r\n  templateUrl: './date.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class DateEditFormItemComponent extends EditFormTemplateBaseComponent<DateEditFormItem> {\r\n  defaultDateFilter = (): boolean => true;\r\n}\r\n","<mat-form-field>\r\n  <mat-label>{{ item.title }}</mat-label>\r\n  <input\r\n    [formControl]=\"control\"\r\n    [matDatepicker]=\"picker\"\r\n    [matDatepickerFilter]=\"item.dateFilter || defaultDateFilter\"\r\n    matInput\r\n    autocomplete=\"off\"\r\n  />\r\n  <mat-datepicker-toggle\r\n    matSuffix\r\n    mat-icon-button\r\n    [for]=\"picker\"\r\n  ></mat-datepicker-toggle>\r\n  <mat-datepicker #picker></mat-datepicker>\r\n</mat-form-field>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { FileEditFormItem } from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-file',\r\n  templateUrl: './file.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class FileEditFormItemComponent extends EditFormTemplateBaseComponent<FileEditFormItem> {\r\n  onFilesPicked(files: File[]): void {\r\n    const formControl = this.formGroup.controls[this.item.path];\r\n    formControl.setValue(files[0]);\r\n    formControl.markAsDirty();\r\n  }\r\n}\r\n","<mat-form-field\r\n  class=\"cursor-pointer file-item\"\r\n  (click)=\"filePicker.pickFiles()\"\r\n>\r\n  <mat-label>{{ item.title }}</mat-label>\r\n  <input [value]=\"control.value?.name\" matInput readonly />\r\n  <button mat-button matSuffix mat-icon-button>\r\n    <mat-icon>folder</mat-icon>\r\n  </button>\r\n</mat-form-field>\r\n<bda-file-picker\r\n  #filePicker\r\n  [accept]=\"item.accept\"\r\n  (filesPicked)=\"onFilesPicked($event)\"\r\n>\r\n</bda-file-picker>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { NumberEditFormItem } from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-number',\r\n  templateUrl: './number.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class NumberEditFormItemComponent extends EditFormTemplateBaseComponent<NumberEditFormItem> {}\r\n","<mat-form-field>\r\n  <mat-label>{{ item.title }}</mat-label>\r\n  <input [formControl]=\"control\" matInput type=\"number\" autocomplete=\"off\" />\r\n</mat-form-field>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { PasswordEditFormItem } from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-password-form-item',\r\n  templateUrl: './password.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class PasswordEditFormItemComponent extends EditFormTemplateBaseComponent<PasswordEditFormItem> {}\r\n","<mat-form-field>\r\n  <mat-label>{{ item.title }}</mat-label>\r\n  <input [formControl]=\"control\" matInput type=\"password\" autocomplete=\"off\" />\r\n  <mat-hint *ngIf=\"item.hint\">{{ item.hint }}</mat-hint>\r\n</mat-form-field>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { StaticLookupEditFormItem } from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-static-lookup',\r\n  templateUrl: './static-lookup.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class StaticLookupEditFormItemComponent extends EditFormTemplateBaseComponent<StaticLookupEditFormItem> {}\r\n","<mat-form-field>\r\n  <mat-label>{{ item.title }}</mat-label>\r\n  <mat-select [formControl]=\"control\">\r\n    <mat-option\r\n      *ngFor=\"let v of item.refs\"\r\n      [value]=\"item.valueField ? v[item.valueField] : v\"\r\n    >\r\n      {{ v[item.displayField] }}\r\n    </mat-option>\r\n  </mat-select>\r\n</mat-form-field>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { TextEditFormItem } from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-text-form-item',\r\n  templateUrl: './text.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class TextEditFormItemComponent extends EditFormTemplateBaseComponent<TextEditFormItem> {}\r\n","<mat-form-field>\r\n  <mat-label>{{ item.title }}</mat-label>\r\n  <input\r\n    [formControl]=\"control\"\r\n    [ngClass]=\"{ 'mat-input-capitalise': item.autoCapitalise }\"\r\n    matInput\r\n    type=\"text\"\r\n    autocomplete=\"off\"\r\n  />\r\n</mat-form-field>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToggleEditFormItem } from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-toggle',\r\n  templateUrl: './toggle.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class ToggleEditFormItemComponent extends EditFormTemplateBaseComponent<ToggleEditFormItem> {}\r\n","<mat-slide-toggle color=\"primary\" [formControl]=\"control\">\r\n  <span>{{ item.title }}</span>\r\n</mat-slide-toggle>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { UomEditFormItem } from '../../model';\r\nimport { EditFormTemplateBaseComponent } from '../template.base.component';\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-uom',\r\n  templateUrl: './uom.component.html',\r\n  styleUrls: ['../template.component.scss'],\r\n})\r\nexport class UomEditFormItemComponent extends EditFormTemplateBaseComponent<UomEditFormItem> {}\r\n","<mat-form-field>\r\n  <mat-label>{{ item.title }}</mat-label>\r\n  <bda-uom-input\r\n    [formControl]=\"control\"\r\n    [disabled]=\"item.disableEdit === true\"\r\n    [unit]=\"item.unit\"\r\n  >\r\n  </bda-uom-input>\r\n</mat-form-field>\r\n","import dayjs from 'dayjs';\r\nimport _ from 'lodash';\r\n\r\nimport { ComponentType } from '@angular/cdk/portal';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { DateFilterFn } from '@angular/material/datepicker';\r\n\r\nimport { IAddress } from '../_shared/model/address';\r\nimport { UnitType } from '../common/uom/uom';\r\nimport { IMapPickerConfig } from '../controls/map/model';\r\nimport { ISelectApiLoader, ISelectDataLoader } from '../controls/select/model';\r\nimport { AddressEditFormItemComponent } from './templates/address/address.component';\r\nimport { ChipsEditFormItemComponent } from './templates/chips/chips.component';\r\nimport { DataLookupFormItemComponent } from './templates/data-lookup/data-lookup.component';\r\nimport { DateEditFormItemComponent } from './templates/date/date.component';\r\nimport { FileEditFormItemComponent } from './templates/file/file.component';\r\nimport { NumberEditFormItemComponent } from './templates/number/number.component';\r\nimport { PasswordEditFormItemComponent } from './templates/password/password.component';\r\nimport {\r\n  StaticLookupEditFormItemComponent\r\n} from './templates/static-lookup/static-lookup.component';\r\nimport { EditFormTemplateBaseComponent } from './templates/template.base.component';\r\nimport { TextEditFormItemComponent } from './templates/text/text.component';\r\nimport { ToggleEditFormItemComponent } from './templates/toggle/toggle.component';\r\nimport { UomEditFormItemComponent } from './templates/uom/uom.component';\r\n\r\nexport const EDIT_FORM_ITEM_DATA = new InjectionToken<\r\n  EditItemTemplateData<any>\r\n>('Edit form item data');\r\n\r\nexport class EditItemTemplateData<T extends EditFormItem<any>> {\r\n  item!: T;\r\n  formGroup!: FormGroup;\r\n  entity?: any;\r\n}\r\n\r\nexport class VisibilityCondition {\r\n  key!: string;\r\n  value!: any;\r\n}\r\n\r\nexport class EditFormItemsGroup {\r\n  id!: string;\r\n  display!: string;\r\n}\r\n\r\nexport abstract class EditFormItem<T> {\r\n  path!: string;\r\n  title!: string;\r\n  defaultValue?: any;\r\n  required?: boolean;\r\n  pattern?: string;\r\n  disableEdit?: boolean;\r\n  forceDisableEdit?: boolean;\r\n  flex?: string;\r\n  visibleIf?: VisibilityCondition;\r\n  hidden?: boolean;\r\n  groupId?: string;\r\n  valueChanges?: (value: any, form: FormGroup) => void;\r\n  map?: (value: any) => any;\r\n\r\n  abstract template: ComponentType<EditFormTemplateBaseComponent<any>>;\r\n\r\n  constructor(init?: Partial<EditFormItem<T>>) {\r\n    _.mergeWith(this, init, (objValue, srcValue) => {\r\n      _.isArray(srcValue) ? srcValue : undefined;\r\n    });\r\n  }\r\n\r\n  parseToEntityValue(controlValue?: any): T | undefined {\r\n    if (controlValue === undefined || controlValue === null) {\r\n      return undefined;\r\n    }\r\n    const entityValue = this.doParseToEntityValue(controlValue);\r\n    return this.map ? this.map(entityValue) : entityValue;\r\n  }\r\n\r\n  parseToEditFormValue(entityValue?: any): any {\r\n    if (entityValue === undefined || entityValue === null) {\r\n      return undefined;\r\n    }\r\n    return this.doParseToEditFormValue(entityValue);\r\n  }\r\n\r\n  protected doParseToEntityValue(controlValue: any): T {\r\n    return controlValue;\r\n  }\r\n\r\n  protected doParseToEditFormValue(entityValue: any): any {\r\n    return entityValue;\r\n  }\r\n}\r\n\r\nexport class TextEditFormItem extends EditFormItem<string> {\r\n  template = TextEditFormItemComponent;\r\n  autoCapitalise?: boolean;\r\n\r\n  constructor(init?: Partial<TextEditFormItem>) {\r\n    super(init);\r\n  }\r\n\r\n  protected override doParseToEntityValue(controlValue: any): string {\r\n    let value = controlValue as string;\r\n    if (this.autoCapitalise) {\r\n      value = value.toUpperCase();\r\n    }\r\n    return value;\r\n  }\r\n}\r\n\r\nexport class NumberEditFormItem extends EditFormItem<number> {\r\n  template = NumberEditFormItemComponent;\r\n\r\n  protected override doParseToEntityValue(controlValue: any): number {\r\n    return +controlValue;\r\n  }\r\n}\r\n\r\nexport class PasswordEditFormItem extends EditFormItem<string> {\r\n  template = PasswordEditFormItemComponent;\r\n\r\n  constructor(init?: Partial<PasswordEditFormItem>) {\r\n    super(init);\r\n  }\r\n\r\n  hint?: string;\r\n}\r\n\r\nexport class ChipsEditFormItem extends EditFormItem<string[]> {\r\n  template = ChipsEditFormItemComponent;\r\n}\r\n\r\nexport class AddressEditFormItem extends EditFormItem<IAddress> {\r\n  template = AddressEditFormItemComponent;\r\n\r\n  mapPickerConfig?: IMapPickerConfig;\r\n\r\n  constructor(init?: Partial<AddressEditFormItem>) {\r\n    super(init);\r\n  }\r\n}\r\n\r\nexport class ToggleEditFormItem extends EditFormItem<boolean> {\r\n  template = ToggleEditFormItemComponent;\r\n}\r\n\r\nexport class DateEditFormItem extends EditFormItem<number> {\r\n  template = DateEditFormItemComponent;\r\n\r\n  dateFilter?: DateFilterFn<dayjs.Dayjs | null>;\r\n\r\n  constructor(init?: Partial<DateEditFormItem>) {\r\n    super(init);\r\n  }\r\n\r\n  protected override doParseToEntityValue(controlValue: any): number {\r\n    return (controlValue as dayjs.Dayjs).unix() * 1000;\r\n  }\r\n\r\n  protected override doParseToEditFormValue(entityValue: any): any {\r\n    return dayjs(entityValue);\r\n  }\r\n}\r\n\r\nexport class StaticLookupEditFormItem extends EditFormItem<any> {\r\n  template = StaticLookupEditFormItemComponent;\r\n\r\n  displayField = 'name';\r\n  valueField?: string;\r\n  bindToEnum?: any;\r\n  refs?: any[];\r\n\r\n  constructor(init?: Partial<StaticLookupEditFormItem>) {\r\n    super(init);\r\n    if (this.bindToEnum) {\r\n      this.displayField = 'display';\r\n      this.valueField = 'value';\r\n      const bindToEnum = this.bindToEnum;\r\n      this.refs = _(_.keys(bindToEnum))\r\n        .filter((key) => _.isNaN(Number(bindToEnum[key])))\r\n        .map((key) => ({ value: +key, display: bindToEnum[key] }))\r\n        .value();\r\n    }\r\n  }\r\n\r\n  protected override doParseToEntityValue(controlValue: any): any {\r\n    return this.bindToEnum ? +controlValue : controlValue;\r\n  }\r\n}\r\n\r\nexport class DataLookupEditFormItem extends EditFormItem<any> {\r\n  template = DataLookupFormItemComponent;\r\n\r\n  apiLoader?: ISelectApiLoader<any>;\r\n  dataLoader?: ISelectDataLoader<any>;\r\n  displayPaths!: string[];\r\n  readonlyPaths!: string[];\r\n  parentEditItem?: string;\r\n  parentEditItemValuePath?: string;\r\n  filterByParentPath?: string;\r\n  enableSearch?: boolean;\r\n\r\n  constructor(init?: Partial<DataLookupEditFormItem>) {\r\n    super(init);\r\n    if (!this.displayPaths?.length) {\r\n      this.displayPaths = ['name'];\r\n    }\r\n    if (!this.readonlyPaths?.length) {\r\n      this.readonlyPaths = ['display'];\r\n    }\r\n  }\r\n}\r\n\r\nexport class FileEditFormItem extends EditFormItem<File> {\r\n  template = FileEditFormItemComponent;\r\n\r\n  accept!: string;\r\n\r\n  constructor(init?: Partial<FileEditFormItem>) {\r\n    super(init);\r\n  }\r\n}\r\n\r\nexport class UomEditFormItem extends EditFormItem<number> {\r\n  template = UomEditFormItemComponent;\r\n\r\n  unit!: UnitType;\r\n\r\n  constructor(init?: Partial<UomEditFormItem>) {\r\n    super(init);\r\n  }\r\n}\r\n\r\nexport class EditFormCustomCommand {\r\n  id!: string;\r\n  title!: string;\r\n  needConfirm?: boolean;\r\n}\r\n\r\nexport class EditFormConfig {\r\n  editForm!: EditFormItem<any>[];\r\n  entity?: any;\r\n  title?: string;\r\n  saveAndNew?: boolean;\r\n  customCommands?: EditFormCustomCommand[];\r\n  groups?: EditFormItemsGroup[];\r\n}\r\n\r\nexport class EditFormResult<T> {\r\n  updatedItem?: T;\r\n  continue?: boolean;\r\n  command?: EditFormCustomCommand;\r\n}\r\n","import { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injector, Pipe, PipeTransform, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { EDIT_FORM_ITEM_DATA, EditFormItem } from '../model';\r\n\r\n@Pipe({\r\n  name: 'editItemTemplate',\r\n})\r\nexport class EditItemTemplatePipe implements PipeTransform {\r\n  constructor(private viewContainerRef: ViewContainerRef) {}\r\n\r\n  transform(\r\n    item: EditFormItem<any>,\r\n    formGroup: FormGroup,\r\n    entity: any\r\n  ): ComponentPortal<any> {\r\n    const editItemPortal = new ComponentPortal(\r\n      item.template,\r\n      this.viewContainerRef,\r\n      Injector.create({\r\n        providers: [\r\n          {\r\n            provide: EDIT_FORM_ITEM_DATA,\r\n            useValue: { item, formGroup, entity },\r\n          },\r\n        ],\r\n      })\r\n    );\r\n    return editItemPortal;\r\n  }\r\n}\r\n","import * as _ from 'lodash';\r\nimport { Subscription } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\n\r\nimport { Component, Inject, OnDestroy, OnInit, QueryList, ViewChildren } from '@angular/core';\r\nimport { FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatInput } from '@angular/material/input';\r\n\r\nimport { WebUiService } from '../ui-service/ui.service';\r\nimport {\r\n    EditFormConfig, EditFormCustomCommand, EditFormItem, EditFormItemsGroup, EditFormResult\r\n} from './model';\r\n\r\nexport class EditFormGroup extends EditFormItemsGroup {\r\n  items!: EditFormItem<any>[];\r\n}\r\n\r\n@Component({\r\n  selector: 'bda-edit-form-template-edit-form',\r\n  templateUrl: './edit-form.component.html',\r\n  styleUrls: ['./edit-form.component.scss'],\r\n})\r\nexport class EditFormComponent<T> implements OnInit, OnDestroy {\r\n  @ViewChildren(MatInput) inputs!: QueryList<MatInput>;\r\n\r\n  flatItems!: EditFormGroup;\r\n  groupedItems!: EditFormGroup[];\r\n  formGroup!: FormGroup;\r\n  loading?: boolean;\r\n  formReadOnly?: boolean;\r\n\r\n  private subs: Subscription[] = [];\r\n\r\n  constructor(\r\n    public dialog: MatDialog,\r\n    public dialogRef: MatDialogRef<EditFormComponent<T>>,\r\n    @Inject(MAT_DIALOG_DATA) public config: EditFormConfig,\r\n    private ui: WebUiService\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    if (!this.config) {\r\n      return;\r\n    }\r\n    this.setFormGroup();\r\n    this.setReadonlyState();\r\n    this.setItemGroups();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    for (const sub of this.subs) {\r\n      sub.unsubscribe();\r\n    }\r\n  }\r\n\r\n  save(cont?: boolean): void {\r\n    const result = {};\r\n    let valid = true;\r\n    for (const editFormItem of _.filter(\r\n      this.config.editForm,\r\n      (item) => !item.hidden\r\n    )) {\r\n      const control = this.formGroup.controls[editFormItem.path];\r\n      valid = valid && (control.disabled || control.valid);\r\n      if (control.dirty) {\r\n        _.set(\r\n          result,\r\n          editFormItem.path,\r\n          editFormItem.parseToEntityValue(control.value)\r\n        );\r\n      }\r\n    }\r\n    if (!valid) {\r\n      this.ui.showMessage('Please enter all required information');\r\n      return;\r\n    }\r\n    const updatedItem = this.config.entity\r\n      ? _.merge(_.cloneDeep(this.config.entity), result)\r\n      : result;\r\n    const res: EditFormResult<T> = {\r\n      updatedItem,\r\n      continue: cont,\r\n    };\r\n    this.dialogRef?.close(res);\r\n  }\r\n\r\n  cancel(): void {\r\n    this.dialogRef?.close();\r\n  }\r\n\r\n  async customCommand(command: EditFormCustomCommand): Promise<void> {\r\n    if (!command.needConfirm || (await this.ui.confirmDialog())) {\r\n      const res: EditFormResult<T> = {\r\n        command,\r\n      };\r\n      this.dialogRef?.close(res);\r\n    }\r\n  }\r\n\r\n  private setFormGroup(): void {\r\n    this.formGroup = new FormGroup({});\r\n    for (const editFormItem of this.config.editForm) {\r\n      let currentValue: any;\r\n      let markAsDirty = false;\r\n      const editEntityValue = _.get(this.config.entity, editFormItem.path);\r\n      if (editEntityValue !== undefined) {\r\n        currentValue = editEntityValue;\r\n      } else if (editFormItem.defaultValue) {\r\n        currentValue = editFormItem.defaultValue;\r\n        markAsDirty = true;\r\n      }\r\n      const validators: ValidatorFn[] = [];\r\n      if (editFormItem.required) {\r\n        validators.push(Validators.required);\r\n      }\r\n      if (editFormItem.pattern) {\r\n        validators.push(Validators.pattern(editFormItem.pattern));\r\n      }\r\n      const formControl = new FormControl(\r\n        editFormItem.parseToEditFormValue(currentValue),\r\n        validators\r\n      );\r\n      if (\r\n        (this.config.entity && editFormItem.forceDisableEdit) ||\r\n        (currentValue !== undefined &&\r\n          currentValue !== null &&\r\n          this.config.entity &&\r\n          editFormItem.disableEdit)\r\n      ) {\r\n        formControl.disable();\r\n      }\r\n      if (markAsDirty) {\r\n        formControl.markAsDirty();\r\n      }\r\n      if (editFormItem.valueChanges) {\r\n        this.subs.push(\r\n          formControl.valueChanges.subscribe((value) =>\r\n            editFormItem.valueChanges?.(value, this.formGroup)\r\n          )\r\n        );\r\n      }\r\n      this.setVisibilityState(editFormItem, formControl);\r\n      this.formGroup.addControl(editFormItem.path, formControl);\r\n    }\r\n  }\r\n\r\n  private setVisibilityState(\r\n    editFormItem: EditFormItem<any>,\r\n    formControl: FormControl\r\n  ): void {\r\n    const visibilyChildCtrls = _.filter(\r\n      this.config.editForm,\r\n      (e) => e.visibleIf?.key === editFormItem.path\r\n    );\r\n    if (visibilyChildCtrls.length) {\r\n      this.subs.push(\r\n        formControl.valueChanges\r\n          .pipe(startWith(formControl.value))\r\n          .subscribe((value) => {\r\n            for (const visibleChild of visibilyChildCtrls) {\r\n              if (!visibleChild.visibleIf) {\r\n                continue;\r\n              }\r\n              visibleChild.hidden =\r\n                visibleChild.visibleIf.value !== value &&\r\n                visibleChild.visibleIf.value !== value?.id;\r\n            }\r\n          })\r\n      );\r\n    }\r\n  }\r\n\r\n  private setReadonlyState(): void {\r\n    this.formReadOnly = _.every(\r\n      Object.keys(this.formGroup.controls),\r\n      (key) => this.formGroup.controls[key].disabled\r\n    );\r\n    this.dialog.openDialogs[0].disableClose = !this.formReadOnly;\r\n  }\r\n\r\n  private setItemGroups(): void {\r\n    this.flatItems = new EditFormGroup();\r\n    this.groupedItems = [];\r\n    for (const group of [undefined, ...(this.config.groups || [])]) {\r\n      const itemsGroup = {\r\n        id: group?.id,\r\n        display: group?.display,\r\n        items: _.filter(this.config.editForm, (ef) => ef.groupId === group?.id),\r\n      } as EditFormGroup;\r\n      group?.id\r\n        ? this.groupedItems.push(itemsGroup)\r\n        : (this.flatItems = itemsGroup);\r\n    }\r\n  }\r\n}\r\n","<h2 mat-dialog-title>\r\n  <span *ngIf=\"config?.title; else defaultTitle\">\r\n    {{ config?.title }}\r\n  </span>\r\n  <ng-template #defaultTitle> Details </ng-template>\r\n  <mat-progress-bar *ngIf=\"loading\" mode=\"indeterminate\"></mat-progress-bar>\r\n</h2>\r\n<mat-dialog-content class=\"mat-typography\">\r\n  <ngx-simplebar>\r\n    <form>\r\n      <ng-container\r\n        *ngTemplateOutlet=\"editFormItems; context: { items: flatItems.items }\"\r\n      ></ng-container>\r\n      <ng-container\r\n        *ngTemplateOutlet=\"\r\n          editFormItemsGroups;\r\n          context: { groups: groupedItems }\r\n        \"\r\n      ></ng-container>\r\n    </form>\r\n  </ngx-simplebar>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n  <div fxFlex=\"100%\" fxLayout=\"row\" fxLayoutGap=\"10px\" class=\"actions\">\r\n    <button\r\n      mat-raised-button\r\n      color=\"primary\"\r\n      type=\"submit\"\r\n      (click)=\"save()\"\r\n      [disabled]=\"formReadOnly\"\r\n    >\r\n      Save\r\n    </button>\r\n    <button\r\n      *ngIf=\"config.saveAndNew\"\r\n      mat-raised-button\r\n      color=\"primary\"\r\n      (click)=\"save(true)\"\r\n      [disabled]=\"formReadOnly\"\r\n    >\r\n      Save and new\r\n    </button>\r\n    <div fxFlex></div>\r\n    <button\r\n      *ngFor=\"let command of config.customCommands\"\r\n      mat-button\r\n      color=\"primary\"\r\n      (click)=\"customCommand(command)\"\r\n    >\r\n      {{ command.title }}\r\n    </button>\r\n    <button mat-button color=\"primary\" (click)=\"cancel()\">Cancel</button>\r\n  </div>\r\n</mat-dialog-actions>\r\n\r\n<ng-template #editFormItems let-items=\"items\">\r\n  <div fxLayout=\"row wrap\">\r\n    <ng-container *ngFor=\"let item of items\">\r\n      <div\r\n        *ngIf=\"item.template && !item.hidden\"\r\n        [fxFlex]=\"item.flex || '100%'\"\r\n        class=\"edit-form-item-template\"\r\n      >\r\n        <ng-template\r\n          [cdkPortalOutlet]=\"item | editItemTemplate: formGroup:config?.entity\"\r\n        ></ng-template>\r\n      </div>\r\n    </ng-container>\r\n  </div>\r\n</ng-template>\r\n\r\n<ng-template #editFormItemsGroups let-groups=\"groups\">\r\n  <div *ngIf=\"groups?.length\" [@.disabled]=\"true\">\r\n    <mat-accordion [multi]=\"true\">\r\n      <mat-expansion-panel *ngFor=\"let group of groups\" [expanded]=\"false\">\r\n        <mat-expansion-panel-header>\r\n          <mat-panel-title>\r\n            {{ group.display }}\r\n          </mat-panel-title>\r\n        </mat-expansion-panel-header>\r\n        <ng-container\r\n          *ngTemplateOutlet=\"editFormItems; context: { items: group.items }\"\r\n        ></ng-container>\r\n      </mat-expansion-panel>\r\n    </mat-accordion>\r\n  </div>\r\n</ng-template>\r\n","import { Observable } from 'rxjs';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { EditFormComponent } from './edit-form.component';\r\nimport { EditFormConfig } from './model';\r\n\r\n@Injectable()\r\nexport class EditFormService {\r\n  constructor(private dialog: MatDialog) {}\r\n\r\n  openEditForm(config: EditFormConfig): Observable<any> {\r\n    const dialogRef = this.dialog.open(EditFormComponent, {\r\n      width: '450px',\r\n      disableClose: true,\r\n      data: config,\r\n    });\r\n    return dialogRef.afterClosed();\r\n  }\r\n}\r\n","import { SimplebarAngularModule } from 'simplebar-angular';\r\n\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientJsonpModule } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\n\r\nimport { BdaControlsModule } from '../controls/controls.module';\r\nimport { EditFormComponent } from './edit-form.component';\r\nimport { EditFormService } from './edit-form.service';\r\nimport { AddressEditFormItemComponent } from './templates/address/address.component';\r\nimport { ChipsEditFormItemComponent } from './templates/chips/chips.component';\r\nimport { DataLookupFormItemComponent } from './templates/data-lookup/data-lookup.component';\r\nimport { DateEditFormItemComponent } from './templates/date/date.component';\r\nimport { FileEditFormItemComponent } from './templates/file/file.component';\r\nimport { NumberEditFormItemComponent } from './templates/number/number.component';\r\nimport { PasswordEditFormItemComponent } from './templates/password/password.component';\r\nimport {\r\n    StaticLookupEditFormItemComponent\r\n} from './templates/static-lookup/static-lookup.component';\r\nimport { EditItemTemplatePipe } from './templates/template.pipe';\r\nimport { TextEditFormItemComponent } from './templates/text/text.component';\r\nimport { ToggleEditFormItemComponent } from './templates/toggle/toggle.component';\r\nimport { UomEditFormItemComponent } from './templates/uom/uom.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    EditFormComponent,\r\n    TextEditFormItemComponent,\r\n    PasswordEditFormItemComponent,\r\n    EditItemTemplatePipe,\r\n    NumberEditFormItemComponent,\r\n    StaticLookupEditFormItemComponent,\r\n    DataLookupFormItemComponent,\r\n    ChipsEditFormItemComponent,\r\n    AddressEditFormItemComponent,\r\n    ToggleEditFormItemComponent,\r\n    DateEditFormItemComponent,\r\n    FileEditFormItemComponent,\r\n    UomEditFormItemComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    BdaControlsModule,\r\n    HttpClientJsonpModule,\r\n    FlexLayoutModule,\r\n    SimplebarAngularModule,\r\n    PortalModule,\r\n    TextFieldModule,\r\n    MatButtonModule,\r\n    MatDialogModule,\r\n    MatChipsModule,\r\n    MatFormFieldModule,\r\n    MatInputModule,\r\n    MatDatepickerModule,\r\n    MatIconModule,\r\n    MatProgressBarModule,\r\n    MatSelectModule,\r\n    MatProgressSpinnerModule,\r\n    MatExpansionModule,\r\n    MatSlideToggleModule,\r\n  ],\r\n  exports: [EditFormComponent],\r\n})\r\nexport class BdaEditFormModule {\r\n  static forRoot(): ModuleWithProviders<BdaEditFormModule> {\r\n    return {\r\n      ngModule: BdaEditFormModule,\r\n      providers: [EditFormService],\r\n    };\r\n  }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\r\nimport { WebUiService } from './ui.service';\r\n\r\nconst component = [ConfirmDialogComponent];\r\n\r\n@NgModule({\r\n  declarations: [...component],\r\n  imports: [MatDialogModule, MatButtonModule],\r\n  exports: [...component],\r\n})\r\nexport class BdaWebUiServiceModule {\r\n  static forRoot(): ModuleWithProviders<BdaWebUiServiceModule> {\r\n    return {\r\n      ngModule: BdaWebUiServiceModule,\r\n      providers: [WebUiService],\r\n    };\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_","i1.UomService","i1","pipes","catchError","i1.WebUiService","i2","i6","i4","i5","i7","tap","i11.SelectDisplayPipe","i2.UomService","i3","i6.UomPipe","i1.GoogleApiLoaderService","i3.WebUiService","i2.SelectComponent","i1.FilePickerComponent","i2.UomInputComponent","i2.WebUiService","i8","i9","i10","i11.EditItemTemplatePipe"],"mappings":"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"}