@fundamental-ngx/platform 0.43.15 → 0.43.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/esm2020/approval-flow/approval-flow-node/approval-flow-node.component.mjs +3 -3
  2. package/esm2020/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +1 -1
  3. package/esm2020/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +1 -1
  4. package/esm2020/form/combobox/combobox/combobox.component.mjs +7 -7
  5. package/esm2020/form/combobox/commons/base-combobox.mjs +12 -1
  6. package/esm2020/form/multi-combobox/commons/base-multi-combobox.mjs +5 -2
  7. package/esm2020/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +28 -30
  8. package/esm2020/form/multi-input/base-multi-input.mjs +5 -1
  9. package/esm2020/form/multi-input/multi-input.component.mjs +3 -3
  10. package/esm2020/form/select/select/select.component.mjs +3 -3
  11. package/esm2020/list/list.component.mjs +11 -3
  12. package/esm2020/search-field/search-field.component.mjs +3 -3
  13. package/esm2020/shared/domain/data-source.mjs +3 -2
  14. package/esm2020/shared/form/base.input.mjs +13 -9
  15. package/esm2020/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +1 -1
  16. package/esm2020/table/components/table-header-cell-content/table-header-cell-content.component.mjs +3 -3
  17. package/esm2020/table/components/table-header-row/table-header-row.component.mjs +7 -4
  18. package/esm2020/table/components/table-row/table-row.component.mjs +3 -3
  19. package/esm2020/table/table.component.mjs +13 -12
  20. package/esm2020/table-helpers/pipes/column-sorting-direction.pipe.mjs +27 -0
  21. package/esm2020/table-helpers/pipes/index.mjs +2 -1
  22. package/esm2020/table-helpers/table-helpers.module.mjs +9 -6
  23. package/esm2020/upload-collection/upload-collection/upload-collection.component.mjs +1 -1
  24. package/fesm2015/fundamental-ngx-platform-approval-flow.mjs +4 -4
  25. package/fesm2015/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  26. package/fesm2015/fundamental-ngx-platform-form.mjs +140 -125
  27. package/fesm2015/fundamental-ngx-platform-form.mjs.map +1 -1
  28. package/fesm2015/fundamental-ngx-platform-list.mjs +9 -2
  29. package/fesm2015/fundamental-ngx-platform-list.mjs.map +1 -1
  30. package/fesm2015/fundamental-ngx-platform-search-field.mjs +2 -2
  31. package/fesm2015/fundamental-ngx-platform-search-field.mjs.map +1 -1
  32. package/fesm2015/fundamental-ngx-platform-shared.mjs +12 -7
  33. package/fesm2015/fundamental-ngx-platform-shared.mjs.map +1 -1
  34. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +32 -4
  35. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  36. package/fesm2015/fundamental-ngx-platform-table.mjs +21 -17
  37. package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
  38. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs +1 -1
  39. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  40. package/fesm2020/fundamental-ngx-platform-approval-flow.mjs +4 -4
  41. package/fesm2020/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  42. package/fesm2020/fundamental-ngx-platform-form.mjs +144 -128
  43. package/fesm2020/fundamental-ngx-platform-form.mjs.map +1 -1
  44. package/fesm2020/fundamental-ngx-platform-list.mjs +10 -2
  45. package/fesm2020/fundamental-ngx-platform-list.mjs.map +1 -1
  46. package/fesm2020/fundamental-ngx-platform-search-field.mjs +2 -2
  47. package/fesm2020/fundamental-ngx-platform-search-field.mjs.map +1 -1
  48. package/fesm2020/fundamental-ngx-platform-shared.mjs +12 -7
  49. package/fesm2020/fundamental-ngx-platform-shared.mjs.map +1 -1
  50. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +32 -4
  51. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  52. package/fesm2020/fundamental-ngx-platform-table.mjs +21 -17
  53. package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
  54. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs +1 -1
  55. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  56. package/form/combobox/combobox/combobox.component.d.ts +2 -2
  57. package/form/combobox/commons/base-combobox.d.ts +2 -0
  58. package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +7 -7
  59. package/fundamental-ngx-platform-v0.43.17.tgz +0 -0
  60. package/list/list.component.d.ts +3 -1
  61. package/package.json +4 -4
  62. package/schematics/ng-add/index.js +1 -1
  63. package/shared/form/base.input.d.ts +5 -4
  64. package/table/components/table-header-row/table-header-row.component.d.ts +3 -1
  65. package/table/table.component.d.ts +4 -3
  66. package/table-helpers/pipes/column-sorting-direction.pipe.d.ts +12 -0
  67. package/table-helpers/pipes/index.d.ts +1 -0
  68. package/table-helpers/table-helpers.module.d.ts +2 -1
  69. package/fundamental-ngx-platform-v0.43.15.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-platform-shared.mjs","sources":["../../../../libs/platform/src/lib/shared/base.ts","../../../../libs/platform/src/lib/shared/platform.config.ts","../../../../libs/platform/src/lib/shared/domain/data-source.ts","../../../../libs/platform/src/lib/shared/utils/lang.ts","../../../../libs/platform/src/lib/shared/domain/base-data-provider.ts","../../../../libs/platform/src/lib/shared/domain/array-data-source.ts","../../../../libs/platform/src/lib/shared/domain/data-model.ts","../../../../libs/platform/src/lib/shared/domain/observable-data-source.ts","../../../../libs/platform/src/lib/shared/form/form-field.ts","../../../../libs/platform/src/lib/shared/form/base.input.ts","../../../../libs/platform/src/lib/shared/form/collection-base.input.ts","../../../../libs/platform/src/lib/shared/form/form-options.ts","../../../../libs/platform/src/lib/shared/form/inline-layout-collection-base.input.ts","../../../../libs/platform/src/lib/shared/pipes/convert-bytes/convert-bytes.pipe.ts","../../../../libs/platform/src/lib/shared/pipes/pipe.module.ts","../../../../libs/platform/src/lib/shared/testing/event-objects.ts","../../../../libs/platform/src/lib/shared/platform-content-density-deprecations/directives/platform-content-density-deprecation.directive.ts","../../../../libs/platform/src/lib/shared/platform-content-density-deprecations/directives/platform-compact-deprecation.directive.ts","../../../../libs/platform/src/lib/shared/platform-content-density-deprecations/platform-content-density-deprecations.module.ts","../../../../libs/platform/src/lib/shared/platform-content-density-deprecations/providers/module-deprecation.provider.ts","../../../../libs/platform/src/lib/shared/preset-management/preset-management.token.ts","../../../../libs/platform/src/lib/shared/fundamental-ngx-platform-shared.ts"],"sourcesContent":["import { ChangeDetectorRef, Directive, Input, OnDestroy } from '@angular/core';\n// eslint-disable-next-line\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nlet randomId = 0;\n\n/**\n * This class contains common properties used across components.\n * this can be extended to reduce the code duplication across components.\n * @hidden for form related Base , see BaseInput.\n */\n@Directive()\nexport abstract class BaseComponent implements OnDestroy {\n /** @hidden */\n protected defaultId = `fdp-id-${randomId++}`;\n /** @hidden */\n protected _disabled = false;\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Sets the `aria-labelledby` attribute to the element. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Sets the `aria-describedby` attribute to the element. */\n @Input()\n ariaDescribedBy: Nullable<string>;\n\n /** id for the Element */\n @Input()\n id: string = this.defaultId;\n\n /** name for the element */\n @Input()\n name: string;\n\n /** @hidden */\n protected _subscriptions = new Subscription();\n\n /** @hidden */\n protected _router: Router;\n\n /** width of the element */\n @Input()\n width: string;\n\n /** disabled status of the element */\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n /** @hidden */\n constructor(protected _cd: ChangeDetectorRef) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /**\n * @hidden\n * For internal usage only\n *\n * Since all components use OnPush strategy in the fundamental lib\n * it's tricky to update a child input directly from a parent component class\n *\n */\n markForCheck(): void {\n this._cd.markForCheck();\n }\n\n /**\n * @hidden\n * For internal usage only\n *\n * Since all components use OnPush strategy in the fundamental lib\n * it's tricky to update a child input directly from a parent component class\n *\n */\n detectChanges(): void {\n this._cd.detectChanges();\n }\n}\n","import { Injectable, Injector } from '@angular/core';\n\nimport { ContentDensity } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Platform lib Config\n */\n@Injectable({ providedIn: 'root' })\nexport class PlatformConfig {\n /** @hidden */\n private static injector: Injector | null = null;\n\n /**\n * Content Density of element. 'cozy' | 'compact' | 'condensed'\n */\n contentDensity: ContentDensity;\n\n /** @hidden */\n static setInjector(injector: Injector): void {\n PlatformConfig.injector = injector;\n }\n\n /** @hidden */\n static getInjector(): Injector | null {\n return PlatformConfig.injector;\n }\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n *\n * When working with large set of data using components such as:\n * - Datatables\n * - InputSearch\n * - ComboBox (Autocomplete)\n * - Tree\n * - List\n * - etc..\n * and for these we need to unify the way we access a data. Currently we leave most of the complex\n * data access or data manipulation on application developer which leads to different\n * implementation approaches and allot of code duplication.\n *\n * It is common practice when working with different data input sources we try to apply some\n * Design patterns e.g. Adapter Pattern that provides us with guidelines how different interfaces\n * can talk to each other and from here we can derive another pattern so called Datasource pattern\n * which is high-level architectural pattern to abstract data and internal resources\n * access (DB calls, Rest calls, domain objects) with a mininal amount a code.\n *\n * What we want to achieve is to define abstract layer where each specific resource type needs to\n * implement and move all the related logic into reusable DataSources. (TableDataSource,\n * ComboBoxDataSource, ... )\n *\n * Observable<T[]> is a reactive stream, that changes its content based on what it pushed\n * into it using .next().\n *\n * Each type of data component such Autocomplete, DataTable, List,.. needs to provide its own\n * specific implementation to handle specific use-case.\n *\n * ```\n * export abstract class DataTableDataSource<T> implements DataSource<T> {\n * data: T[];\n * filterTerm: string;\n * paginator: Paginator | null\n *\n * filterPredicate: ((data: T, filter: string) => boolean;\n *\n * sortData: ((data: T[], sort: Sort) => T[]);\n *\n * //\n * create (t: T): T;\n * update (t: T): T;\n * remove (t: T): T;\n *\n * }\n * ```\n *\n * After we define a format we can start creating concrete implementations based on the usage or\n * resource .e.g:\n *\n *\n * ```\n * export abstract class RestAutoCompleteDataSource<T> extend DataChooserDataSource <T> {\n * // We can use a registry that is able to map a Entity Type = Endpoint\n * // have identical way how to fetch , search ,...\n * }\n * ```\n *\n * Probably when working with data only locally, it can be:\n *\n * ```\n * export abstract class LocalArrayAutoCompleteDataSource<T> extend DataChooserDataSource <T> {\n * }\n * ```\n *\n *\n */\nimport { InjectionToken } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport enum MatchingStrategy {\n STARTS_WITH_PER_TERM = 'starts with per term',\n STARTS_WITH = 'starts with',\n CONTAINS = 'contains'\n}\n\nexport const DATA_PROVIDERS = new InjectionToken<Map<string, DataProvider<any>>>('DataProviderRegistry');\n\nexport interface DataSource<T, P = T[], L = boolean> {\n open(): Observable<P>;\n close(): void;\n isDataLoading: L;\n onDataRequested(): Observable<void>;\n onDataReceived(): Observable<void>;\n}\n\nexport type MatchBy = (item: any) => any;\n\nexport interface MatchingBy {\n firstBy: MatchBy;\n secondaryBy?: MatchBy;\n}\n\n/** Matching Strategy: StartsWithPerTerm - Reqexp */\nexport function getMatchingStrategyStartsWithPerTermReqexp(value: string): RegExp {\n return new RegExp(`(\\\\s|^)(${value})`, 'gi');\n}\n\n/** @hidden */\nexport function isDataSource<T = any>(value: any): value is DataSource<T> {\n return value && typeof value.open === 'function';\n}\n\nexport type ProviderParams = ReadonlyMap<string, any>;\n/**\n * Provider is a data driver that can access data and retrieve them. It knows how to get 1\n * or more records, maybe do paging and some other things.\n *\n */\nexport abstract class DataProvider<T> {\n /** @hidden */\n protected _keyPath: string;\n\n /** @hidden */\n protected _matchingStrategy: MatchingStrategy = MatchingStrategy.STARTS_WITH;\n\n /** @hidden */\n protected _matchingBy: MatchingBy | null = null;\n\n abstract fetch(params: ProviderParams, start?: number, end?: number): Observable<T[]>;\n\n /**\n * Tells if this DataProvider supports INSERT, REMOVE\n *\n */\n canCRUD(): boolean {\n return false;\n }\n\n // Implement to support CRUD operations.\n\n /** @hidden */\n getOne(params: ProviderParams): Observable<T> {\n throw new Error('Not supported');\n }\n\n /** @hidden */\n insert(payload: any, params?: ProviderParams): Observable<T> {\n throw new Error('Not supported');\n }\n\n /** @hidden */\n remove(params: ProviderParams): Observable<boolean> {\n throw new Error('Not supported');\n }\n\n /** @hidden */\n update(payload: any, params?: ProviderParams): Observable<T> {\n throw new Error('Not supported');\n }\n\n /** @hidden */\n setLookupKey(key: string): void {\n this._keyPath = key;\n }\n\n /** @hidden */\n setMatchingBy(matchingBy: MatchingBy): void {\n this._matchingBy = matchingBy;\n }\n\n /** @hidden */\n setMatchingStrategy(strategy: MatchingStrategy): void {\n this._matchingStrategy = strategy;\n }\n}\n\nexport class ComboBoxDataSource<T> implements DataSource<T> {\n /** @hidden */\n static readonly MaxLimit = 5;\n\n /** @hidden */\n limitless = false;\n\n /** @hidden */\n protected readonly _dataChanges: BehaviorSubject<T[]> = new BehaviorSubject<T[]>([]);\n /** @hidden */\n protected readonly _onDataRequested$ = new Subject<void>();\n /** @hidden */\n protected readonly _onDataReceived$ = new Subject<void>();\n /** @hidden */\n protected readonly _onDestroy$ = new Subject<void>();\n /** @hidden */\n protected _dataLoading = false;\n\n /** @hidden */\n get isDataLoading(): boolean {\n return this._dataLoading;\n }\n\n /** @hidden */\n constructor(public dataProvider: DataProvider<any>) {}\n\n /** @hidden */\n match(predicate: string | Map<string, string> = new Map<string, string>(), start = 0, end = Infinity): void {\n this._onDataRequested$.next();\n this._dataLoading = true;\n const searchParam = new Map();\n\n if (typeof predicate === 'string') {\n searchParam.set('query', predicate);\n } else if (predicate instanceof Map) {\n predicate.forEach((v, k) => searchParam.set(k, v));\n } else {\n throw new Error('DataSource.match() predicate can only accepts string and Map');\n }\n\n if (!searchParam.has('limit') && !this.limitless) {\n searchParam.set('limit', ComboBoxDataSource.MaxLimit);\n }\n\n this.dataProvider\n .fetch(searchParam, start, end)\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(\n (result: T[]) => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n this._dataChanges.next(result);\n },\n () => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n }\n );\n }\n\n /** @hidden */\n open(): Observable<T[]> {\n return this._dataChanges.pipe(takeUntil(this._onDestroy$));\n }\n\n /** @hidden */\n close(): void {\n this._onDestroy$.next();\n }\n\n /** @hidden */\n onDataRequested(): Observable<void> {\n return this._onDataRequested$.asObservable();\n }\n\n /** @hidden */\n onDataReceived(): Observable<void> {\n return this._onDataReceived$.asObservable();\n }\n}\n\nexport class MultiComboBoxDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(public dataProvider: DataProvider<any>) {\n super(dataProvider);\n }\n}\n\nexport class SearchFieldDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(public dataProvider: DataProvider<any>) {\n super(dataProvider);\n }\n}\n\nexport class ListDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n limitless = true;\n /** @hidden */\n constructor(public dataProvider: DataProvider<any>) {\n super(dataProvider);\n }\n}\n\nexport class MultiInputDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(public dataProvider: DataProvider<any>) {\n super(dataProvider);\n }\n}\n\nexport class ApprovalFlowUserDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(public dataProvider: DataProvider<T>) {\n super(dataProvider);\n }\n}\n\nexport class ApprovalFlowTeamDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(public dataProvider: DataProvider<T>) {\n super(dataProvider);\n }\n}\n","import { Observable } from 'rxjs';\n\n/** @hidden */\nexport function objectValues(obj: any): any[] {\n return Object.keys(obj).map((key) => obj[key]);\n}\n\n/** @hidden */\nexport function objectToName(target: any): string {\n if (isBlank(target) || (!isStringMap(target) && !isType(target))) {\n throw new Error(' Cannot convert. Uknown object');\n }\n\n return isType(target) ? target.prototype.constructor.name : target.constructor.name;\n}\n\n/** @hidden */\nexport function isJsObject(o: any): boolean {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n\n/** @hidden */\nexport function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\n/** @hidden */\nexport function isBlank(obj: any): boolean {\n return obj === undefined || obj === null;\n}\n\n/** @hidden */\nexport function isBoolean(obj: any): boolean {\n return typeof obj === 'boolean';\n}\n\n/** @hidden */\nexport function isNumber(obj: any): boolean {\n return typeof obj === 'number';\n}\n\n/** @hidden */\nexport function isString(obj: any): obj is string {\n return typeof obj === 'string';\n}\n\n/** @hidden */\nexport function isFunction(obj: any): boolean {\n return typeof obj === 'function';\n}\n\n/** @hidden */\nexport function isType(obj: any): boolean {\n return isFunction(obj);\n}\n\n/** @hidden */\nexport function isStringMap(obj: any): obj is Record<string, any> {\n return typeof obj === 'object' && obj !== null;\n}\n\n/** @hidden */\nexport function isObject<T>(item: T): boolean {\n return typeof item === 'object' && !Array.isArray(item) && item !== null;\n}\n\n/** @hidden */\nexport function isPromise<T = any>(obj: any): obj is Promise<T> {\n // allow any Promise/A+ compliant thenable.\n // It's up to the caller to ensure that obj.then conforms to the spec\n return !!obj && isFunction(obj.then);\n}\n\n/** @hidden */\nexport function isSubscribable(obj: any | Observable<any>): obj is Observable<any> {\n return !!obj && isFunction(obj.subscribe);\n}\n","/**\n * Default implementation for Observable Arrays and Arrays.\n */\nimport { Observable, of, isObservable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { isFunction, isJsObject, objectToName, objectValues } from '../utils/lang';\nimport { DataProvider, getMatchingStrategyStartsWithPerTermReqexp, MatchBy, MatchingStrategy } from './data-source';\n\n/**\n * In Memory implementation of DataProvider that supports fulltext search\n */\nexport class BaseDataProvider<T> extends DataProvider<T> {\n /** @hidden */\n constructor(protected values: Observable<T[]> | T[]) {\n super();\n }\n\n /** @hidden */\n fetch(params: Map<string, any>): Observable<T[]> {\n const observable = isObservable(this.values) ? this.values : of(this.values);\n\n const queryString = params.get('query');\n const limit = params.get('limit') || 50;\n\n if (!queryString || queryString === '*') {\n return observable.pipe(map((items) => this.withLimit(items, limit)));\n }\n\n const toLowerPattern = queryString.toLowerCase();\n\n return observable.pipe(\n map((items) => {\n const result: any[] = [];\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (this.matches(item, toLowerPattern)) {\n result.push(item);\n if (result.length >= limit) {\n break;\n }\n }\n }\n\n return result;\n })\n );\n }\n\n /**\n * Warning: If you dont supply search Key and you want fulltext search and you use this\n * default implementation be aware that it can perform poorly as it is naive implementation\n * that does not do deep compare.\n */\n matches(item: T, pattern: string): boolean {\n if (!this._matchingBy) {\n return false;\n }\n const { firstBy, secondaryBy } = this._matchingBy;\n\n let matched = this.matchesBy(item, pattern, firstBy);\n if (!matched && secondaryBy) {\n matched = this.matchesBy(item, pattern, secondaryBy);\n }\n\n return matched;\n }\n\n /** @hidden */\n matchesBy(item: any, pattern: string, matchingBy: MatchBy): boolean {\n const value = isJsObject(item) && matchingBy ? matchingBy(item) : item;\n\n if (isFunction(value)) {\n return value.call(item);\n } else if (isJsObject(value)) {\n return this.hasObjectValue(item, pattern);\n } else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH_PER_TERM) {\n const reqexp = getMatchingStrategyStartsWithPerTermReqexp(pattern);\n return !!pattern && !!value && !!value.match(reqexp);\n } else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH) {\n return !!pattern && !!value && value.toString().toLowerCase().startsWith(pattern.toLowerCase());\n } else if (this._matchingStrategy === MatchingStrategy.CONTAINS) {\n return !!pattern && !!value && value.toString().toLowerCase().indexOf(pattern) > -1;\n } else {\n return !!pattern && !!value && value.toString().toLowerCase() === pattern;\n }\n }\n\n /** @hidden */\n protected hasObjectValue(obj: any, pattern: string): boolean {\n const values = objectValues(obj);\n const parentObj = objectToName(obj);\n const length2 = values.filter((value: any) => {\n if (!value || Array.isArray(value)) {\n return false;\n } else if (!isJsObject(value) && !isFunction(value)) {\n return value.toString().toLowerCase().indexOf(pattern) !== -1;\n } else if (isJsObject(value) && objectToName(value) !== parentObj) {\n return this.hasObjectValue(value, pattern);\n }\n\n return false;\n }).length;\n return length2 > 0;\n }\n\n /** @hidden */\n private withLimit(data: Array<T>, limit?: number): Array<T> {\n if (limit && data.length > limit) {\n return data.slice(0, limit);\n }\n return data;\n }\n}\n","/**\n * Default implementation for Arrays.\n */\nimport { ComboBoxDataSource, ListDataSource, MultiComboBoxDataSource, MultiInputDataSource } from './data-source';\nimport { BaseDataProvider } from './base-data-provider';\n\nexport class ArrayComboBoxDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(private data: T[]) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ArrayMultiComboBoxDataSource<T> extends MultiComboBoxDataSource<T> {\n /** @hidden */\n constructor(private data: T[]) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ArrayListDataSource<T> extends ListDataSource<T> {\n /** @hidden */\n constructor(private data: T[]) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ArrayMultiInputDataSource<T> extends MultiInputDataSource<T> {\n /** @hidden */\n constructor(private data: T[]) {\n super(new BaseDataProvider(data));\n }\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { isBlank } from './../utils/lang';\nimport { TemplateRef } from '@angular/core';\n\n/**\n * Interface SelectItem is used to deal with complex object in order to be able to format\n * custom label that is shown in the options.\n *\n * Used in various controls: Select, RadioGroup, CheckboxGroup, Combobox\n */\nexport interface SelectItem<T = any> {\n /**\n * Item text shown in the popup\n */\n label: string;\n\n /**\n * References to the object instance\n */\n value: T;\n disabled?: boolean;\n\n icon?: string;\n /**\n * Trigger values is a text for selected item\n */\n triggerValue?: string;\n\n isGroup?: boolean;\n secondaryText?: string;\n children?: SelectItem[];\n\n /**\n * @hidden\n * Used in settings generator only.\n */\n description?: string;\n\n /**\n * @hidden\n * Used in settings generator only.\n */\n template?: TemplateRef<any>;\n}\n\nexport interface OptionItem {\n /** Item text */\n label: string;\n\n /**\n * References to the object instance\n */\n value: any;\n id?: string;\n isGroup?: boolean;\n secondaryText?: string;\n children?: OptionItem[];\n}\n\nexport interface SelectableOptionItem extends OptionItem {\n selected?: boolean;\n children?: SelectableOptionItem[];\n}\n\n/** @hidden */\nexport function isSelectableItem(item: SelectItem): item is SelectItem {\n return (\n item &&\n item.label !== undefined &&\n item.value !== undefined &&\n Object.prototype.hasOwnProperty.call(item, 'selected')\n );\n}\n\n/** @hidden */\nexport function isSelectItem(item: SelectItem): item is SelectItem {\n return item && item.label !== undefined && item.value !== undefined;\n}\n\nexport interface MultiInputOption {\n /** Item text */\n label: string;\n\n /**\n * References to the object instance\n */\n value: any;\n\n /**\n * Item Avatar\n */\n avatarSrc?: string;\n\n isGroup?: boolean;\n description?: string;\n children?: MultiInputOption[];\n}\n\nexport const isOptionItem = isSelectItem;\nexport const isSelectableOptionItem = isSelectableItem;\n\n/**\n * Wraps the provided value in an array, unless it is an array already.\n * If `null` or `undefined` is received, will return an empty array.\n */\nexport function coerceArraySafe<T>(value: T | T[]): T[] {\n return isBlank(value) ? [] : coerceArray(value);\n}\n","/**\n * Default implementation for Observable Arrays.\n */\nimport { Observable } from 'rxjs';\n\nimport { ComboBoxDataSource, ListDataSource, MultiComboBoxDataSource, MultiInputDataSource } from './data-source';\nimport { BaseDataProvider } from './base-data-provider';\n\nexport class ObservableComboBoxDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(private data: Observable<T[]>) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ObservableMultiComboBoxDataSource<T> extends MultiComboBoxDataSource<T> {\n /** @hidden */\n constructor(private data: Observable<T[]>) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ObservableListDataSource<T> extends ListDataSource<T> {\n /** @hidden */\n constructor(private data: Observable<T[]>) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ObservableMultiInputDataSource<T> extends MultiInputDataSource<T> {\n /** @hidden */\n constructor(private data: Observable<T[]>) {\n super(new BaseDataProvider(data));\n }\n}\n","import { ElementRef, QueryList, TemplateRef } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, NgControl } from '@angular/forms';\nimport { FormField, FormFieldControl, FormStates } from '@fundamental-ngx/cdk/forms';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable, Subject } from 'rxjs';\n\nimport { FormError, FormFieldErrorDirectiveContext } from './form-error';\nimport { LabelLayout, Column, HintPlacement, ColumnLayout } from './form-options';\n\n/**\n * FormField base class.\n *\n * This class is used to create form field components.\n *\n */\nexport abstract class PlatformFormField extends FormField {\n /**\n * Form field id\n */\n id: string;\n /**\n * Rank is used for ordering.\n * Than lower number then higher priority\n */\n rank: number;\n /**\n * Form field template reference\n */\n renderer: TemplateRef<any>;\n /**\n * Form field custom width in columns must be between 1 - 12\n */\n columns: Column;\n /**\n * Define form field column belongs\n */\n column: number;\n /**\n * Translations template reference\n */\n i18Strings: TemplateRef<any>;\n /**\n * Indicates if field is editable\n */\n editable: boolean;\n /**\n * Indicates when form field label should not be displayed\n */\n noLabelLayout: boolean;\n /**\n * @deprecated\n * Define form field label placement\n */\n labelLayout: LabelLayout;\n /**\n * Define hint placement\n */\n hintPlacement: HintPlacement;\n /**\n * A reference to the underlying FormFieldControl.\n */\n control: PlatformFormFieldControl | null;\n /**\n * Set when form field is a mandatory one.\n */\n required: boolean;\n /** Form field label */\n label?: string;\n\n /** Form fields's group. */\n formFieldGroup: Nullable<FormFieldGroup>;\n\n /** Frm field's Form Container. */\n formGroupContainer: Nullable<FormGroupContainer>;\n\n /** Grouped errors. */\n groupedErrors: FormFieldErrorDirectiveContext[];\n\n /** Combined Error directives. */\n errorDirectives: FormError[];\n\n /** Form control */\n ngControl?: NgControl;\n\n /** @hidden */\n formControl?: FormControl;\n\n /** Event emitted when errors being changed. */\n errorsChange$: Subject<void>;\n\n /**\n * Set default columns layout\n */\n setDefaultColumnLayout: () => void;\n\n /** Gets field error priority state. */\n getPriorityState: () => FormStates;\n\n /** Groups errors. */\n groupErrors: () => void;\n\n /** Sets error directives from parent container */\n setErrorDirectives: (directives: QueryList<FormError>) => void;\n}\n\nexport abstract class FormFieldGroup {\n /** Group header*/\n label: string;\n\n /** Group's form name */\n formName: string;\n\n /** Group fields */\n fields: QueryList<PlatformFormField>;\n\n /**\n * Defines label's column layout.\n */\n labelColumnLayout: ColumnLayout;\n\n /**\n * Defines field's column layout.\n */\n fieldColumnLayout: ColumnLayout;\n\n /**\n * Defines gap column layout.\n */\n gapColumnLayout: ColumnLayout;\n}\n\nexport type FdpFormFieldControl<T = any> = FormFieldControl<T>;\n\nexport abstract class PlatformFormFieldControl<T = any> implements FormFieldControl<T> {\n /**\n * Each input control has always a value. Need to make sure we keep a convention for\n * input fields\n */\n value: T | null;\n\n /**\n * Need to have a way to set placeholder to the input\n */\n placeholder: string;\n\n /**\n * Need to have a way to set Mandatory to the input field\n */\n required: boolean;\n\n /**\n * Sets id from FF to Input\n */\n id: string;\n\n /**\n * This should be coming from Parent.\n */\n editable: boolean;\n\n /**\n * The height of the extra content at the bottom of the form control,\n * which should not affect the alignment of form control and it's label\n */\n extraContentHeightPx?: number;\n\n /**\n *\n * Form Field listen for all the changes happening inside the input\n */\n readonly stateChanges: Observable<void>;\n\n /**\n * Each input should inject its own ngControl and we should retrieve it\n */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /**\n * Keeps track if the form element is in focus\n */\n readonly focused: boolean;\n\n /** Whether control has errors */\n readonly controlInvalid: boolean;\n\n /** Corresponding element reference. */\n readonly elementRef: ElementRef;\n\n /** Form field instance. */\n formField: Nullable<PlatformFormField>;\n\n /** Method for focusing on the element */\n abstract focus(event?: MouseEvent): void;\n\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n abstract onContainerClick(event: MouseEvent): void;\n}\n\n/**\n * FormGroup base class.\n *\n * This class is used to create form group components.\n *\n */\nexport abstract class FormGroupContainer {\n /**\n * Angular FormGroup where all underlying controls will be attached to.\n */\n formGroup: FormGroup;\n /**\n * Translations template reference.\n */\n i18Strings: TemplateRef<any>;\n /**\n * Indicates when form is editable.\n */\n editable: boolean;\n /**\n * Indicates when labels should not be displayed.\n */\n noLabelLayout: boolean;\n\n /**\n * @deprecated\n * Use labelColumnLayout, fieldColumnLayout and gapColumnLayout properties.\n *\n * Defines form field label placement.\n */\n labelLayout: LabelLayout;\n\n /**\n * Defines label's column layout.\n */\n labelColumnLayout: ColumnLayout;\n\n /**\n * Defines field's column layout.\n */\n fieldColumnLayout: ColumnLayout;\n\n /**\n * Defines gap column layout.\n */\n gapColumnLayout: ColumnLayout;\n\n /**\n * Form's main title.\n */\n mainTitle?: Nullable<string>;\n\n /**\n * Attach underlying form field.\n */\n addFormField: (formField: PlatformFormField) => void;\n /**\n * Detach underlying form field.\n */\n removeFormField: (formField: PlatformFormField) => void;\n /**\n * Attach formControl.\n */\n addFormControl: (name: string, control: AbstractControl) => void;\n /**\n * Detach form formControl.\n */\n removeFormControl: (name: string) => void;\n /**\n * Attach underlying form field group.\n */\n addFormFieldGroup: (formFieldGroup: FormFieldGroup) => void;\n /**\n * Detach underlying form field group.\n */\n removeFormFieldGroup: (formFieldGroup: FormFieldGroup) => void;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n DoCheck,\n ElementRef,\n Host,\n Inject,\n Input,\n isDevMode,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n SkipSelf,\n ViewChild\n} from '@angular/core';\nimport { ControlContainer, ControlValueAccessor, FormControl, NgControl, NgForm } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Subject } from 'rxjs';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { BaseComponent } from '../base';\nimport { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL, FormStates, isValidControlState } from '@fundamental-ngx/cdk/forms';\nimport { PlatformFormField, PlatformFormFieldControl } from './form-field';\n\nlet randomId = 0;\n\n/**\n * All form components share the same information (value, name, placeholder,.. ) as well as\n * the same behavior given by ControlValueAccessor.\n *\n * Even this is not ideal solution there is no other way then use inheritance to reuse some of the\n * common logic. It should be possible to use some kind of compositions with Proxies but something\n * similar that exists in Aspect Oriented Programing.\n *\n * Usually try to fire stateChange only for things that can change dynamically in runtime. We don't expect\n * that e.g. placeholder will change after component is created\n */\n@Directive()\nexport abstract class BaseInput\n extends BaseComponent\n implements PlatformFormFieldControl, ControlValueAccessor, OnInit, DoCheck, AfterViewInit, OnDestroy\n{\n /** @hidden */\n protected defaultId = `fdp-input-id-${randomId++}`;\n /** @hidden */\n protected _disabled: boolean;\n /** @hidden */\n protected _value: any;\n /** @hidden */\n protected _editable = true;\n /** @hidden */\n protected _destroyed = new Subject<void>();\n\n /** Input placeholder */\n @Input()\n placeholder: string;\n\n /**\n * The state of the form control - applies css classes.\n * Can be 'success', 'error', 'warning', 'default', 'information'.\n *\n * @default 'default'\n */\n @Input()\n set state(state: FormStates | undefined) {\n if (!state || isValidControlState(state)) {\n this._state = state;\n } else if (isDevMode()) {\n console.warn(`Provided value \"${state}\" is not a valid option for FormStates type`);\n }\n }\n get state(): FormStates {\n if (this._state) {\n return this._state;\n }\n\n if (!this.controlInvalid) {\n return 'default';\n }\n\n return this.formField?.getPriorityState() || 'error';\n }\n\n /** Holds the message with respect to state */\n @Input()\n stateMessage: Nullable<string>;\n\n /**\n * @hidden\n * The state of the form control - applies css classes.\n * Can be `success`, `error`, `warning`, `information` or 'default'\n */\n protected _state: FormStates | undefined;\n\n /** Whether the input is disabled */\n @Input()\n set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n /**\n * readOnly Value to Mark component read only\n */\n @Input()\n readonly: boolean;\n\n /** Binds to control aria-labelledBy attribute */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Sets control aria-label attribute value */\n @Input()\n ariaLabel: Nullable<string>;\n\n /**\n * Tell the component if we are in editing mode.\n */\n @Input()\n set editable(value: BooleanInput) {\n const newVal = coerceBooleanProperty(value);\n if (this._editable !== newVal) {\n this._editable = newVal;\n this._cd.markForCheck();\n this.stateChanges.next('editable');\n }\n }\n get editable(): boolean {\n return this._editable;\n }\n\n /**\n * need to make these value accessor as abstract to be implemented by subclasses. Having them\n * in superclass have issue getting reference to them with Object.getOwnPropertyDescripton\n * which we need to programmatically wraps components set/get value\n *\n */\n abstract get value(): any;\n\n abstract set value(value: any);\n\n /**\n * Reference to internal Input element\n */\n @ViewChild('inputElementRef', { static: true, read: ElementRef })\n protected _elementRef: ElementRef;\n\n /**\n * See @FormFieldControl\n */\n focused = false;\n\n /** Whether control has errors */\n get controlInvalid(): boolean {\n return this._controlInvalid;\n }\n\n /**\n * @hidden\n */\n private _controlInvalid = false;\n /**\n * See @FormFieldControl\n */\n readonly stateChanges: Subject<any> = new Subject<any>();\n\n /** @hidden */\n readonly formField: PlatformFormField | null = null;\n\n /** set when input field is mandatory form field */\n required: boolean;\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n protected constructor(\n cd: ChangeDetectorRef,\n readonly elementRef: ElementRef,\n @Optional() @Self() readonly ngControl: NgControl,\n @Optional() @SkipSelf() readonly controlContainer: ControlContainer,\n @Optional() @SkipSelf() readonly ngForm: NgForm,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD) formField: PlatformFormField,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD_CONTROL) formControl: PlatformFormFieldControl\n ) {\n /**\n * We do not use Injector.get() approach here because there is a bug\n * with this signature https://github.com/angular/angular/issues/31776\n * where \"get()\" method doesn't take into account \"flag\" option\"\n *\n */\n super(cd);\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n // We have to ignore \"formField\" if there is \"formControl\" wrapper\n this.formField = formField && !formControl ? formField : null;\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.formField) {\n this.formField.registerFormFieldControl(this);\n }\n }\n\n /**\n * Re-validate and emit event to parent container on every CD cycle as they are some errors\n * that we can't subscribe to.\n */\n ngDoCheck(): void {\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.ngControl) {\n this._subscriptions.add(\n this.ngControl.statusChanges?.subscribe(() => {\n this.markForCheck();\n })\n );\n }\n\n const labelAndHelpId = `fdp-form-label-content-${this.id}`;\n // if not specified, associate label and inline help ids with the input,\n // else add these ids to the specified ones\n if (!this.ariaLabelledBy) {\n this.ariaLabelledBy = labelAndHelpId;\n } else {\n this.ariaLabelledBy += ' ' + labelAndHelpId;\n }\n this._cd.detectChanges();\n }\n\n /** @hidden */\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.stateChanges.complete();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.formField) {\n this.formField.unregisterFormFieldControl(this);\n }\n }\n\n /** @hidden */\n setDisabledState(isDisabled: BooleanInput): void {\n const newState = coerceBooleanProperty(isDisabled);\n this._cd.markForCheck();\n if (newState !== this._disabled) {\n this._disabled = newState;\n this.stateChanges.next('setDisabledState');\n }\n }\n\n /**\n * Each sub class must override this method as inheritance does not work\n */\n writeValue(value: any): void {\n this._value = value;\n this.stateChanges.next('writeValue');\n this._cd.markForCheck();\n }\n\n /**\n *\n * Keeps track of element focus\n */\n _onFocusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused && (!this.disabled || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next('_onFocusChanged');\n }\n\n if (!isFocused) {\n this.onTouched();\n }\n }\n\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n onContainerClick(event: MouseEvent): void {\n this.focus(event);\n }\n\n /**\n * In most of the cases when working with input element directly you should be just find to assing\n * variable to this element\n *\n * ```\n * <input #inputElementRef fd-form-control ...>\n * ```\n *\n * and this default behavior used. For other cases implement focus.\n *\n */\n focus(event?: MouseEvent): void {\n if (this._elementRef && !this.focused) {\n this._elementRef.nativeElement.focus(event);\n }\n }\n\n /**\n * Need re-validates errors on every CD iteration to make sure we are also\n * covering non-control errors, errors that happens outside of this control\n */\n protected updateErrorState(): void {\n const parent = this.ngForm;\n const parentControlContainer = this.controlContainer;\n const control = this.ngControl ? (this.ngControl.control as FormControl) : null;\n const newStatusIsError = !!(\n control?.invalid &&\n (control.dirty || control.touched || parent?.submitted || (parentControlContainer as any)?.submitted)\n );\n\n if (newStatusIsError !== this.controlInvalid) {\n this._controlInvalid = newStatusIsError;\n this.stateChanges.next('updateErrorState');\n this._cd.markForCheck();\n }\n }\n\n /**\n * Used to change the value of a control.\n * @param value the value to be applied\n * @param emitOnChange whether to emit \"onChange\" event.\n * Should be \"false\", if the change is made programmatically (internally) by the control, \"true\" otherwise\n */\n protected setValue(value: any, emitOnChange = true): void {\n if (value !== this._value) {\n this.writeValue(value);\n if (emitOnChange) {\n this.onChange(value);\n }\n this._cd.markForCheck();\n }\n }\n\n /** @hidden */\n protected getValue(): any {\n return this._value;\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Host, Inject, Input, Optional, Self, SkipSelf } from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\n\nimport { BaseInput } from './base.input';\nimport { isFunction, isJsObject, isString } from '../utils/lang';\nimport { isSelectItem, SelectItem } from '../domain/data-model';\nimport { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';\nimport { PlatformFormField, PlatformFormFieldControl } from './form-field';\n\n/**\n * Defines specific behavior for Input controls which deals with list of values including:\n * - Select\n * - RadioGroup\n * - CheckboxGroup\n * - ComboBox\n * ...\n *\n */\n@Directive()\nexport abstract class CollectionBaseInput extends BaseInput {\n /**\n * List of values, it can be of type SelectItem, string or any object.\n * Generic object type is among the list of types,\n * because we allow to get labels and values using `displayKey` and `lookupKey` inputs accordingly.\n */\n @Input()\n set list(value: Array<SelectItem | string | object>) {\n this._list = value;\n }\n get list(): Array<SelectItem | string | object> {\n return this._list;\n }\n\n /** @hidden */\n private _list: Array<SelectItem | string | object>;\n\n /**\n * Used in filters and any kind of comparators when we work with objects and this identify\n * unique field name based on which we are going to do the job\n */\n @Input()\n lookupKey: string;\n\n /**\n * When we deal with unknown object we can use `displayKey` to retrieve value from specific\n * property of the object to act as display value.\n *\n * @See ComboBox, Select, RadioGroup, CheckBox Group\n */\n @Input()\n displayKey: string;\n\n /** @hidden */\n protected constructor(\n cd: ChangeDetectorRef,\n elementRef: ElementRef,\n @Optional() @Self() readonly ngControl: NgControl,\n @Optional() @SkipSelf() readonly controlContainer: ControlContainer,\n @Optional() @SkipSelf() readonly ngForm: NgForm,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD) formField: PlatformFormField,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD_CONTROL) formControl: PlatformFormFieldControl\n ) {\n super(cd, elementRef, ngControl, controlContainer, ngForm, formField, formControl);\n }\n\n /** @hidden */\n public lookupValue(item: any): string {\n if (isSelectItem(item)) {\n return this.lookupKey && item ? item.value[this.lookupKey] : item.value;\n } else {\n return this.lookupKey && item ? item[this.lookupKey] : item;\n }\n }\n\n /** @hidden */\n public displayValue(item: any): string {\n if (isSelectItem(item)) {\n return item.label;\n } else if (isJsObject(item) && this.displayKey) {\n const currentItem = this.objectGet(item, this.displayKey);\n\n return isFunction(currentItem) ? currentItem() : currentItem;\n } else {\n return item;\n }\n }\n\n /** @hidden */\n public objectGet(obj: any, is: string | string[] | undefined): any {\n if (!isJsObject(obj)) {\n return obj;\n } else if (isString(is)) {\n return this.objectGet(obj, is.split('.'));\n } else if (!is?.length) {\n return obj;\n } else {\n return this.objectGet(obj[is[0]], is.slice(1));\n }\n }\n}\n","import { FormStates } from '@fundamental-ngx/cdk/forms';\n\nexport type LabelLayout = 'horizontal' | 'vertical';\n\nexport type HintPlacement = 'left' | 'right';\n\nexport type FormZone = 'zTop' | 'zBottom' | 'zLeft' | 'zRight';\n\nexport type Column = 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\n/** @deprecated use `import { FormStates } from \"@fundamental-ngx/core/shared\"` instead */\nexport type ControlState = FormStates;\n\nexport interface ColumnLayout {\n XL?: number;\n L?: number;\n M?: number;\n S?: number;\n}\n\nexport enum ColumnLayoutGridClass {\n XL = 'xl',\n L = 'lg',\n M = 'md',\n S = 'sm'\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Host,\n Inject,\n Injectable,\n InjectionToken,\n Input,\n OnInit,\n Optional,\n Self,\n SkipSelf\n} from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nimport { CollectionBaseInput } from './collection-base.input';\nimport { PlatformFormField, PlatformFormFieldControl } from './form-field';\nimport { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';\n\nexport interface InlineLayout {\n XL?: boolean;\n L?: boolean;\n M?: boolean;\n S?: boolean;\n}\n\nexport enum RESPONSIVE_BREAKPOINTS {\n S = 600,\n M = 1024,\n L = 1440\n}\n\nexport const RESPONSIVE_BREAKPOINTS_CONFIG = new InjectionToken<ResponsiveBreakPointConfig>(\n 'Default Responsive breakpoint config'\n);\n\n@Injectable()\nexport class ResponsiveBreakPointConfig {\n /** Large screen */\n L: number = RESPONSIVE_BREAKPOINTS['L'];\n /** Medium screen */\n M: number = RESPONSIVE_BREAKPOINTS['M'];\n /** Small screen */\n S: number = RESPONSIVE_BREAKPOINTS['S'];\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ResponsiveBreakpointsService {\n /** @hidden */\n breakpoints: Record<string, any> = {};\n /** @hidden */\n activeBreakpoints: string[];\n /** @hidden */\n minWidth = 'min-width';\n /** @hidden */\n maxWidth = 'max-width';\n /** @hidden */\n unit = 'px';\n\n /** @hidden */\n constructor(readonly _breakpointObserver: BreakpointObserver) {}\n\n /** subscribe to get current screen size based on config provided */\n observeBreakpointByConfig(config: ResponsiveBreakPointConfig): Subject<any> {\n const breakPointName: Subject<string> = new BehaviorSubject('S');\n\n this._breakpointObserver.observe(this._getBreakpoints(config)).subscribe((matchValues) => {\n const breakPoint = this._breakPointMeet(matchValues);\n breakPointName.next(breakPoint);\n });\n\n return breakPointName;\n }\n\n /** @hidden when screen size changes from one breakpoint to another */\n private _breakPointMeet(breakPointMatches: BreakpointState): string {\n let breakPointName: string | undefined;\n\n if (breakPointMatches.matches) {\n for (const breakpoint in breakPointMatches.breakpoints) {\n if (breakPointMatches.breakpoints[breakpoint]) {\n breakPointName = this._getBreakpointName(breakpoint);\n }\n }\n }\n\n return breakPointName ?? 'S';\n }\n\n /** @hidden */\n private _getBreakpoints(config: ResponsiveBreakPointConfig): string[] {\n let breakPointStr: string;\n this.activeBreakpoints = [];\n\n for (const screenSize of Object.keys(config)) {\n switch (screenSize) {\n case 'S':\n breakPointStr = `(${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n break;\n case 'M':\n breakPointStr = `(${this.minWidth}: ${config['S']}${this.unit}) and (${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n break;\n case 'L':\n breakPointStr = `(${this.minWidth}: ${config['M']}${this.unit}) and (${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n\n // create entry for XL screen\n breakPointStr = `(${this.minWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = 'XL';\n break;\n }\n }\n\n return this.activeBreakpoints;\n }\n\n /** @hidden */\n private _getBreakpointName(breakpointValue): string {\n return this.breakpoints[breakpointValue];\n }\n}\n\n@Directive()\nexport abstract class InLineLayoutCollectionBaseInput extends CollectionBaseInput implements OnInit {\n /** object to change isInline property based on screen size */\n @Input()\n set inlineLayout(layout: InlineLayout | undefined) {\n if (layout) {\n this._inlineLayout = layout;\n this._isInLineLayoutEnabled = true;\n }\n this._setFieldLayout(layout);\n }\n get inlineLayout(): InlineLayout {\n return this._inlineLayout;\n }\n\n /** @hidden */\n protected _inlineCurrentValue$ = new BehaviorSubject<boolean>(false);\n\n /** @hidden */\n protected _responsiveBreakPointConfig: ResponsiveBreakPointConfig;\n\n /** @hidden */\n private _inlineLayout: InlineLayout;\n\n /** @hidden */\n private _xlIsInline: boolean;\n\n /** @hidden */\n private _lgIsInline: boolean;\n\n /** @hidden */\n private _mdIsInline: boolean;\n\n /** @hidden */\n private _sIsInline: boolean;\n\n /** @hidden */\n private _isInLineLayoutEnabled = false;\n\n /** @hidden */\n protected constructor(\n cd: ChangeDetectorRef,\n elementRef: ElementRef,\n readonly _responsiveBreakpointsService: ResponsiveBreakpointsService,\n @Optional() @Self() readonly ngControl: NgControl,\n @Optional() @SkipSelf() readonly controlContainer: ControlContainer,\n @Optional() @SkipSelf() readonly ngForm: NgForm,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD) formField: PlatformFormField,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD_CONTROL) formControl: PlatformFormFieldControl,\n @Optional()\n @Inject(RESPONSIVE_BREAKPOINTS_CONFIG)\n readonly _defaultResponsiveBreakPointConfig?: ResponsiveBreakPointConfig\n ) {\n super(cd, elementRef, ngControl, controlContainer, ngForm, formField, formControl);\n\n this._responsiveBreakPointConfig = _defaultResponsiveBreakPointConfig || new ResponsiveBreakPointConfig();\n }\n\n /** @hidden */\n ngOnInit(): void {\n super.ngOnInit();\n\n if (this._isInLineLayoutEnabled) {\n this._responsiveBreakpointsService\n .observeBreakpointByConfig(this._responsiveBreakPointConfig)\n .subscribe((breakPointName) => {\n this._updateLayout(breakPointName);\n });\n }\n }\n\n /** @hidden set values of inline for each screen layout */\n private _setFieldLayout(inlineLayout?: InlineLayout): void {\n if (!inlineLayout) {\n this._isInLineLayoutEnabled = false;\n return;\n }\n try {\n this._sIsInline = !!inlineLayout['S'];\n this._mdIsInline = !!inlineLayout['M'];\n this._lgIsInline = !!inlineLayout['L'];\n this._xlIsInline = !!inlineLayout['XL'];\n } catch (error) {\n this._isInLineLayoutEnabled = false;\n }\n }\n\n /** @hidden */\n private _updateLayout(currentBreakingPointName: string): void {\n if (this._isInLineLayoutEnabled) {\n switch (currentBreakingPointName) {\n case 'S':\n this._inlineCurrentValue$.next(this._sIsInline);\n break;\n case 'M':\n this._inlineCurrentValue$.next(this._mdIsInline);\n break;\n case 'L':\n this._inlineCurrentValue$.next(this._lgIsInline);\n break;\n case 'XL':\n this._inlineCurrentValue$.next(this._xlIsInline);\n break;\n default:\n this._inlineCurrentValue$.next(this._xlIsInline);\n }\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'convertBytes' })\nexport class ConvertBytesPipe implements PipeTransform {\n /** @hidden */\n private readonly _sizes: string[] = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n /** @hidden */\n transform(bytes: number): string {\n return this._convertBytes(bytes);\n }\n\n /**\n * Convert bytes to KB, MB, GB, ...\n * @param bytes number\n * @param decimals number\n */\n private _convertBytes(bytes = 0, decimals = 2): string {\n if (bytes <= 0) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + this._sizes[i];\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ConvertBytesPipe } from './convert-bytes/convert-bytes.pipe';\n\n@NgModule({\n declarations: [ConvertBytesPipe],\n exports: [ConvertBytesPipe]\n})\nexport class PlatformPipeModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { ModifierKeys } from '@angular/cdk/testing';\n\n/**\n * Creates a browser MouseEvent with the specified options.\n * @docs-private\n */\nexport function createMouseEvent(type: string, x = 0, y = 0, button = 0): MouseEvent {\n const event = document.createEvent('MouseEvent');\n const originalPreventDefault = event.preventDefault.bind(event);\n\n event.initMouseEvent(\n type,\n true /* canBubble */,\n true /* cancelable */,\n window /* view */,\n 0 /* detail */,\n x /* screenX */,\n y /* screenY */,\n x /* clientX */,\n y /* clientY */,\n false /* ctrlKey */,\n false /* altKey */,\n false /* shiftKey */,\n false /* metaKey */,\n button /* button */,\n null /* relatedTarget */\n );\n\n // `initMouseEvent` doesn't allow us to pass the `buttons` and\n // defaults it to 0 which looks like a fake event.\n Object.defineProperty(event, 'buttons', { get: () => 1 });\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function (): void {\n Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n return originalPreventDefault();\n };\n\n return event;\n}\n\n/**\n * Creates a browser TouchEvent with the specified pointer coordinates.\n * @docs-private\n */\nexport function createTouchEvent(type: string, pageX = 0, pageY = 0): Event {\n // In favor of creating events that work for most of the browsers, the event is created\n // as a basic UI Event. The necessary details for the event will be set manually.\n const event = document.createEvent('UIEvent');\n const touchDetails = { pageX, pageY };\n\n // TS3.6 removes the initUIEvent method and suggests porting to \"new UIEvent()\".\n (event as any).initUIEvent(type, true, true, window, 0);\n\n // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n // the touch details.\n Object.defineProperties(event, {\n touches: { value: [touchDetails] },\n targetTouches: { value: [touchDetails] },\n changedTouches: { value: [touchDetails] }\n });\n\n return event;\n}\n\n/**\n * Dispatches a keydown event from an element.\n * @docs-private\n */\nexport function createKeyboardEvent(\n type: string,\n keyCode: number = 0,\n key: string = '',\n target?: Element,\n modifiers: ModifierKeys = {}\n): KeyboardEvent {\n const event = document.createEvent('KeyboardEvent') as any;\n const originalPreventDefault = event.preventDefault;\n\n // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n if (event.initKeyEvent) {\n event.initKeyEvent(\n type,\n true,\n true,\n window,\n modifiers.control,\n modifiers.alt,\n modifiers.shift,\n modifiers.meta,\n keyCode\n );\n } else {\n // `initKeyboardEvent` expects to receive modifiers as a whitespace-delimited string\n // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent\n let modifiersList = '';\n\n if (modifiers.control) {\n modifiersList += 'Control ';\n }\n\n if (modifiers.alt) {\n modifiersList += 'Alt ';\n }\n\n if (modifiers.shift) {\n modifiersList += 'Shift ';\n }\n\n if (modifiers.meta) {\n modifiersList += 'Meta ';\n }\n\n event.initKeyboardEvent(\n type,\n true /* canBubble */,\n true /* cancelable */,\n window /* view */,\n 0 /* char */,\n key /* key */,\n 0 /* location */,\n modifiersList.trim() /* modifiersList */,\n false /* repeat */\n );\n }\n\n // Webkit Browsers don't set the keyCode when calling the init function.\n // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n Object.defineProperties(event, {\n keyCode: { get: () => keyCode },\n key: { get: () => key },\n target: { get: () => target },\n ctrlKey: { get: () => !!modifiers.control },\n altKey: { get: () => !!modifiers.alt },\n shiftKey: { get: () => !!modifiers.shift },\n metaKey: { get: () => !!modifiers.meta }\n });\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function (): Event {\n Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n // eslint-disable-next-line prefer-rest-params\n return originalPreventDefault.apply(this, arguments);\n };\n\n return event;\n}\n\n/**\n * Creates a fake event object with any desired event type.\n * @docs-private\n */\nexport function createFakeEvent(type: string, canBubble = false, cancelable = true): Event {\n const event = document.createEvent('Event');\n event.initEvent(type, canBubble, cancelable);\n return event;\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedContentDensityDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `\n fdp-action-bar[contentDensity],\n fdp-button[contentDensity],\n fdp-object-list-item[contentDensity],\n fdp-standard-list-item[contentDensity],\n fdp-menu[contentDensity],\n fdp-menu-button[contentDensity],\n fdp-panel[contentDensity],\n fdp-search-field[contentDensity],\n fdp-split-menu-button[contentDensity],\n fdp-file-uploader[contentDensity],\n fdp-upload-collection[contentDensity],\n fdp-table[contentDensity],\n fdp-multi-input[contentDensity],\n fdp-list[contentDensity],\n fdp-slider[contentDensity],\n fdp-time-picker[contentDensity],\n fdp-textarea[contentDensity],\n fdp-switch[contentDensity],\n fdp-number-step-input[contentDensity],\n fdp-select[contentDensity],\n fdp-date-picker[contentDensity],\n fdp-checkbox[contentDensity],\n fdp-checkbox-group[contentDensity],\n fdp-combobox[contentDensity],\n fdp-datetime-picker[contentDensity],\n fdp-input[contentDensity],\n fdp-radio-group[contentDensity],\n fdp-radio-button[contentDensity],\n fdp-multi-combobox[contentDensity],\n fdp-input-group-addon-body[contentDensity],\n fdp-input-group[contentDensity],\n fdp-value-help-dialog[contentDensity],\n fdp-filter-single-select[contentDensity],\n fdp-filter-multi-select[contentDensity],\n fdp-filter-custom[contentDensity]\n `,\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => PlatformContentDensityDeprecationDirective)\n }\n ]\n})\nexport class PlatformContentDensityDeprecationDirective extends DeprecatedContentDensityDirective {\n /** @hidden */\n constructor(private elementRef: ElementRef) {\n super();\n this.selectorBase = elementRef.nativeElement.tagName.toLowerCase();\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fdp-table-filter-rule[compact]',\n providers: [\n { provide: CONTENT_DENSITY_DIRECTIVE, useExisting: forwardRef(() => PlatformCompactDeprecationDirective) }\n ]\n})\nexport class PlatformCompactDeprecationDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fdp-table-filter-rule');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PlatformContentDensityDeprecationDirective } from './directives/platform-content-density-deprecation.directive';\nimport { PlatformCompactDeprecationDirective } from './directives/platform-compact-deprecation.directive';\n\n@NgModule({\n declarations: [PlatformContentDensityDeprecationDirective, PlatformCompactDeprecationDirective],\n imports: [CommonModule],\n exports: [PlatformContentDensityDeprecationDirective, PlatformCompactDeprecationDirective]\n})\nexport class PlatformContentDensityDeprecationsModule {}\n","import { Provider } from '@angular/core';\nimport { DeprecatedContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { moduleDeprecationsFactory } from '@fundamental-ngx/cdk/utils';\n\n/** @hidden */\nexport function platformContentDensityModuleDeprecationsProvider(selectorBase: string): Provider {\n return moduleDeprecationsFactory({\n useFactory: () => {\n const deprecation = new DeprecatedContentDensityDirective();\n deprecation.selectorBase = selectorBase;\n return deprecation;\n }\n });\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDP_PRESET_MANAGED_COMPONENT = new InjectionToken('FdpPresetManagedComponent');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["randomId","i1","i2"],"mappings":";;;;;;;;;;;;AAOA,IAAIA,UAAQ,GAAG,CAAC,CAAC;AAEjB;;;;AAIG;MAEmB,aAAa,CAAA;;IAqC/B,IACI,QAAQ,CAAC,QAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC7B;AACD,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;AAGD,IAAA,WAAA,CAAsB,GAAsB,EAAA;AAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;;AA5ClC,QAAA,IAAA,CAAA,SAAS,GAAG,UAAUA,UAAQ,EAAE,EAAE,CAAC;;AAEnC,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;AAgB5B,QAAA,IAAA,CAAA,EAAE,GAAW,IAAI,CAAC,SAAS,CAAC;;AAOlB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;KAmBE;;IAGhD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACrC;AAED;;;;;;;AAOG;IACH,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAED;;;;;;;AAOG;IACH,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;;0GA3EiB,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8FAAb,aAAa,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;wGASN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAKN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAKN,EAAE,EAAA,CAAA;sBADD,KAAK;gBAKN,IAAI,EAAA,CAAA;sBADH,KAAK;gBAWN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAKF,QAAQ,EAAA,CAAA;sBADX,KAAK;;;AChDV;;AAEG;MAEU,cAAc,CAAA;;IAUvB,OAAO,WAAW,CAAC,QAAkB,EAAA;AACjC,QAAA,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;KACtC;;AAGD,IAAA,OAAO,WAAW,GAAA;QACd,OAAO,cAAc,CAAC,QAAQ,CAAC;KAClC;;AAhBD;AACe,cAAQ,CAAA,QAAA,GAAoB,IAAI,CAAC;2GAFvC,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACPlC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEG;AAKS,IAAA,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,IAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACzB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;MAEY,cAAc,GAAG,IAAI,cAAc,CAAiC,sBAAsB,EAAE;AAiBzG;AACM,SAAU,0CAA0C,CAAC,KAAa,EAAA;IACpE,OAAO,IAAI,MAAM,CAAC,CAAA,QAAA,EAAW,KAAK,CAAG,CAAA,CAAA,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;AACM,SAAU,YAAY,CAAU,KAAU,EAAA;IAC5C,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AACrD,CAAC;AAGD;;;;AAIG;MACmB,YAAY,CAAA;AAAlC,IAAA,WAAA,GAAA;;AAKc,QAAA,IAAA,CAAA,iBAAiB,GAAqB,gBAAgB,CAAC,WAAW,CAAC;;AAGnE,QAAA,IAAW,CAAA,WAAA,GAAsB,IAAI,CAAC;KAgDnD;AA5CG;;;AAGG;IACH,OAAO,GAAA;AACH,QAAA,OAAO,KAAK,CAAC;KAChB;;;AAKD,IAAA,MAAM,CAAC,MAAsB,EAAA;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KACpC;;IAGD,MAAM,CAAC,OAAY,EAAE,MAAuB,EAAA;AACxC,QAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KACpC;;AAGD,IAAA,MAAM,CAAC,MAAsB,EAAA;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KACpC;;IAGD,MAAM,CAAC,OAAY,EAAE,MAAuB,EAAA;AACxC,QAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KACpC;;AAGD,IAAA,YAAY,CAAC,GAAW,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;KACvB;;AAGD,IAAA,aAAa,CAAC,UAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;KACjC;;AAGD,IAAA,mBAAmB,CAAC,QAA0B,EAAA;AAC1C,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;KACrC;AACJ,CAAA;MAEY,kBAAkB,CAAA;;AAmB3B,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;;AAGD,IAAA,WAAA,CAAmB,YAA+B,EAAA;AAA/B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;;AAnBlD,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAGC,IAAA,CAAA,YAAY,GAAyB,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;;AAElE,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAExC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAEvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAE3C,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;KAQuB;;AAGtD,IAAA,KAAK,CAAC,SAAA,GAA0C,IAAI,GAAG,EAAkB,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAA;AAChG,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;AAE9B,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AAC/B,YAAA,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACvC,SAAA;aAAM,IAAI,SAAS,YAAY,GAAG,EAAE;AACjC,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;AACnF,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC9C,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACzD,SAAA;AAED,QAAA,IAAI,CAAC,YAAY;AACZ,aAAA,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC;AAC9B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CACN,CAAC,MAAW,KAAI;AACZ,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC,EACD,MAAK;AACD,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,SAAC,CACJ,CAAC;KACT;;IAGD,IAAI,GAAA;AACA,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;KAC9D;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KAC3B;;IAGD,eAAe,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KAChD;;IAGD,cAAc,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAC/C;;AA7ED;AACgB,kBAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AA+E3B,MAAO,uBAA2B,SAAQ,kBAAqB,CAAA;;AAEjE,IAAA,WAAA,CAAmB,YAA+B,EAAA;QAC9C,KAAK,CAAC,YAAY,CAAC,CAAC;AADL,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;KAEjD;AACJ,CAAA;AAEK,MAAO,qBAAyB,SAAQ,kBAAqB,CAAA;;AAE/D,IAAA,WAAA,CAAmB,YAA+B,EAAA;QAC9C,KAAK,CAAC,YAAY,CAAC,CAAC;AADL,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;KAEjD;AACJ,CAAA;AAEK,MAAO,cAAkB,SAAQ,kBAAqB,CAAA;;AAIxD,IAAA,WAAA,CAAmB,YAA+B,EAAA;QAC9C,KAAK,CAAC,YAAY,CAAC,CAAC;AADL,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;;AAFlD,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;KAIhB;AACJ,CAAA;AAEK,MAAO,oBAAwB,SAAQ,kBAAqB,CAAA;;AAE9D,IAAA,WAAA,CAAmB,YAA+B,EAAA;QAC9C,KAAK,CAAC,YAAY,CAAC,CAAC;AADL,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;KAEjD;AACJ,CAAA;AAEK,MAAO,0BAA8B,SAAQ,kBAAqB,CAAA;;AAEpE,IAAA,WAAA,CAAmB,YAA6B,EAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,CAAC;AADL,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAiB;KAE/C;AACJ,CAAA;AAEK,MAAO,0BAA8B,SAAQ,kBAAqB,CAAA;;AAEpE,IAAA,WAAA,CAAmB,YAA6B,EAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,CAAC;AADL,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAiB;KAE/C;AACJ;;AClSD;AACM,SAAU,YAAY,CAAC,GAAQ,EAAA;AACjC,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;AACM,SAAU,YAAY,CAAC,MAAW,EAAA;AACpC,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;AAC9D,QAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACrD,KAAA;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;AACxF,CAAC;AAED;AACM,SAAU,UAAU,CAAC,CAAM,EAAA;AAC7B,IAAA,OAAO,CAAC,KAAK,IAAI,KAAK,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAED;AACM,SAAU,SAAS,CAAC,GAAQ,EAAA;AAC9B,IAAA,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;AACM,SAAU,OAAO,CAAC,GAAQ,EAAA;AAC5B,IAAA,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;AACM,SAAU,SAAS,CAAC,GAAQ,EAAA;AAC9B,IAAA,OAAO,OAAO,GAAG,KAAK,SAAS,CAAC;AACpC,CAAC;AAED;AACM,SAAU,QAAQ,CAAC,GAAQ,EAAA;AAC7B,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;AACM,SAAU,QAAQ,CAAC,GAAQ,EAAA;AAC7B,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;AACM,SAAU,UAAU,CAAC,GAAQ,EAAA;AAC/B,IAAA,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACrC,CAAC;AAED;AACM,SAAU,MAAM,CAAC,GAAQ,EAAA;AAC3B,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;AACM,SAAU,WAAW,CAAC,GAAQ,EAAA;IAChC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AACnD,CAAC;AAED;AACM,SAAU,QAAQ,CAAI,IAAO,EAAA;AAC/B,IAAA,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC;AAC7E,CAAC;AAED;AACM,SAAU,SAAS,CAAU,GAAQ,EAAA;;;IAGvC,OAAO,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;AACM,SAAU,cAAc,CAAC,GAA0B,EAAA;IACrD,OAAO,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9C;;AC5EA;;AAEG;AAOH;;AAEG;AACG,MAAO,gBAAoB,SAAQ,YAAe,CAAA;;AAEpD,IAAA,WAAA,CAAsB,MAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE,CAAC;AADU,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;KAElD;;AAGD,IAAA,KAAK,CAAC,MAAwB,EAAA;QAC1B,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7E,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAExC,QAAA,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,GAAG,EAAE;YACrC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACxE,SAAA;AAED,QAAA,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAEjD,OAAO,UAAU,CAAC,IAAI,CAClB,GAAG,CAAC,CAAC,KAAK,KAAI;YACV,MAAM,MAAM,GAAU,EAAE,CAAC;AAEzB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,gBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE;AACpC,oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,oBAAA,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,EAAE;wBACxB,MAAM;AACT,qBAAA;AACJ,iBAAA;AACJ,aAAA;AAED,YAAA,OAAO,MAAM,CAAC;SACjB,CAAC,CACL,CAAC;KACL;AAED;;;;AAIG;IACH,OAAO,CAAC,IAAO,EAAE,OAAe,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QACD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;AAElD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE;YACzB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AACxD,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAClB;;AAGD,IAAA,SAAS,CAAC,IAAS,EAAE,OAAe,EAAE,UAAmB,EAAA;AACrD,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEvE,QAAA,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAA;AAAM,aAAA,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7C,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,CAAC,oBAAoB,EAAE;AACzE,YAAA,MAAM,MAAM,GAAG,0CAA0C,CAAC,OAAO,CAAC,CAAC;AACnE,YAAA,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxD,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,CAAC,WAAW,EAAE;YAChE,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACnG,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,CAAC,QAAQ,EAAE;YAC7D,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACvF,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;AAC7E,SAAA;KACJ;;IAGS,cAAc,CAAC,GAAQ,EAAE,OAAe,EAAA;AAC9C,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AACjC,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAU,KAAI;YACzC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;iBAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACjD,gBAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,aAAA;iBAAM,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;gBAC/D,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9C,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;SAChB,CAAC,CAAC,MAAM,CAAC;QACV,OAAO,OAAO,GAAG,CAAC,CAAC;KACtB;;IAGO,SAAS,CAAC,IAAc,EAAE,KAAc,EAAA;AAC5C,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AACJ;;AClHD;;AAEG;AAIG,MAAO,uBAA2B,SAAQ,kBAAqB,CAAA;;AAEjE,IAAA,WAAA,CAAoB,IAAS,EAAA;AACzB,QAAA,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AADlB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;KAE5B;AACJ,CAAA;AAEK,MAAO,4BAAgC,SAAQ,uBAA0B,CAAA;;AAE3E,IAAA,WAAA,CAAoB,IAAS,EAAA;AACzB,QAAA,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AADlB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;KAE5B;AACJ,CAAA;AAEK,MAAO,mBAAuB,SAAQ,cAAiB,CAAA;;AAEzD,IAAA,WAAA,CAAoB,IAAS,EAAA;AACzB,QAAA,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AADlB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;KAE5B;AACJ,CAAA;AAEK,MAAO,yBAA6B,SAAQ,oBAAuB,CAAA;;AAErE,IAAA,WAAA,CAAoB,IAAS,EAAA;AACzB,QAAA,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AADlB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;KAE5B;AACJ;;ACgCD;AACM,SAAU,gBAAgB,CAAC,IAAgB,EAAA;AAC7C,IAAA,QACI,IAAI;QACJ,IAAI,CAAC,KAAK,KAAK,SAAS;QACxB,IAAI,CAAC,KAAK,KAAK,SAAS;AACxB,QAAA,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EACxD;AACN,CAAC;AAED;AACM,SAAU,YAAY,CAAC,IAAgB,EAAA;AACzC,IAAA,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;AACxE,CAAC;AAqBM,MAAM,YAAY,GAAG,aAAa;AAClC,MAAM,sBAAsB,GAAG,iBAAiB;AAEvD;;;AAGG;AACG,SAAU,eAAe,CAAI,KAAc,EAAA;AAC7C,IAAA,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACpD;;ACnGM,MAAO,4BAAgC,SAAQ,kBAAqB,CAAA;;AAEtE,IAAA,WAAA,CAAoB,IAAqB,EAAA;AACrC,QAAA,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AADlB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAiB;KAExC;AACJ,CAAA;AAEK,MAAO,iCAAqC,SAAQ,uBAA0B,CAAA;;AAEhF,IAAA,WAAA,CAAoB,IAAqB,EAAA;AACrC,QAAA,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AADlB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAiB;KAExC;AACJ,CAAA;AAEK,MAAO,wBAA4B,SAAQ,cAAiB,CAAA;;AAE9D,IAAA,WAAA,CAAoB,IAAqB,EAAA;AACrC,QAAA,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AADlB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAiB;KAExC;AACJ,CAAA;AAEK,MAAO,8BAAkC,SAAQ,oBAAuB,CAAA;;AAE1E,IAAA,WAAA,CAAoB,IAAqB,EAAA;AACrC,QAAA,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AADlB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAiB;KAExC;AACJ;;ACzBD;;;;;AAKG;AACG,MAAgB,iBAAkB,SAAQ,SAAS,CAAA;AAwFxD,CAAA;MAEqB,cAAc,CAAA;AAwBnC,CAAA;MAIqB,wBAAwB,CAAA;AAqE7C,CAAA;AAED;;;;;AAKG;MACmB,kBAAkB,CAAA;AAsEvC;;AC9PD,IAAI,QAAQ,GAAG,CAAC,CAAC;AAEjB;;;;;;;;;;AAUG;AAEG,MAAgB,SAClB,SAAQ,aAAa,CAAA;AAkBrB;;;;;AAKG;IACH,IACI,KAAK,CAAC,KAA6B,EAAA;AACnC,QAAA,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACvB,SAAA;aAAM,IAAI,SAAS,EAAE,EAAE;AACpB,YAAA,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAA,2CAAA,CAA6C,CAAC,CAAC;AACvF,SAAA;KACJ;AACD,IAAA,IAAI,KAAK,GAAA;;QACL,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,IAAI,CAAC,MAAM,CAAC;AACtB,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,YAAA,OAAO,SAAS,CAAC;AACpB,SAAA;QAED,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,gBAAgB,EAAE,KAAI,OAAO,CAAC;KACxD;;IAcD,IACI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAChC;AACD,IAAA,IAAI,QAAQ,GAAA;QACR,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE;AACpD,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAClC,SAAA;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;AAgBD;;AAEG;IACH,IACI,QAAQ,CAAC,KAAmB,EAAA;AAC5B,QAAA,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;AACxB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtC,SAAA;KACJ;AACD,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;AAwBD,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;;AAwBD,IAAA,WAAA,CACI,EAAqB,EACZ,UAAsB,EACF,SAAoB,EAChB,gBAAkC,EAClC,MAAc,EACQ,SAA4B,EACpB,WAAqC,EAAA;AAEpG;;;;;AAKG;QACH,KAAK,CAAC,EAAE,CAAC,CAAC;AAbD,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACF,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAChB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;;AAlJzC,QAAA,IAAA,CAAA,SAAS,GAAG,gBAAgB,QAAQ,EAAE,EAAE,CAAC;;AAMzC,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;;AAEjB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;AAqG3C;;AAEG;AACH,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAOhB;;AAEG;AACK,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAChC;;AAEG;AACM,QAAA,IAAA,CAAA,YAAY,GAAiB,IAAI,OAAO,EAAO,CAAC;;AAGhD,QAAA,IAAS,CAAA,SAAA,GAA6B,IAAI,CAAC;;AAMpD,QAAA,IAAA,CAAA,QAAQ,GAAyB,MAAK,GAAG,CAAC;;AAG1C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAW,GAAG,CAAC;QAoBvB,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACvC,SAAA;;AAGD,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;KACjE;;IAGD,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;AACjD,SAAA;KACJ;AAED;;;AAGG;IACH,SAAS,GAAA;QACL,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;KACJ;;IAGD,eAAe,GAAA;;QACX,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,MAAK;gBACzC,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB,CAAC,CACL,CAAC;AACL,SAAA;AAED,QAAA,MAAM,cAAc,GAAG,CAAA,uBAAA,EAA0B,IAAI,CAAC,EAAE,EAAE,CAAC;;;AAG3D,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AACxC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,cAAc,IAAI,GAAG,GAAG,cAAc,CAAC;AAC/C,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;;AAGD,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;;AAGD,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;;IAGD,WAAW,GAAA;QACP,KAAK,CAAC,WAAW,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;AACnD,SAAA;KACJ;;AAGD,IAAA,gBAAgB,CAAC,UAAwB,EAAA;AACrC,QAAA,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACxB,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC9C,SAAA;KACJ;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAED;;;AAGG;AACH,IAAA,eAAe,CAAC,SAAkB,EAAA;AAC9B,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,EAAE;AAC9D,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC7C,SAAA;QAED,IAAI,CAAC,SAAS,EAAE;YACZ,IAAI,CAAC,SAAS,EAAE,CAAC;AACpB,SAAA;KACJ;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,KAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACrB;AAED;;;;;;;;;;AAUG;AACH,IAAA,KAAK,CAAC,KAAkB,EAAA;QACpB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C,SAAA;KACJ;AAED;;;AAGG;IACO,gBAAgB,GAAA;AACtB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACrD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,GAAI,IAAI,CAAC,SAAS,CAAC,OAAuB,GAAG,IAAI,CAAC;AAChF,QAAA,MAAM,gBAAgB,GAAG,CAAC,EACtB,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO;aACf,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,KAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,SAAS,CAAA,KAAK,sBAA8B,KAAA,IAAA,IAA9B,sBAA8B,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA9B,sBAA8B,CAAE,SAAS,CAAA,CAAC,CACxG,CAAC;AAEF,QAAA,IAAI,gBAAgB,KAAK,IAAI,CAAC,cAAc,EAAE;AAC1C,YAAA,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC;AACxC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,SAAA;KACJ;AAED;;;;;AAKG;AACO,IAAA,QAAQ,CAAC,KAAU,EAAE,YAAY,GAAG,IAAI,EAAA;AAC9C,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,YAAA,IAAI,YAAY,EAAE;AACd,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxB,aAAA;AACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,SAAA;KACJ;;IAGS,QAAQ,GAAA;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;;sGAxUiB,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAwJiB,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACb,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAzJ/C,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,uUA+GyB,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FA/G5C,SAAS,EAAA,UAAA,EAAA,CAAA;kBAD9B,SAAS;;;8BAsJD,QAAQ;;8BAAI,IAAI;;8BAChB,QAAQ;;8BAAI,QAAQ;;8BACpB,QAAQ;;8BAAI,QAAQ;;8BACpB,QAAQ;;8BAAI,QAAQ;;8BAAI,IAAI;;8BAAI,MAAM;+BAAC,aAAa,CAAA;;8BACpD,QAAQ;;8BAAI,QAAQ;;8BAAI,IAAI;;8BAAI,MAAM;+BAAC,qBAAqB,CAAA;;yBAxIjE,WAAW,EAAA,CAAA;sBADV,KAAK;gBAUF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAsBN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAYF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAeN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAOF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBA2BI,WAAW,EAAA,CAAA;sBADpB,SAAS;uBAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;;;AC9IpE;;;;;;;;AAQG;AAEG,MAAgB,mBAAoB,SAAQ,SAAS,CAAA;AACvD;;;;AAIG;IACH,IACI,IAAI,CAAC,KAA0C,EAAA;AAC/C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AACD,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;;AAsBD,IAAA,WAAA,CACI,EAAqB,EACrB,UAAsB,EACO,SAAoB,EAChB,gBAAkC,EAClC,MAAc,EACQ,SAA4B,EACpB,WAAqC,EAAA;AAEpG,QAAA,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AANtD,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAChB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAKlD;;AAGM,IAAA,WAAW,CAAC,IAAS,EAAA;AACxB,QAAA,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3E,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AAC/D,SAAA;KACJ;;AAGM,IAAA,YAAY,CAAC,IAAS,EAAA;AACzB,QAAA,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,KAAK,CAAC;AACrB,SAAA;aAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;AAC5C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAE1D,YAAA,OAAO,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAC;AAChE,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;;IAGM,SAAS,CAAC,GAAQ,EAAE,EAAiC,EAAA;AACxD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClB,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;AAAM,aAAA,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,SAAA;aAAM,IAAI,EAAC,EAAE,KAAF,IAAA,IAAA,EAAE,uBAAF,EAAE,CAAE,MAAM,CAAA,EAAE;AACpB,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,SAAA;KACJ;;gHA/EiB,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAwCO,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACb,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAzC/C,mBAAmB,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBADxC,SAAS;;;8BAsCD,QAAQ;;8BAAI,IAAI;;8BAChB,QAAQ;;8BAAI,QAAQ;;8BACpB,QAAQ;;8BAAI,QAAQ;;8BACpB,QAAQ;;8BAAI,QAAQ;;8BAAI,IAAI;;8BAAI,MAAM;+BAAC,aAAa,CAAA;;8BACpD,QAAQ;;8BAAI,QAAQ;;8BAAI,IAAI;;8BAAI,MAAM;+BAAC,qBAAqB,CAAA;;yBAlC7D,IAAI,EAAA,CAAA;sBADP,KAAK;gBAgBN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAUN,UAAU,EAAA,CAAA;sBADT,KAAK;;;AC7BE,IAAA,sBAKX;AALD,CAAA,UAAY,qBAAqB,EAAA;AAC7B,IAAA,qBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,qBAAA,CAAA,GAAA,CAAA,GAAA,IAAQ,CAAA;AACR,IAAA,qBAAA,CAAA,GAAA,CAAA,GAAA,IAAQ,CAAA;AACR,IAAA,qBAAA,CAAA,GAAA,CAAA,GAAA,IAAQ,CAAA;AACZ,CAAC,EALW,qBAAqB,KAArB,qBAAqB,GAKhC,EAAA,CAAA,CAAA;;ACIW,IAAA,uBAIX;AAJD,CAAA,UAAY,sBAAsB,EAAA;IAC9B,sBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,GAAA,GAAA,CAAA,GAAA,GAAO,CAAA;IACP,sBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,GAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;IACR,sBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,GAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACZ,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,GAIjC,EAAA,CAAA,CAAA,CAAA;MAEY,6BAA6B,GAAG,IAAI,cAAc,CAC3D,sCAAsC,EACxC;MAGW,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;;AAGI,QAAA,IAAA,CAAA,CAAC,GAAW,sBAAsB,CAAC,GAAG,CAAC,CAAC;;AAExC,QAAA,IAAA,CAAA,CAAC,GAAW,sBAAsB,CAAC,GAAG,CAAC,CAAC;;AAExC,QAAA,IAAA,CAAA,CAAC,GAAW,sBAAsB,CAAC,GAAG,CAAC,CAAC;KAC3C;;uHAPY,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2HAA1B,0BAA0B,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;MAaE,4BAA4B,CAAA;;AAarC,IAAA,WAAA,CAAqB,mBAAuC,EAAA;AAAvC,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAoB;;AAX5D,QAAA,IAAW,CAAA,WAAA,GAAwB,EAAE,CAAC;;AAItC,QAAA,IAAQ,CAAA,QAAA,GAAG,WAAW,CAAC;;AAEvB,QAAA,IAAQ,CAAA,QAAA,GAAG,WAAW,CAAC;;AAEvB,QAAA,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC;KAGoD;;AAGhE,IAAA,yBAAyB,CAAC,MAAkC,EAAA;AACxD,QAAA,MAAM,cAAc,GAAoB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;AAEjE,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,KAAI;YACrF,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AACrD,YAAA,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpC,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,cAAc,CAAC;KACzB;;AAGO,IAAA,eAAe,CAAC,iBAAkC,EAAA;AACtD,QAAA,IAAI,cAAkC,CAAC;QAEvC,IAAI,iBAAiB,CAAC,OAAO,EAAE;AAC3B,YAAA,KAAK,MAAM,UAAU,IAAI,iBAAiB,CAAC,WAAW,EAAE;AACpD,gBAAA,IAAI,iBAAiB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AAC3C,oBAAA,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxD,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,cAAc,KAAd,IAAA,IAAA,cAAc,cAAd,cAAc,GAAI,GAAG,CAAC;KAChC;;AAGO,IAAA,eAAe,CAAC,MAAkC,EAAA;AACtD,QAAA,IAAI,aAAqB,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAE5B,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1C,YAAA,QAAQ,UAAU;AACd,gBAAA,KAAK,GAAG;AACJ,oBAAA,aAAa,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAK,EAAA,EAAA,MAAM,CAAC,UAAU,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,GAAG,CAAC;AACxE,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3C,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;oBAC7C,MAAM;AACV,gBAAA,KAAK,GAAG;AACJ,oBAAA,aAAa,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAA,EAAA,EAAK,MAAM,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,CAAU,OAAA,EAAA,IAAI,CAAC,QAAQ,CAAK,EAAA,EAAA,MAAM,CAAC,UAAU,CAAC,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;AAC3H,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3C,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;oBAC7C,MAAM;AACV,gBAAA,KAAK,GAAG;AACJ,oBAAA,aAAa,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAA,EAAA,EAAK,MAAM,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,CAAU,OAAA,EAAA,IAAI,CAAC,QAAQ,CAAK,EAAA,EAAA,MAAM,CAAC,UAAU,CAAC,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;AAC3H,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3C,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;;AAG7C,oBAAA,aAAa,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAK,EAAA,EAAA,MAAM,CAAC,UAAU,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,GAAG,CAAC;AACxE,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3C,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;oBACvC,MAAM;AACb,aAAA;AACJ,SAAA;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;;AAGO,IAAA,kBAAkB,CAAC,eAAe,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;KAC5C;;yHA9EQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAFzB,MAAM,EAAA,CAAA,CAAA;2FAET,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;AAmFK,MAAgB,+BAAgC,SAAQ,mBAAmB,CAAA;;IAE7E,IACI,YAAY,CAAC,MAAgC,EAAA;AAC7C,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;AAC5B,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACtC,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;KAChC;AACD,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;;AA2BD,IAAA,WAAA,CACI,EAAqB,EACrB,UAAsB,EACb,6BAA2D,EACvC,SAAoB,EAChB,gBAAkC,EAClC,MAAc,EACQ,SAA4B,EACpB,WAAqC,EAG3F,kCAA+D,EAAA;AAExE,QAAA,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAV1E,QAAA,IAA6B,CAAA,6BAAA,GAA7B,6BAA6B,CAA8B;AACvC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAChB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAKtC,QAAA,IAAkC,CAAA,kCAAA,GAAlC,kCAAkC,CAA6B;;QAnClE,IAAA,CAAA,oBAAoB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;;AAqB7D,QAAA,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;QAkBnC,IAAI,CAAC,2BAA2B,GAAG,kCAAkC,IAAI,IAAI,0BAA0B,EAAE,CAAC;KAC7G;;IAGD,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,6BAA6B;AAC7B,iBAAA,yBAAyB,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAC3D,iBAAA,SAAS,CAAC,CAAC,cAAc,KAAI;AAC1B,gBAAA,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;AACvC,aAAC,CAAC,CAAC;AACV,SAAA;KACJ;;AAGO,IAAA,eAAe,CAAC,YAA2B,EAAA;QAC/C,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpC,OAAO;AACV,SAAA;QACD,IAAI;YACA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3C,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACvC,SAAA;KACJ;;AAGO,IAAA,aAAa,CAAC,wBAAgC,EAAA;QAClD,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,QAAQ,wBAAwB;AAC5B,gBAAA,KAAK,GAAG;oBACJ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAChD,MAAM;AACV,gBAAA,KAAK,GAAG;oBACJ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACjD,MAAM;AACV,gBAAA,KAAK,GAAG;oBACJ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACjD,MAAM;AACV,gBAAA,KAAK,IAAI;oBACL,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACjD,MAAM;AACV,gBAAA;oBACI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxD,aAAA;AACJ,SAAA;KACJ;;AA1GiB,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,EA8CL,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,aAAa,EACb,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,qBAAqB,yDAErD,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gHAjDvB,+BAA+B,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBADpD,SAAS;;;8BA4CD,QAAQ;;8BAAI,IAAI;;8BAChB,QAAQ;;8BAAI,QAAQ;;8BACpB,QAAQ;;8BAAI,QAAQ;;8BACpB,QAAQ;;8BAAI,QAAQ;;8BAAI,IAAI;;8BAAI,MAAM;+BAAC,aAAa,CAAA;;8BACpD,QAAQ;;8BAAI,QAAQ;;8BAAI,IAAI;;8BAAI,MAAM;+BAAC,qBAAqB,CAAA;;8BAC5D,QAAQ;;8BACR,MAAM;+BAAC,6BAA6B,CAAA;;yBA9CrC,YAAY,EAAA,CAAA;sBADf,KAAK;;;MCrIG,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;;QAGqB,IAAM,CAAA,MAAA,GAAa,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KAuBjG;;AApBG,IAAA,SAAS,CAAC,KAAa,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KACpC;AAED;;;;AAIG;AACK,IAAA,aAAa,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAA;QACzC,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,YAAA,OAAO,SAAS,CAAC;AACpB,SAAA;QAED,MAAM,CAAC,GAAG,IAAI,CAAC;AACf,QAAA,MAAM,EAAE,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpD,QAAA,OAAO,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAClF;;6GAxBQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,IAAI;mBAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;;;MCMjB,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAHZ,gBAAgB,CAAA,EAAA,OAAA,EAAA,CACrB,gBAAgB,CAAA,EAAA,CAAA,CAAA;gHAEjB,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;iBAC9B,CAAA;;;ACPD;;;;;;AAMG;AAIH;;;AAGG;AACa,SAAA,gBAAgB,CAAC,IAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAA;IACnE,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEhE,IAAA,KAAK,CAAC,cAAc,CAChB,IAAI,EACJ,IAAI,kBACJ,IAAI,mBACJ,MAAM,aACN,CAAC,eACD,CAAC,gBACD,CAAC,gBACD,CAAC,gBACD,CAAC,gBACD,KAAK,gBACL,KAAK,eACL,KAAK,iBACL,KAAK,gBACL,MAAM,eACN,IAAI,qBACP,CAAC;;;AAIF,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;;IAG1D,KAAK,CAAC,cAAc,GAAG,YAAA;QACnB,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,OAAO,sBAAsB,EAAE,CAAC;AACpC,KAAC,CAAC;AAEF,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;AAGG;AACG,SAAU,gBAAgB,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAA;;;IAG/D,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC9C,IAAA,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;;AAGrC,IAAA,KAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;;;AAIxD,IAAA,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC3B,QAAA,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE;AAClC,QAAA,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE;AACxC,QAAA,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE;AAC5C,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;AAGG;SACa,mBAAmB,CAC/B,IAAY,EACZ,OAAkB,GAAA,CAAC,EACnB,GAAA,GAAc,EAAE,EAChB,MAAgB,EAChB,YAA0B,EAAE,EAAA;IAE5B,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAQ,CAAC;AAC3D,IAAA,MAAM,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC;;IAGpD,IAAI,KAAK,CAAC,YAAY,EAAE;AACpB,QAAA,KAAK,CAAC,YAAY,CACd,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,GAAG,EACb,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,IAAI,EACd,OAAO,CACV,CAAC;AACL,KAAA;AAAM,SAAA;;;QAGH,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,IAAI,SAAS,CAAC,OAAO,EAAE;YACnB,aAAa,IAAI,UAAU,CAAC;AAC/B,SAAA;QAED,IAAI,SAAS,CAAC,GAAG,EAAE;YACf,aAAa,IAAI,MAAM,CAAC;AAC3B,SAAA;QAED,IAAI,SAAS,CAAC,KAAK,EAAE;YACjB,aAAa,IAAI,QAAQ,CAAC;AAC7B,SAAA;QAED,IAAI,SAAS,CAAC,IAAI,EAAE;YAChB,aAAa,IAAI,OAAO,CAAC;AAC5B,SAAA;AAED,QAAA,KAAK,CAAC,iBAAiB,CACnB,IAAI,EACJ,IAAI,kBACJ,IAAI,mBACJ,MAAM,aACN,CAAC,aACD,GAAG,YACH,CAAC,iBACD,aAAa,CAAC,IAAI,EAAE,sBACpB,KAAK,cACR,CAAC;AACL,KAAA;;;AAID,IAAA,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE;QAC3B,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,OAAO,EAAE;QAC/B,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE;QACvB,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,MAAM,EAAE;AAC7B,QAAA,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;AAC3C,QAAA,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;AACtC,QAAA,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;AAC1C,QAAA,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE;AAC3C,KAAA,CAAC,CAAC;;IAGH,KAAK,CAAC,cAAc,GAAG,YAAA;QACnB,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;;QAE1F,OAAO,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACzD,KAAC,CAAC;AAEF,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;AAGG;AACG,SAAU,eAAe,CAAC,IAAY,EAAE,SAAS,GAAG,KAAK,EAAE,UAAU,GAAG,IAAI,EAAA;IAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC7C,IAAA,OAAO,KAAK,CAAC;AACjB;;ACnHM,MAAO,0CAA2C,SAAQ,iCAAiC,CAAA;;AAE7F,IAAA,WAAA,CAAoB,UAAsB,EAAA;AACtC,QAAA,KAAK,EAAE,CAAC;AADQ,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAEtC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;KACtE;;uIALQ,0CAA0C,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1C,0CAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0CAA0C,EAPxC,QAAA,EAAA,u9CAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0CAA0C,CAAC;AAC5E,SAAA;KACJ,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBA9CtD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCT,IAAA,CAAA;AACD,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAE,UAAU,CAAC,gDAAgD,CAAC;AAC5E,yBAAA;AACJ,qBAAA;iBACJ,CAAA;;;ACtCK,MAAO,mCAAoC,SAAQ,0BAA0B,CAAA;;AAE/E,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAClC;;gIAJQ,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAJjC,QAAA,EAAA,gCAAA,EAAA,SAAA,EAAA;AACP,QAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,mCAAmC,CAAC,EAAE;KAC7G,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAP/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,SAAS,EAAE;AACP,wBAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAyC,mCAAA,CAAC,EAAE;AAC7G,qBAAA;iBACJ,CAAA;;;MCCY,wCAAwC,CAAA;;qIAAxC,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;sIAAxC,wCAAwC,EAAA,YAAA,EAAA,CAJlC,0CAA0C,EAAE,mCAAmC,aACpF,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,0CAA0C,EAAE,mCAAmC,CAAA,EAAA,CAAA,CAAA;AAEhF,wCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wCAAwC,YAHvC,YAAY,CAAA,EAAA,CAAA,CAAA;2FAGb,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBALpD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,CAAC,0CAA0C,EAAE,mCAAmC,CAAC;oBAC/F,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,0CAA0C,EAAE,mCAAmC,CAAC;iBAC7F,CAAA;;;ACLD;AACM,SAAU,gDAAgD,CAAC,YAAoB,EAAA;AACjF,IAAA,OAAO,yBAAyB,CAAC;QAC7B,UAAU,EAAE,MAAK;AACb,YAAA,MAAM,WAAW,GAAG,IAAI,iCAAiC,EAAE,CAAC;AAC5D,YAAA,WAAW,CAAC,YAAY,GAAG,YAAY,CAAC;AACxC,YAAA,OAAO,WAAW,CAAC;SACtB;AACJ,KAAA,CAAC,CAAC;AACP;;MCXa,4BAA4B,GAAG,IAAI,cAAc,CAAC,2BAA2B;;ACF1F;;AAEG;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-platform-shared.mjs","sources":["../../../../libs/platform/src/lib/shared/base.ts","../../../../libs/platform/src/lib/shared/platform.config.ts","../../../../libs/platform/src/lib/shared/domain/data-source.ts","../../../../libs/platform/src/lib/shared/utils/lang.ts","../../../../libs/platform/src/lib/shared/domain/base-data-provider.ts","../../../../libs/platform/src/lib/shared/domain/array-data-source.ts","../../../../libs/platform/src/lib/shared/domain/data-model.ts","../../../../libs/platform/src/lib/shared/domain/observable-data-source.ts","../../../../libs/platform/src/lib/shared/form/form-field.ts","../../../../libs/platform/src/lib/shared/form/base.input.ts","../../../../libs/platform/src/lib/shared/form/collection-base.input.ts","../../../../libs/platform/src/lib/shared/form/form-options.ts","../../../../libs/platform/src/lib/shared/form/inline-layout-collection-base.input.ts","../../../../libs/platform/src/lib/shared/pipes/convert-bytes/convert-bytes.pipe.ts","../../../../libs/platform/src/lib/shared/pipes/pipe.module.ts","../../../../libs/platform/src/lib/shared/testing/event-objects.ts","../../../../libs/platform/src/lib/shared/platform-content-density-deprecations/directives/platform-content-density-deprecation.directive.ts","../../../../libs/platform/src/lib/shared/platform-content-density-deprecations/directives/platform-compact-deprecation.directive.ts","../../../../libs/platform/src/lib/shared/platform-content-density-deprecations/platform-content-density-deprecations.module.ts","../../../../libs/platform/src/lib/shared/platform-content-density-deprecations/providers/module-deprecation.provider.ts","../../../../libs/platform/src/lib/shared/preset-management/preset-management.token.ts","../../../../libs/platform/src/lib/shared/fundamental-ngx-platform-shared.ts"],"sourcesContent":["import { ChangeDetectorRef, Directive, Input, OnDestroy } from '@angular/core';\n// eslint-disable-next-line\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nlet randomId = 0;\n\n/**\n * This class contains common properties used across components.\n * this can be extended to reduce the code duplication across components.\n * @hidden for form related Base , see BaseInput.\n */\n@Directive()\nexport abstract class BaseComponent implements OnDestroy {\n /** @hidden */\n protected defaultId = `fdp-id-${randomId++}`;\n /** @hidden */\n protected _disabled = false;\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Sets the `aria-labelledby` attribute to the element. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Sets the `aria-describedby` attribute to the element. */\n @Input()\n ariaDescribedBy: Nullable<string>;\n\n /** id for the Element */\n @Input()\n id: string = this.defaultId;\n\n /** name for the element */\n @Input()\n name: string;\n\n /** @hidden */\n protected _subscriptions = new Subscription();\n\n /** @hidden */\n protected _router: Router;\n\n /** width of the element */\n @Input()\n width: string;\n\n /** disabled status of the element */\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n /** @hidden */\n constructor(protected _cd: ChangeDetectorRef) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /**\n * @hidden\n * For internal usage only\n *\n * Since all components use OnPush strategy in the fundamental lib\n * it's tricky to update a child input directly from a parent component class\n *\n */\n markForCheck(): void {\n this._cd.markForCheck();\n }\n\n /**\n * @hidden\n * For internal usage only\n *\n * Since all components use OnPush strategy in the fundamental lib\n * it's tricky to update a child input directly from a parent component class\n *\n */\n detectChanges(): void {\n this._cd.detectChanges();\n }\n}\n","import { Injectable, Injector } from '@angular/core';\n\nimport { ContentDensity } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Platform lib Config\n */\n@Injectable({ providedIn: 'root' })\nexport class PlatformConfig {\n /** @hidden */\n private static injector: Injector | null = null;\n\n /**\n * Content Density of element. 'cozy' | 'compact' | 'condensed'\n */\n contentDensity: ContentDensity;\n\n /** @hidden */\n static setInjector(injector: Injector): void {\n PlatformConfig.injector = injector;\n }\n\n /** @hidden */\n static getInjector(): Injector | null {\n return PlatformConfig.injector;\n }\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n *\n * When working with large set of data using components such as:\n * - Datatables\n * - InputSearch\n * - ComboBox (Autocomplete)\n * - Tree\n * - List\n * - etc..\n * and for these we need to unify the way we access a data. Currently we leave most of the complex\n * data access or data manipulation on application developer which leads to different\n * implementation approaches and allot of code duplication.\n *\n * It is common practice when working with different data input sources we try to apply some\n * Design patterns e.g. Adapter Pattern that provides us with guidelines how different interfaces\n * can talk to each other and from here we can derive another pattern so called Datasource pattern\n * which is high-level architectural pattern to abstract data and internal resources\n * access (DB calls, Rest calls, domain objects) with a mininal amount a code.\n *\n * What we want to achieve is to define abstract layer where each specific resource type needs to\n * implement and move all the related logic into reusable DataSources. (TableDataSource,\n * ComboBoxDataSource, ... )\n *\n * Observable<T[]> is a reactive stream, that changes its content based on what it pushed\n * into it using .next().\n *\n * Each type of data component such Autocomplete, DataTable, List,.. needs to provide its own\n * specific implementation to handle specific use-case.\n *\n * ```\n * export abstract class DataTableDataSource<T> implements DataSource<T> {\n * data: T[];\n * filterTerm: string;\n * paginator: Paginator | null\n *\n * filterPredicate: ((data: T, filter: string) => boolean;\n *\n * sortData: ((data: T[], sort: Sort) => T[]);\n *\n * //\n * create (t: T): T;\n * update (t: T): T;\n * remove (t: T): T;\n *\n * }\n * ```\n *\n * After we define a format we can start creating concrete implementations based on the usage or\n * resource .e.g:\n *\n *\n * ```\n * export abstract class RestAutoCompleteDataSource<T> extend DataChooserDataSource <T> {\n * // We can use a registry that is able to map a Entity Type = Endpoint\n * // have identical way how to fetch , search ,...\n * }\n * ```\n *\n * Probably when working with data only locally, it can be:\n *\n * ```\n * export abstract class LocalArrayAutoCompleteDataSource<T> extend DataChooserDataSource <T> {\n * }\n * ```\n *\n *\n */\nimport { InjectionToken } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport enum MatchingStrategy {\n STARTS_WITH_PER_TERM = 'starts with per term',\n STARTS_WITH = 'starts with',\n CONTAINS = 'contains'\n}\n\nexport const DATA_PROVIDERS = new InjectionToken<Map<string, DataProvider<any>>>('DataProviderRegistry');\n\nexport interface DataSource<T, P = T[], L = boolean> {\n open(): Observable<P>;\n close(): void;\n isDataLoading: L;\n onDataRequested(): Observable<void>;\n onDataReceived(): Observable<void>;\n}\n\nexport type MatchBy = (item: any) => any;\n\nexport interface MatchingBy {\n firstBy: MatchBy;\n secondaryBy?: MatchBy;\n}\n\n/** Matching Strategy: StartsWithPerTerm - Reqexp */\nexport function getMatchingStrategyStartsWithPerTermReqexp(value: string): RegExp {\n // We need to escape all special characters in order not to break the regular expression.\n return new RegExp(`(\\\\s|^)(${value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')})`, 'gi');\n}\n\n/** @hidden */\nexport function isDataSource<T = any>(value: any): value is DataSource<T> {\n return value && typeof value.open === 'function';\n}\n\nexport type ProviderParams = ReadonlyMap<string, any>;\n/**\n * Provider is a data driver that can access data and retrieve them. It knows how to get 1\n * or more records, maybe do paging and some other things.\n *\n */\nexport abstract class DataProvider<T> {\n /** @hidden */\n protected _keyPath: string;\n\n /** @hidden */\n protected _matchingStrategy: MatchingStrategy = MatchingStrategy.STARTS_WITH;\n\n /** @hidden */\n protected _matchingBy: MatchingBy | null = null;\n\n abstract fetch(params: ProviderParams, start?: number, end?: number): Observable<T[]>;\n\n /**\n * Tells if this DataProvider supports INSERT, REMOVE\n *\n */\n canCRUD(): boolean {\n return false;\n }\n\n // Implement to support CRUD operations.\n\n /** @hidden */\n getOne(params: ProviderParams): Observable<T> {\n throw new Error('Not supported');\n }\n\n /** @hidden */\n insert(payload: any, params?: ProviderParams): Observable<T> {\n throw new Error('Not supported');\n }\n\n /** @hidden */\n remove(params: ProviderParams): Observable<boolean> {\n throw new Error('Not supported');\n }\n\n /** @hidden */\n update(payload: any, params?: ProviderParams): Observable<T> {\n throw new Error('Not supported');\n }\n\n /** @hidden */\n setLookupKey(key: string): void {\n this._keyPath = key;\n }\n\n /** @hidden */\n setMatchingBy(matchingBy: MatchingBy): void {\n this._matchingBy = matchingBy;\n }\n\n /** @hidden */\n setMatchingStrategy(strategy: MatchingStrategy): void {\n this._matchingStrategy = strategy;\n }\n}\n\nexport class ComboBoxDataSource<T> implements DataSource<T> {\n /** @hidden */\n static readonly MaxLimit = 5;\n\n /** @hidden */\n limitless = false;\n\n /** @hidden */\n protected readonly _dataChanges: BehaviorSubject<T[]> = new BehaviorSubject<T[]>([]);\n /** @hidden */\n protected readonly _onDataRequested$ = new Subject<void>();\n /** @hidden */\n protected readonly _onDataReceived$ = new Subject<void>();\n /** @hidden */\n protected readonly _onDestroy$ = new Subject<void>();\n /** @hidden */\n protected _dataLoading = false;\n\n /** @hidden */\n get isDataLoading(): boolean {\n return this._dataLoading;\n }\n\n /** @hidden */\n constructor(public dataProvider: DataProvider<any>) {}\n\n /** @hidden */\n match(predicate: string | Map<string, string> = new Map<string, string>(), start = 0, end = Infinity): void {\n this._onDataRequested$.next();\n this._dataLoading = true;\n const searchParam = new Map();\n\n if (typeof predicate === 'string') {\n searchParam.set('query', predicate);\n } else if (predicate instanceof Map) {\n predicate.forEach((v, k) => searchParam.set(k, v));\n } else {\n throw new Error('DataSource.match() predicate can only accepts string and Map');\n }\n\n if (!searchParam.has('limit') && !this.limitless) {\n searchParam.set('limit', ComboBoxDataSource.MaxLimit);\n }\n\n this.dataProvider\n .fetch(searchParam, start, end)\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(\n (result: T[]) => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n this._dataChanges.next(result);\n },\n () => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n }\n );\n }\n\n /** @hidden */\n open(): Observable<T[]> {\n return this._dataChanges.pipe(takeUntil(this._onDestroy$));\n }\n\n /** @hidden */\n close(): void {\n this._onDestroy$.next();\n }\n\n /** @hidden */\n onDataRequested(): Observable<void> {\n return this._onDataRequested$.asObservable();\n }\n\n /** @hidden */\n onDataReceived(): Observable<void> {\n return this._onDataReceived$.asObservable();\n }\n}\n\nexport class MultiComboBoxDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(public dataProvider: DataProvider<any>) {\n super(dataProvider);\n }\n}\n\nexport class SearchFieldDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(public dataProvider: DataProvider<any>) {\n super(dataProvider);\n }\n}\n\nexport class ListDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n limitless = true;\n /** @hidden */\n constructor(public dataProvider: DataProvider<any>) {\n super(dataProvider);\n }\n}\n\nexport class MultiInputDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(public dataProvider: DataProvider<any>) {\n super(dataProvider);\n }\n}\n\nexport class ApprovalFlowUserDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(public dataProvider: DataProvider<T>) {\n super(dataProvider);\n }\n}\n\nexport class ApprovalFlowTeamDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(public dataProvider: DataProvider<T>) {\n super(dataProvider);\n }\n}\n","import { Observable } from 'rxjs';\n\n/** @hidden */\nexport function objectValues(obj: any): any[] {\n return Object.keys(obj).map((key) => obj[key]);\n}\n\n/** @hidden */\nexport function objectToName(target: any): string {\n if (isBlank(target) || (!isStringMap(target) && !isType(target))) {\n throw new Error(' Cannot convert. Uknown object');\n }\n\n return isType(target) ? target.prototype.constructor.name : target.constructor.name;\n}\n\n/** @hidden */\nexport function isJsObject(o: any): boolean {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n\n/** @hidden */\nexport function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\n/** @hidden */\nexport function isBlank(obj: any): boolean {\n return obj === undefined || obj === null;\n}\n\n/** @hidden */\nexport function isBoolean(obj: any): boolean {\n return typeof obj === 'boolean';\n}\n\n/** @hidden */\nexport function isNumber(obj: any): boolean {\n return typeof obj === 'number';\n}\n\n/** @hidden */\nexport function isString(obj: any): obj is string {\n return typeof obj === 'string';\n}\n\n/** @hidden */\nexport function isFunction(obj: any): boolean {\n return typeof obj === 'function';\n}\n\n/** @hidden */\nexport function isType(obj: any): boolean {\n return isFunction(obj);\n}\n\n/** @hidden */\nexport function isStringMap(obj: any): obj is Record<string, any> {\n return typeof obj === 'object' && obj !== null;\n}\n\n/** @hidden */\nexport function isObject<T>(item: T): boolean {\n return typeof item === 'object' && !Array.isArray(item) && item !== null;\n}\n\n/** @hidden */\nexport function isPromise<T = any>(obj: any): obj is Promise<T> {\n // allow any Promise/A+ compliant thenable.\n // It's up to the caller to ensure that obj.then conforms to the spec\n return !!obj && isFunction(obj.then);\n}\n\n/** @hidden */\nexport function isSubscribable(obj: any | Observable<any>): obj is Observable<any> {\n return !!obj && isFunction(obj.subscribe);\n}\n","/**\n * Default implementation for Observable Arrays and Arrays.\n */\nimport { Observable, of, isObservable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { isFunction, isJsObject, objectToName, objectValues } from '../utils/lang';\nimport { DataProvider, getMatchingStrategyStartsWithPerTermReqexp, MatchBy, MatchingStrategy } from './data-source';\n\n/**\n * In Memory implementation of DataProvider that supports fulltext search\n */\nexport class BaseDataProvider<T> extends DataProvider<T> {\n /** @hidden */\n constructor(protected values: Observable<T[]> | T[]) {\n super();\n }\n\n /** @hidden */\n fetch(params: Map<string, any>): Observable<T[]> {\n const observable = isObservable(this.values) ? this.values : of(this.values);\n\n const queryString = params.get('query');\n const limit = params.get('limit') || 50;\n\n if (!queryString || queryString === '*') {\n return observable.pipe(map((items) => this.withLimit(items, limit)));\n }\n\n const toLowerPattern = queryString.toLowerCase();\n\n return observable.pipe(\n map((items) => {\n const result: any[] = [];\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (this.matches(item, toLowerPattern)) {\n result.push(item);\n if (result.length >= limit) {\n break;\n }\n }\n }\n\n return result;\n })\n );\n }\n\n /**\n * Warning: If you dont supply search Key and you want fulltext search and you use this\n * default implementation be aware that it can perform poorly as it is naive implementation\n * that does not do deep compare.\n */\n matches(item: T, pattern: string): boolean {\n if (!this._matchingBy) {\n return false;\n }\n const { firstBy, secondaryBy } = this._matchingBy;\n\n let matched = this.matchesBy(item, pattern, firstBy);\n if (!matched && secondaryBy) {\n matched = this.matchesBy(item, pattern, secondaryBy);\n }\n\n return matched;\n }\n\n /** @hidden */\n matchesBy(item: any, pattern: string, matchingBy: MatchBy): boolean {\n const value = isJsObject(item) && matchingBy ? matchingBy(item) : item;\n\n if (isFunction(value)) {\n return value.call(item);\n } else if (isJsObject(value)) {\n return this.hasObjectValue(item, pattern);\n } else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH_PER_TERM) {\n const reqexp = getMatchingStrategyStartsWithPerTermReqexp(pattern);\n return !!pattern && !!value && !!value.match(reqexp);\n } else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH) {\n return !!pattern && !!value && value.toString().toLowerCase().startsWith(pattern.toLowerCase());\n } else if (this._matchingStrategy === MatchingStrategy.CONTAINS) {\n return !!pattern && !!value && value.toString().toLowerCase().indexOf(pattern) > -1;\n } else {\n return !!pattern && !!value && value.toString().toLowerCase() === pattern;\n }\n }\n\n /** @hidden */\n protected hasObjectValue(obj: any, pattern: string): boolean {\n const values = objectValues(obj);\n const parentObj = objectToName(obj);\n const length2 = values.filter((value: any) => {\n if (!value || Array.isArray(value)) {\n return false;\n } else if (!isJsObject(value) && !isFunction(value)) {\n return value.toString().toLowerCase().indexOf(pattern) !== -1;\n } else if (isJsObject(value) && objectToName(value) !== parentObj) {\n return this.hasObjectValue(value, pattern);\n }\n\n return false;\n }).length;\n return length2 > 0;\n }\n\n /** @hidden */\n private withLimit(data: Array<T>, limit?: number): Array<T> {\n if (limit && data.length > limit) {\n return data.slice(0, limit);\n }\n return data;\n }\n}\n","/**\n * Default implementation for Arrays.\n */\nimport { ComboBoxDataSource, ListDataSource, MultiComboBoxDataSource, MultiInputDataSource } from './data-source';\nimport { BaseDataProvider } from './base-data-provider';\n\nexport class ArrayComboBoxDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(private data: T[]) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ArrayMultiComboBoxDataSource<T> extends MultiComboBoxDataSource<T> {\n /** @hidden */\n constructor(private data: T[]) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ArrayListDataSource<T> extends ListDataSource<T> {\n /** @hidden */\n constructor(private data: T[]) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ArrayMultiInputDataSource<T> extends MultiInputDataSource<T> {\n /** @hidden */\n constructor(private data: T[]) {\n super(new BaseDataProvider(data));\n }\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { isBlank } from './../utils/lang';\nimport { TemplateRef } from '@angular/core';\n\n/**\n * Interface SelectItem is used to deal with complex object in order to be able to format\n * custom label that is shown in the options.\n *\n * Used in various controls: Select, RadioGroup, CheckboxGroup, Combobox\n */\nexport interface SelectItem<T = any> {\n /**\n * Item text shown in the popup\n */\n label: string;\n\n /**\n * References to the object instance\n */\n value: T;\n disabled?: boolean;\n\n icon?: string;\n /**\n * Trigger values is a text for selected item\n */\n triggerValue?: string;\n\n isGroup?: boolean;\n secondaryText?: string;\n children?: SelectItem[];\n\n /**\n * @hidden\n * Used in settings generator only.\n */\n description?: string;\n\n /**\n * @hidden\n * Used in settings generator only.\n */\n template?: TemplateRef<any>;\n}\n\nexport interface OptionItem {\n /** Item text */\n label: string;\n\n /**\n * References to the object instance\n */\n value: any;\n id?: string;\n isGroup?: boolean;\n secondaryText?: string;\n children?: OptionItem[];\n}\n\nexport interface SelectableOptionItem extends OptionItem {\n selected?: boolean;\n children?: SelectableOptionItem[];\n}\n\n/** @hidden */\nexport function isSelectableItem(item: SelectItem): item is SelectItem {\n return (\n item &&\n item.label !== undefined &&\n item.value !== undefined &&\n Object.prototype.hasOwnProperty.call(item, 'selected')\n );\n}\n\n/** @hidden */\nexport function isSelectItem(item: SelectItem): item is SelectItem {\n return item && item.label !== undefined && item.value !== undefined;\n}\n\nexport interface MultiInputOption {\n /** Item text */\n label: string;\n\n /**\n * References to the object instance\n */\n value: any;\n\n /**\n * Item Avatar\n */\n avatarSrc?: string;\n\n isGroup?: boolean;\n description?: string;\n children?: MultiInputOption[];\n}\n\nexport const isOptionItem = isSelectItem;\nexport const isSelectableOptionItem = isSelectableItem;\n\n/**\n * Wraps the provided value in an array, unless it is an array already.\n * If `null` or `undefined` is received, will return an empty array.\n */\nexport function coerceArraySafe<T>(value: T | T[]): T[] {\n return isBlank(value) ? [] : coerceArray(value);\n}\n","/**\n * Default implementation for Observable Arrays.\n */\nimport { Observable } from 'rxjs';\n\nimport { ComboBoxDataSource, ListDataSource, MultiComboBoxDataSource, MultiInputDataSource } from './data-source';\nimport { BaseDataProvider } from './base-data-provider';\n\nexport class ObservableComboBoxDataSource<T> extends ComboBoxDataSource<T> {\n /** @hidden */\n constructor(private data: Observable<T[]>) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ObservableMultiComboBoxDataSource<T> extends MultiComboBoxDataSource<T> {\n /** @hidden */\n constructor(private data: Observable<T[]>) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ObservableListDataSource<T> extends ListDataSource<T> {\n /** @hidden */\n constructor(private data: Observable<T[]>) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ObservableMultiInputDataSource<T> extends MultiInputDataSource<T> {\n /** @hidden */\n constructor(private data: Observable<T[]>) {\n super(new BaseDataProvider(data));\n }\n}\n","import { ElementRef, QueryList, TemplateRef } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, NgControl } from '@angular/forms';\nimport { FormField, FormFieldControl, FormStates } from '@fundamental-ngx/cdk/forms';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable, Subject } from 'rxjs';\n\nimport { FormError, FormFieldErrorDirectiveContext } from './form-error';\nimport { LabelLayout, Column, HintPlacement, ColumnLayout } from './form-options';\n\n/**\n * FormField base class.\n *\n * This class is used to create form field components.\n *\n */\nexport abstract class PlatformFormField extends FormField {\n /**\n * Form field id\n */\n id: string;\n /**\n * Rank is used for ordering.\n * Than lower number then higher priority\n */\n rank: number;\n /**\n * Form field template reference\n */\n renderer: TemplateRef<any>;\n /**\n * Form field custom width in columns must be between 1 - 12\n */\n columns: Column;\n /**\n * Define form field column belongs\n */\n column: number;\n /**\n * Translations template reference\n */\n i18Strings: TemplateRef<any>;\n /**\n * Indicates if field is editable\n */\n editable: boolean;\n /**\n * Indicates when form field label should not be displayed\n */\n noLabelLayout: boolean;\n /**\n * @deprecated\n * Define form field label placement\n */\n labelLayout: LabelLayout;\n /**\n * Define hint placement\n */\n hintPlacement: HintPlacement;\n /**\n * A reference to the underlying FormFieldControl.\n */\n control: PlatformFormFieldControl | null;\n /**\n * Set when form field is a mandatory one.\n */\n required: boolean;\n /** Form field label */\n label?: string;\n\n /** Form fields's group. */\n formFieldGroup: Nullable<FormFieldGroup>;\n\n /** Frm field's Form Container. */\n formGroupContainer: Nullable<FormGroupContainer>;\n\n /** Grouped errors. */\n groupedErrors: FormFieldErrorDirectiveContext[];\n\n /** Combined Error directives. */\n errorDirectives: FormError[];\n\n /** Form control */\n ngControl?: NgControl;\n\n /** @hidden */\n formControl?: FormControl;\n\n /** Event emitted when errors being changed. */\n errorsChange$: Subject<void>;\n\n /**\n * Set default columns layout\n */\n setDefaultColumnLayout: () => void;\n\n /** Gets field error priority state. */\n getPriorityState: () => FormStates;\n\n /** Groups errors. */\n groupErrors: () => void;\n\n /** Sets error directives from parent container */\n setErrorDirectives: (directives: QueryList<FormError>) => void;\n}\n\nexport abstract class FormFieldGroup {\n /** Group header*/\n label: string;\n\n /** Group's form name */\n formName: string;\n\n /** Group fields */\n fields: QueryList<PlatformFormField>;\n\n /**\n * Defines label's column layout.\n */\n labelColumnLayout: ColumnLayout;\n\n /**\n * Defines field's column layout.\n */\n fieldColumnLayout: ColumnLayout;\n\n /**\n * Defines gap column layout.\n */\n gapColumnLayout: ColumnLayout;\n}\n\nexport type FdpFormFieldControl<T = any> = FormFieldControl<T>;\n\nexport abstract class PlatformFormFieldControl<T = any> implements FormFieldControl<T> {\n /**\n * Each input control has always a value. Need to make sure we keep a convention for\n * input fields\n */\n value: T | null;\n\n /**\n * Need to have a way to set placeholder to the input\n */\n placeholder: string;\n\n /**\n * Need to have a way to set Mandatory to the input field\n */\n required: boolean;\n\n /**\n * Sets id from FF to Input\n */\n id: string;\n\n /**\n * This should be coming from Parent.\n */\n editable: boolean;\n\n /**\n * The height of the extra content at the bottom of the form control,\n * which should not affect the alignment of form control and it's label\n */\n extraContentHeightPx?: number;\n\n /**\n *\n * Form Field listen for all the changes happening inside the input\n */\n readonly stateChanges: Observable<void>;\n\n /**\n * Each input should inject its own ngControl and we should retrieve it\n */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /**\n * Keeps track if the form element is in focus\n */\n readonly focused: boolean;\n\n /** Whether control has errors */\n readonly controlInvalid: boolean;\n\n /** Corresponding element reference. */\n readonly elementRef: ElementRef;\n\n /** Form field instance. */\n formField: Nullable<PlatformFormField>;\n\n /** Method for focusing on the element */\n abstract focus(event?: MouseEvent): void;\n\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n abstract onContainerClick(event: MouseEvent): void;\n}\n\n/**\n * FormGroup base class.\n *\n * This class is used to create form group components.\n *\n */\nexport abstract class FormGroupContainer {\n /**\n * Angular FormGroup where all underlying controls will be attached to.\n */\n formGroup: FormGroup;\n /**\n * Translations template reference.\n */\n i18Strings: TemplateRef<any>;\n /**\n * Indicates when form is editable.\n */\n editable: boolean;\n /**\n * Indicates when labels should not be displayed.\n */\n noLabelLayout: boolean;\n\n /**\n * @deprecated\n * Use labelColumnLayout, fieldColumnLayout and gapColumnLayout properties.\n *\n * Defines form field label placement.\n */\n labelLayout: LabelLayout;\n\n /**\n * Defines label's column layout.\n */\n labelColumnLayout: ColumnLayout;\n\n /**\n * Defines field's column layout.\n */\n fieldColumnLayout: ColumnLayout;\n\n /**\n * Defines gap column layout.\n */\n gapColumnLayout: ColumnLayout;\n\n /**\n * Form's main title.\n */\n mainTitle?: Nullable<string>;\n\n /**\n * Attach underlying form field.\n */\n addFormField: (formField: PlatformFormField) => void;\n /**\n * Detach underlying form field.\n */\n removeFormField: (formField: PlatformFormField) => void;\n /**\n * Attach formControl.\n */\n addFormControl: (name: string, control: AbstractControl) => void;\n /**\n * Detach form formControl.\n */\n removeFormControl: (name: string) => void;\n /**\n * Attach underlying form field group.\n */\n addFormFieldGroup: (formFieldGroup: FormFieldGroup) => void;\n /**\n * Detach underlying form field group.\n */\n removeFormFieldGroup: (formFieldGroup: FormFieldGroup) => void;\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n DoCheck,\n ElementRef,\n Host,\n Inject,\n InjectionToken,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n SkipSelf,\n ViewChild,\n isDevMode\n} from '@angular/core';\nimport { ControlContainer, ControlValueAccessor, FormControl, NgControl, NgForm } from '@angular/forms';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable, Subject } from 'rxjs';\n\nimport { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL, FormStates, isValidControlState } from '@fundamental-ngx/cdk/forms';\nimport { BaseComponent } from '../base';\nimport { PlatformFormField, PlatformFormFieldControl } from './form-field';\n\nexport const FDP_DO_CHECK = new InjectionToken<Observable<void>>('FdpInputDoCheckTrigger');\n\nlet randomId = 0;\n\n/**\n * All form components share the same information (value, name, placeholder,.. ) as well as\n * the same behavior given by ControlValueAccessor.\n *\n * Even this is not ideal solution there is no other way then use inheritance to reuse some of the\n * common logic. It should be possible to use some kind of compositions with Proxies but something\n * similar that exists in Aspect Oriented Programing.\n *\n * Usually try to fire stateChange only for things that can change dynamically in runtime. We don't expect\n * that e.g. placeholder will change after component is created\n */\n@Directive()\nexport abstract class BaseInput\n extends BaseComponent\n implements PlatformFormFieldControl, ControlValueAccessor, OnInit, DoCheck, AfterViewInit, OnDestroy\n{\n /** @hidden */\n protected defaultId = `fdp-input-id-${randomId++}`;\n /** @hidden */\n protected _disabled: boolean;\n /** @hidden */\n protected _value: any;\n /** @hidden */\n protected _editable = true;\n /** @hidden */\n protected _destroyed = new Subject<void>();\n\n /** Input placeholder */\n @Input()\n placeholder: string;\n\n /**\n * The state of the form control - applies css classes.\n * Can be 'success', 'error', 'warning', 'default', 'information'.\n *\n * @default 'default'\n */\n @Input()\n set state(state: FormStates | undefined) {\n if (!state || isValidControlState(state)) {\n this._state = state;\n } else if (isDevMode()) {\n console.warn(`Provided value \"${state}\" is not a valid option for FormStates type`);\n }\n }\n get state(): FormStates {\n if (this._state) {\n return this._state;\n }\n\n if (!this.controlInvalid) {\n return 'default';\n }\n\n return this.formField?.getPriorityState() || 'error';\n }\n\n /** Holds the message with respect to state */\n @Input()\n stateMessage: Nullable<string>;\n\n /**\n * @hidden\n * The state of the form control - applies css classes.\n * Can be `success`, `error`, `warning`, `information` or 'default'\n */\n protected _state: FormStates | undefined;\n\n /** Whether the input is disabled */\n @Input()\n set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n /**\n * readOnly Value to Mark component read only\n */\n @Input()\n readonly: boolean;\n\n /** Binds to control aria-labelledBy attribute */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Sets control aria-label attribute value */\n @Input()\n ariaLabel: Nullable<string>;\n\n /**\n * Tell the component if we are in editing mode.\n */\n @Input()\n set editable(value: BooleanInput) {\n const newVal = coerceBooleanProperty(value);\n if (this._editable !== newVal) {\n this._editable = newVal;\n this._cd.markForCheck();\n this.stateChanges.next('editable');\n }\n }\n get editable(): boolean {\n return this._editable;\n }\n\n /**\n * need to make these value accessor as abstract to be implemented by subclasses. Having them\n * in superclass have issue getting reference to them with Object.getOwnPropertyDescripton\n * which we need to programmatically wraps components set/get value\n *\n */\n abstract get value(): any;\n\n abstract set value(value: any);\n\n /**\n * Reference to internal Input element\n */\n @ViewChild('inputElementRef', { static: true, read: ElementRef })\n protected _elementRef: ElementRef;\n\n /**\n * See @FormFieldControl\n */\n focused = false;\n\n /** Whether control has errors */\n get controlInvalid(): boolean {\n return this._controlInvalid;\n }\n\n /**\n * @hidden\n */\n private _controlInvalid = false;\n /**\n * See @FormFieldControl\n */\n readonly stateChanges: Subject<any> = new Subject<any>();\n\n /** @hidden */\n readonly formField: PlatformFormField | null = null;\n\n /** set when input field is mandatory form field */\n required: boolean;\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n protected constructor(\n cd: ChangeDetectorRef,\n readonly elementRef: ElementRef,\n @Optional() @Self() readonly ngControl: NgControl,\n @Optional() @SkipSelf() readonly controlContainer: ControlContainer,\n @Optional() @SkipSelf() readonly ngForm: NgForm,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD) formField: PlatformFormField,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD_CONTROL) formControl: PlatformFormFieldControl\n ) {\n /**\n * We do not use Injector.get() approach here because there is a bug\n * with this signature https://github.com/angular/angular/issues/31776\n * where \"get()\" method doesn't take into account \"flag\" option\"\n *\n */\n super(cd);\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n // We have to ignore \"formField\" if there is \"formControl\" wrapper\n this.formField = formField && !formControl ? formField : null;\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.formField) {\n this.formField.registerFormFieldControl(this);\n }\n }\n\n /**\n * Re-validate and emit event to parent container on every CD cycle as they are some errors\n * that we can't subscribe to.\n */\n ngDoCheck(): void {\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.ngControl) {\n this._subscriptions.add(\n this.ngControl.statusChanges?.subscribe(() => {\n this.markForCheck();\n })\n );\n }\n\n const labelAndHelpId = `fdp-form-label-content-${this.id}`;\n // if not specified, associate label and inline help ids with the input,\n // else add these ids to the specified ones\n if (this.formField) {\n if (!this.ariaLabelledBy) {\n this.ariaLabelledBy = labelAndHelpId;\n } else {\n this.ariaLabelledBy += ' ' + labelAndHelpId;\n }\n }\n this._cd.detectChanges();\n }\n\n /** @hidden */\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.stateChanges.complete();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.formField) {\n this.formField.unregisterFormFieldControl(this);\n }\n }\n\n /** @hidden */\n setDisabledState(isDisabled: BooleanInput): void {\n const newState = coerceBooleanProperty(isDisabled);\n this._cd.markForCheck();\n if (newState !== this._disabled) {\n this._disabled = newState;\n this.stateChanges.next('setDisabledState');\n }\n }\n\n /**\n * Each sub class must override this method as inheritance does not work\n */\n writeValue(value: any): void {\n this._value = value;\n this.stateChanges.next('writeValue');\n this._cd.markForCheck();\n }\n\n /**\n *\n * Keeps track of element focus\n */\n _onFocusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused && (!this.disabled || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next('_onFocusChanged');\n }\n\n if (!isFocused) {\n this.onTouched();\n }\n }\n\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n onContainerClick(event: MouseEvent): void {\n this.focus(event);\n }\n\n /**\n * In most of the cases when working with input element directly you should be just find to assing\n * variable to this element\n *\n * ```\n * <input #inputElementRef fd-form-control ...>\n * ```\n *\n * and this default behavior used. For other cases implement focus.\n *\n */\n focus(event?: MouseEvent): void {\n if (this._elementRef && !this.focused) {\n this._elementRef.nativeElement.focus(event);\n }\n }\n\n /**\n * Need re-validates errors on every CD iteration to make sure we are also\n * covering non-control errors, errors that happens outside of this control\n */\n protected updateErrorState(): void {\n const parent = this.ngForm;\n const parentControlContainer = this.controlContainer;\n const control = this.ngControl ? (this.ngControl.control as FormControl) : null;\n const newStatusIsError = !!(\n control?.invalid &&\n (control.dirty || control.touched || parent?.submitted || (parentControlContainer as any)?.submitted)\n );\n\n if (newStatusIsError !== this.controlInvalid) {\n this._controlInvalid = newStatusIsError;\n this.stateChanges.next('updateErrorState');\n this._cd.markForCheck();\n }\n }\n\n /**\n * Used to change the value of a control.\n * @param value the value to be applied\n * @param emitOnChange whether to emit \"onChange\" event.\n * Should be \"false\", if the change is made programmatically (internally) by the control, \"true\" otherwise\n */\n protected setValue(value: any, emitOnChange = true): void {\n if (value !== this._value) {\n this.writeValue(value);\n if (emitOnChange) {\n this.onChange(value);\n }\n this._cd.markForCheck();\n }\n }\n\n /** @hidden */\n protected getValue(): any {\n return this._value;\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Host, Inject, Input, Optional, Self, SkipSelf } from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\n\nimport { BaseInput } from './base.input';\nimport { isFunction, isJsObject, isString } from '../utils/lang';\nimport { isSelectItem, SelectItem } from '../domain/data-model';\nimport { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';\nimport { PlatformFormField, PlatformFormFieldControl } from './form-field';\n\n/**\n * Defines specific behavior for Input controls which deals with list of values including:\n * - Select\n * - RadioGroup\n * - CheckboxGroup\n * - ComboBox\n * ...\n *\n */\n@Directive()\nexport abstract class CollectionBaseInput extends BaseInput {\n /**\n * List of values, it can be of type SelectItem, string or any object.\n * Generic object type is among the list of types,\n * because we allow to get labels and values using `displayKey` and `lookupKey` inputs accordingly.\n */\n @Input()\n set list(value: Array<SelectItem | string | object>) {\n this._list = value;\n }\n get list(): Array<SelectItem | string | object> {\n return this._list;\n }\n\n /** @hidden */\n private _list: Array<SelectItem | string | object>;\n\n /**\n * Used in filters and any kind of comparators when we work with objects and this identify\n * unique field name based on which we are going to do the job\n */\n @Input()\n lookupKey: string;\n\n /**\n * When we deal with unknown object we can use `displayKey` to retrieve value from specific\n * property of the object to act as display value.\n *\n * @See ComboBox, Select, RadioGroup, CheckBox Group\n */\n @Input()\n displayKey: string;\n\n /** @hidden */\n protected constructor(\n cd: ChangeDetectorRef,\n elementRef: ElementRef,\n @Optional() @Self() readonly ngControl: NgControl,\n @Optional() @SkipSelf() readonly controlContainer: ControlContainer,\n @Optional() @SkipSelf() readonly ngForm: NgForm,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD) formField: PlatformFormField,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD_CONTROL) formControl: PlatformFormFieldControl\n ) {\n super(cd, elementRef, ngControl, controlContainer, ngForm, formField, formControl);\n }\n\n /** @hidden */\n public lookupValue(item: any): string {\n if (isSelectItem(item)) {\n return this.lookupKey && item ? item.value[this.lookupKey] : item.value;\n } else {\n return this.lookupKey && item ? item[this.lookupKey] : item;\n }\n }\n\n /** @hidden */\n public displayValue(item: any): string {\n if (isSelectItem(item)) {\n return item.label;\n } else if (isJsObject(item) && this.displayKey) {\n const currentItem = this.objectGet(item, this.displayKey);\n\n return isFunction(currentItem) ? currentItem() : currentItem;\n } else {\n return item;\n }\n }\n\n /** @hidden */\n public objectGet(obj: any, is: string | string[] | undefined): any {\n if (!isJsObject(obj)) {\n return obj;\n } else if (isString(is)) {\n return this.objectGet(obj, is.split('.'));\n } else if (!is?.length) {\n return obj;\n } else {\n return this.objectGet(obj[is[0]], is.slice(1));\n }\n }\n}\n","import { FormStates } from '@fundamental-ngx/cdk/forms';\n\nexport type LabelLayout = 'horizontal' | 'vertical';\n\nexport type HintPlacement = 'left' | 'right';\n\nexport type FormZone = 'zTop' | 'zBottom' | 'zLeft' | 'zRight';\n\nexport type Column = 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\n/** @deprecated use `import { FormStates } from \"@fundamental-ngx/core/shared\"` instead */\nexport type ControlState = FormStates;\n\nexport interface ColumnLayout {\n XL?: number;\n L?: number;\n M?: number;\n S?: number;\n}\n\nexport enum ColumnLayoutGridClass {\n XL = 'xl',\n L = 'lg',\n M = 'md',\n S = 'sm'\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Host,\n Inject,\n Injectable,\n InjectionToken,\n Input,\n OnInit,\n Optional,\n Self,\n SkipSelf\n} from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nimport { CollectionBaseInput } from './collection-base.input';\nimport { PlatformFormField, PlatformFormFieldControl } from './form-field';\nimport { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';\n\nexport interface InlineLayout {\n XL?: boolean;\n L?: boolean;\n M?: boolean;\n S?: boolean;\n}\n\nexport enum RESPONSIVE_BREAKPOINTS {\n S = 600,\n M = 1024,\n L = 1440\n}\n\nexport const RESPONSIVE_BREAKPOINTS_CONFIG = new InjectionToken<ResponsiveBreakPointConfig>(\n 'Default Responsive breakpoint config'\n);\n\n@Injectable()\nexport class ResponsiveBreakPointConfig {\n /** Large screen */\n L: number = RESPONSIVE_BREAKPOINTS['L'];\n /** Medium screen */\n M: number = RESPONSIVE_BREAKPOINTS['M'];\n /** Small screen */\n S: number = RESPONSIVE_BREAKPOINTS['S'];\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ResponsiveBreakpointsService {\n /** @hidden */\n breakpoints: Record<string, any> = {};\n /** @hidden */\n activeBreakpoints: string[];\n /** @hidden */\n minWidth = 'min-width';\n /** @hidden */\n maxWidth = 'max-width';\n /** @hidden */\n unit = 'px';\n\n /** @hidden */\n constructor(readonly _breakpointObserver: BreakpointObserver) {}\n\n /** subscribe to get current screen size based on config provided */\n observeBreakpointByConfig(config: ResponsiveBreakPointConfig): Subject<any> {\n const breakPointName: Subject<string> = new BehaviorSubject('S');\n\n this._breakpointObserver.observe(this._getBreakpoints(config)).subscribe((matchValues) => {\n const breakPoint = this._breakPointMeet(matchValues);\n breakPointName.next(breakPoint);\n });\n\n return breakPointName;\n }\n\n /** @hidden when screen size changes from one breakpoint to another */\n private _breakPointMeet(breakPointMatches: BreakpointState): string {\n let breakPointName: string | undefined;\n\n if (breakPointMatches.matches) {\n for (const breakpoint in breakPointMatches.breakpoints) {\n if (breakPointMatches.breakpoints[breakpoint]) {\n breakPointName = this._getBreakpointName(breakpoint);\n }\n }\n }\n\n return breakPointName ?? 'S';\n }\n\n /** @hidden */\n private _getBreakpoints(config: ResponsiveBreakPointConfig): string[] {\n let breakPointStr: string;\n this.activeBreakpoints = [];\n\n for (const screenSize of Object.keys(config)) {\n switch (screenSize) {\n case 'S':\n breakPointStr = `(${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n break;\n case 'M':\n breakPointStr = `(${this.minWidth}: ${config['S']}${this.unit}) and (${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n break;\n case 'L':\n breakPointStr = `(${this.minWidth}: ${config['M']}${this.unit}) and (${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n\n // create entry for XL screen\n breakPointStr = `(${this.minWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = 'XL';\n break;\n }\n }\n\n return this.activeBreakpoints;\n }\n\n /** @hidden */\n private _getBreakpointName(breakpointValue): string {\n return this.breakpoints[breakpointValue];\n }\n}\n\n@Directive()\nexport abstract class InLineLayoutCollectionBaseInput extends CollectionBaseInput implements OnInit {\n /** object to change isInline property based on screen size */\n @Input()\n set inlineLayout(layout: InlineLayout | undefined) {\n if (layout) {\n this._inlineLayout = layout;\n this._isInLineLayoutEnabled = true;\n }\n this._setFieldLayout(layout);\n }\n get inlineLayout(): InlineLayout {\n return this._inlineLayout;\n }\n\n /** @hidden */\n protected _inlineCurrentValue$ = new BehaviorSubject<boolean>(false);\n\n /** @hidden */\n protected _responsiveBreakPointConfig: ResponsiveBreakPointConfig;\n\n /** @hidden */\n private _inlineLayout: InlineLayout;\n\n /** @hidden */\n private _xlIsInline: boolean;\n\n /** @hidden */\n private _lgIsInline: boolean;\n\n /** @hidden */\n private _mdIsInline: boolean;\n\n /** @hidden */\n private _sIsInline: boolean;\n\n /** @hidden */\n private _isInLineLayoutEnabled = false;\n\n /** @hidden */\n protected constructor(\n cd: ChangeDetectorRef,\n elementRef: ElementRef,\n readonly _responsiveBreakpointsService: ResponsiveBreakpointsService,\n @Optional() @Self() readonly ngControl: NgControl,\n @Optional() @SkipSelf() readonly controlContainer: ControlContainer,\n @Optional() @SkipSelf() readonly ngForm: NgForm,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD) formField: PlatformFormField,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD_CONTROL) formControl: PlatformFormFieldControl,\n @Optional()\n @Inject(RESPONSIVE_BREAKPOINTS_CONFIG)\n readonly _defaultResponsiveBreakPointConfig?: ResponsiveBreakPointConfig\n ) {\n super(cd, elementRef, ngControl, controlContainer, ngForm, formField, formControl);\n\n this._responsiveBreakPointConfig = _defaultResponsiveBreakPointConfig || new ResponsiveBreakPointConfig();\n }\n\n /** @hidden */\n ngOnInit(): void {\n super.ngOnInit();\n\n if (this._isInLineLayoutEnabled) {\n this._responsiveBreakpointsService\n .observeBreakpointByConfig(this._responsiveBreakPointConfig)\n .subscribe((breakPointName) => {\n this._updateLayout(breakPointName);\n });\n }\n }\n\n /** @hidden set values of inline for each screen layout */\n private _setFieldLayout(inlineLayout?: InlineLayout): void {\n if (!inlineLayout) {\n this._isInLineLayoutEnabled = false;\n return;\n }\n try {\n this._sIsInline = !!inlineLayout['S'];\n this._mdIsInline = !!inlineLayout['M'];\n this._lgIsInline = !!inlineLayout['L'];\n this._xlIsInline = !!inlineLayout['XL'];\n } catch (error) {\n this._isInLineLayoutEnabled = false;\n }\n }\n\n /** @hidden */\n private _updateLayout(currentBreakingPointName: string): void {\n if (this._isInLineLayoutEnabled) {\n switch (currentBreakingPointName) {\n case 'S':\n this._inlineCurrentValue$.next(this._sIsInline);\n break;\n case 'M':\n this._inlineCurrentValue$.next(this._mdIsInline);\n break;\n case 'L':\n this._inlineCurrentValue$.next(this._lgIsInline);\n break;\n case 'XL':\n this._inlineCurrentValue$.next(this._xlIsInline);\n break;\n default:\n this._inlineCurrentValue$.next(this._xlIsInline);\n }\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'convertBytes' })\nexport class ConvertBytesPipe implements PipeTransform {\n /** @hidden */\n private readonly _sizes: string[] = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n /** @hidden */\n transform(bytes: number): string {\n return this._convertBytes(bytes);\n }\n\n /**\n * Convert bytes to KB, MB, GB, ...\n * @param bytes number\n * @param decimals number\n */\n private _convertBytes(bytes = 0, decimals = 2): string {\n if (bytes <= 0) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + this._sizes[i];\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ConvertBytesPipe } from './convert-bytes/convert-bytes.pipe';\n\n@NgModule({\n declarations: [ConvertBytesPipe],\n exports: [ConvertBytesPipe]\n})\nexport class PlatformPipeModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { ModifierKeys } from '@angular/cdk/testing';\n\n/**\n * Creates a browser MouseEvent with the specified options.\n * @docs-private\n */\nexport function createMouseEvent(type: string, x = 0, y = 0, button = 0): MouseEvent {\n const event = document.createEvent('MouseEvent');\n const originalPreventDefault = event.preventDefault.bind(event);\n\n event.initMouseEvent(\n type,\n true /* canBubble */,\n true /* cancelable */,\n window /* view */,\n 0 /* detail */,\n x /* screenX */,\n y /* screenY */,\n x /* clientX */,\n y /* clientY */,\n false /* ctrlKey */,\n false /* altKey */,\n false /* shiftKey */,\n false /* metaKey */,\n button /* button */,\n null /* relatedTarget */\n );\n\n // `initMouseEvent` doesn't allow us to pass the `buttons` and\n // defaults it to 0 which looks like a fake event.\n Object.defineProperty(event, 'buttons', { get: () => 1 });\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function (): void {\n Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n return originalPreventDefault();\n };\n\n return event;\n}\n\n/**\n * Creates a browser TouchEvent with the specified pointer coordinates.\n * @docs-private\n */\nexport function createTouchEvent(type: string, pageX = 0, pageY = 0): Event {\n // In favor of creating events that work for most of the browsers, the event is created\n // as a basic UI Event. The necessary details for the event will be set manually.\n const event = document.createEvent('UIEvent');\n const touchDetails = { pageX, pageY };\n\n // TS3.6 removes the initUIEvent method and suggests porting to \"new UIEvent()\".\n (event as any).initUIEvent(type, true, true, window, 0);\n\n // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n // the touch details.\n Object.defineProperties(event, {\n touches: { value: [touchDetails] },\n targetTouches: { value: [touchDetails] },\n changedTouches: { value: [touchDetails] }\n });\n\n return event;\n}\n\n/**\n * Dispatches a keydown event from an element.\n * @docs-private\n */\nexport function createKeyboardEvent(\n type: string,\n keyCode: number = 0,\n key: string = '',\n target?: Element,\n modifiers: ModifierKeys = {}\n): KeyboardEvent {\n const event = document.createEvent('KeyboardEvent') as any;\n const originalPreventDefault = event.preventDefault;\n\n // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n if (event.initKeyEvent) {\n event.initKeyEvent(\n type,\n true,\n true,\n window,\n modifiers.control,\n modifiers.alt,\n modifiers.shift,\n modifiers.meta,\n keyCode\n );\n } else {\n // `initKeyboardEvent` expects to receive modifiers as a whitespace-delimited string\n // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent\n let modifiersList = '';\n\n if (modifiers.control) {\n modifiersList += 'Control ';\n }\n\n if (modifiers.alt) {\n modifiersList += 'Alt ';\n }\n\n if (modifiers.shift) {\n modifiersList += 'Shift ';\n }\n\n if (modifiers.meta) {\n modifiersList += 'Meta ';\n }\n\n event.initKeyboardEvent(\n type,\n true /* canBubble */,\n true /* cancelable */,\n window /* view */,\n 0 /* char */,\n key /* key */,\n 0 /* location */,\n modifiersList.trim() /* modifiersList */,\n false /* repeat */\n );\n }\n\n // Webkit Browsers don't set the keyCode when calling the init function.\n // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n Object.defineProperties(event, {\n keyCode: { get: () => keyCode },\n key: { get: () => key },\n target: { get: () => target },\n ctrlKey: { get: () => !!modifiers.control },\n altKey: { get: () => !!modifiers.alt },\n shiftKey: { get: () => !!modifiers.shift },\n metaKey: { get: () => !!modifiers.meta }\n });\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function (): Event {\n Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n // eslint-disable-next-line prefer-rest-params\n return originalPreventDefault.apply(this, arguments);\n };\n\n return event;\n}\n\n/**\n * Creates a fake event object with any desired event type.\n * @docs-private\n */\nexport function createFakeEvent(type: string, canBubble = false, cancelable = true): Event {\n const event = document.createEvent('Event');\n event.initEvent(type, canBubble, cancelable);\n return event;\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedContentDensityDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `\n fdp-action-bar[contentDensity],\n fdp-button[contentDensity],\n fdp-object-list-item[contentDensity],\n fdp-standard-list-item[contentDensity],\n fdp-menu[contentDensity],\n fdp-menu-button[contentDensity],\n fdp-panel[contentDensity],\n fdp-search-field[contentDensity],\n fdp-split-menu-button[contentDensity],\n fdp-file-uploader[contentDensity],\n fdp-upload-collection[contentDensity],\n fdp-table[contentDensity],\n fdp-multi-input[contentDensity],\n fdp-list[contentDensity],\n fdp-slider[contentDensity],\n fdp-time-picker[contentDensity],\n fdp-textarea[contentDensity],\n fdp-switch[contentDensity],\n fdp-number-step-input[contentDensity],\n fdp-select[contentDensity],\n fdp-date-picker[contentDensity],\n fdp-checkbox[contentDensity],\n fdp-checkbox-group[contentDensity],\n fdp-combobox[contentDensity],\n fdp-datetime-picker[contentDensity],\n fdp-input[contentDensity],\n fdp-radio-group[contentDensity],\n fdp-radio-button[contentDensity],\n fdp-multi-combobox[contentDensity],\n fdp-input-group-addon-body[contentDensity],\n fdp-input-group[contentDensity],\n fdp-value-help-dialog[contentDensity],\n fdp-filter-single-select[contentDensity],\n fdp-filter-multi-select[contentDensity],\n fdp-filter-custom[contentDensity]\n `,\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => PlatformContentDensityDeprecationDirective)\n }\n ]\n})\nexport class PlatformContentDensityDeprecationDirective extends DeprecatedContentDensityDirective {\n /** @hidden */\n constructor(private elementRef: ElementRef) {\n super();\n this.selectorBase = elementRef.nativeElement.tagName.toLowerCase();\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fdp-table-filter-rule[compact]',\n providers: [\n { provide: CONTENT_DENSITY_DIRECTIVE, useExisting: forwardRef(() => PlatformCompactDeprecationDirective) }\n ]\n})\nexport class PlatformCompactDeprecationDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fdp-table-filter-rule');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PlatformContentDensityDeprecationDirective } from './directives/platform-content-density-deprecation.directive';\nimport { PlatformCompactDeprecationDirective } from './directives/platform-compact-deprecation.directive';\n\n@NgModule({\n declarations: [PlatformContentDensityDeprecationDirective, PlatformCompactDeprecationDirective],\n imports: [CommonModule],\n exports: [PlatformContentDensityDeprecationDirective, PlatformCompactDeprecationDirective]\n})\nexport class PlatformContentDensityDeprecationsModule {}\n","import { Provider } from '@angular/core';\nimport { DeprecatedContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { moduleDeprecationsFactory } from '@fundamental-ngx/cdk/utils';\n\n/** @hidden */\nexport function platformContentDensityModuleDeprecationsProvider(selectorBase: string): Provider {\n return moduleDeprecationsFactory({\n useFactory: () => {\n const deprecation = new DeprecatedContentDensityDirective();\n deprecation.selectorBase = selectorBase;\n return deprecation;\n }\n });\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FDP_PRESET_MANAGED_COMPONENT = new InjectionToken('FdpPresetManagedComponent');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["randomId","i1","i2"],"mappings":"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"}
