{"version":3,"file":"becamex-ng.theme-shared-extensions.mjs","sources":["../../../projects/theme-shared/extensions/src/lib/adapters/date-time.adapter.ts","../../../projects/theme-shared/extensions/src/lib/adapters/date.adapter.ts","../../../projects/theme-shared/extensions/src/lib/adapters/time.adapter.ts","../../../projects/theme-shared/extensions/src/lib/models/actions.ts","../../../projects/theme-shared/extensions/src/lib/models/props.ts","../../../projects/theme-shared/extensions/src/lib/models/table-extensions.ts","../../../projects/theme-shared/extensions/src/lib/models/toolbar-actions.ts","../../../projects/theme-shared/extensions/src/lib/models/entity-actions.ts","../../../projects/theme-shared/extensions/src/lib/models/form-props.ts","../../../projects/theme-shared/extensions/src/lib/models/entity-props.ts","../../../projects/theme-shared/extensions/src/lib/components/abstract-actions/abstract-actions.component.ts","../../../projects/theme-shared/extensions/src/lib/utils/actions.util.ts","../../../projects/theme-shared/extensions/src/lib/constants/extra-properties.ts","../../../projects/theme-shared/extensions/src/lib/utils/enum.util.ts","../../../projects/theme-shared/extensions/src/lib/utils/factory.util.ts","../../../projects/theme-shared/extensions/src/lib/services/extensions.service.ts","../../../projects/theme-shared/extensions/src/lib/tokens/extensions.token.ts","../../../projects/theme-shared/extensions/src/lib/utils/form-props.util.ts","../../../projects/theme-shared/extensions/src/lib/utils/localization.util.ts","../../../projects/theme-shared/extensions/src/lib/utils/props.util.ts","../../../projects/theme-shared/extensions/src/lib/utils/typeahead.util.ts","../../../projects/theme-shared/extensions/src/lib/utils/validation.util.ts","../../../projects/theme-shared/extensions/src/lib/utils/state.util.ts","../../../projects/theme-shared/extensions/src/lib/components/date-time-picker/date-time-picker.component.ts","../../../projects/theme-shared/extensions/src/lib/directives/disabled.directive.ts","../../../projects/theme-shared/extensions/src/lib/components/extensible-prop/extensible-prop.component.ts","../../../projects/theme-shared/extensions/src/lib/components/extensible-prop/extensible-prop.component.html","../../../projects/theme-shared/extensions/src/lib/directives/prop-data.directive.ts","../../../projects/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.ts","../../../projects/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.html","../../../projects/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.ts","../../../projects/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.html","../../../projects/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.ts","../../../projects/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.html","../../../projects/theme-shared/extensions/src/lib/pipes/create-injector.pipe.ts","../../../projects/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.ts","../../../projects/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.html","../../../projects/theme-shared/extensions/src/lib/components/page/page-part.directive.ts","../../../projects/theme-shared/extensions/src/lib/components/page/page-parts.component.ts","../../../projects/theme-shared/extensions/src/lib/components/page/page.component.ts","../../../projects/theme-shared/extensions/src/lib/components/page/page.component.html","../../../projects/theme-shared/extensions/src/lib/components/picklist/picklist.component.ts","../../../projects/theme-shared/extensions/src/lib/ui-extensions.module.ts","../../../projects/theme-shared/extensions/src/becamex-ng.theme-shared-extensions.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { NgbDateStruct, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\n\n@Injectable()\nexport class DateTimeAdapter {\n  value!: NgbDateTimeStruct;\n\n  fromModel(value: string | Date): NgbDateTimeStruct | null {\n    if (!value) return null;\n\n    const date = new Date(value);\n\n    if (isNaN(date as unknown as number)) return null;\n\n    this.value = {\n      year: date.getFullYear(),\n      month: date.getMonth() + 1,\n      day: date.getDate(),\n      hour: date.getHours(),\n      minute: date.getMinutes(),\n      second: date.getSeconds(),\n    };\n\n    return this.value;\n  }\n\n  toModel(value: NgbDateTimeStruct | null): string {\n    if (!value) return '';\n\n    const now = new Date();\n\n    value = {\n      // TODO look for strict mode errors\n      year: now.getUTCFullYear(),\n      month: now.getMonth() + 1,\n      day: now.getDate(),\n      hour: 0,\n      minute: 0,\n      second: 0,\n      ...this.value,\n      ...value,\n    };\n\n    const date = new Date(\n      value.year,\n      value.month - 1,\n      value.day,\n      value.hour,\n      value.minute,\n      value.second,\n    );\n\n    return new Date(date).toISOString();\n  }\n}\n\ntype NgbDateTimeStruct = NgbDateStruct & NgbTimeStruct;\n","import { formatDate } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { NgbDateAdapter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\n\n@Injectable()\nexport class DateAdapter extends NgbDateAdapter<string | Date> {\n  fromModel(value: string | Date): NgbDateStruct | null {\n    if (!value) return null;\n\n    let date: Date;\n\n    if (typeof value === 'string') {\n      date = this.dateOf(value);\n    } else {\n      date = new Date(value);\n    }\n\n    if (isNaN(date as unknown as number)) return null;\n\n    return {\n      day: date.getDate(),\n      month: date.getMonth() + 1,\n      year: date.getFullYear(),\n    };\n  }\n\n  toModel(value: NgbDateStruct | null): string {\n    if (!value) return '';\n\n    const date = new Date(value.year, value.month - 1, value.day);\n    const formattedDate = formatDate(date, 'yyyy-MM-dd', 'en');\n\n    return formattedDate;\n  }\n\n  protected dateOf(value: string): Date {\n    const dateUtc = new Date(Date.parse(value));\n    return new Date(dateUtc.getTime() + Math.abs(dateUtc.getTimezoneOffset() * 60000));\n  }\n}\n","import { formatDate } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { NgbTimeAdapter, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\n\n@Injectable()\nexport class TimeAdapter extends NgbTimeAdapter<string | Date> {\n  fromModel(value: string | Date): NgbTimeStruct | null {\n    if (!value) return null;\n\n    const date = isTimeStr(value)\n      ? new Date(0, 0, 1, ...value.split(':').map(Number))\n      : new Date(value);\n\n    if (isNaN(date as unknown as number)) return null;\n\n    return {\n      hour: date.getHours(),\n      minute: date.getMinutes(),\n      second: date.getSeconds(),\n    };\n  }\n\n  toModel(value: NgbTimeStruct | null): string {\n    if (!value) return '';\n\n    const date = new Date(0, 0, 1, value.hour, value.minute, value.second);\n    const formattedDate = formatDate(date, 'HH:mm', 'en');\n\n    return formattedDate;\n  }\n}\n\nfunction isTimeStr(value: string | Date): value is string {\n  return /^((2[123])|[01][0-9])(\\:[0-5][0-9]){1,2}$/.test(String(value));\n}\n","import { InjectFlags, InjectionToken, Type } from '@angular/core';\nimport { LinkedList } from '@abp/utils';\nimport { O } from 'ts-toolbelt';\n\nexport abstract class ActionList<R = any, A = Action<R>> extends LinkedList<A> {}\n\nexport abstract class ActionData<R = any> {\n  abstract getInjected: <T>(\n    token: Type<T> | InjectionToken<T>,\n    notFoundValue?: T,\n    flags?: InjectFlags\n  ) => T;\n  index?: number;\n  abstract record: R;\n\n  get data(): ReadonlyActionData<R> {\n    return {\n      getInjected: this.getInjected,\n      index: this.index,\n      record: this.record,\n    };\n  }\n}\n\nexport type ReadonlyActionData<R = any> = O.Readonly<Omit<ActionData<R>, 'data'>>;\n\nexport abstract class Action<R = any> {\n  constructor(\n    public readonly permission: string,\n    public readonly visible: ActionPredicate<R> = _ => true,\n    public readonly action: ActionCallback<R> = _ => {}\n  ) {}\n}\n\nexport type ActionCallback<T, R = any> = (data: Omit<ActionData<T>, 'data'>) => R;\nexport type ActionPredicate<T> = (data?: Omit<ActionData<T>, 'data'>) => boolean;\n\nexport abstract class ActionsFactory<C extends Actions<any>> {\n  protected abstract _ctor: Type<C>;\n  private contributorCallbacks: ActionContributorCallbacks<InferredActionList<C>> = {};\n\n  get(name: string): C {\n    this.contributorCallbacks[name] = this.contributorCallbacks[name] || [];\n\n    return new this._ctor(this.contributorCallbacks[name]);\n  }\n}\n\nexport abstract class Actions<L extends ActionList> {\n  protected abstract _ctor: Type<L>;\n\n  get actions(): L {\n    const actionList = new this._ctor();\n\n    this.callbackList.forEach(callback => callback(actionList));\n\n    return actionList;\n  }\n\n  constructor(private readonly callbackList: ActionContributorCallback<L>[]) {}\n\n  addContributor(contributeCallback: ActionContributorCallback<L>) {\n    this.callbackList.push(contributeCallback);\n  }\n\n  clearContributors() {\n    while (this.callbackList.length) this.callbackList.pop();\n  }\n}\n\nexport type ActionContributorCallbacks<L extends ActionList<any>> = Record<\n  string,\n  ActionContributorCallback<L>[]\n>;\n\nexport type ActionContributorCallback<L extends ActionList<any>> = (actionList: L) => any;\n\ntype InferredActionList<C> = C extends Actions<infer L> ? L : never;\n","import { InjectFlags, InjectionToken, Type } from '@angular/core';\nimport { LinkedList } from '@abp/utils';\nimport { O } from 'ts-toolbelt';\nimport { ePropType } from '../enums';\n\nexport abstract class PropList<R = any, A = Prop<R>> extends LinkedList<A> {}\n\nexport abstract class PropData<R = any> {\n  abstract getInjected: <T>(\n    token: Type<T> | InjectionToken<T>,\n    notFoundValue?: T,\n    flags?: InjectFlags\n  ) => T;\n  index?: number;\n  abstract record: R;\n\n  get data(): ReadonlyPropData<R> {\n    return {\n      getInjected: this.getInjected,\n      index: this.index,\n      record: this.record,\n    };\n  }\n}\n\nexport type ReadonlyPropData<R = any> = O.Readonly<Omit<PropData<R>, 'data'>>;\n\nexport abstract class Prop<R = any> {\n  constructor(\n    public readonly type: ePropType,\n    public readonly name: string,\n    public readonly displayName: string,\n    public readonly permission: string,\n    public readonly visible: PropPredicate<R> = _ => true,\n    public readonly isExtra = false\n  ) {\n    this.displayName = this.displayName || this.name;\n  }\n}\n\nexport type PropCallback<T, R = any> = (data: Omit<PropData<T>, 'data'>, auxData?: any) => R;\nexport type PropPredicate<T> = (data?: Omit<PropData<T>, 'data'>, auxData?: any) => boolean;\n\nexport abstract class PropsFactory<C extends Props<any>> {\n  protected abstract _ctor: Type<C>;\n  private contributorCallbacks: PropContributorCallbacks<InferredPropList<C>> = {};\n\n  get(name: string): C {\n    this.contributorCallbacks[name] = this.contributorCallbacks[name] || [];\n\n    return new this._ctor(this.contributorCallbacks[name]);\n  }\n}\n\nexport abstract class Props<L extends PropList> {\n  protected abstract _ctor: Type<L>;\n\n  get props(): L {\n    const propList = new this._ctor();\n\n    this.callbackList.forEach(callback => callback(propList));\n\n    return propList;\n  }\n\n  constructor(private readonly callbackList: PropContributorCallback<L>[]) {}\n\n  addContributor(contributeCallback: PropContributorCallback<L>) {\n    this.callbackList.push(contributeCallback);\n  }\n\n  clearContributors() {\n    while (this.callbackList.length) this.callbackList.pop();\n  }\n}\n\nexport type PropContributorCallbacks<L extends PropList<any>> = Record<\n  string,\n  PropContributorCallback<L>[]\n>;\n\nexport type PropContributorCallback<L extends PropList<any>> = (propList: L) => any;\n\ntype InferredPropList<C> = C extends Props<infer L> ? L : never;\n","import { PagedAndSortedResultRequestDto } from '@abp/ng.core';\n\nexport const defaultPagedAndSortedResultRequest: PagedAndSortedResultRequestDto = {\n  maxResultCount: 10,\n  skipCount: 0,\n  sorting: undefined,\n};\n","import { Injector, Type } from '@angular/core';\nimport { O } from 'ts-toolbelt';\nimport {\n  Action,\n  ActionContributorCallback,\n  ActionContributorCallbacks,\n  ActionData,\n  ActionList,\n  Actions,\n  ActionsFactory,\n  ReadonlyActionData,\n} from './actions';\n\nexport class ToolbarActionList<R = any> extends ActionList<\n  R,\n  ToolbarAction<R> | ToolbarComponent<R>\n> {}\n\nexport class ToolbarActions<R = any> extends Actions<ToolbarActionList<R>> {\n  protected _ctor: Type<ToolbarActionList<R>> = ToolbarActionList;\n}\n\nexport class ToolbarActionsFactory<R = any> extends ActionsFactory<ToolbarActions<R>> {\n  protected _ctor: Type<ToolbarActions<R>> = ToolbarActions;\n}\n\nexport class ToolbarAction<R = any> extends Action<R> {\n  readonly text: string;\n  readonly icon: string;\n  readonly btnClass?: string;\n\n  constructor(options: ToolbarActionOptions<R>) {\n    super(options.permission || '', options.visible, options.action);\n    this.text = options.text;\n    this.icon = options.icon || '';\n    if (options.btnClass) {\n      this.btnClass = options.btnClass;\n    }\n  }\n\n  static create<R = any>(options: ToolbarActionOptions<R>) {\n    return new ToolbarAction<R>(options);\n  }\n\n  static createMany<R = any>(arrayOfOptions: ToolbarActionOptions<R>[]) {\n    return arrayOfOptions.map(ToolbarAction.create);\n  }\n}\n\nexport class ToolbarComponent<R = any> extends Action<R> {\n  readonly component: Type<any>;\n\n  constructor(options: ToolbarComponentOptions<R>) {\n    super(options.permission || '', options.visible, options.action);\n    this.component = options.component;\n  }\n\n  static create<R = any>(options: ToolbarComponentOptions<R>) {\n    return new ToolbarComponent<R>(options);\n  }\n\n  static createMany<R = any>(arrayOfOptions: ToolbarComponentOptions<R>[]) {\n    return arrayOfOptions.map(ToolbarComponent.create);\n  }\n}\n\nexport type ToolbarActionOptions<R = any> = O.Optional<\n  O.Writable<ToolbarAction<R>>,\n  'permission' | 'visible' | 'icon' | 'btnClass'\n>;\n\nexport type ToolbarComponentOptions<R = any> = O.Optional<\n  O.Writable<ToolbarComponent<R>>,\n  'permission' | 'visible' | 'action'\n>;\n\nexport type ToolbarActionDefault<R = any> = ToolbarAction<R> | ToolbarComponent<R>;\n\nexport type ToolbarActionDefaults<R = any> = Record<string, Array<ToolbarActionDefault<R>>>;\nexport type ToolbarActionContributorCallback<R = any> = ActionContributorCallback<\n  ToolbarActionList<R>\n>;\nexport type ToolbarActionContributorCallbacks<R = any> = ActionContributorCallbacks<\n  ToolbarActionList<R>\n>;\nexport type InferredData<L> = ActionData<InferredRecord<L>>;\nexport type InferredRecord<L> = L extends ActionList<infer R> ? R : never;\n\nexport interface HasCreateInjectorPipe<R> {\n  getData: () => ReadonlyActionData<R>;\n  injector: Injector;\n  getInjected: InferredData<ToolbarActionList<R>>['getInjected'];\n}\n","import { Type } from '@angular/core';\nimport { O } from 'ts-toolbelt';\nimport {\n  Action,\n  ActionContributorCallback,\n  ActionContributorCallbacks,\n  ActionList,\n  Actions,\n  ActionsFactory,\n} from './actions';\n\nexport class EntityActionList<R = any> extends ActionList<R, EntityAction<R>> {}\n\nexport class EntityActions<R = any> extends Actions<EntityActionList<R>> {\n  protected _ctor: Type<EntityActionList<R>> = EntityActionList;\n}\n\nexport class EntityActionsFactory<R = any> extends ActionsFactory<EntityActions<R>> {\n  protected _ctor: Type<EntityActions<R>> = EntityActions;\n}\n\nexport class EntityAction<R = any> extends Action<R> {\n  readonly text: string;\n  readonly icon: string;\n\n  constructor(options: EntityActionOptions<R>) {\n    super(options.permission, options.visible, options.action);\n    this.text = options.text;\n    this.icon = options.icon || '';\n  }\n\n  static create<R = any>(options: EntityActionOptions<R>) {\n    return new EntityAction<R>(options);\n  }\n\n  static createMany<R = any>(arrayOfOptions: EntityActionOptions<R>[]) {\n    return arrayOfOptions.map(EntityAction.create);\n  }\n}\n\nexport type EntityActionOptions<R = any> = O.Optional<\n  O.Writable<EntityAction<R>>,\n  'permission' | 'visible' | 'icon'\n>;\n\nexport type EntityActionDefaults<R = any> = Record<string, EntityAction<R>[]>;\nexport type EntityActionContributorCallback<R = any> = ActionContributorCallback<\n  EntityActionList<R>\n>;\nexport type EntityActionContributorCallbacks<R = any> = ActionContributorCallbacks<\n  EntityActionList<R>\n>;\n","import { Injector, Type } from '@angular/core';\nimport { AsyncValidatorFn, ValidatorFn } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { O } from 'ts-toolbelt';\nimport {\n  Prop,\n  PropCallback,\n  PropContributorCallback,\n  PropContributorCallbacks,\n  PropData,\n  PropList,\n  PropPredicate,\n  Props,\n  PropsFactory,\n} from './props';\nimport { Option } from './typeahead-options';\n\nexport class FormPropList<R = any> extends PropList<R, FormProp<R>> {}\n\nexport class FormProps<R = any> extends Props<FormPropList<R>> {\n  protected _ctor: Type<FormPropList<R>> = FormPropList;\n}\n\nexport class CreateFormPropsFactory<R = any> extends PropsFactory<FormProps<R>> {\n  protected _ctor: Type<FormProps<R>> = FormProps;\n}\n\nexport class EditFormPropsFactory<R = any> extends PropsFactory<FormProps<R>> {\n  protected _ctor: Type<FormProps<R>> = FormProps;\n}\n\nexport class FormProp<R = any> extends Prop<R> {\n  readonly validators: PropCallback<R, ValidatorFn[]> | undefined;\n  readonly asyncValidators: PropCallback<R, AsyncValidatorFn[]> | undefined;\n  readonly disabled: PropPredicate<R> | undefined;\n  readonly readonly: PropPredicate<R> | undefined;\n  readonly autocomplete: string | undefined;\n  readonly defaultValue: boolean | number | string | Date | undefined;\n  readonly options: PropCallback<R, Observable<Option<any>[]>> | undefined;\n  readonly optionSelected: PropCallback<R> | undefined;\n  readonly valueChanges: PropCallback<R> | undefined;\n  readonly id: string | undefined;\n\n  constructor(options: FormPropOptions<R>) {\n    super(\n      options.type,\n      options.name,\n      options.displayName,\n      options.permission,\n      options.visible,\n      options.isExtra\n    );\n\n    this.asyncValidators = options.asyncValidators || (_ => []);\n    this.validators = options.validators || (_ => []);\n    this.disabled = options.disabled || (_ => false);\n    this.readonly = options.readonly || (_ => false);\n    this.autocomplete = options.autocomplete || 'off';\n    this.options = options.options;\n    this.optionSelected = options.optionSelected;\n    this.valueChanges = options.valueChanges;\n    this.id = options.id || options.name;\n    const defaultValue = options.defaultValue;\n    this.defaultValue = isFalsyValue(defaultValue) ? defaultValue : defaultValue || null;\n  }\n\n  static create<R = any>(options: FormPropOptions<R>) {\n    return new FormProp<R>(options);\n  }\n\n  static createMany<R = any>(arrayOfOptions: FormPropOptions<R>[]) {\n    return arrayOfOptions.map(FormProp.create);\n  }\n}\n\nexport class FormPropData<R = any> extends PropData<R> {\n  getInjected: PropData<R>['getInjected'];\n\n  constructor(injector: Injector, public readonly record: R) {\n    super();\n\n    this.getInjected = injector.get.bind(injector);\n  }\n}\n\nexport type FormPropOptions<R = any> = O.Optional<\n  O.Writable<FormProp<R>>,\n  | 'permission'\n  | 'visible'\n  | 'displayName'\n  | 'isExtra'\n  | 'validators'\n  | 'asyncValidators'\n  | 'disabled'\n  | 'readonly'\n  | 'autocomplete'\n  | 'defaultValue'\n  | 'options'\n  | 'optionSelected'\n  | 'valueChanges'\n  | 'id'\n>;\n\nexport type CreateFormPropDefaults<R = any> = Record<string, FormProp<R>[]>;\nexport type CreateFormPropContributorCallback<R = any> = PropContributorCallback<FormPropList<R>>;\nexport type CreateFormPropContributorCallbacks<R = any> = PropContributorCallbacks<FormPropList<R>>;\nexport type EditFormPropDefaults<R = any> = Record<string, FormProp<R>[]>;\nexport type EditFormPropContributorCallback<R = any> = PropContributorCallback<FormPropList<R>>;\nexport type EditFormPropContributorCallbacks<R = any> = PropContributorCallbacks<FormPropList<R>>;\n\nfunction isFalsyValue(defaultValue: FormProp['defaultValue']): boolean {\n  return [0, '', false].indexOf(defaultValue as any) > -1;\n}\n","import { Type } from '@angular/core';\nimport { ABP, escapeHtmlChars } from '@abp/ng.core';\nimport { Observable, of } from 'rxjs';\nimport { O } from 'ts-toolbelt';\nimport { ActionCallback } from './actions';\nimport {\n  PropCallback,\n  PropContributorCallback,\n  PropContributorCallbacks,\n  PropList,\n  Props,\n  PropsFactory,\n} from './props';\nimport { FormProp } from './form-props';\n\nexport class EntityPropList<R = any> extends PropList<R, EntityProp<R>> {}\n\nexport class EntityProps<R = any> extends Props<EntityPropList<R>> {\n  protected _ctor: Type<EntityPropList<R>> = EntityPropList;\n}\n\nexport class EntityPropsFactory<R = any> extends PropsFactory<EntityProps<R>> {\n  protected _ctor: Type<EntityProps<R>> = EntityProps;\n}\n\nexport class EntityProp<R = any> extends FormProp<R> {\n  readonly columnWidth: number | undefined;\n  readonly sortable: boolean | undefined;\n  readonly valueResolver: PropCallback<R, Observable<any>> | undefined;\n  readonly action: ActionCallback<R> | undefined;\n  readonly component: Type<any> | undefined;\n  readonly enumList: Array<ABP.Option<any>> | undefined;\n\n  constructor(options: EntityPropOptions<R>) {\n    super(options);\n\n    this.columnWidth = options.columnWidth;\n    this.sortable = options.sortable || false;\n    this.valueResolver =\n      options.valueResolver || (data => of(escapeHtmlChars(data.record[this.name])));\n    this.action = options.action;\n    this.component = options.component;\n    this.enumList = options.enumList;\n  }\n\n  static create<R = any>(options: EntityPropOptions<R>) {\n    return new EntityProp<R>(options);\n  }\n\n  static createMany<R = any>(arrayOfOptions: EntityPropOptions<R>[]) {\n    return arrayOfOptions.map(EntityProp.create);\n  }\n}\n\nexport type EntityPropOptions<R = any> = O.Optional<\n  O.Writable<EntityProp<R>>,\n  | 'permission'\n  | 'visible'\n  | 'displayName'\n  | 'isExtra'\n  | 'validators'\n  | 'asyncValidators'\n  | 'disabled'\n  | 'readonly'\n  | 'autocomplete'\n  | 'defaultValue'\n  | 'options'\n  | 'optionSelected'\n  | 'valueChanges'\n  | 'id'\n  | 'columnWidth'\n  | 'sortable'\n  | 'valueResolver'\n  | 'action'\n  | 'component'\n  | 'enumList'\n>;\n\nexport type EntityPropDefaults<R = any> = Record<string, EntityProp<R>[]>;\nexport type EntityPropContributorCallback<R = any> = PropContributorCallback<EntityPropList<R>>;\nexport type EntityPropContributorCallbacks<R = any> = PropContributorCallbacks<EntityPropList<R>>;\n","import { Directive, Injector, Input } from '@angular/core';\nimport { ActionData, ActionList, InferredData, InferredRecord } from '../../models';\n\n@Directive()\nexport abstract class AbstractActionsComponent<L extends ActionList<any>> extends ActionData<\n  InferredRecord<L>\n> {\n  @Input() record: InferredData<L>['record'];\n  @Input() actionList: L;\n  readonly getInjected: InferredData<L>['getInjected'];\n\n  constructor(injector: Injector) {\n    super();\n    this.getInjected = injector.get.bind(injector);\n  }\n}\n","import { ActionContributorCallback, ActionList, ActionsFactory } from '../models';\nimport {\n  EntityActionContributorCallbacks,\n  EntityActionDefaults,\n  EntityActions,\n  EntityActionsFactory,\n} from '../models/entity-actions';\nimport {\n  ToolbarActionContributorCallbacks,\n  ToolbarActionDefaults,\n  ToolbarActions,\n  ToolbarActionsFactory,\n} from '../models/toolbar-actions';\n\nexport function mergeWithDefaultActions<F extends ActionsFactory<any>>(\n  extension: F,\n  defaultActions: InferredActionDefaults<F>,\n  ...contributors: InferredActionContributorCallbacks<F>[]\n) {\n  Object.keys(defaultActions).forEach((name: string) => {\n    const actions: InferredActions<F> = extension.get(name);\n    actions.clearContributors();\n    actions.addContributor((actionList: ActionList) =>\n      actionList.addManyTail(defaultActions[name])\n    );\n    contributors.forEach(contributor =>\n      (contributor[name] || []).forEach((callback: ActionContributorCallback<any>) =>\n        actions.addContributor(callback)\n      )\n    );\n  });\n}\n\nexport function mergeWithActionsContributors<F extends ActionsFactory<any>>(\n  extension: F,\n  ...contributors: InferredActionContributorCallbacks<F>[]\n) {\n  contributors.forEach(contributor => {\n    Object.keys(contributor).forEach((name: string) => {\n      const actions: InferredActions<F> = extension.get(name);\n      actions.clearContributors();\n      (contributor[name] || []).forEach((callback: ActionContributorCallback<any>) =>\n        actions.addContributor(callback)\n      );\n    });\n  });\n}\n\ntype InferredActionDefaults<F> = F extends EntityActionsFactory<infer RE>\n  ? EntityActionDefaults<RE>\n  : F extends ToolbarActionsFactory<infer RT>\n  ? ToolbarActionDefaults<RT>\n  : never;\n\ntype InferredActionContributorCallbacks<F> = F extends EntityActionsFactory<infer RE>\n  ? EntityActionContributorCallbacks<RE>\n  : F extends ToolbarActionsFactory<infer RT>\n  ? ToolbarActionContributorCallbacks<RT>\n  : never;\n\ntype InferredActions<F> = F extends EntityActionsFactory<infer RE>\n  ? EntityActions<RE>\n  : F extends ToolbarActionsFactory<infer RT>\n  ? ToolbarActions<RT>\n  : never;\n","export const EXTRA_PROPERTIES_KEY = 'extraProperties';\n","import { ABP, LocalizationService } from '@abp/ng.core';\nimport { merge, Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { EXTRA_PROPERTIES_KEY } from '../constants';\nimport { ObjectExtensions, PropCallback } from '../models';\n\nexport function createEnum(members: ObjectExtensions.ExtensionEnumFieldDto[]) {\n  const enumObject: any = {};\n\n  members.forEach(({ name = '', value }) => {\n    enumObject[(enumObject[name] = value as any)] = name;\n  });\n\n  return enumObject;\n}\n\nexport function createEnumValueResolver<T = any>(\n  enumType: string,\n  lookupEnum: ObjectExtensions.ExtensionEnumDto,\n  propName: string\n): PropCallback<T, Observable<string>> {\n  return data => {\n    const value = (data.record as any)[EXTRA_PROPERTIES_KEY][propName];\n    const key = lookupEnum.transformed[value];\n    const l10n = data.getInjected(LocalizationService);\n    const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);\n\n    return createLocalizationStream(l10n, localizeEnum(key));\n  };\n}\n\nexport function createEnumOptions<T = any>(\n  enumType: string,\n  lookupEnum: ObjectExtensions.ExtensionEnumDto\n): PropCallback<T, Observable<ABP.Option<any>[]>> {\n  return data => {\n    const l10n = data.getInjected(LocalizationService);\n    const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);\n\n    return createLocalizationStream(\n      l10n,\n      lookupEnum.fields.map(({ name = '', value }) => ({\n        key: localizeEnum(name),\n        value,\n      }))\n    );\n  };\n}\n\nfunction createLocalizationStream(l10n: LocalizationService, mapTarget: any) {\n  return merge(of(null), l10n.languageChange$).pipe(map(() => mapTarget));\n}\n\nfunction createEnumLocalizer(\n  l10n: LocalizationService,\n  enumType: string,\n  lookupEnum: ObjectExtensions.ExtensionEnumDto\n): (key: string) => string {\n  const resource = lookupEnum.localizationResource;\n  const shortType = getShortEnumType(enumType);\n\n  return key =>\n    l10n.localizeWithFallbackSync(\n      [resource || ''],\n      ['Enum:' + shortType + '.' + key, shortType + '.' + key, key],\n      key\n    );\n}\n\nfunction getShortEnumType(enumType: string) {\n  return enumType.split('.').pop();\n}\n","export function selfFactory(dependency?: any) {\n  return dependency;\n}\n","import { Injectable } from '@angular/core';\nimport {\n  EntityActionsFactory,\n  EntityPropsFactory,\n  CreateFormPropsFactory,\n  EditFormPropsFactory,\n  ToolbarActionsFactory,\n} from '../models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ExtensionsService<R = any> {\n  readonly entityActions = new EntityActionsFactory<R>();\n  readonly toolbarActions = new ToolbarActionsFactory<R[]>();\n  readonly entityProps = new EntityPropsFactory<R>();\n  readonly createFormProps = new CreateFormPropsFactory<R>();\n  readonly editFormProps = new EditFormPropsFactory<R>();\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ActionCallback, ReadonlyActionData as ActionData } from '../models';\nimport { ExtensionsService } from '../services';\n\nimport { ePropType } from '../enums';\n\nexport const EXTENSIONS_IDENTIFIER = new InjectionToken<string>('EXTENSIONS_IDENTIFIER');\nexport type ActionKeys = Extract<'entityActions' | 'toolbarActions', keyof ExtensionsService>;\n\nexport const EXTENSIONS_ACTION_TYPE = new InjectionToken<ActionKeys>('EXTENSIONS_ACTION_TYPE');\n\nexport const EXTENSIONS_ACTION_DATA = new InjectionToken<ActionData>('EXTENSIONS_ACTION_DATA');\nexport const EXTENSIONS_ACTION_CALLBACK = new InjectionToken<ActionCallback<unknown>>(\n  'EXTENSIONS_ACTION_DATA'\n);\nexport const PROP_DATA_STREAM = new InjectionToken<Observable<any>>('PROP_DATA_STREAM');\ntype EntityPropTypeClassMap = {\n  [key in ePropType]: string;\n};\nexport type EntityPropTypeClass = Partial<EntityPropTypeClassMap>;\nexport const ENTITY_PROP_TYPE_CLASSES = new InjectionToken<EntityPropTypeClass>(\n  'ENTITY_PROP_TYPE_CLASSES',\n  {\n    factory: () => ({} as EntityPropTypeClass),\n  }\n);\n","import { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { DateTimeAdapter, DateAdapter, TimeAdapter } from '../adapters';\nimport { EXTRA_PROPERTIES_KEY } from '../constants';\nimport { ePropType } from '../enums';\nimport { EntityPropList, FormProp, FormPropList, PropData } from '../models';\nimport { ExtensionsService } from '../services';\nimport { EXTENSIONS_IDENTIFIER } from '../tokens';\n\ninterface GenerateFormOptions<R> {\n  data: PropData<R>;\n  propList: FormPropList<R>;\n  identifier?: string;\n  formGroups?: FormGroupProps<R>[];\n  formArrays?: FormArrayProps<R>[];\n}\n\ntype FormGroupProps<R> = {\n  name: Extract<keyof R, string>;\n  propList: FormPropList<R>;\n};\n\ntype FormArrayProps<R> = {\n  name: Extract<keyof R, string>;\n  propList: EntityPropList<R>;\n};\n\nexport function generateFormFromProps<R>(options: GenerateFormOptions<R>) {\n  const { data, propList, identifier, formGroups, formArrays } = options;\n  const form = new FormGroup({});\n  const extraForm = new FormGroup({});\n  form.addControl(EXTRA_PROPERTIES_KEY, extraForm);\n\n  const record = data.record || {};\n  const extraProperties = record[EXTRA_PROPERTIES_KEY] || {};\n\n  if (identifier || data.getInjected(EXTENSIONS_IDENTIFIER)) {\n    const extensions = data.getInjected(ExtensionsService);\n    const type = JSON.stringify(record) === '{}' ? 'create' : 'edit';\n    const contributorsProps: FormPropList<R> = extensions[`${type}FormProps`].get(\n      identifier || data.getInjected(EXTENSIONS_IDENTIFIER)\n    ).props;\n    propList.addManyTail(contributorsProps.toArray());\n  }\n\n  propList.forEach(({ value: prop }) => {\n    const name = prop.name;\n    const isExtraProperty = prop.isExtra || name in extraProperties;\n    let value = isExtraProperty ? extraProperties[name] : name in record ? record[name] : undefined;\n    if (typeof value === 'undefined') value = prop.defaultValue;\n    addFormControlFromProp(isExtraProperty ? extraForm : form, prop, data, value);\n  });\n\n  if (formGroups?.length > 0) {\n    formGroups.forEach(({ name, propList: groupPropList }) => {\n      const groupData = record[name.toString()];\n      const formGroup = new FormGroup({});\n      groupPropList.forEach(({ value: prop }) => {\n        let value = groupData ? groupData[prop.name] : undefined;\n        if (typeof value === 'undefined') value = prop.defaultValue;\n        addFormControlFromProp(formGroup, prop, data, value);\n      });\n      form.addControl(name, formGroup);\n    });\n  }\n\n  if (formArrays?.length > 0) {\n    formArrays.forEach(({ name, propList: arrayPropList }) => {\n      const arrayData = (record[name.toString()] || []) as any[];\n      const formArray = new FormArray([]);\n      arrayData.forEach(row => {\n        const formGroup = new FormGroup({});\n        arrayPropList.forEach(({ value: prop }) => {\n          let value = prop.name in row ? row[prop.name] : undefined;\n          if (typeof value === 'undefined') value = prop.defaultValue;\n          addFormControlFromProp(formGroup, prop, data, value);\n        });\n        formArray.push(formGroup);\n      });\n      form.addControl(name, formArray);\n    });\n  }\n\n  return form;\n}\n\nfunction addFormControlFromProp<R>(\n  formGroup: FormGroup,\n  prop: FormProp<R>,\n  data: PropData<R>,\n  value?: any\n) {\n  const { name, asyncValidators, validators } = prop;\n\n  if (value) {\n    let adapter: DateAdapter | TimeAdapter | DateTimeAdapter;\n    switch (prop.type) {\n      case ePropType.Date:\n        adapter = new DateAdapter();\n        value = adapter.toModel(adapter.fromModel(value));\n        break;\n      case ePropType.Time:\n        adapter = new TimeAdapter();\n        value = adapter.toModel(adapter.fromModel(value));\n        break;\n      case ePropType.DateTime:\n        adapter = new DateTimeAdapter();\n        value = adapter.toModel(adapter.fromModel(value) as any);\n        break;\n      default:\n        break;\n    }\n  }\n\n  const formControl = new FormControl(value, {\n    asyncValidators: asyncValidators ? asyncValidators(data) : undefined,\n    validators: validators ? validators(data) : undefined,\n  });\n\n  formGroup.addControl(name, formControl);\n}\n","import {\n  ApplicationLocalizationConfigurationDto,\n  createLocalizationPipeKeyGenerator,\n} from '@abp/ng.core';\nimport { ObjectExtensions } from '../models/object-extensions';\n\nexport function createDisplayNameLocalizationPipeKeyGenerator(\n  localization: ApplicationLocalizationConfigurationDto,\n) {\n  const generateLocalizationPipeKey = createLocalizationPipeKeyGenerator(localization);\n\n  return (\n    displayName: ObjectExtensions.LocalizableStringDto,\n    fallback: ObjectExtensions.LocalizableStringDto,\n  ) => {\n    if (displayName && displayName.name)\n      return generateLocalizationPipeKey(\n        [displayName.resource || ''],\n        [displayName.name],\n        displayName.name,\n      );\n\n    const key = generateLocalizationPipeKey(\n      [fallback.resource || ''],\n      ['DisplayName:' + fallback.name],\n      undefined,\n    );\n\n    if (key) return key;\n\n    return generateLocalizationPipeKey(\n      [fallback.resource || ''],\n      [fallback.name || ''],\n      fallback.name,\n    );\n  };\n}\n","import { of } from 'rxjs';\nimport { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';\nimport {\n  EntityPropContributorCallbacks,\n  EntityPropDefaults,\n  EntityProps,\n  EntityPropsFactory,\n} from '../models/entity-props';\nimport {\n  CreateFormPropContributorCallbacks,\n  CreateFormPropDefaults,\n  CreateFormPropsFactory,\n  EditFormPropContributorCallbacks,\n  EditFormPropDefaults,\n  EditFormPropsFactory,\n  FormProps,\n} from '../models/form-props';\nimport { PropContributorCallback, PropData, PropList, PropsFactory } from '../models/props';\n\nexport function createExtraPropertyValueResolver<T>(name: string) {\n  return (data?: PropData<T>) => of(data.record[EXTRA_PROPERTIES_KEY][name]);\n}\n\nexport function mergeWithDefaultProps<F extends PropsFactory<any>>(\n  extension: F,\n  defaultProps: InferredPropDefaults<F>,\n  ...contributors: InferredPropContributorCallbacks<F>[]\n) {\n  Object.keys(defaultProps).forEach((name: string) => {\n    const props: InferredProps<F> = extension.get(name);\n    props.clearContributors();\n    props.addContributor((propList: PropList) => propList.addManyTail(defaultProps[name]));\n    contributors.forEach(contributor =>\n      (contributor[name] || []).forEach((callback: PropContributorCallback<any>) =>\n        props.addContributor(callback)\n      )\n    );\n  });\n}\n\nexport function mergeWithPropContributors<F extends PropsFactory<any>>(\n  extension: F,\n  ...contributors: InferredPropContributorCallbacks<F>[]\n) {\n  contributors.forEach(contributor =>\n    Object.keys(contributor).forEach((name: string) => {\n      const props: InferredProps<F> = extension.get(name);\n      props.clearContributors();\n      (contributor[name] || []).forEach((callback: PropContributorCallback<any>) =>\n        props.addContributor(callback)\n      );\n    })\n  );\n}\n\ntype InferredPropDefaults<F> = F extends EntityPropsFactory<infer RE>\n  ? EntityPropDefaults<RE>\n  : F extends CreateFormPropsFactory<infer RCF>\n  ? CreateFormPropDefaults<RCF>\n  : F extends EditFormPropsFactory<infer REF>\n  ? EditFormPropDefaults<REF>\n  : never;\n\ntype InferredPropContributorCallbacks<F> = F extends EntityPropsFactory<infer RE>\n  ? EntityPropContributorCallbacks<RE>\n  : F extends CreateFormPropsFactory<infer RCF>\n  ? CreateFormPropContributorCallbacks<RCF>\n  : F extends EditFormPropsFactory<infer REF>\n  ? EditFormPropContributorCallbacks<REF>\n  : never;\n\ntype InferredProps<F> = F extends EntityPropsFactory<infer RE>\n  ? EntityProps<RE>\n  : F extends CreateFormPropsFactory<infer RCF>\n  ? FormProps<RCF>\n  : F extends EditFormPropsFactory<infer REF>\n  ? FormProps<REF>\n  : never;\n","import { ABP, ExtensionPropertyUiLookupDto, RestService } from '@abp/ng.core';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ePropType } from '../enums/props.enum';\nimport { ObjectExtensions } from '../models/object-extensions';\nimport { PropCallback } from '../models/props';\n\nconst TYPEAHEAD_TEXT_SUFFIX = '_Text';\nconst TYPEAHEAD_TEXT_SUFFIX_REGEX = /_Text$/;\n\nexport function createTypeaheadOptions(\n  lookup: ExtensionPropertyUiLookupDto,\n): PropCallback<any, Observable<ABP.Option<any>[]>> {\n  return (data, searchText) =>\n    searchText && data\n      ? data\n          .getInjected(RestService)\n          .request(\n            {\n              method: 'GET',\n              url: lookup.url || '',\n              params: {\n                [lookup.filterParamName || '']: searchText,\n              },\n            },\n            { apiName: 'Default' },\n          )\n          .pipe(\n            map((response: any) => {\n              const list = response[lookup.resultListPropertyName || ''];\n              const mapToOption = (item: any) => ({\n                key: item[lookup.displayPropertyName || ''],\n                value: item[lookup.valuePropertyName || ''],\n              });\n              return list.map(mapToOption);\n            }),\n          )\n      : of([]);\n}\n\nexport function getTypeaheadType(lookup: ExtensionPropertyUiLookupDto, name: string) {\n  return Boolean(lookup.url)\n    ? ePropType.Typeahead\n    : name.endsWith(TYPEAHEAD_TEXT_SUFFIX)\n    ? ePropType.Hidden\n    : undefined;\n}\n\nexport function createTypeaheadDisplayNameGenerator(\n  displayNameGeneratorFn: ObjectExtensions.DisplayNameGeneratorFn,\n  properties: ObjectExtensions.EntityExtensionProperties,\n): ObjectExtensions.DisplayNameGeneratorFn {\n  return (displayName, fallback) => {\n    const name = removeTypeaheadTextSuffix(fallback.name || '');\n    return displayNameGeneratorFn(displayName || properties[name].displayName, {\n      name,\n      resource: fallback.resource,\n    });\n  };\n}\n\nexport function addTypeaheadTextSuffix(name: string) {\n  return name + TYPEAHEAD_TEXT_SUFFIX;\n}\n\nexport function hasTypeaheadTextSuffix(name: string) {\n  return TYPEAHEAD_TEXT_SUFFIX_REGEX.test(name);\n}\n\nexport function removeTypeaheadTextSuffix(name: string) {\n  return name.replace(TYPEAHEAD_TEXT_SUFFIX_REGEX, '');\n}\n","import { AbpValidators } from '@abp/ng.core';\nimport { ValidatorFn } from '@angular/forms';\nimport { ObjectExtensions } from '../models/object-extensions';\n\nexport function getValidatorsFromProperty(\n  property: ObjectExtensions.ExtensionPropertyDto,\n): ValidatorFn[] {\n  const validators: ValidatorFn[] = [];\n\n  property.attributes.forEach(attr => {\n    if (attr.typeSimple && attr.typeSimple in AbpValidators) {\n      validators.push((AbpValidators as any)[attr.typeSimple](attr.config));\n    }\n  });\n\n  return validators;\n}\n","import {\n  ABP,\n  ApplicationLocalizationConfigurationDto,\n  ConfigStateService,\n  ExtensionPropertyUiLookupDto,\n} from '@abp/ng.core';\nimport { Observable, pipe, zip } from 'rxjs';\nimport { filter, map, switchMap, take } from 'rxjs/operators';\nimport { ePropType } from '../enums/props.enum';\nimport { EntityProp, EntityPropList } from '../models/entity-props';\nimport { FormProp, FormPropList } from '../models/form-props';\nimport { ObjectExtensions } from '../models/object-extensions';\nimport { PropCallback } from '../models/props';\nimport { createEnum, createEnumOptions, createEnumValueResolver } from './enum.util';\nimport { createDisplayNameLocalizationPipeKeyGenerator } from './localization.util';\nimport { createExtraPropertyValueResolver } from './props.util';\nimport {\n  createTypeaheadDisplayNameGenerator,\n  createTypeaheadOptions,\n  getTypeaheadType,\n  hasTypeaheadTextSuffix,\n} from './typeahead.util';\nimport { getValidatorsFromProperty } from './validation.util';\n\nfunction selectObjectExtensions(\n  configState: ConfigStateService,\n): Observable<ObjectExtensions.ObjectExtensionsDto> {\n  return configState.getOne$('objectExtensions');\n}\n\nfunction selectLocalization(\n  configState: ConfigStateService,\n): Observable<ApplicationLocalizationConfigurationDto> {\n  return configState.getOne$('localization');\n}\n\nfunction selectEnums(\n  configState: ConfigStateService,\n): Observable<Record<string, ObjectExtensions.ExtensionEnumDto>> {\n  return selectObjectExtensions(configState).pipe(\n    map((extensions: ObjectExtensions.ObjectExtensionsDto) =>\n      Object.keys(extensions.enums).reduce((acc, key) => {\n        const { fields, localizationResource } = extensions.enums[key];\n        acc[key] = {\n          fields,\n          localizationResource,\n          transformed: createEnum(fields),\n        };\n        return acc;\n      }, {} as Record<string, ObjectExtensions.ExtensionEnumDto>),\n    ),\n  );\n}\n\nexport function getObjectExtensionEntitiesFromStore(\n  configState: ConfigStateService,\n  moduleKey: string,\n) {\n  return selectObjectExtensions(configState).pipe(\n    map(extensions => {\n      if (!extensions) return null;\n\n      return (extensions.modules[moduleKey] || ({} as ObjectExtensions.ModuleExtensionDto))\n        .entities;\n    }),\n    map(entities => (isUndefined(entities) ? {} : entities)),\n    filter<ObjectExtensions.EntityExtensions>(Boolean),\n    take(1),\n  );\n}\n\nexport function mapEntitiesToContributors<T = any>(\n  configState: ConfigStateService,\n  resource: string,\n) {\n  return pipe(\n    switchMap((entities: any) =>\n      zip(selectLocalization(configState), selectEnums(configState)).pipe(\n        map(([localization, enums]) => {\n          const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization);\n\n          return Object.keys(entities).reduce(\n            (acc, key: keyof ObjectExtensions.EntityExtensions) => {\n              acc.prop[key] = [];\n              acc.createForm[key] = [];\n              acc.editForm[key] = [];\n\n              const entity: ObjectExtensions.EntityExtensionDto = entities[key];\n              if (!entity) return acc;\n\n              const properties = entity.properties;\n              if (!properties) return acc;\n\n              const mapPropertiesToContributors = createPropertiesToContributorsMapper<T>(\n                generateDisplayName,\n                resource,\n                enums,\n              );\n\n              return mapPropertiesToContributors(properties, acc, key);\n            },\n            {\n              prop: {},\n              createForm: {},\n              editForm: {},\n            } as ObjectExtensions.PropContributors,\n          );\n        }),\n      ),\n    ),\n    take(1),\n  );\n}\n\nfunction createPropertiesToContributorsMapper<T = any>(\n  generateDisplayName: ObjectExtensions.DisplayNameGeneratorFn,\n  resource: string,\n  enums: Record<string, ObjectExtensions.ExtensionEnumDto>,\n) {\n  return (\n    properties: ObjectExtensions.EntityExtensionProperties,\n    contributors: ObjectExtensions.PropContributors<T>,\n    key: string,\n  ) => {\n    const isExtra = true;\n    const generateTypeaheadDisplayName = createTypeaheadDisplayNameGenerator(\n      generateDisplayName,\n      properties,\n    );\n\n    Object.keys(properties).forEach((name: string) => {\n      const property = properties[name];\n      const propName = name;\n      const lookup = property.ui.lookup || ({} as ExtensionPropertyUiLookupDto);\n      const type = getTypeaheadType(lookup, name) || getTypeFromProperty(property);\n      const generateDN = hasTypeaheadTextSuffix(name)\n        ? generateTypeaheadDisplayName\n        : generateDisplayName;\n      const displayName = generateDN(property.displayName, { name, resource });\n\n      if (property.ui.onTable.isVisible) {\n        const sortable = Boolean(property.ui.onTable.isSortable);\n        const columnWidth = type === ePropType.Boolean ? 150 : 250;\n        const valueResolver =\n          type === ePropType.Enum\n            ? createEnumValueResolver(property.type, enums[property.type], propName)\n            : createExtraPropertyValueResolver<T>(propName);\n\n        const entityProp = new EntityProp<T>({\n          type,\n          name: propName,\n          displayName,\n          sortable,\n          columnWidth,\n          valueResolver,\n          isExtra,\n        });\n\n        const contributor = (propList: EntityPropList<T>) => propList.addTail(entityProp);\n        contributors.prop[key].push(contributor);\n      }\n\n      const isOnCreateForm = property.ui.onCreateForm.isVisible;\n      const isOnEditForm = property.ui.onEditForm.isVisible;\n\n      if (isOnCreateForm || isOnEditForm) {\n        const defaultValue = property.defaultValue;\n        const validators = () => getValidatorsFromProperty(property);\n        let options: PropCallback<any, Observable<ABP.Option<any>[]>> | undefined;\n        if (type === ePropType.Enum)\n          options = createEnumOptions(propName, enums[property.type || '']);\n        else if (type === ePropType.Typeahead) options = createTypeaheadOptions(lookup);\n\n        const formProp = new FormProp({\n          type,\n          name: propName,\n          displayName,\n          options,\n          defaultValue,\n          validators,\n          isExtra,\n        });\n\n        const formContributor = (propList: FormPropList<T>) => propList.addTail(formProp);\n\n        if (isOnCreateForm) contributors.createForm[key].push(formContributor);\n        if (isOnEditForm) contributors.editForm[key].push(formContributor);\n      }\n    });\n\n    return contributors;\n  };\n}\n\nfunction getTypeFromProperty(property: ObjectExtensions.ExtensionPropertyDto): ePropType {\n  return property?.typeSimple?.replace(/\\?$/, '') as string as ePropType;\n}\n\nfunction isUndefined(obj: any): obj is undefined {\n  return typeof obj === 'undefined';\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  Optional,\n  SkipSelf,\n  ViewChild,\n} from '@angular/core';\nimport { ControlContainer } from '@angular/forms';\nimport {\n  NgbDateAdapter,\n  NgbInputDatepicker,\n  NgbTimeAdapter,\n  NgbTimepicker,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { DateTimeAdapter } from '../../adapters';\nimport { FormProp } from '../../models';\nimport { selfFactory } from '../../utils';\n\n@Component({\n  exportAs: 'appDateTimePicker',\n  selector: 'app-date-time-picker',\n  template: `\n    <input\n      [id]=\"prop.id\"\n      [formControlName]=\"prop.name\"\n      (ngModelChange)=\"setTime($event)\"\n      (click)=\"datepicker.open()\"\n      (keyup.space)=\"datepicker.open()\"\n      ngbDatepicker\n      #datepicker=\"ngbDatepicker\"\n      type=\"text\"\n      class=\"form-control\"\n    />\n    <ngb-timepicker\n      #timepicker\n      [formControlName]=\"prop.name\"\n      (ngModelChange)=\"setDate($event)\"\n      [meridian]=\"meridian\"\n    ></ngb-timepicker>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  viewProviders: [\n    {\n      provide: ControlContainer,\n      useFactory: selfFactory,\n      deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n    },\n    {\n      provide: NgbDateAdapter,\n      useClass: DateTimeAdapter,\n    },\n    {\n      provide: NgbTimeAdapter,\n      useClass: DateTimeAdapter,\n    },\n  ],\n})\nexport class DateTimePickerComponent {\n  @Input() prop!: FormProp;\n  @Input() meridian = false;\n\n  @ViewChild(NgbInputDatepicker) date!: NgbInputDatepicker;\n  @ViewChild(NgbTimepicker) time!: NgbTimepicker;\n\n  constructor(public readonly cdRef: ChangeDetectorRef) {}\n\n  setDate(datestr: string) {\n    this.date.writeValue(datestr);\n  }\n\n  setTime(datestr: string) {\n    this.time.writeValue(datestr);\n  }\n}\n","import { Directive, Host, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n  selector: '[appDisabled]',\n})\nexport class DisabledDirective implements OnChanges {\n  @Input()\n  appDisabled = false;\n\n  constructor(@Host() private ngControl: NgControl) {}\n\n  ngOnChanges({ appDisabled }: SimpleChanges) {\n    if (this.ngControl.control && appDisabled) {\n      this.ngControl.control[appDisabled.currentValue ? 'disable' : 'enable']();\n    }\n  }\n}\n","import { AbpValidators, ConfigStateService, TrackByService } from '@abp/ng.core';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Input,\n  Optional,\n  SimpleChanges,\n  SkipSelf,\n  ViewChild,\n} from '@angular/core';\nimport {\n  ControlContainer,\n  FormGroup,\n  FormGroupDirective,\n  ValidatorFn,\n  Validators,\n} from '@angular/forms';\nimport { NgbDateAdapter, NgbTimeAdapter } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable, of, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, switchMap } from 'rxjs/operators';\nimport { DateAdapter, TimeAdapter } from '../../adapters';\nimport { EXTRA_PROPERTIES_KEY } from '../../constants';\nimport { ePropType } from '../../enums';\nimport { FormProp, PropData, Option } from '../../models';\nimport { addTypeaheadTextSuffix, selfFactory } from '../../utils';\n\n@Component({\n  selector: 'app-extensible-prop',\n  templateUrl: './extensible-prop.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  viewProviders: [\n    {\n      provide: ControlContainer,\n      useFactory: selfFactory,\n      deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n    },\n    { provide: NgbDateAdapter, useClass: DateAdapter },\n    { provide: NgbTimeAdapter, useClass: TimeAdapter },\n  ],\n})\nexport class ExtensiblePropComponent {\n  @Input() data!: PropData;\n  @Input() prop!: FormProp;\n  @Input() first?: boolean;\n  @Input() hiddenLabel?: boolean;\n  @ViewChild('field') private fieldRef!: ElementRef<HTMLElement>;\n\n  asterisk = '';\n  options$: Observable<Option<any>[]> = of([]);\n  validators: ValidatorFn[] = [];\n  readonly!: boolean;\n  typeaheadModel: Option<any>;\n\n  disabledFn = (data: PropData) => false;\n\n  search = (text$: Observable<string>) =>\n    text$\n      ? text$.pipe(\n          debounceTime(300),\n          distinctUntilChanged(),\n          switchMap(text => this.prop.options(this.data, text))\n        )\n      : of([]);\n\n  typeaheadInputFormatter = (option: Option<any>) =>\n    option.display || option.lookup || option.value || option.key;\n\n  typeaheadResultFormatter = (option: Option<any>) => option.lookup || option.value || option.key;\n\n  get meridian() {\n    return (\n      this.configStage.getDeep('localization.currentCulture.dateTimeFormat.shortTimePattern') || ''\n    ).includes('tt');\n  }\n\n  get isInvalid() {\n    const control = this.form.get(this.prop.name);\n    return control.touched && control.invalid;\n  }\n\n  get disabled() {\n    return this.disabledFn(this.data);\n  }\n\n  private readonly form: FormGroup;\n  private valueChangesSubscription: Subscription;\n\n  constructor(\n    public readonly cdRef: ChangeDetectorRef,\n    public readonly track: TrackByService,\n    protected configStage: ConfigStateService,\n    groupDirective: FormGroupDirective\n  ) {\n    this.form = groupDirective.form;\n  }\n\n  ngOnDestroy() {\n    if (this.valueChangesSubscription) this.valueChangesSubscription.unsubscribe();\n  }\n\n  ngOnChanges({ prop }: SimpleChanges): void {\n    const currentProp: FormProp = prop?.currentValue;\n    const { options, readonly, disabled, validators } = currentProp || {};\n\n    if (options) this.options$ = options(this.data);\n    if (readonly) this.readonly = readonly(this.data);\n    if (disabled) this.disabledFn = disabled;\n    if (validators) {\n      this.validators = validators(this.data);\n      this.setAsterisk();\n    }\n\n    const [keyControl, valueControl] = this.getTypeaheadControls();\n    if (keyControl && valueControl)\n      this.typeaheadModel = { key: keyControl.value, value: valueControl.value };\n\n    this.subscribeValueChanges();\n  }\n\n  ngAfterViewInit(): void {\n    if (this.first && this.fieldRef) {\n      this.fieldRef.nativeElement.focus();\n    }\n  }\n\n  getComponent(prop: FormProp): string {\n    switch (prop.type) {\n      case ePropType.Boolean:\n        return 'checkbox';\n      case ePropType.Date:\n        return 'date';\n      case ePropType.DateTime:\n        return 'dateTime';\n      case ePropType.Hidden:\n        return 'hidden';\n      case ePropType.MultiSelect:\n        return 'multiselect';\n      case ePropType.Text:\n        return 'textarea';\n      case ePropType.Time:\n        return 'time';\n      case ePropType.Typeahead:\n        return 'typeahead';\n      default:\n        return prop.options ? 'select' : 'input';\n    }\n  }\n\n  getType(prop: FormProp): string {\n    switch (prop.type) {\n      case ePropType.Date:\n        return 'date';\n      case ePropType.String:\n        return 'text';\n      case ePropType.Boolean:\n        return 'checkbox';\n      case ePropType.Number:\n        return 'number';\n      case ePropType.Email:\n        return 'email';\n      case ePropType.Password:\n        return 'password';\n      default:\n        return 'hidden';\n    }\n  }\n\n  selectOption(selectedOption: Option<any>) {\n    this.setTypeaheadValue(selectedOption);\n    this.optionSelected(selectedOption);\n  }\n\n  setTypeaheadValue(selectedOption: Option<any>) {\n    this.typeaheadModel = selectedOption || { key: null, value: null };\n    const { key, value } = this.typeaheadModel;\n    const [keyControl, valueControl] = this.getTypeaheadControls();\n    if (valueControl?.value && !value) valueControl.markAsDirty();\n    keyControl?.setValue(key);\n    valueControl?.setValue(value || key);\n  }\n\n  private getTypeaheadControls() {\n    const { name } = this.prop;\n    const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`;\n    const keyControl =\n      this.form.get(addTypeaheadTextSuffix(extraPropName)) ||\n      this.form.get(addTypeaheadTextSuffix(name));\n    const valueControl = this.form.get(extraPropName) || this.form.get(name);\n    return [keyControl, valueControl];\n  }\n\n  private optionSelected(selectedOption: Option<any>) {\n    const { optionSelected } = this.prop;\n    if (optionSelected) {\n      optionSelected(this.data, selectedOption);\n    }\n  }\n\n  private setAsterisk() {\n    this.asterisk = this.validators.some(isRequired) ? '*' : '';\n  }\n\n  private subscribeValueChanges() {\n    const { name, valueChanges } = this.prop;\n    if (valueChanges) {\n      this.valueChangesSubscription = this.form\n        .get(name)\n        ?.valueChanges.pipe(\n          distinctUntilChanged(),\n          filter(value => Boolean(value))\n        )\n        .subscribe(value => valueChanges(this.data, value));\n    }\n  }\n}\n\nfunction isRequired(validator: ValidatorFn) {\n  return validator === Validators.required || validator === AbpValidators.required;\n}\n","<div class=\"mb-3 form-group\" *abpPermission=\"prop.permission\" [ngSwitch]=\"getComponent(prop)\">\n  <ng-template ngSwitchCase=\"input\">\n    <ng-template *ngIf=\"!hiddenLabel\" [ngTemplateOutlet]=\"label\"></ng-template>\n    <input\n      #field\n      [id]=\"prop.id\"\n      [formControlName]=\"prop.name\"\n      [autocomplete]=\"prop.autocomplete\"\n      [type]=\"getType(prop)\"\n      [appDisabled]=\"disabled\"\n      [readonly]=\"readonly\"\n      class=\"form-control\"\n    />\n  </ng-template>\n\n  <ng-template ngSwitchCase=\"hidden\">\n    <input [formControlName]=\"prop.name\" type=\"hidden\" />\n  </ng-template>\n\n  <ng-template ngSwitchCase=\"checkbox\">\n    <div class=\"form-check\" validationTarget>\n      <input\n        #field\n        [id]=\"prop.id\"\n        [formControlName]=\"prop.name\"\n        [appDisabled]=\"disabled\"\n        type=\"checkbox\"\n        class=\"form-check-input\"\n      />\n      <ng-template\n        *ngIf=\"!hiddenLabel\"\n        [ngTemplateOutlet]=\"label\"\n        [ngTemplateOutletContext]=\"{ $implicit: 'form-check-label' }\"\n      ></ng-template>\n    </div>\n  </ng-template>\n\n  <ng-template ngSwitchCase=\"select\">\n    <ng-template *ngIf=\"!hiddenLabel\" [ngTemplateOutlet]=\"label\"></ng-template>\n    <select\n      #field\n      [id]=\"prop.id\"\n      [formControlName]=\"prop.name\"\n      [appDisabled]=\"disabled\"\n      class=\"form-select form-control\"\n    >\n      <option\n        *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\n        [ngValue]=\"option.value\"\n      >\n        {{ option.key }}\n      </option>\n    </select>\n  </ng-template>\n\n  <ng-template ngSwitchCase=\"multiselect\">\n    <ng-template *ngIf=\"!hiddenLabel\" [ngTemplateOutlet]=\"label\"></ng-template>\n    <select\n      #field\n      [id]=\"prop.id\"\n      [formControlName]=\"prop.name\"\n      [appDisabled]=\"disabled\"\n      multiple=\"multiple\"\n      class=\"form-select form-control\"\n    >\n      <option\n        *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\n        [ngValue]=\"option.value\"\n      >\n        {{ option.key }}\n      </option>\n    </select>\n  </ng-template>\n\n  <ng-template ngSwitchCase=\"typeahead\">\n    <ng-template *ngIf=\"!hiddenLabel\" [ngTemplateOutlet]=\"label\"></ng-template>\n    <div #typeahead class=\"position-relative\" validationStyle validationTarget>\n      <input\n        #field\n        [id]=\"prop.id\"\n        [autocomplete]=\"prop.autocomplete\"\n        [appDisabled]=\"disabled\"\n        [ngbTypeahead]=\"search\"\n        [editable]=\"false\"\n        [inputFormatter]=\"typeaheadInputFormatter\"\n        [resultFormatter]=\"typeaheadResultFormatter\"\n        [ngModelOptions]=\"{ standalone: true }\"\n        [(ngModel)]=\"typeaheadModel\"\n        (selectItem)=\"selectOption($event.item)\"\n        [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\n        class=\"form-control\"\n      />\n      <input [formControlName]=\"prop.name\" type=\"hidden\" />\n    </div>\n  </ng-template>\n\n  <ng-template ngSwitchCase=\"date\">\n    <ng-template *ngIf=\"!hiddenLabel\" [ngTemplateOutlet]=\"label\"></ng-template>\n    <input\n      [id]=\"prop.id\"\n      [formControlName]=\"prop.name\"\n      (click)=\"datepicker.open()\"\n      (keyup.space)=\"datepicker.open()\"\n      ngbDatepicker\n      #datepicker=\"ngbDatepicker\"\n      type=\"text\"\n      class=\"form-control\"\n    />\n  </ng-template>\n\n  <ng-template ngSwitchCase=\"time\">\n    <ng-template *ngIf=\"!hiddenLabel\" [ngTemplateOutlet]=\"label\"></ng-template>\n    <ngb-timepicker [formControlName]=\"prop.name\"></ngb-timepicker>\n  </ng-template>\n\n  <ng-template ngSwitchCase=\"dateTime\">\n    <ng-template *ngIf=\"!hiddenLabel\" [ngTemplateOutlet]=\"label\"></ng-template>\n    <app-date-time-picker [prop]=\"prop\" [meridian]=\"meridian\"></app-date-time-picker>\n  </ng-template>\n\n  <ng-template ngSwitchCase=\"textarea\">\n    <ng-template *ngIf=\"!hiddenLabel\" [ngTemplateOutlet]=\"label\"></ng-template>\n    <textarea\n      #field\n      [id]=\"prop.id\"\n      [formControlName]=\"prop.name\"\n      [appDisabled]=\"disabled\"\n      [readonly]=\"readonly\"\n      class=\"form-control\"\n    ></textarea>\n  </ng-template>\n</div>\n\n<ng-template #label let-classes>\n  <label [htmlFor]=\"prop.id\" [ngClass]=\"classes || 'form-label'\"\n    >{{ prop.displayName | abpLocalization }} {{ asterisk }}</label\n  >\n</ng-template>\n","import {\n  Directive,\n  Injector,\n  Input,\n  OnChanges,\n  OnDestroy,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport { PropData, PropList } from '../models';\n\n@Directive({\n  exportAs: 'appPropData',\n  selector: '[appPropData]',\n})\nexport class PropDataDirective<L extends PropList<any>>\n  extends PropData<InferredData<L>>\n  implements OnChanges, OnDestroy\n{\n  @Input('appPropDataFromList') propList?: L;\n  @Input('appPropDataWithRecord') record!: InferredData<L>['record'];\n  @Input('appPropDataAtIndex') index?: number;\n\n  readonly getInjected: InferredData<L>['getInjected'];\n\n  constructor(\n    private tempRef: TemplateRef<any>,\n    private vcRef: ViewContainerRef,\n    injector: Injector\n  ) {\n    super();\n\n    this.getInjected = injector.get.bind(injector);\n  }\n\n  ngOnChanges() {\n    this.vcRef.clear();\n\n    this.vcRef.createEmbeddedView(this.tempRef, {\n      $implicit: this.data,\n      index: 0,\n    });\n  }\n\n  ngOnDestroy() {\n    this.vcRef.clear();\n  }\n}\n\ntype InferredData<L> = PropData<InferredRecord<L>>;\ntype InferredRecord<L> = L extends PropList<infer R> ? R : never;\n","import { TrackByService } from '@abp/ng.core';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  Input,\n  Optional,\n  QueryList,\n  SkipSelf,\n  ViewChildren,\n} from '@angular/core';\nimport { ControlContainer, FormGroup } from '@angular/forms';\nimport { EXTRA_PROPERTIES_KEY } from '../../constants';\nimport { FormPropList } from '../../models';\nimport { ExtensionsService } from '../../services';\nimport { EXTENSIONS_IDENTIFIER } from '../../tokens';\nimport { selfFactory } from '../../utils';\nimport { ExtensiblePropComponent } from '../extensible-prop/extensible-prop.component';\n\n@Component({\n  exportAs: 'appExtensibleForm',\n  selector: 'app-extensible-form',\n  templateUrl: './extensible-form.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  viewProviders: [\n    {\n      provide: ControlContainer,\n      useFactory: selfFactory,\n      deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n    },\n  ],\n})\nexport class ExtensibleFormComponent<R = any> {\n  @Input() propList: FormPropList<R>;\n  @Input() formGroupName: string;\n  @Input() identifier: string;\n  @Input() set selectedRecord(record: R) {\n    if (this.identifier || this.extensionsIdentifier) {\n      const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';\n      const contributorsProps: FormPropList<R> = this.extensions[`${type}FormProps`].get(\n        this.identifier || this.extensionsIdentifier\n      ).props;\n      this.propList.addManyTail(contributorsProps.toArray());\n    }\n    this.record = record;\n  }\n\n  @ViewChildren(ExtensiblePropComponent)\n  formProps: QueryList<ExtensiblePropComponent>;\n\n  extraPropertiesKey = EXTRA_PROPERTIES_KEY;\n  record: R;\n\n  get form(): FormGroup {\n    return (\n      this.container\n        ? this.formGroupName\n          ? (this.container.control as FormGroup).controls[this.formGroupName]\n          : this.container.control\n        : { controls: {} }\n    ) as FormGroup;\n  }\n\n  get extraProperties(): FormGroup {\n    return (this.form.controls.extraProperties || { controls: {} }) as FormGroup;\n  }\n\n  constructor(\n    public readonly cdRef: ChangeDetectorRef,\n    public readonly track: TrackByService,\n    private container: ControlContainer,\n    private extensions: ExtensionsService,\n    @Inject(EXTENSIONS_IDENTIFIER) private extensionsIdentifier: string\n  ) {\n    this.propList = new FormPropList();\n  }\n}\n","<ng-container *ngIf=\"form\">\n  <ng-container *appPropData=\"let data; fromList: propList; withRecord: record\">\n    <ng-container *ngFor=\"let prop of propList; let first = first; trackBy: track.by('name')\">\n      <ng-container *ngIf=\"prop.visible(data)\">\n        <ng-container\n          *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\n          [formGroupName]=\"extraPropertiesKey\"\n        >\n          <app-extensible-prop [prop]=\"prop\" [data]=\"data\"></app-extensible-prop>\n        </ng-container>\n\n        <ng-template #tempDefault>\n          <ng-container *ngIf=\"formGroupName\" [formGroupName]=\"formGroupName\">\n            <app-extensible-prop\n              *ngIf=\"form.get(prop.name)\"\n              [prop]=\"prop\"\n              [data]=\"data\"\n              [first]=\"first\"\n            ></app-extensible-prop>\n          </ng-container>\n\n          <app-extensible-prop\n            *ngIf=\"!formGroupName && form.get(prop.name)\"\n            [prop]=\"prop\"\n            [data]=\"data\"\n            [first]=\"first\"\n          ></app-extensible-prop>\n        </ng-template>\n      </ng-container>\n    </ng-container>\n  </ng-container>\n</ng-container>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Injector,\n  Input,\n  TrackByFunction,\n} from '@angular/core';\nimport { EntityAction, EntityActionList } from '../../models';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\n\n@Component({\n  exportAs: 'appGridActions',\n  selector: 'app-grid-actions',\n  templateUrl: './grid-actions.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GridActionsComponent<R = any> extends AbstractActionsComponent<EntityActionList<R>> {\n  @Input() icon = 'fa fa-cog';\n  @Input() text = 'AbpUi::Action';\n  @Input() readonly index: number;\n\n  readonly trackByFn: TrackByFunction<EntityAction<R>> = (_, item) => item.text;\n\n  constructor(injector: Injector) {\n    super(injector);\n  }\n}\n","<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\n  <button class=\"btn-action\" data-toggle=\"dropdown\" aria-haspopup=\"true\" ngbDropdownToggle>\n    <i [ngClass]=\"icon\"></i>\n  </button>\n  <div ngbDropdownMenu>\n    <ng-container\n      *ngFor=\"let action of actionList; trackBy: trackByFn\"\n      [ngTemplateOutlet]=\"dropDownBtnItemTmp\"\n      [ngTemplateOutletContext]=\"{ $implicit: action }\"\n    >\n    </ng-container>\n  </div>\n</div>\n\n<ng-container\n  *ngIf=\"actionList.length === 1\"\n  [ngTemplateOutlet]=\"btnTmp\"\n  [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\n></ng-container>\n\n<ng-template #dropDownBtnItemTmp let-action>\n  <ng-container *ngIf=\"action.visible(data)\">\n    <button\n      ngbDropdownItem\n      *abpPermission=\"action.permission; runChangeDetection: false\"\n      (click)=\"action.action(data)\"\n      type=\"button\"\n    >\n      <ng-container\n        *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\n      ></ng-container>\n    </button>\n  </ng-container>\n</ng-template>\n\n<ng-template #buttonContentTmp let-action>\n  <i [ngClass]=\"action.icon\"></i>\n  <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\n  <ng-template #ellipsis>\n    <div appEllipsis>{{ action.text | abpLocalization }}</div>\n  </ng-template>\n</ng-template>\n\n<ng-template #btnTmp let-action>\n  <ng-container *ngIf=\"action.visible(data)\">\n    <button\n      *abpPermission=\"action.permission; runChangeDetection: false\"\n      (click)=\"action.action(data)\"\n      type=\"button\"\n      class=\"btn btn-primary text-center\"\n    >\n      <ng-container\n        *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\n      ></ng-container>\n    </button>\n  </ng-container>\n</ng-template>\n\n<style>\n  .dropdown-toggle::after {\n    display: none;\n  }\n</style>\n","import {\n  ABP,\n  ConfigStateService,\n  getShortDateFormat,\n  getShortDateShortTimeFormat,\n  getShortTimeFormat,\n  ListService,\n  PermissionService,\n} from '@abp/ng.core';\nimport { formatDate } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  InjectFlags,\n  InjectionToken,\n  Injector,\n  Input,\n  LOCALE_ID,\n  OnChanges,\n  Optional,\n  SimpleChanges,\n  SkipSelf,\n  TemplateRef,\n  TrackByFunction,\n  Type,\n} from '@angular/core';\nimport { ControlContainer, FormGroup } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ePropType } from '../../enums';\nimport { EntityActionList, EntityProp, EntityPropList, PropData } from '../../models';\nimport { ExtensionsService } from '../../services';\nimport {\n  ENTITY_PROP_TYPE_CLASSES,\n  EntityPropTypeClass,\n  EXTENSIONS_IDENTIFIER,\n  PROP_DATA_STREAM,\n} from '../../tokens';\nimport { selfFactory } from '../../utils';\n\nconst DEFAULT_ACTIONS_COLUMN_WIDTH = 150;\n\n@Component({\n  exportAs: 'appExtensibleTable',\n  selector: 'app-extensible-table',\n  templateUrl: './extensible-table.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  viewProviders: [\n    {\n      provide: ControlContainer,\n      useFactory: selfFactory,\n      deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n    },\n  ],\n})\nexport class ExtensibleTableComponent<R = any> implements OnChanges {\n  @Input() data: R[];\n  @Input() list: ListService;\n  @Input() recordsTotal: number;\n  @Input() inline = false;\n  @Input() propList!: EntityPropList<R>;\n  @Input() actionList: EntityActionList<R>;\n  @Input() actionsTemplate: TemplateRef<any>;\n  @Input() identifier: string;\n  @Input() set formArrayName(formArrayName: string) {\n    if (formArrayName) {\n      this.form = (this.container ? this.container.control : { controls: {} }) as FormGroup;\n      this._formArrayName = formArrayName;\n    }\n  }\n  get formArrayName() {\n    return this._formArrayName;\n  }\n  protected _formArrayName: string;\n\n  @Input() set actionsColumnWidth(width: number) {\n    this.setColumnWidths(width ? Number(width) : undefined);\n  }\n\n  @Input() set actionsText(value: string) {\n    this._actionsText = value;\n  }\n  get actionsText(): string {\n    return this._actionsText ?? (this.actionList.length > 1 ? 'AbpUi::Actions' : '');\n  }\n  protected _actionsText: string;\n\n  hasAtLeastOnePermittedAction: boolean;\n  entityPropTypeClasses: EntityPropTypeClass;\n  columnWidths: number[];\n  editing = {};\n\n  getInjected: <T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags) => T;\n  trackByFn: TrackByFunction<EntityProp<R>> = (_, item) => item.name;\n\n  protected form: FormGroup;\n\n  constructor(\n    @Inject(LOCALE_ID) private locale: string,\n    @Inject(EXTENSIONS_IDENTIFIER) private extensionsIdentifier: string,\n    private config: ConfigStateService,\n    private injector: Injector,\n    private extensions: ExtensionsService,\n    private permissionService: PermissionService,\n    private container: ControlContainer\n  ) {\n    this.getInjected = injector.get.bind(injector);\n    this.entityPropTypeClasses = injector.get(ENTITY_PROP_TYPE_CLASSES);\n    this.propList = new EntityPropList<R>();\n    this.actionList = new EntityActionList<R>();\n  }\n\n  ngOnChanges({ data }: SimpleChanges) {\n    if (!data?.currentValue) return;\n    this.setExtensions();\n    const currentData: R[] = data.currentValue;\n    this.data = currentData.map((record, index) => {\n      this.propList.forEach(prop => {\n        const propData = { getInjected: this.getInjected, record, index } as any;\n        const value = this.getContent(prop.value, propData);\n        const propKey = `_${prop.value.name}`;\n        record[propKey] = {\n          visible: prop.value.visible(propData),\n          value,\n        };\n        if (prop.value.component) {\n          const injector = Injector.create(\n            [\n              {\n                provide: PROP_DATA_STREAM,\n                useValue: value,\n              },\n            ],\n            this.injector\n          );\n          record[propKey].injector = injector;\n          record[propKey].component = prop.value.component;\n        }\n      });\n\n      return record;\n    });\n  }\n\n  getContent(prop: EntityProp<R>, data: PropData): Observable<string> {\n    return prop.valueResolver(data).pipe(\n      map(value => {\n        switch (prop.type) {\n          case ePropType.Boolean:\n            return this.getIcon(value);\n          case ePropType.Date:\n            return this.getDate(value, getShortDateFormat(this.config));\n          case ePropType.Time:\n            return this.getDate(value, getShortTimeFormat(this.config));\n          case ePropType.DateTime:\n            return this.getDate(value, getShortDateShortTimeFormat(this.config));\n          case ePropType.Enum:\n            return this.getEnum(value, prop.enumList);\n          default:\n            return value;\n        }\n      })\n    );\n  }\n\n  allowEdit(rowIndex: number, columnName: string, action: boolean) {\n    this.editing[getCell(rowIndex, columnName)] = action;\n  }\n\n  canEdit(rowIndex: number, columnName: string): boolean {\n    return this.inline && this.editing[getCell(rowIndex, columnName)];\n  }\n\n  editData($event: Event, rowIndex: number, columnName: string) {\n    this.allowEdit(rowIndex, columnName, false);\n    this.data[rowIndex][columnName] = ($event.target as HTMLInputElement).value;\n    this.data = [...this.data];\n  }\n\n  private setExtensions() {\n    const identifier = this.identifier || this.extensionsIdentifier;\n    if (identifier) {\n      const contributorsProps: EntityPropList<R> =\n        this.extensions.entityProps.get(identifier).props;\n      const contributorsActions: EntityActionList<R> =\n        this.extensions.entityActions.get(identifier).actions;\n\n      this.propList.addManyTail(contributorsProps.toArray());\n      this.actionList.addManyTail(contributorsActions.toArray());\n    }\n\n    this.hasAtLeastOnePermittedAction =\n      this.permissionService.filterItemsByPolicy(\n        this.actionList.toArray().map(action => ({ requiredPolicy: action.permission }))\n      ).length > 0;\n    this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);\n  }\n\n  private setColumnWidths(actionsColumn: number) {\n    const widths = [actionsColumn];\n    this.propList.forEach(({ value: prop }) => widths.push(prop.columnWidth));\n    (this.columnWidths as any) = widths;\n  }\n\n  private getDate(value: Date, format: string) {\n    return value ? formatDate(value, format, this.locale) : '';\n  }\n\n  private getIcon(value: boolean) {\n    return value\n      ? '<div class=\"text-success\"><i class=\"fa fa-check\"></i></div>'\n      : '<div class=\"text-danger\"><i class=\"fa fa-times\"></i></div>';\n  }\n\n  private getEnum(rowValue: any, list: Array<ABP.Option<any>>) {\n    if (!list) return rowValue;\n    const { key } = list.find(({ value }) => value === rowValue);\n    return key;\n  }\n}\n\nfunction getCell(rowIndex: number, columnName: string): string {\n  return rowIndex + '_' + columnName;\n}\n","<ngx-datatable\n  default\n  [rows]=\"data\"\n  [count]=\"recordsTotal\"\n  [list]=\"list\"\n  [headerHeight]=\"32\"\n  [footerHeight]=\"32\"\n  [rowHeight]=\"32\"\n>\n  <ngx-datatable-column\n    *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\n    [name]=\"actionsText | abpLocalization\"\n    [maxWidth]=\"columnWidths[0]\"\n    [width]=\"columnWidths[0]\"\n    [sortable]=\"false\"\n  >\n    <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n      <ng-container\n        *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\n      ></ng-container>\n      <ng-template #gridActions>\n        <app-grid-actions\n          class=\"grid-actions\"\n          [actionList]=\"actionList\"\n          [index]=\"i\"\n          [record]=\"row\"\n          text=\"\"\n        ></app-grid-actions>\n      </ng-template>\n    </ng-template>\n  </ngx-datatable-column>\n\n  <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\n    <ngx-datatable-column\n      [width]=\"columnWidths[i + 1] || 150\"\n      [name]=\"prop.displayName | abpLocalization\"\n      [prop]=\"prop.name\"\n      [sortable]=\"prop.sortable\"\n    >\n      <ng-template\n        let-row=\"row\"\n        let-rowIndex=\"rowIndex\"\n        let-i=\"index\"\n        let-value=\"value\"\n        ngx-datatable-cell-template\n      >\n        <ng-container *abpPermission=\"prop.permission\">\n          <ng-container *ngIf=\"formArrayName; else tempDefault\" [formArrayName]=\"formArrayName\">\n            <div\n              *ngIf=\"!canEdit(rowIndex, prop.name)\"\n              [innerHTML]=\"row['_' + prop.name]?.value | async\"\n              (click)=\"\n                inline\n                  ? allowEdit(rowIndex, prop.name, true)\n                  : prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\n              \"\n              [ngClass]=\"entityPropTypeClasses[prop.type]\"\n              [class.pointer]=\"prop.action\"\n            ></div>\n            <ng-container *ngIf=\"canEdit(rowIndex, prop.name)\" [formGroupName]=\"rowIndex\">\n              <ng-container *appPropData=\"let data; fromList: propList; withRecord: row\">\n                <app-extensible-prop\n                  hiddenLabel=\"true\"\n                  [prop]=\"prop\"\n                  [data]=\"data\"\n                  [ngClass]=\"entityPropTypeClasses[prop.type]\"\n                  (focusout)=\"editData($event, rowIndex, prop.name)\"\n                ></app-extensible-prop>\n              </ng-container>\n            </ng-container>\n          </ng-container>\n\n          <ng-template #tempDefault>\n            <ng-container *ngIf=\"row['_' + prop.name]?.visible\">\n              <div\n                *ngIf=\"!canEdit(rowIndex, prop.name)\"\n                [innerHTML]=\"row['_' + prop.name]?.value | async\"\n                (click)=\"\n                  inline\n                    ? allowEdit(rowIndex, prop.name, true)\n                    : prop.action &&\n                      prop.action({ getInjected: getInjected, record: row, index: i })\n                \"\n                [ngClass]=\"entityPropTypeClasses[prop.type]\"\n                [class.pointer]=\"prop.action\"\n              ></div>\n              <input\n                autofocus\n                [ngClass]=\"entityPropTypeClasses[prop.type]\"\n                (focusout)=\"editData($event, rowIndex, prop.name)\"\n                type=\"text\"\n                [value]=\"row['_' + prop.name]?.value | async\"\n                *ngIf=\"canEdit(rowIndex, prop.name)\"\n              />\n            </ng-container>\n          </ng-template>\n        </ng-container>\n      </ng-template>\n    </ngx-datatable-column>\n  </ng-container>\n</ngx-datatable>\n","import { InjectFlags, InjectionToken, Injector, Pipe, PipeTransform, Type } from '@angular/core';\nimport { HasCreateInjectorPipe, ToolbarComponent } from '../models';\nimport { EXTENSIONS_ACTION_CALLBACK, EXTENSIONS_ACTION_DATA } from '../tokens';\n\n@Pipe({\n  name: 'createInjector',\n})\nexport class CreateInjectorPipe<R> implements PipeTransform {\n  public transform(\n    _: any,\n    action: ToolbarComponent<R>,\n    context: HasCreateInjectorPipe<R>\n  ): Injector {\n    const get = <T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags) => {\n      const componentData = context.getData();\n      const componentDataCallback = data => {\n        data = data ?? context.getData();\n        return action.action(data);\n      };\n      let extensionData;\n      switch (token) {\n        case EXTENSIONS_ACTION_DATA:\n          extensionData = componentData;\n          break;\n        case EXTENSIONS_ACTION_CALLBACK:\n          extensionData = componentDataCallback;\n          break;\n        default:\n          extensionData = context.getInjected.call(context.injector, token, notFoundValue, flags);\n      }\n      return extensionData;\n    };\n    return { get };\n  }\n}\n","import { ChangeDetectionStrategy, Component, Injector, TrackByFunction } from '@angular/core';\nimport { HasCreateInjectorPipe, ToolbarActionList, ToolbarComponent } from '../../models';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\n\n@Component({\n  exportAs: 'appPageToolbar',\n  selector: 'app-page-toolbar',\n  templateUrl: './page-toolbar.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PageToolbarComponent<R = any>\n  extends AbstractActionsComponent<ToolbarActionList<R>>\n  implements HasCreateInjectorPipe<R>\n{\n  defaultBtnClass = 'btn btn-sm btn-primary';\n\n  getData = () => this.data;\n\n  readonly trackByFn: TrackByFunction<ToolbarComponent<R>> = (_, item) =>\n    item.action || item.component;\n\n  constructor(public readonly injector: Injector) {\n    super(injector);\n  }\n}\n","<div class=\"row justify-content-end mx-0\" id=\"AbpContentToolbar\">\n  <div\n    class=\"col-auto px-1 pt-0 pt-md-2\"\n    [class.pe-0]=\"last\"\n    *ngFor=\"let action of actionList; trackBy: trackByFn; let last = last\"\n  >\n    <ng-container *ngIf=\"action.visible(data)\">\n      <ng-container *abpPermission=\"action.permission;runChangeDetection: false\">\n        <ng-container *ngIf=\"action.component as component; else button\">\n          <ng-container\n            *ngComponentOutlet=\"component; injector: record | createInjector: action:this\"\n          ></ng-container>\n        </ng-container>\n\n        <ng-template #button>\n          <button\n            (click)=\"action.action(data)\"\n            type=\"button\"\n            [ngClass]=\"action.btnClass ? action.btnClass : defaultBtnClass\"\n          >\n            <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\n            {{ action.text | abpLocalization }}\n          </button>\n        </ng-template>\n      </ng-container>\n    </ng-container>\n  </div>\n</div>\n","import {\n  Directive,\n  Inject,\n  InjectionToken,\n  Injector,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  SimpleChange,\n  SimpleChanges,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport { Observable, of, Subscription } from 'rxjs';\n\nexport interface PageRenderStrategy {\n  shouldRender(type?: string): boolean | Observable<boolean>;\n  onInit?(type?: string, injector?: Injector, context?: any): void;\n  onDestroy?(type?: string, injector?: Injector, context?: any): void;\n  onContextUpdate?(change?: SimpleChange): void;\n}\n\nexport const PAGE_RENDER_STRATEGY = new InjectionToken<PageRenderStrategy>('PAGE_RENDER_STRATEGY');\n\n@Directive({ selector: '[appPagePart]' })\nexport class PagePartDirective implements OnInit, OnDestroy, OnChanges {\n  hasRendered = false;\n  type: string;\n  subscription: Subscription;\n\n  @Input('appPagePartContext') context: any;\n  @Input() set appPagePart(type: string) {\n    this.type = type;\n    this.createRenderStream(type);\n  }\n\n  render = (shouldRender: boolean) => {\n    if (shouldRender && !this.hasRendered) {\n      this.viewContainer.createEmbeddedView(this.templateRef);\n      this.hasRendered = true;\n    } else if (!shouldRender && this.hasRendered) {\n      this.viewContainer.clear();\n      this.hasRendered = false;\n    }\n  };\n\n  constructor(\n    private templateRef: TemplateRef<any>,\n    private viewContainer: ViewContainerRef,\n    @Optional() @Inject(PAGE_RENDER_STRATEGY) private renderLogic: PageRenderStrategy,\n    private injector: Injector\n  ) {}\n\n  ngOnChanges({ context }: SimpleChanges): void {\n    if (this.renderLogic?.onContextUpdate) {\n      this.renderLogic.onContextUpdate(context);\n    }\n  }\n\n  ngOnInit() {\n    if (this.renderLogic?.onInit) {\n      this.renderLogic.onInit(this.type, this.injector, this.context);\n    }\n  }\n\n  ngOnDestroy() {\n    this.clearSubscription();\n\n    if (this.renderLogic?.onDestroy) {\n      this.renderLogic.onDestroy(this.type, this.injector, this.context);\n    }\n  }\n\n  shouldRender(type: string) {\n    if (this.renderLogic) {\n      const willRender = this.renderLogic.shouldRender(type);\n      return willRender instanceof Observable ? willRender : of(willRender);\n    }\n    return of(true);\n  }\n\n  protected createRenderStream(type: string) {\n    this.clearSubscription();\n\n    this.subscription = this.shouldRender(type).subscribe(this.render);\n  }\n\n  protected clearSubscription() {\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n  }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\nexport enum PageParts {\n  title = 'PageTitleContainerComponent',\n  breadcrumb = 'PageBreadcrumbContainerComponent',\n  toolbar = 'PageToolbarContainerComponent',\n}\n\n@Component({\n  selector: 'app-page-title-container',\n  template: ` <ng-content></ng-content> `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PageTitleContainerComponent {}\n\n@Component({\n  selector: 'app-page-breadcrumb-container',\n  template: ` <ng-content></ng-content> `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PageBreadcrumbContainerComponent {}\n\n@Component({\n  selector: 'app-page-toolbar-container',\n  template: ` <ng-content></ng-content> `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PageToolbarContainerComponent {}\n","import { Component, ContentChild, Input, ViewEncapsulation } from '@angular/core';\nimport {\n  PageBreadcrumbContainerComponent,\n  PageParts,\n  PageTitleContainerComponent,\n  PageToolbarContainerComponent,\n} from './page-parts.component';\n\n@Component({\n  selector: 'app-page',\n  templateUrl: './page.component.html',\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PageComponent {\n  @Input() title: string;\n\n  toolbarVisible = false;\n  _toolbarData: any;\n  @Input('toolbar') set toolbarData(val: any) {\n    this._toolbarData = val;\n    this.toolbarVisible = true;\n  }\n\n  get toolbarData() {\n    return this._toolbarData;\n  }\n\n  @Input('breadcrumb') breadcrumbVisible = true;\n\n  pageParts = {\n    title: PageParts.title,\n    breadcrumb: PageParts.breadcrumb,\n    toolbar: PageParts.toolbar,\n  };\n\n  @ContentChild(PageTitleContainerComponent) customTitle: PageTitleContainerComponent;\n  @ContentChild(PageBreadcrumbContainerComponent)\n  customBreadcrumb: PageBreadcrumbContainerComponent;\n  @ContentChild(PageToolbarContainerComponent) customToolbar: PageToolbarContainerComponent;\n\n  get shouldRenderRow() {\n    return !!(\n      this.title ||\n      this.toolbarVisible ||\n      this.breadcrumbVisible ||\n      this.customTitle ||\n      this.customBreadcrumb ||\n      this.customToolbar\n    );\n  }\n}\n","<div class=\"row entry-row\" *ngIf=\"shouldRenderRow\">\n  <ng-container *ngIf=\"customTitle; else defaultTitleTemplate\">\n    <ng-content select=\"app-page-title-container\"></ng-content>\n  </ng-container>\n\n  <ng-container *ngIf=\"customBreadcrumb; else defaultBreadcrumbTemplate\">\n    <ng-content select=\"app-page-breadcrumb-container\"></ng-content>\n  </ng-container>\n\n  <ng-container *ngIf=\"customToolbar; else defaultPageToolbarTemplate\">\n    <ng-content select=\"app-page-toolbar-container\"></ng-content>\n  </ng-container>\n</div>\n\n<ng-content></ng-content>\n\n<ng-template #defaultTitleTemplate>\n  <ng-container *ngIf=\"title\">\n    <div class=\"col-auto\" *appPagePart=\"pageParts.title\">\n      <h1 class=\"content-header-title\">\n        {{ title }}\n      </h1>\n    </div>\n  </ng-container>\n</ng-template>\n\n<ng-template #defaultBreadcrumbTemplate>\n  <ng-container *ngIf=\"breadcrumbVisible\">\n    <div class=\"col-lg-auto ps-lg-0\" *appPagePart=\"pageParts.breadcrumb\">\n      <app-breadcrumb></app-breadcrumb>\n    </div>\n  </ng-container>\n</ng-template>\n\n<ng-template #defaultPageToolbarTemplate>\n  <ng-container *ngIf=\"toolbarVisible\">\n    <div class=\"col\" *appPagePart=\"pageParts.toolbar; context: toolbarData\">\n      <app-page-toolbar [record]=\"toolbarData\"></app-page-toolbar>\n    </div>\n  </ng-container>\n</ng-template>\n","import { AbstractNgModelComponent } from '@abp/ng.core';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  forwardRef,\n  Injector,\n  Input,\n  TrackByFunction,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type PicklistDataType<\n  T = {\n    [key: string]: any;\n  }\n> = Array<\n  T & {\n    left: boolean;\n  }\n>;\n\n@Component({\n  selector: 'app-picklist',\n  template: ` <div class=\"row\">\n    <div class=\"col col-6\">\n      <div class=\"card p-1 p-md-2\">\n        <div class=\"card-header px-1 px-md-2 px-lg-3\">{{ leftListTitle | abpLocalization }}</div>\n        <div class=\"card-body px-1 px-md-2 px-lg-3\" style=\"height: 320px; overflow: auto\">\n          <div\n            class=\"d-grid\"\n            *abpFor=\"\n              let left of value || [];\n              filterBy: 'left';\n              filterVal: true;\n              trackBy: trackByFn;\n              let i = index\n            \"\n          >\n            <button\n              type=\"button\"\n              class=\"ownedClaim btn btn-primary btn-sm mb-2 mt-0 text-truncate text-start px-1 px-md-2\"\n              [id]=\"left[bindLabel]\"\n              (click)=\"transferItem(left[bindLabel])\"\n            >\n              <i class=\"fa fa-long-arrow-right\"></i> {{ left[bindLabel] }}\n            </button>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"col col-6\">\n      <div class=\"card p-1 p-md-2\">\n        <div class=\"card-header px-1 px-md-2 px-lg-3\">{{ rightListTitle | abpLocalization }}</div>\n        <div class=\"card-body px-1 px-md-2 px-lg-3\" style=\"height: 320px; overflow: auto\">\n          <div\n            class=\"d-grid\"\n            *abpFor=\"\n              let right of value || [];\n              filterBy: 'left';\n              filterVal: false;\n              trackBy: trackByFn;\n              let i = index\n            \"\n          >\n            <button\n              type=\"button\"\n              class=\"otherClaim btn btn-outline-primary btn-sm mb-2 mt-0 text-truncate text-start px-1 px-md-2\"\n              [id]=\"right[bindLabel]\"\n              (click)=\"transferItem(right[bindLabel])\"\n            >\n              <i class=\"fa fa-long-arrow-left\"></i> {{ right[bindLabel] }}\n            </button>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>`,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => PickListComponent),\n      multi: true,\n    },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PickListComponent extends AbstractNgModelComponent<PicklistDataType> {\n  @Input()\n  leftListTitle: string;\n\n  @Input()\n  rightListTitle: string;\n\n  @Input()\n  trackByProp: string;\n\n  @Input()\n  bindLabel: string;\n\n  constructor(public injector: Injector) {\n    super(injector);\n    this.leftListTitle = '';\n    this.rightListTitle = '';\n    this.trackByProp = 'id';\n    this.bindLabel = 'displayName';\n  }\n\n  trackByFn(): TrackByFunction<any> {\n    return (index, item) => item[this.trackByProp] || index;\n  }\n\n  transferItem(label: string): void {\n    const index = this.value.findIndex(val => val[this.bindLabel] === label);\n    this.value = [\n      ...this.value.slice(0, index),\n      { ...this.value[index], left: !this.value[index].left },\n      ...this.value.slice(index + 1),\n    ];\n  }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { ThemeSharedModule } from '@becamex/ng.theme-shared';\nimport {\n  NgbDatepickerModule,\n  NgbDropdownModule,\n  NgbTimepickerModule,\n  NgbTypeaheadModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport {\n  DateTimePickerComponent,\n  ExtensibleFormComponent,\n  ExtensiblePropComponent,\n  ExtensibleTableComponent,\n  GridActionsComponent,\n  PageBreadcrumbContainerComponent,\n  PageComponent,\n  PagePartDirective,\n  PageTitleContainerComponent,\n  PageToolbarComponent,\n  PageToolbarContainerComponent,\n  PickListComponent,\n} from './components';\nimport { DisabledDirective, PropDataDirective } from './directives';\nimport { CreateInjectorPipe } from './pipes';\n\nconst declarationsWithExports = [\n  DateTimePickerComponent,\n  PageToolbarComponent,\n  GridActionsComponent,\n  ExtensiblePropComponent,\n  ExtensibleFormComponent,\n  ExtensibleTableComponent,\n  PickListComponent,\n  PageComponent,\n  PageTitleContainerComponent,\n  PageBreadcrumbContainerComponent,\n  PageToolbarContainerComponent,\n  PagePartDirective,\n  PropDataDirective,\n  DisabledDirective,\n  CreateInjectorPipe,\n];\n\n@NgModule({\n  imports: [\n    CoreModule,\n    ThemeSharedModule,\n    NgxValidateCoreModule,\n    NgbDatepickerModule,\n    NgbDropdownModule,\n    NgbTimepickerModule,\n    NgbTypeaheadModule,\n  ],\n  declarations: [...declarationsWithExports],\n  exports: [...declarationsWithExports],\n})\nexport class BaseUiExtensionsModule {}\n\n@NgModule({\n  exports: [BaseUiExtensionsModule],\n  imports: [BaseUiExtensionsModule],\n})\nexport class UiExtensionsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4.DateTimePickerComponent","i7.DisabledDirective","i4.ExtensiblePropComponent","i6.PropDataDirective","i7","i4","i2.ExtensionsService","i5.GridActionsComponent","i6.ExtensiblePropComponent","i8","i9","i10.PropDataDirective","i3.CreateInjectorPipe","i2.PageToolbarComponent","i4.PagePartDirective"],"mappings":"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"}