@@ -3670,6 +3670,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3670
3670
  args: [{ name: 'columnResizableSide', standalone: true }]
3671
3671
  }] });
3672
3672
 
3673
+ const ARIA_SORT = {
3674
+ none: 'none',
3675
+ asc: 'ascending',
3676
+ desc: 'descending'
3677
+ };
3678
+ class TableColumnSortingDirectionPipe {
3679
+ /** @hidden */
3680
+ transform(sorting) {
3681
+ if (!sorting) {
3682
+ return 'none';
3683
+ }
3684
+ return ARIA_SORT[sorting.direction];
3685
+ }
3686
+ }
3687
+ TableColumnSortingDirectionPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnSortingDirectionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3688
+ TableColumnSortingDirectionPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TableColumnSortingDirectionPipe, isStandalone: true, name: "fdpTableColumnSortingDirection" });
3689
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnSortingDirectionPipe, decorators: [{
3690
+ type: Pipe,
3691
+ args: [{
3692
+ pure: true,
3693
+ standalone: true,
3694
+ name: 'fdpTableColumnSortingDirection'
3695
+ }]
3696
+ }] });
3697
+
3673
3698
  class RowClassesPipe {
3674
3699
  /** @hidden */
3675
3700
  transform(row, rowsClass) {
@@ -3745,7 +3770,8 @@ const importExports = [
3745
3770
  SelectionCellStylesPipe,
3746
3771
  TableCellStylesPipe,
3747
3772
  ColumnResizableSidePipe,
3748
- RowClassesPipe
3773
+ RowClassesPipe,
3774
+ TableColumnSortingDirectionPipe
3749
3775
  ];
3750
3776
  class TableHelpersModule {
3751
3777
  }
@@ -3773,7 +3799,8 @@ TableHelpersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
3773
3799
  SelectionCellStylesPipe,
3774
3800
  TableCellStylesPipe,
3775
3801
  ColumnResizableSidePipe,
3776
- RowClassesPipe], exports: [TableInitialStateDirective,
3802
+ RowClassesPipe,
3803
+ TableColumnSortingDirectionPipe], exports: [TableInitialStateDirective,
3777
3804
  TableDraggableDirective,
3778
3805
  TableVirtualScrollDirective,
3779
3806
  PlatformTableColumnResponsiveDirective,
@@ -3796,7 +3823,8 @@ TableHelpersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
3796
3823
  SelectionCellStylesPipe,
3797
3824
  TableCellStylesPipe,
3798
3825
  ColumnResizableSidePipe,
3799
- RowClassesPipe] });
3826
+ RowClassesPipe,
3827
+ TableColumnSortingDirectionPipe] });
3800
3828
  TableHelpersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableHelpersModule });
3801
3829
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableHelpersModule, decorators: [{
3802
3830
  type: NgModule,
@@ -3810,5 +3838,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3810
3838
  * Generated bundle index. Do not edit.
3811
3839
  */
3812
3840
 
3813
- export { ArrayTableDataProvider, ArrayTableDataSource, BaseTableDataProvider, BaseTableDataSource, ChildTableDataSource, ColumnAlign, ColumnResizableSidePipe, ColumnsChange, DEFAULT_HIGHLIGHTING_KEY, DEFAULT_TABLE_PAGE, DEFAULT_TABLE_SEARCH_INPUT, DEFAULT_TABLE_STATE, EDITABLE_ROW_SEMANTIC_STATE, EditableTableCell, FDP_TABLE_DRAGGABLE_DIRECTIVE, FDP_TABLE_STATE_DIRECTIVE, FDP_TABLE_VIRTUAL_SCROLL_DIRECTIVE, FILTER_BOOLEAN_STRATEGIES, FILTER_BOOLEAN_STRATEGY, FILTER_DATE_STRATEGIES, FILTER_DATE_STRATEGY, FILTER_DEFAULT_STRATEGIES, FILTER_DEFAULT_STRATEGY, FILTER_NUMBER_STRATEGIES, FILTER_NUMBER_STRATEGY, FILTER_STRATEGY, FILTER_STRING_STRATEGIES, FILTER_STRING_STRATEGY, FdpCellDef, FdpCellSelectableDirective, FdpEditableCellDef, FdpEditableCellFormDirective, FdpHeaderCellDef, FdpTableCell, FdpTableHeader, FdpViewSettingsFilterCustomDef, FilterType, FilterableColumnDataType, ObservableTableDataProvider, ObservableTableDataSource, PageChange, PlatformTableCellResizableDirective, PlatformTableColumnResponsiveDirective, ROW_HEIGHT, RowClassesPipe, SELECTION_COLUMN_WIDTH, SEMANTIC_HIGHLIGHTING_COLUMN_WIDTH, SaveRowsEvent, SelectionCellStylesPipe, SelectionMode, SortDirection, TABLE_CELL_RESIZABLE_THRESHOLD_PX, TABLE_COLUMN_MIN_WIDTH, TABLE_RESIZER_BORDER_WIDTH, TABLE_SCROLLABLE, Table, TableCellHeaderPopoverDirective, TableCellStylesPipe, TableChildrenDataProvider, TableColumn, TableColumnFreezeEvent, TableColumnResizeService, TableColumnsChangeEvent, TableDataProvider, TableDataSource, TableDataSourceDirective, TableDataSourceParser, TableDraggable, TableDraggableDirective, TableFilterChangeEvent, TableGroupChangeEvent, TableHeaderResizerDirective, TableHelpersModule, TableInitialState, TableInitialStateDirective, TablePageChangeEvent, TableResponsiveService, TableRowActivateEvent, TableRowImpl, TableRowSelectionChangeEvent, TableRowService, TableRowToggleOpenStateEvent, TableRowType, TableRowsRearrangeEvent, TableScrollDispatcherService, TableScrollableDirective, TableSearchChangeEvent, TableSelectionChangeEvent, TableService, TableSortChangeEvent, TableVirtualScroll, TableVirtualScrollDirective, applySelectionToChildren, buildNewRowSkeleton, convertObjectsToTableRows, convertTreeLikeToFlatList, convertTreeObjectsToTableRows, convertTreeTableRowToFlatList, createGroupedTableRowsTree, filterByBoolean, filterByDate, filterByNumber, filterByString, findRowChildren, getFilterStrategiesBasedOnDataType, getFreezableColumns, getFreezableEndColumns, getRowParents, getScrollBarWidth, getSelectableRows, getSelectionStatusByRowValue, getUniqueListValuesByKey, isCollectionFilter, isGroupRow, isItemRow, isRowNavigatable, isSelectableRow, isTableRow, isTreeRow, isTreeRowFirstCell, newTableRow, sortTreeLikeGroupedRows, toDataStream };
3841
+ export { ARIA_SORT, ArrayTableDataProvider, ArrayTableDataSource, BaseTableDataProvider, BaseTableDataSource, ChildTableDataSource, ColumnAlign, ColumnResizableSidePipe, ColumnsChange, DEFAULT_HIGHLIGHTING_KEY, DEFAULT_TABLE_PAGE, DEFAULT_TABLE_SEARCH_INPUT, DEFAULT_TABLE_STATE, EDITABLE_ROW_SEMANTIC_STATE, EditableTableCell, FDP_TABLE_DRAGGABLE_DIRECTIVE, FDP_TABLE_STATE_DIRECTIVE, FDP_TABLE_VIRTUAL_SCROLL_DIRECTIVE, FILTER_BOOLEAN_STRATEGIES, FILTER_BOOLEAN_STRATEGY, FILTER_DATE_STRATEGIES, FILTER_DATE_STRATEGY, FILTER_DEFAULT_STRATEGIES, FILTER_DEFAULT_STRATEGY, FILTER_NUMBER_STRATEGIES, FILTER_NUMBER_STRATEGY, FILTER_STRATEGY, FILTER_STRING_STRATEGIES, FILTER_STRING_STRATEGY, FdpCellDef, FdpCellSelectableDirective, FdpEditableCellDef, FdpEditableCellFormDirective, FdpHeaderCellDef, FdpTableCell, FdpTableHeader, FdpViewSettingsFilterCustomDef, FilterType, FilterableColumnDataType, ObservableTableDataProvider, ObservableTableDataSource, PageChange, PlatformTableCellResizableDirective, PlatformTableColumnResponsiveDirective, ROW_HEIGHT, RowClassesPipe, SELECTION_COLUMN_WIDTH, SEMANTIC_HIGHLIGHTING_COLUMN_WIDTH, SaveRowsEvent, SelectionCellStylesPipe, SelectionMode, SortDirection, TABLE_CELL_RESIZABLE_THRESHOLD_PX, TABLE_COLUMN_MIN_WIDTH, TABLE_RESIZER_BORDER_WIDTH, TABLE_SCROLLABLE, Table, TableCellHeaderPopoverDirective, TableCellStylesPipe, TableChildrenDataProvider, TableColumn, TableColumnFreezeEvent, TableColumnResizeService, TableColumnSortingDirectionPipe, TableColumnsChangeEvent, TableDataProvider, TableDataSource, TableDataSourceDirective, TableDataSourceParser, TableDraggable, TableDraggableDirective, TableFilterChangeEvent, TableGroupChangeEvent, TableHeaderResizerDirective, TableHelpersModule, TableInitialState, TableInitialStateDirective, TablePageChangeEvent, TableResponsiveService, TableRowActivateEvent, TableRowImpl, TableRowSelectionChangeEvent, TableRowService, TableRowToggleOpenStateEvent, TableRowType, TableRowsRearrangeEvent, TableScrollDispatcherService, TableScrollableDirective, TableSearchChangeEvent, TableSelectionChangeEvent, TableService, TableSortChangeEvent, TableVirtualScroll, TableVirtualScrollDirective, applySelectionToChildren, buildNewRowSkeleton, convertObjectsToTableRows, convertTreeLikeToFlatList, convertTreeObjectsToTableRows, convertTreeTableRowToFlatList, createGroupedTableRowsTree, filterByBoolean, filterByDate, filterByNumber, filterByString, findRowChildren, getFilterStrategiesBasedOnDataType, getFreezableColumns, getFreezableEndColumns, getRowParents, getScrollBarWidth, getSelectableRows, getSelectionStatusByRowValue, getUniqueListValuesByKey, isCollectionFilter, isGroupRow, isItemRow, isRowNavigatable, isSelectableRow, isTableRow, isTreeRow, isTreeRowFirstCell, newTableRow, sortTreeLikeGroupedRows, toDataStream };
3814
3842
  //# sourceMappingURL=fundamental-ngx-platform-table-helpers.mjs.map