@mediusinc/mng-commons 5.3.0-rc.2 → 5.3.0-rc.4
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.
- package/core/data-list/data-list.model.d.ts +1 -1
- package/core/data-providers/lookup.data-provider.d.ts +5 -5
- package/core/descriptors/lookup.descriptor.d.ts +3 -3
- package/core/descriptors/table.descriptor.d.ts +1 -1
- package/esm2022/core/data-list/data-list-params-helpers.mjs +1 -1
- package/esm2022/core/data-list/data-list.model.mjs +1 -1
- package/esm2022/core/data-providers/lookup.data-provider.mjs +1 -1
- package/esm2022/core/descriptors/lookup.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/table.descriptor.mjs +1 -1
- package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +60 -2
- package/esm2022/filter/descriptors/filter.descriptor.mjs +118 -8
- package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +17 -6
- package/esm2022/form/api/data-providers/lookup.data-provider.mjs +1 -1
- package/esm2022/form/components/autocomplete/autocomplete.component.mjs +1 -1
- package/esm2022/form/components/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/model/helpers/model.mjs +1 -1
- package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +16 -7
- package/esm2022/table/api/descriptors/column.descriptor.mjs +125 -4
- package/esm2022/table/api/descriptors/sort.descriptor.mjs +23 -1
- package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +1 -1
- package/esm2022/table/api/descriptors/table.descriptor.mjs +435 -44
- package/esm2022/table/api/helpers/table-data-provider-descriptor-convert.mjs +7 -0
- package/esm2022/table/api/index.mjs +3 -1
- package/esm2022/table/api/models/row-expandable-component.model.mjs +2 -0
- package/esm2022/table/api/models/table-columns.model.mjs +1 -1
- package/esm2022/table/components/column-value/column-value.component.mjs +3 -3
- package/esm2022/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.mjs +3 -3
- package/esm2022/table/components/table/table.component.mjs +6 -6
- package/esm2022/tableview/action/components/action/action.component.mjs +3 -3
- package/esm2022/tableview/action/components/table/action-table.component.mjs +3 -3
- package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +6 -6
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +2 -4
- package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +14 -1
- package/esm2022/tableview/api/editor/models/field-image-preview.model.mjs +2 -0
- package/esm2022/tableview/api/index.mjs +3 -1
- package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +16 -7
- package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +1 -1
- package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +5 -5
- package/esm2022/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.mjs +7 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +9 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +3 -3
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-filter.mjs +176 -8
- package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form-api.mjs +16 -5
- package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form.mjs +2 -2
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +602 -53
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table.mjs +9 -9
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +45 -19
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +23 -18
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/filter/descriptors/filter-lookup.descriptor.d.ts +70 -12
- package/filter/descriptors/filter.descriptor.d.ts +116 -5
- package/form/api/data-providers/lookup-data-provider.factory.d.ts +16 -12
- package/form/api/data-providers/lookup.data-provider.d.ts +5 -5
- package/form/components/autocomplete/autocomplete.component.d.ts +1 -1
- package/form/components/dropdown/dropdown.component.d.ts +1 -1
- package/model/helpers/model.d.ts +1 -1
- package/package.json +7 -7
- package/table/api/data-providers/table-data-provider.factory.d.ts +9 -5
- package/table/api/descriptors/column.descriptor.d.ts +126 -5
- package/table/api/descriptors/sort.descriptor.d.ts +22 -0
- package/table/api/descriptors/table-descriptor.factory.d.ts +8 -4
- package/table/api/descriptors/table.descriptor.d.ts +429 -28
- package/table/api/helpers/table-data-provider-descriptor-convert.d.ts +20 -0
- package/table/api/index.d.ts +2 -0
- package/table/api/models/row-expandable-component.model.d.ts +4 -0
- package/table/api/models/table-columns.model.d.ts +6 -6
- package/table/components/column-filter/column-filter.component.d.ts +1 -1
- package/table/components/filter/filter-form/filter-form.component.d.ts +1 -1
- package/tableview/action/components/localization/data-language-dropdown.component.d.ts +1 -1
- package/tableview/api/editor/descriptors/editor.descriptor.d.ts +11 -11
- package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +5 -5
- package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +12 -12
- package/tableview/api/editor/descriptors/field.descriptor.d.ts +10 -0
- package/tableview/api/editor/models/field-image-preview.model.d.ts +4 -0
- package/tableview/api/index.d.ts +2 -0
- package/tableview/api/tableview/data-providers/tableview-data-provider.factory.d.ts +9 -5
- package/tableview/api/tableview/descriptors/tableview-descriptor.factory.d.ts +10 -6
- package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +17 -17
- package/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.d.ts +20 -0
- package/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.d.ts +1 -0
- package/version-info.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediusinc-mng-commons-form.mjs","sources":["../../form/src/components/autocomplete/autocomplete.component.ts","../../form/src/components/autocomplete/autocomplete.component.html","../../form/src/components/date-range/date-range.component.ts","../../form/src/components/date-range/date-range.component.html","../../form/src/components/dropdown/dropdown.component.ts","../../form/src/components/dropdown/dropdown.component.html","../../form/src/components/number-range/number-range.component.ts","../../form/src/components/number-range/number-range.component.html","../../form/src/directives/input-trim.directive.ts","../../form/src/index.ts","../../form/src/mediusinc-mng-commons-form.ts"],"sourcesContent":["import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ExistingProvider,\n Injector,\n OnInit,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {AutoCompleteModule, AutoCompleteSelectEvent} from 'primeng/autocomplete';\nimport {AutoCompleteCompleteEvent} from 'primeng/autocomplete/autocomplete.interface';\nimport {Observable, ReplaySubject, Subscription, of, switchMap, take} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {\n CommonsInternalError,\n DataListParams,\n FilterMatchMode,\n ILookupDataProvider,\n LoggerService,\n fromSubscribeError,\n getErrorLogLevel,\n toObservable\n} from '@mediusinc/mng-commons/core';\nimport {InputTrimType} from '@mediusinc/mng-commons/form/api';\n\nexport const AUTOCOMPLETE_VALUE_ACCESSOR: ExistingProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutocompleteComponent),\n multi: true\n};\n\n@Component({\n standalone: true,\n selector: 'mng-autocomplete',\n templateUrl: './autocomplete.component.html',\n providers: [AUTOCOMPLETE_VALUE_ACCESSOR],\n imports: [AutoCompleteModule, AsyncPipe, TranslateModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AutocompleteComponent implements ControlValueAccessor, OnInit {\n private readonly injector = inject(Injector);\n private readonly destroyRef = inject(DestroyRef);\n private readonly translate = inject(TranslateService);\n private readonly logger = inject(LoggerService).create('AutocompleteComponent');\n\n public dataProvider = input.required<ILookupDataProvider<any, any>>();\n public optionsTrackProperty = input<string>();\n public optionsValuePropertyInit = input<string | undefined>(undefined, {alias: 'optionsValueProperty'});\n public optionsLabelPropertyInit = input<string | undefined>(undefined, {alias: 'optionsLabelProperty'});\n public optionsLabelTranslate = input(false, {transform: booleanAttribute});\n public inlineSearch = input(false, {transform: booleanAttribute});\n public openOnFocus = input(false, {transform: booleanAttribute});\n public multiselect = input(false, {transform: booleanAttribute});\n public placeholder = input<string>();\n public className = input<string>();\n public dropdownClassName = input<string>();\n public showClear = input(false, {transform: booleanAttribute});\n public autoClear = input(false, {transform: booleanAttribute});\n public selectFirst = input(false, {transform: booleanAttribute}); //on every input field change return first given value (or null)\n public searchTrim = input<InputTrimType | undefined>(undefined);\n public disabledInput = input<boolean, unknown>(false, {transform: booleanAttribute, alias: 'disabled'});\n\n public valueChange = output<any>();\n public blur = output<Event>();\n\n private isInited = false;\n private searchSubscription: Subscription | null = null;\n private dataProviderService: any = null;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedFn: any = () => {};\n\n private _value?: any | null;\n public ngModelValue = signal<undefined | null | any>(undefined);\n\n private _disabled = signal(false);\n public disabled = computed(() => this._disabled() || this.disabledInput());\n\n public suggestions = signal<Array<any>>([]);\n private isPanelShown = false;\n private isFocused = false;\n private userSelectedItem?: any | any[];\n private queryResultCacheSubject?: ReplaySubject<any>;\n\n public optionsLabelProperty = computed(() => {\n if (this.optionsLabelTranslate()) {\n // setup translation properties\n if (this.optionsLabelPropertyInit()) {\n return `${this.optionsLabelPropertyInit()}_i18n`;\n } else if (!this.optionsLabelPropertyInit() && !this.optionsValuePropertyInit()) {\n return 'title_i18n';\n } else {\n throw new CommonsInternalError(`Invalid use with value (${this.optionsValuePropertyInit()}) and label (${this.optionsLabelPropertyInit()}) property setup.`, {\n name: 'AutocompleteComponentError'\n });\n }\n }\n\n return this.optionsLabelPropertyInit();\n });\n public optionsValueProperty = computed(() => {\n if (this.optionsLabelTranslate()) {\n // setup translation properties\n if (!this.optionsLabelPropertyInit() && !this.optionsValuePropertyInit()) {\n return 'value';\n } else if (!this.optionsLabelPropertyInit()) {\n throw new CommonsInternalError(`Invalid use with value (${this.optionsValuePropertyInit()}) and label (${this.optionsLabelPropertyInit()}) property setup.`, {\n name: 'AutocompleteComponentError'\n });\n }\n }\n\n return this.optionsValuePropertyInit();\n });\n\n public get value() {\n return this._value;\n }\n\n constructor() {\n effect(() => {\n this._value = this.convertValueWithOptionsValuePropSetting(this.ngModelValue());\n });\n }\n\n ngOnInit() {\n this.setItemsAndDataProvider();\n\n if (this.selectFirst() && !this._value) {\n this.onSearch(undefined, true);\n }\n }\n\n onSearch(event?: AutoCompleteCompleteEvent, isInit = false) {\n this.searchSubscription?.unsubscribe();\n const optionsLabelProperty = this.optionsLabelProperty();\n const query = this.trimValue(event?.query);\n\n const params: DataListParams = {\n limit: 50\n };\n if (optionsLabelProperty) {\n params.sort = [{property: optionsLabelProperty}];\n }\n if (query && query.length > 0 && optionsLabelProperty) {\n params.filters = {\n [optionsLabelProperty]: {\n value: query,\n matchMode: FilterMatchMode.StartsWith\n }\n };\n }\n\n if (!this.queryResultCacheSubject || !this.inlineSearch()) {\n if (!this.queryResultCacheSubject) {\n this.queryResultCacheSubject = new ReplaySubject<any>(1);\n }\n this.searchSubscription = this.getLookup(params, query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: items => {\n this.queryResultCacheSubject?.next(items);\n this.setSuggestionsFromItems(items, query);\n if (isInit && !this._value) {\n this.selectFirstItem();\n }\n },\n error: err => {\n this.setSuggestionsFromItems([], query);\n\n const error = fromSubscribeError(err, 'AutocompleteComponentError', {\n search: query,\n params: params\n });\n this.logger.log(error, getErrorLogLevel(error));\n }\n });\n } else if (this.queryResultCacheSubject) {\n this.searchSubscription = this.queryResultCacheSubject.pipe(take(1)).subscribe(result => {\n this.setSuggestionsFromItems(result, query);\n });\n }\n }\n\n private selectFirstItem() {\n if (!this.selectFirst() || this.multiselect()) return;\n\n const suggestions = this.suggestions();\n if (suggestions.length > 0 && !this.userSelectedItem) {\n this.setValue(suggestions[0]);\n } else if (!this.userSelectedItem) {\n // handles the case if the user provides an input and de-focuses the input field before suggestions are loaded or if there are no suggestions at all\n this.setValue(null);\n }\n }\n\n /**\n * Triggered by user when selecting an item from an autocomplete suggestion list.\n */\n onSelect(event: AutoCompleteSelectEvent) {\n this.setValue(event.value, true);\n this.isFocused = false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onFocus(event: Event) {\n this.isFocused = true;\n }\n\n /**\n * calls the selectFirst item anytime the input field goes out of focus and if the suggestions panel is not displayed.\n */\n onBlur(event: Event) {\n this.isFocused = false;\n if (!this.isPanelShown) {\n this.selectFirstItem();\n }\n this.onTouchedFn();\n this.blur.emit(event);\n }\n\n onShow() {\n this.isPanelShown = true;\n }\n\n /**\n * calls the selectFirst item anytime the suggestions panel is closed and input field isn't focused.\n */\n onHide() {\n this.isPanelShown = false;\n if (!this.isFocused) {\n this.selectFirstItem();\n }\n }\n\n onClear() {\n this.onChangeFn();\n this.propagateValueChange(null);\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n setTimeout(() => this._disabled.set(isDisabled));\n }\n\n writeValue(value: any): void {\n this.setItemsAndDataProvider();\n\n // write value immediately - it is important so that first select is not triggered!\n this._value = value;\n\n const optionsValuePropertyInit = this.optionsValuePropertyInit();\n if (optionsValuePropertyInit && value != null && typeof value !== 'object') {\n const defaultItem: any = {[optionsValuePropertyInit]: value};\n const optionsLabelProperty = this.optionsLabelProperty();\n if (optionsLabelProperty) {\n defaultItem[optionsLabelProperty] = value;\n }\n\n const matchedItem = this.suggestions().find(i => i[optionsValuePropertyInit] === value);\n if (matchedItem) {\n this.setValueFromWrite(matchedItem);\n } else {\n this.getLookup({\n limit: 50,\n filters: {\n [optionsValuePropertyInit]: {\n value: value,\n matchMode: FilterMatchMode.Equals\n }\n }\n })\n .pipe(take(1))\n .subscribe({\n next: items => {\n let isMatch = false;\n if (items.length === 1) {\n this.setValueFromWrite(items[0]);\n isMatch = true;\n } else if (items.length > 1) {\n // for lookup data providers not using query params\n const matchedItem = items.find(i => i[optionsValuePropertyInit] === value);\n if (matchedItem) {\n this.setValueFromWrite(matchedItem);\n isMatch = true;\n }\n }\n\n if (!isMatch) {\n this.setValueFromWrite(defaultItem);\n }\n },\n error: () => {\n this.setValueFromWrite(defaultItem);\n }\n });\n }\n } else {\n this.setValueFromWrite(value);\n }\n }\n\n private setItemsAndDataProvider() {\n if (this.isInited) {\n return;\n }\n\n const dataProvider = this.dataProvider();\n this.dataProviderService = dataProvider.serviceType ? this.injector.get<any>(dataProvider.serviceType) : null;\n\n this.isInited = true;\n }\n\n private setValueFromWrite(value: any | any[] | null | undefined) {\n if (value && this.optionsLabelTranslate()) {\n value = this.i18nPopulateItems([value], this.translate.instant(this.i18nGetItemsKeys([value])))[0];\n }\n this.ngModelValue.set(value);\n }\n\n private getLookup(params: DataListParams, query?: string): Observable<Array<any>> {\n return toObservable(this.dataProvider().lookup(params, this.dataProviderService, query)).pipe(\n switchMap(items => {\n if (this.optionsLabelTranslate()) {\n const translatedItems = this.i18nGetItemsKeys(items);\n if (translatedItems.length === 0) {\n return of([]);\n }\n\n return this.translate.stream(translatedItems).pipe(map(translations => this.i18nPopulateItems(items, translations)));\n } else {\n return of(items);\n }\n })\n );\n }\n\n private i18nGetItemsKeys(items: Array<any>): Array<string> {\n return items.map(\n item => (typeof item === 'object' && this.optionsLabelPropertyInit() ? (item[this.optionsLabelPropertyInit() as keyof object] as string) : item) as string\n );\n }\n\n private i18nPopulateItems(items: Array<any>, i18nMap: any): Array<any> {\n return items.map(item => {\n if (typeof item === 'object' && this.optionsLabelPropertyInit()) {\n const label = item[this.optionsLabelPropertyInit() as keyof object] as string;\n const translation: string | undefined = i18nMap[label];\n if (translation) {\n return {...item, [this.optionsLabelProperty()!]: translation};\n }\n return {...item};\n } else {\n const translation = i18nMap[item];\n return {\n [this.optionsLabelProperty()!]: translation ?? item,\n [this.optionsValueProperty()!]: item\n };\n }\n });\n }\n\n private setSuggestionsFromItems(items: Array<any>, query?: string) {\n if (this.inlineSearch()) {\n const queryLowerCase = query?.toLowerCase() ?? '';\n const filteredItems = items.filter(i => {\n let itemLabel = i;\n const optionsLabelProperty = this.optionsLabelProperty();\n if (optionsLabelProperty && typeof i === 'object') {\n itemLabel = i[optionsLabelProperty];\n }\n if (itemLabel == null) {\n return queryLowerCase == null || !queryLowerCase.length;\n }\n if (typeof itemLabel !== 'string') {\n itemLabel = itemLabel.toString();\n }\n return itemLabel.toLowerCase().startsWith(queryLowerCase);\n });\n this.suggestions.set([...filteredItems]);\n this.userSelectedItem = undefined;\n } else {\n this.suggestions.set([...items]);\n this.userSelectedItem = undefined;\n }\n }\n\n /**\n * Selects and sets new value.\n *\n * @param value Represents the object value.\n * @param fromUser If set value is triggered from user.\n */\n private setValue(value: any | any[] | null | undefined, fromUser = false) {\n if (fromUser) {\n this.userSelectedItem = value;\n } else {\n this.ngModelValue.set(value);\n }\n\n this.propagateValueChange(value);\n }\n\n private trimValue(value: string | undefined) {\n switch (this.searchTrim()) {\n case 'start':\n return value?.trimStart();\n case 'end':\n return value?.trimEnd();\n case 'both':\n return value?.trim();\n default:\n return value;\n }\n }\n\n private propagateValueChange(value: any | any[] | null | undefined) {\n const output = this.convertValueWithOptionsValuePropSetting(value);\n\n this._value = output;\n this.onChangeFn(output);\n this.valueChange.emit(output);\n }\n\n private convertValueWithOptionsValuePropSetting(value: any | any[] | null | undefined) {\n const optionsValueProperty = this.optionsValueProperty();\n if (!optionsValueProperty) {\n return value;\n }\n if (this.multiselect() && Array.isArray(value)) {\n return value.map((item: any) => {\n if (item && typeof item === 'object') {\n return item[optionsValueProperty];\n }\n return null;\n });\n } else if (value && typeof value === 'object') {\n return value[optionsValueProperty];\n } else {\n return value;\n }\n }\n}\n","<p-autoComplete\n [ngModel]=\"ngModelValue()\"\n [placeholder]=\"placeholder()\"\n [dropdown]=\"true\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [suggestions]=\"suggestions()\"\n [multiple]=\"multiselect()\"\n [showEmptyMessage]=\"true\"\n [emptyMessage]=\"'mngAutocomplete.noMatches' | translate\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [minLength]=\"openOnFocus() ? 0 : 1\"\n [showClear]=\"showClear()\"\n [forceSelection]=\"autoClear()\"\n [disabled]=\"disabled()\"\n [completeOnFocus]=\"openOnFocus()\"\n (completeMethod)=\"onSearch($event)\"\n (onSelect)=\"onSelect($event)\"\n (onFocus)=\"onFocus($event)\"\n (onBlur)=\"onBlur($event)\"\n (onClear)=\"onClear()\"\n (onShow)=\"onShow()\"\n (onHide)=\"onHide()\"\n appendTo=\"body\"\n dropdownMode=\"current\">\n</p-autoComplete>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ExistingProvider,\n Injector,\n OnInit,\n booleanAttribute,\n effect,\n forwardRef,\n inject,\n input\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n Validators\n} from '@angular/forms';\n\nimport {CalendarModule} from 'primeng/calendar';\nimport {merge} from 'rxjs';\n\nexport const DATE_RANGE_VALUE_ACCESSOR: ExistingProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateRangeComponent),\n multi: true\n};\n\nexport const DATE_RANGE_VALIDATOR: ExistingProvider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DateRangeComponent),\n multi: true\n};\n\n@Component({\n standalone: true,\n selector: 'mng-date-range',\n templateUrl: './date-range.component.html',\n providers: [DATE_RANGE_VALUE_ACCESSOR, DATE_RANGE_VALIDATOR],\n imports: [FormsModule, CalendarModule, ReactiveFormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'className()'\n }\n})\nexport class DateRangeComponent implements OnInit, ControlValueAccessor, Validator {\n private readonly formBuilder = inject(FormBuilder);\n private readonly injector = inject(Injector);\n private readonly destroyRef = inject(DestroyRef);\n private readonly cdr = inject(ChangeDetectorRef);\n\n public placeholder = input<string>();\n public showTime = input(false);\n public showSeconds = input(false);\n public dateFormat = input<string>();\n public className = input<string>();\n public required = input(false, {transform: booleanAttribute});\n public disabled = input(false, {\n transform: booleanAttribute\n });\n\n private fromToFormControl!: FormGroup;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onValidatorChangeFn: any = () => {};\n\n public get fromCtrl() {\n return this.fromToFormControl.get('from') as FormControl;\n }\n\n public get toCtrl() {\n return this.fromToFormControl.get('to') as FormControl;\n }\n\n public get dateRangeCtrl() {\n return this.fromToFormControl.get('dateRange') as FormControl;\n }\n\n ngOnInit() {\n this.fromToFormControl = this.formBuilder.group({\n from: [null, Validators.required],\n to: [null, Validators.required],\n dateRange: [null, Validators.required]\n });\n\n effect(\n () => {\n this.setDisabledState(this.disabled());\n },\n {injector: this.injector}\n );\n\n merge(this.fromCtrl.valueChanges, this.toCtrl.valueChanges, this.dateRangeCtrl.valueChanges)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onValueChange());\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n registerOnValidatorChange?(fn: () => void): void {\n this.onValidatorChangeFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled && this.fromToFormControl?.enabled) {\n this.fromToFormControl.disable();\n } else if (!isDisabled && this.fromToFormControl?.disabled) {\n this.fromToFormControl.enable();\n }\n }\n\n onBlur() {\n this.onTouchedFn();\n }\n\n writeValue(obj: any): void {\n let startDate: Date | null = null;\n let endDate: Date | null = null;\n\n if (Array.isArray(obj)) {\n if (obj.length > 0 && (obj[0] instanceof Date || typeof obj[0] === 'string' || typeof obj[0] === 'number')) {\n startDate = new Date(obj[0]);\n }\n if (obj.length > 1 && (obj[1] instanceof Date || typeof obj[1] === 'string' || typeof obj[1] === 'number')) {\n endDate = new Date(obj[1]);\n }\n } else if (obj instanceof Date || typeof obj === 'string' || typeof obj === 'number') {\n startDate = new Date(obj);\n }\n\n if (this.showTime()) {\n this.fromCtrl.setValue(startDate, {emitEvent: false});\n this.toCtrl.setValue(endDate, {emitEvent: false});\n } else if (startDate || endDate) {\n this.dateRangeCtrl.setValue([startDate, endDate], {emitEvent: false});\n } else {\n this.dateRangeCtrl.setValue(null, {emitEvent: false});\n }\n }\n\n validate(): ValidationErrors | null {\n if (!this.required()) return null;\n\n if (this.showTime()) {\n if (this.fromCtrl.hasError('required') || this.toCtrl.hasError('required')) {\n return {\n required: true\n };\n }\n } else {\n if (this.dateRangeCtrl.hasError('required')) {\n return {\n required: true\n };\n }\n }\n\n return null;\n }\n\n private onValueChange() {\n if (this.showTime()) {\n const fromDate = this.fromCtrl.value as Date;\n const toDate = this.toCtrl.value as Date;\n this.onChangeFn([fromDate, toDate]);\n } else {\n const date = this.dateRangeCtrl.value as Date[];\n this.onChangeFn(date);\n }\n }\n}\n","@if (showTime()) {\n <div class=\"flex gap-2\">\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"fromCtrl\"\n [maxDate]=\"toCtrl.value\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n [showTime]=\"true\"\n [showSeconds]=\"showSeconds()\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"toCtrl\"\n [minDate]=\"fromCtrl.value\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n [showTime]=\"true\"\n [showSeconds]=\"showSeconds()\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n </div>\n} @else {\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"dateRangeCtrl\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n selectionMode=\"range\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ExistingProvider,\n Injector,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {Dropdown, DropdownChangeEvent, DropdownModule} from 'primeng/dropdown';\nimport {MultiSelect, MultiSelectBlurEvent, MultiSelectChangeEvent, MultiSelectModule} from 'primeng/multiselect';\nimport {combineLatest, map, of, switchMap, tap} from 'rxjs';\n\nimport {CommonsInternalError, ILookupDataProvider, LoggerService, toObservable as commonsToObservable, fromSubscribeError, getErrorLogLevel} from '@mediusinc/mng-commons/core';\n\nexport const DROPDOWN_VALUE_ACCESSOR: ExistingProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownComponent),\n multi: true\n};\n\n@Component({\n standalone: true,\n selector: 'mng-dropdown',\n templateUrl: './dropdown.component.html',\n providers: [DROPDOWN_VALUE_ACCESSOR],\n imports: [DropdownModule, MultiSelectModule, TranslateModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DropdownComponent implements ControlValueAccessor {\n private readonly logger = inject(LoggerService).create('DropdownComponent');\n\n private readonly injector = inject(Injector);\n private readonly destroyRef = inject(DestroyRef);\n private readonly translate = inject(TranslateService);\n\n public dataProvider = input<ILookupDataProvider<any, any>>();\n public options = input<Array<any>>([]);\n public optionsTrackProperty = input<string>();\n public optionsLabelPropertyInit = input<string | undefined>(undefined, {alias: 'optionsLabelProperty'});\n public optionsLabelTranslate = input(false, {transform: booleanAttribute});\n public optionsValuePropertyInput = input<string | undefined>(undefined, {alias: 'optionsValueProperty'});\n public optionsDisabledProperty = input<string>();\n public multiselect = input(false, {transform: booleanAttribute});\n public placeholder = input<string>();\n public showClear = input(false, {transform: booleanAttribute});\n public selectFirstItemInput = input(false, {transform: booleanAttribute, alias: 'selectFirstItem'});\n public className = input<string>();\n public dropdownClassName = input<string>();\n public changeValueOnBlur = input(false, {transform: booleanAttribute});\n public loadingInput = input(false, {alias: 'loading', transform: booleanAttribute});\n public disabledInput = input(false, {alias: 'disabled', transform: booleanAttribute});\n public appendTo = input<string | null>('body');\n\n public valueChange = output<any>();\n public blur = output<Event>();\n\n public primeDropdown = viewChild(Dropdown);\n public primeMultiselect = viewChild(MultiSelect);\n\n private _value?: any | null;\n public ngModelValue = signal<undefined | null | any>(undefined);\n\n private _loading = signal(false);\n private _disabled = signal(false);\n public loading = computed(() => this.loadingInput() || this._loading());\n public disabled = computed(() => this.disabledInput() || this._disabled());\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedFn: any = () => {};\n\n private dataProviderService: any = null;\n public items = signal<Array<any>>([]);\n private firstTimeSettingItems = true;\n\n private isDropdownPanelShown = false;\n\n public optionsLabelProperty = computed(() => {\n if (this.optionsLabelTranslate()) {\n // setup translation properties\n if (this.optionsLabelPropertyInit()) {\n return `${this.optionsLabelPropertyInit()}_i18n`;\n } else if (!this.optionsLabelPropertyInit() && !this.optionsValuePropertyInput()) {\n return 'title_i18n';\n } else {\n throw new CommonsInternalError(`Invalid use with value (${this.optionsValuePropertyInput()}) and label (${this.optionsLabelPropertyInit()}) property setup.`, {\n name: 'DropdownComponentError'\n });\n }\n }\n\n return this.optionsLabelPropertyInit();\n });\n public optionsValueProperty = computed(() => {\n if (this.optionsLabelTranslate()) {\n // setup translation properties\n if (!this.optionsLabelPropertyInit() && !this.optionsValuePropertyInput()) {\n return 'value';\n } else if (!this.optionsLabelPropertyInit()) {\n throw new CommonsInternalError(`Invalid use with value (${this.optionsValuePropertyInput()}) and label (${this.optionsLabelPropertyInit()}) property setup.`, {\n name: 'DropdownComponentError'\n });\n }\n }\n\n return this.optionsValuePropertyInput();\n });\n\n public get value() {\n return this._value;\n }\n\n constructor() {\n effect(() => {\n this._value = this.ngModelValue();\n });\n\n combineLatest([toObservable(this.dataProvider), toObservable(this.options)])\n .pipe(\n tap(() => this._loading.set(true)),\n switchMap(([dataProvider, options]) => {\n if (dataProvider) {\n this.dataProviderService = dataProvider.serviceType ? this.injector.get<any>(dataProvider.serviceType) : null;\n return commonsToObservable(dataProvider.lookup({limit: 50}, this.dataProviderService));\n } else {\n return of(options ?? []);\n }\n }),\n switchMap(items => this.transformItems(items)),\n takeUntilDestroyed()\n )\n .subscribe({\n next: res => {\n this.items.set(res);\n this._loading.set(false);\n this.selectFirstItem();\n this.adjustValueOnItemsValuePropertyTypeMismatch();\n },\n error: err => {\n this.items.set([]);\n this._loading.set(false);\n const error = fromSubscribeError(err, 'DropdownComponentError');\n this.logger.log(error, getErrorLogLevel(error));\n }\n });\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n setTimeout(() => this._disabled.set(isDisabled));\n }\n\n writeValue(value: any): void {\n // this check is required because angular in some cases writes null value\n // before value accessor is initialized\n // if form control value is of primitive type (ex: enums) then write value is not called (we think)\n if (value == null && this._value == null) {\n return;\n }\n // write value immediately - it is important so that first select is not triggered!\n this._value = value;\n this.adjustValueOnItemsValuePropertyTypeMismatch(true);\n }\n\n onDropdownBlur(event: Event) {\n if (this.isDropdownPanelShown) {\n // ignore this blur event\n return;\n }\n const primeDropdown = this.primeDropdown();\n if (this.changeValueOnBlur() && primeDropdown) {\n this.propagateValueChange(primeDropdown.value);\n }\n this.onTouchedFn();\n this.blur.emit(event);\n }\n\n onDropdownChange(event: DropdownChangeEvent) {\n if (!this.changeValueOnBlur()) {\n this.propagateValueChange(event.value);\n }\n }\n\n onDropdownPanelShow() {\n this.isDropdownPanelShown = true;\n }\n\n onDropdownPanelHide() {\n this.isDropdownPanelShown = false;\n }\n\n onMultiselectChange(event: MultiSelectChangeEvent) {\n if (!this.changeValueOnBlur()) {\n this.propagateValueChange(event.value);\n }\n }\n\n onMultiselectBlur(event: MultiSelectBlurEvent) {\n this.onTouchedFn();\n this.blur.emit(event.originalEvent);\n }\n\n onMultiselectPanelHide() {\n const primeMultiselect = this.primeMultiselect();\n if (this.changeValueOnBlur() && primeMultiselect) {\n this.propagateValueChange(primeMultiselect.value);\n }\n }\n\n private selectFirstItem() {\n if (this.firstTimeSettingItems && this.items().length > 0 && this.selectFirstItemInput() && !this._value) {\n const optionsValueProperty = this.optionsValueProperty();\n const value = optionsValueProperty ? this.items()[0][optionsValueProperty] : this.items()[0];\n this.ngModelValue.set(value); // set to write for input\n this.firstTimeSettingItems = false;\n this.propagateValueChange(value);\n }\n }\n\n private transformItems(items: any[]) {\n if (this.optionsLabelTranslate()) {\n const translationKeys: string[] = items.map(\n item => (typeof item === 'object' && this.optionsLabelPropertyInit() ? (item[this.optionsLabelPropertyInit() as keyof object] as string) : item) as string\n );\n\n if (translationKeys.length === 0) {\n return of([]);\n }\n\n return this.translate.stream(translationKeys).pipe(\n map(translations =>\n items.map(item => {\n if (typeof item === 'object' && this.optionsLabelPropertyInit()) {\n const label = item[this.optionsLabelPropertyInit() as keyof object] as string;\n const translation: string | undefined = translations[label];\n if (translation) {\n return {...item, [this.optionsLabelProperty()!]: translation};\n }\n return {...item};\n } else {\n const translation = translations[item];\n return {\n [this.optionsLabelProperty()!]: translation ?? item,\n [this.optionsValueProperty()!]: item\n };\n }\n })\n )\n );\n } else {\n return of(items);\n }\n }\n\n private adjustValueOnItemsValuePropertyTypeMismatch(setNgModelValue = false) {\n const optionsValueProp = this.optionsValueProperty();\n if (optionsValueProp && this._value != null && this.items().length > 0 && this.items()[0][optionsValueProp] != null) {\n if (Array.isArray(this._value)) {\n if (this._value.length > 0 && typeof this.items()[0][optionsValueProp] !== typeof this._value[0]) {\n const stringValues = this._value.map(v => v.toString());\n const selectedOptions = this.items().filter(i => i[optionsValueProp] != null && stringValues.includes(i[optionsValueProp].toString()));\n if (selectedOptions.length > 0) {\n this.ngModelValue.set(selectedOptions.map(i => i[optionsValueProp]));\n return;\n }\n }\n } else if (typeof this.items()[0][optionsValueProp] !== typeof this._value) {\n // types dont match, search and compare by string\n const selectedOption = this.items().find(i => i[optionsValueProp] != null && i[optionsValueProp].toString() === this._value.toString());\n if (selectedOption) {\n this.ngModelValue.set(selectedOption[optionsValueProp]);\n return;\n }\n }\n }\n\n if (setNgModelValue) {\n // force write to ngModelValue anyway\n this.ngModelValue.set(this._value);\n }\n }\n\n private propagateValueChange(value: any) {\n this._value = value;\n this.onChangeFn(value);\n this.valueChange.emit(value);\n }\n}\n","@if (!multiselect()) {\n <p-dropdown\n [ngModel]=\"ngModelValue()\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [showClear]=\"showClear()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [disabled]=\"disabled()\"\n (onBlur)=\"onDropdownBlur($event)\"\n (onChange)=\"onDropdownChange($event)\"\n (onShow)=\"onDropdownPanelShow()\"\n (onHide)=\"onDropdownPanelHide()\"\n [dropdownIcon]=\"loading() ? 'pi pi-spinner pi-spin' : 'pi pi-chevron-down'\"\n [appendTo]=\"appendTo()\"\n >\n </p-dropdown>\n} @else {\n <p-multiSelect\n [ngModel]=\"ngModelValue()\"\n [maxSelectedLabels]=\"1\"\n [selectedItemsLabel]=\"'mngDropdown.multiselectOverMaxDisplayLimit' | translate\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [filter]=\"true\"\n [showToggleAll]=\"false\"\n [disabled]=\"disabled()\"\n (onChange)=\"onMultiselectChange($event)\"\n (onPanelHide)=\"onMultiselectPanelHide()\"\n (onBlur)=\"onMultiselectBlur($event)\"\n appendTo=\"body\">\n </p-multiSelect>\n}\n","import {NgClass} from '@angular/common';\nimport {ChangeDetectionStrategy, ChangeDetectorRef, Component, ExistingProvider, booleanAttribute, effect, forwardRef, inject, input, output} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n Validators\n} from '@angular/forms';\n\nimport {InputNumberModule} from 'primeng/inputnumber';\nimport {merge} from 'rxjs';\n\nimport {Nullable} from '@mediusinc/mng-commons/core';\n\nexport const NUMBER_RANGE_VALUE_ACCESSOR: ExistingProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberRangeComponent),\n multi: true\n};\n\nexport const NUMBER_RANGE_VALIDATOR: ExistingProvider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberRangeComponent),\n multi: true\n};\n\n@Component({\n standalone: true,\n selector: 'mng-number-range',\n templateUrl: './number-range.component.html',\n providers: [NUMBER_RANGE_VALUE_ACCESSOR, NUMBER_RANGE_VALIDATOR],\n imports: [FormsModule, ReactiveFormsModule, InputNumberModule, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NumberRangeComponent implements ControlValueAccessor, Validator {\n private readonly formBuilder = inject(FormBuilder);\n private readonly cdr = inject(ChangeDetectorRef);\n\n public placeholder = input<string>();\n public useGrouping = input<boolean>(true);\n public minFractionDigits = input<number>();\n public maxFractionDigits = input<number>();\n public required = input(false, {transform: booleanAttribute});\n public disabled = input(false, {\n transform: booleanAttribute\n });\n public keyDown = output<KeyboardEvent>();\n\n private fromToFormControl: FormGroup = this.formBuilder.group({\n from: [null, Validators.required],\n to: [null, Validators.required]\n });\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onValidatorChangeFn: any = () => {};\n\n public get fromCtrl() {\n return this.fromToFormControl.get('from') as FormControl;\n }\n\n public get toCtrl() {\n return this.fromToFormControl.get('to') as FormControl;\n }\n\n constructor() {\n effect(() => {\n this.setDisabledState(this.disabled());\n });\n\n merge(this.fromCtrl.valueChanges, this.toCtrl.valueChanges)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.onValueChange());\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled && this.fromToFormControl?.enabled) {\n this.fromToFormControl.disable();\n } else if (!isDisabled && this.fromToFormControl?.disabled) {\n this.fromToFormControl.enable();\n }\n }\n\n writeValue(obj: any): void {\n let start: number | null = null;\n let end: number | null = null;\n\n if (Array.isArray(obj)) {\n if (obj.length > 0 && (typeof obj[0] === 'string' || typeof obj[0] === 'number')) {\n start = this.toNumber(obj[0]);\n }\n if (obj.length > 1 && (typeof obj[1] === 'string' || typeof obj[1] === 'number')) {\n end = this.toNumber(obj[1]);\n }\n } else if (typeof obj === 'string' || typeof obj === 'number') {\n start = this.toNumber(obj);\n }\n\n this.fromCtrl.setValue(start, {emitEvent: false});\n this.toCtrl.setValue(end, {emitEvent: false});\n }\n\n validate(): ValidationErrors | null {\n if (!this.required()) return null;\n\n if (this.fromCtrl.hasError('required') || this.toCtrl.hasError('required')) {\n return {\n required: true\n };\n }\n\n return null;\n }\n\n onKeyDown(event: KeyboardEvent) {\n this.keyDown.emit(event);\n }\n\n onBlur() {\n this.onTouchedFn();\n }\n\n private toNumber(val: Nullable<string | number>) {\n if (val == null || typeof val === 'number') {\n return val ?? null;\n }\n val = val.replaceAll(',', '');\n const numVal = parseFloat(val);\n return isNaN(numVal) ? null : numVal;\n }\n\n private onValueChange() {\n const fromDate = this.fromCtrl.value as Date;\n const toDate = this.toCtrl.value as Date;\n this.onChangeFn([fromDate, toDate]);\n }\n}\n","<div class=\"flex gap-2\">\n <p-inputNumber\n [formControl]=\"fromCtrl\"\n [placeholder]=\"placeholder()\"\n [useGrouping]=\"useGrouping()\"\n [minFractionDigits]=\"minFractionDigits()\"\n [maxFractionDigits]=\"maxFractionDigits()\"\n [max]=\"toCtrl.value\"\n (onKeyDown)=\"onKeyDown($event)\"\n (onBlur)=\"onBlur()\" />\n <p-inputNumber\n [formControl]=\"toCtrl\"\n [placeholder]=\"placeholder()\"\n [useGrouping]=\"useGrouping()\"\n [minFractionDigits]=\"minFractionDigits()\"\n [maxFractionDigits]=\"maxFractionDigits()\"\n [min]=\"fromCtrl.value\"\n (onKeyDown)=\"onKeyDown($event)\"\n (onBlur)=\"onBlur()\" />\n</div>\n","import {Directive, ElementRef, inject, input} from '@angular/core';\nimport {NgControl} from '@angular/forms';\n\nimport {InputTrimType} from '@mediusinc/mng-commons/form/api';\n\n@Directive({\n standalone: true,\n selector: '[mngInputTrim]',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {'(blur)': 'onBlur()'}\n})\nexport class InputTrimDirective {\n public mngInputTrim = input<InputTrimType>();\n\n private readonly el = inject(ElementRef);\n private readonly ngControl = inject(NgControl, {optional: true});\n\n onBlur() {\n const control = this.ngControl?.control;\n const value = control ? control.value : this.el.nativeElement.value;\n let trimmedValue: string;\n\n if (typeof value === 'string') {\n trimmedValue = this.getTrimmedValue(value);\n\n if (trimmedValue != value) {\n if (control) {\n control.setValue(trimmedValue, {emitEvent: false});\n } else {\n this.el.nativeElement.value = trimmedValue;\n }\n }\n }\n }\n\n private getTrimmedValue(value: string): string {\n switch (this.mngInputTrim()) {\n case 'both':\n return value.trim();\n case 'start':\n return value.trimStart();\n case 'end':\n return value.trimEnd();\n default:\n return value;\n }\n }\n}\n","// components\nexport * from './components/autocomplete/autocomplete.component';\nexport * from './components/date-range/date-range.component';\nexport * from './components/dropdown/dropdown.component';\nexport * from './components/number-range/number-range.component';\n\n// directives\nexport * from './directives/input-trim.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","toObservable","commonsToObservable","map","i2","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mediusinc-mng-commons-form.mjs","sources":["../../form/src/components/autocomplete/autocomplete.component.ts","../../form/src/components/autocomplete/autocomplete.component.html","../../form/src/components/date-range/date-range.component.ts","../../form/src/components/date-range/date-range.component.html","../../form/src/components/dropdown/dropdown.component.ts","../../form/src/components/dropdown/dropdown.component.html","../../form/src/components/number-range/number-range.component.ts","../../form/src/components/number-range/number-range.component.html","../../form/src/directives/input-trim.directive.ts","../../form/src/index.ts","../../form/src/mediusinc-mng-commons-form.ts"],"sourcesContent":["import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ExistingProvider,\n Injector,\n OnInit,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {AutoCompleteModule, AutoCompleteSelectEvent} from 'primeng/autocomplete';\nimport {AutoCompleteCompleteEvent} from 'primeng/autocomplete/autocomplete.interface';\nimport {Observable, ReplaySubject, Subscription, of, switchMap, take} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {\n CommonsInternalError,\n DataListParams,\n FilterMatchMode,\n ILookupDataProvider,\n LoggerService,\n fromSubscribeError,\n getErrorLogLevel,\n toObservable\n} from '@mediusinc/mng-commons/core';\nimport {InputTrimType} from '@mediusinc/mng-commons/form/api';\n\nexport const AUTOCOMPLETE_VALUE_ACCESSOR: ExistingProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutocompleteComponent),\n multi: true\n};\n\n@Component({\n standalone: true,\n selector: 'mng-autocomplete',\n templateUrl: './autocomplete.component.html',\n providers: [AUTOCOMPLETE_VALUE_ACCESSOR],\n imports: [AutoCompleteModule, AsyncPipe, TranslateModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AutocompleteComponent implements ControlValueAccessor, OnInit {\n private readonly injector = inject(Injector);\n private readonly destroyRef = inject(DestroyRef);\n private readonly translate = inject(TranslateService);\n private readonly logger = inject(LoggerService).create('AutocompleteComponent');\n\n public dataProvider = input.required<ILookupDataProvider<any, any, any, any>>();\n public optionsTrackProperty = input<string>();\n public optionsValuePropertyInit = input<string | undefined>(undefined, {alias: 'optionsValueProperty'});\n public optionsLabelPropertyInit = input<string | undefined>(undefined, {alias: 'optionsLabelProperty'});\n public optionsLabelTranslate = input(false, {transform: booleanAttribute});\n public inlineSearch = input(false, {transform: booleanAttribute});\n public openOnFocus = input(false, {transform: booleanAttribute});\n public multiselect = input(false, {transform: booleanAttribute});\n public placeholder = input<string>();\n public className = input<string>();\n public dropdownClassName = input<string>();\n public showClear = input(false, {transform: booleanAttribute});\n public autoClear = input(false, {transform: booleanAttribute});\n public selectFirst = input(false, {transform: booleanAttribute}); //on every input field change return first given value (or null)\n public searchTrim = input<InputTrimType | undefined>(undefined);\n public disabledInput = input<boolean, unknown>(false, {transform: booleanAttribute, alias: 'disabled'});\n\n public valueChange = output<any>();\n public blur = output<Event>();\n\n private isInited = false;\n private searchSubscription: Subscription | null = null;\n private dataProviderService: any = null;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedFn: any = () => {};\n\n private _value?: any | null;\n public ngModelValue = signal<undefined | null | any>(undefined);\n\n private _disabled = signal(false);\n public disabled = computed(() => this._disabled() || this.disabledInput());\n\n public suggestions = signal<Array<any>>([]);\n private isPanelShown = false;\n private isFocused = false;\n private userSelectedItem?: any | any[];\n private queryResultCacheSubject?: ReplaySubject<any>;\n\n public optionsLabelProperty = computed(() => {\n if (this.optionsLabelTranslate()) {\n // setup translation properties\n if (this.optionsLabelPropertyInit()) {\n return `${this.optionsLabelPropertyInit()}_i18n`;\n } else if (!this.optionsLabelPropertyInit() && !this.optionsValuePropertyInit()) {\n return 'title_i18n';\n } else {\n throw new CommonsInternalError(`Invalid use with value (${this.optionsValuePropertyInit()}) and label (${this.optionsLabelPropertyInit()}) property setup.`, {\n name: 'AutocompleteComponentError'\n });\n }\n }\n\n return this.optionsLabelPropertyInit();\n });\n public optionsValueProperty = computed(() => {\n if (this.optionsLabelTranslate()) {\n // setup translation properties\n if (!this.optionsLabelPropertyInit() && !this.optionsValuePropertyInit()) {\n return 'value';\n } else if (!this.optionsLabelPropertyInit()) {\n throw new CommonsInternalError(`Invalid use with value (${this.optionsValuePropertyInit()}) and label (${this.optionsLabelPropertyInit()}) property setup.`, {\n name: 'AutocompleteComponentError'\n });\n }\n }\n\n return this.optionsValuePropertyInit();\n });\n\n public get value() {\n return this._value;\n }\n\n constructor() {\n effect(() => {\n this._value = this.convertValueWithOptionsValuePropSetting(this.ngModelValue());\n });\n }\n\n ngOnInit() {\n this.setItemsAndDataProvider();\n\n if (this.selectFirst() && !this._value) {\n this.onSearch(undefined, true);\n }\n }\n\n onSearch(event?: AutoCompleteCompleteEvent, isInit = false) {\n this.searchSubscription?.unsubscribe();\n const optionsLabelProperty = this.optionsLabelProperty();\n const query = this.trimValue(event?.query);\n\n const params: DataListParams = {\n limit: 50\n };\n if (optionsLabelProperty) {\n params.sort = [{property: optionsLabelProperty}];\n }\n if (query && query.length > 0 && optionsLabelProperty) {\n params.filters = {\n [optionsLabelProperty]: {\n value: query,\n matchMode: FilterMatchMode.StartsWith\n }\n };\n }\n\n if (!this.queryResultCacheSubject || !this.inlineSearch()) {\n if (!this.queryResultCacheSubject) {\n this.queryResultCacheSubject = new ReplaySubject<any>(1);\n }\n this.searchSubscription = this.getLookup(params, query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: items => {\n this.queryResultCacheSubject?.next(items);\n this.setSuggestionsFromItems(items, query);\n if (isInit && !this._value) {\n this.selectFirstItem();\n }\n },\n error: err => {\n this.setSuggestionsFromItems([], query);\n\n const error = fromSubscribeError(err, 'AutocompleteComponentError', {\n search: query,\n params: params\n });\n this.logger.log(error, getErrorLogLevel(error));\n }\n });\n } else if (this.queryResultCacheSubject) {\n this.searchSubscription = this.queryResultCacheSubject.pipe(take(1)).subscribe(result => {\n this.setSuggestionsFromItems(result, query);\n });\n }\n }\n\n private selectFirstItem() {\n if (!this.selectFirst() || this.multiselect()) return;\n\n const suggestions = this.suggestions();\n if (suggestions.length > 0 && !this.userSelectedItem) {\n this.setValue(suggestions[0]);\n } else if (!this.userSelectedItem) {\n // handles the case if the user provides an input and de-focuses the input field before suggestions are loaded or if there are no suggestions at all\n this.setValue(null);\n }\n }\n\n /**\n * Triggered by user when selecting an item from an autocomplete suggestion list.\n */\n onSelect(event: AutoCompleteSelectEvent) {\n this.setValue(event.value, true);\n this.isFocused = false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onFocus(event: Event) {\n this.isFocused = true;\n }\n\n /**\n * calls the selectFirst item anytime the input field goes out of focus and if the suggestions panel is not displayed.\n */\n onBlur(event: Event) {\n this.isFocused = false;\n if (!this.isPanelShown) {\n this.selectFirstItem();\n }\n this.onTouchedFn();\n this.blur.emit(event);\n }\n\n onShow() {\n this.isPanelShown = true;\n }\n\n /**\n * calls the selectFirst item anytime the suggestions panel is closed and input field isn't focused.\n */\n onHide() {\n this.isPanelShown = false;\n if (!this.isFocused) {\n this.selectFirstItem();\n }\n }\n\n onClear() {\n this.onChangeFn();\n this.propagateValueChange(null);\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n setTimeout(() => this._disabled.set(isDisabled));\n }\n\n writeValue(value: any): void {\n this.setItemsAndDataProvider();\n\n // write value immediately - it is important so that first select is not triggered!\n this._value = value;\n\n const optionsValuePropertyInit = this.optionsValuePropertyInit();\n if (optionsValuePropertyInit && value != null && typeof value !== 'object') {\n const defaultItem: any = {[optionsValuePropertyInit]: value};\n const optionsLabelProperty = this.optionsLabelProperty();\n if (optionsLabelProperty) {\n defaultItem[optionsLabelProperty] = value;\n }\n\n const matchedItem = this.suggestions().find(i => i[optionsValuePropertyInit] === value);\n if (matchedItem) {\n this.setValueFromWrite(matchedItem);\n } else {\n this.getLookup({\n limit: 50,\n filters: {\n [optionsValuePropertyInit]: {\n value: value,\n matchMode: FilterMatchMode.Equals\n }\n }\n })\n .pipe(take(1))\n .subscribe({\n next: items => {\n let isMatch = false;\n if (items.length === 1) {\n this.setValueFromWrite(items[0]);\n isMatch = true;\n } else if (items.length > 1) {\n // for lookup data providers not using query params\n const matchedItem = items.find(i => i[optionsValuePropertyInit] === value);\n if (matchedItem) {\n this.setValueFromWrite(matchedItem);\n isMatch = true;\n }\n }\n\n if (!isMatch) {\n this.setValueFromWrite(defaultItem);\n }\n },\n error: () => {\n this.setValueFromWrite(defaultItem);\n }\n });\n }\n } else {\n this.setValueFromWrite(value);\n }\n }\n\n private setItemsAndDataProvider() {\n if (this.isInited) {\n return;\n }\n\n const dataProvider = this.dataProvider();\n this.dataProviderService = dataProvider.serviceType ? this.injector.get<any>(dataProvider.serviceType) : null;\n\n this.isInited = true;\n }\n\n private setValueFromWrite(value: any | any[] | null | undefined) {\n if (value && this.optionsLabelTranslate()) {\n value = this.i18nPopulateItems([value], this.translate.instant(this.i18nGetItemsKeys([value])))[0];\n }\n this.ngModelValue.set(value);\n }\n\n private getLookup(params: DataListParams, query?: string): Observable<Array<any>> {\n return toObservable(this.dataProvider().lookup(params, this.dataProviderService, query)).pipe(\n switchMap(items => {\n if (this.optionsLabelTranslate()) {\n const translatedItems = this.i18nGetItemsKeys(items);\n if (translatedItems.length === 0) {\n return of([]);\n }\n\n return this.translate.stream(translatedItems).pipe(map(translations => this.i18nPopulateItems(items, translations)));\n } else {\n return of(items);\n }\n })\n );\n }\n\n private i18nGetItemsKeys(items: Array<any>): Array<string> {\n return items.map(\n item => (typeof item === 'object' && this.optionsLabelPropertyInit() ? (item[this.optionsLabelPropertyInit() as keyof object] as string) : item) as string\n );\n }\n\n private i18nPopulateItems(items: Array<any>, i18nMap: any): Array<any> {\n return items.map(item => {\n if (typeof item === 'object' && this.optionsLabelPropertyInit()) {\n const label = item[this.optionsLabelPropertyInit() as keyof object] as string;\n const translation: string | undefined = i18nMap[label];\n if (translation) {\n return {...item, [this.optionsLabelProperty()!]: translation};\n }\n return {...item};\n } else {\n const translation = i18nMap[item];\n return {\n [this.optionsLabelProperty()!]: translation ?? item,\n [this.optionsValueProperty()!]: item\n };\n }\n });\n }\n\n private setSuggestionsFromItems(items: Array<any>, query?: string) {\n if (this.inlineSearch()) {\n const queryLowerCase = query?.toLowerCase() ?? '';\n const filteredItems = items.filter(i => {\n let itemLabel = i;\n const optionsLabelProperty = this.optionsLabelProperty();\n if (optionsLabelProperty && typeof i === 'object') {\n itemLabel = i[optionsLabelProperty];\n }\n if (itemLabel == null) {\n return queryLowerCase == null || !queryLowerCase.length;\n }\n if (typeof itemLabel !== 'string') {\n itemLabel = itemLabel.toString();\n }\n return itemLabel.toLowerCase().startsWith(queryLowerCase);\n });\n this.suggestions.set([...filteredItems]);\n this.userSelectedItem = undefined;\n } else {\n this.suggestions.set([...items]);\n this.userSelectedItem = undefined;\n }\n }\n\n /**\n * Selects and sets new value.\n *\n * @param value Represents the object value.\n * @param fromUser If set value is triggered from user.\n */\n private setValue(value: any | any[] | null | undefined, fromUser = false) {\n if (fromUser) {\n this.userSelectedItem = value;\n } else {\n this.ngModelValue.set(value);\n }\n\n this.propagateValueChange(value);\n }\n\n private trimValue(value: string | undefined) {\n switch (this.searchTrim()) {\n case 'start':\n return value?.trimStart();\n case 'end':\n return value?.trimEnd();\n case 'both':\n return value?.trim();\n default:\n return value;\n }\n }\n\n private propagateValueChange(value: any | any[] | null | undefined) {\n const output = this.convertValueWithOptionsValuePropSetting(value);\n\n this._value = output;\n this.onChangeFn(output);\n this.valueChange.emit(output);\n }\n\n private convertValueWithOptionsValuePropSetting(value: any | any[] | null | undefined) {\n const optionsValueProperty = this.optionsValueProperty();\n if (!optionsValueProperty) {\n return value;\n }\n if (this.multiselect() && Array.isArray(value)) {\n return value.map((item: any) => {\n if (item && typeof item === 'object') {\n return item[optionsValueProperty];\n }\n return null;\n });\n } else if (value && typeof value === 'object') {\n return value[optionsValueProperty];\n } else {\n return value;\n }\n }\n}\n","<p-autoComplete\n [ngModel]=\"ngModelValue()\"\n [placeholder]=\"placeholder()\"\n [dropdown]=\"true\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [suggestions]=\"suggestions()\"\n [multiple]=\"multiselect()\"\n [showEmptyMessage]=\"true\"\n [emptyMessage]=\"'mngAutocomplete.noMatches' | translate\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [minLength]=\"openOnFocus() ? 0 : 1\"\n [showClear]=\"showClear()\"\n [forceSelection]=\"autoClear()\"\n [disabled]=\"disabled()\"\n [completeOnFocus]=\"openOnFocus()\"\n (completeMethod)=\"onSearch($event)\"\n (onSelect)=\"onSelect($event)\"\n (onFocus)=\"onFocus($event)\"\n (onBlur)=\"onBlur($event)\"\n (onClear)=\"onClear()\"\n (onShow)=\"onShow()\"\n (onHide)=\"onHide()\"\n appendTo=\"body\"\n dropdownMode=\"current\">\n</p-autoComplete>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ExistingProvider,\n Injector,\n OnInit,\n booleanAttribute,\n effect,\n forwardRef,\n inject,\n input\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n Validators\n} from '@angular/forms';\n\nimport {CalendarModule} from 'primeng/calendar';\nimport {merge} from 'rxjs';\n\nexport const DATE_RANGE_VALUE_ACCESSOR: ExistingProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateRangeComponent),\n multi: true\n};\n\nexport const DATE_RANGE_VALIDATOR: ExistingProvider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DateRangeComponent),\n multi: true\n};\n\n@Component({\n standalone: true,\n selector: 'mng-date-range',\n templateUrl: './date-range.component.html',\n providers: [DATE_RANGE_VALUE_ACCESSOR, DATE_RANGE_VALIDATOR],\n imports: [FormsModule, CalendarModule, ReactiveFormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'className()'\n }\n})\nexport class DateRangeComponent implements OnInit, ControlValueAccessor, Validator {\n private readonly formBuilder = inject(FormBuilder);\n private readonly injector = inject(Injector);\n private readonly destroyRef = inject(DestroyRef);\n private readonly cdr = inject(ChangeDetectorRef);\n\n public placeholder = input<string>();\n public showTime = input(false);\n public showSeconds = input(false);\n public dateFormat = input<string>();\n public className = input<string>();\n public required = input(false, {transform: booleanAttribute});\n public disabled = input(false, {\n transform: booleanAttribute\n });\n\n private fromToFormControl!: FormGroup;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onValidatorChangeFn: any = () => {};\n\n public get fromCtrl() {\n return this.fromToFormControl.get('from') as FormControl;\n }\n\n public get toCtrl() {\n return this.fromToFormControl.get('to') as FormControl;\n }\n\n public get dateRangeCtrl() {\n return this.fromToFormControl.get('dateRange') as FormControl;\n }\n\n ngOnInit() {\n this.fromToFormControl = this.formBuilder.group({\n from: [null, Validators.required],\n to: [null, Validators.required],\n dateRange: [null, Validators.required]\n });\n\n effect(\n () => {\n this.setDisabledState(this.disabled());\n },\n {injector: this.injector}\n );\n\n merge(this.fromCtrl.valueChanges, this.toCtrl.valueChanges, this.dateRangeCtrl.valueChanges)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onValueChange());\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n registerOnValidatorChange?(fn: () => void): void {\n this.onValidatorChangeFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled && this.fromToFormControl?.enabled) {\n this.fromToFormControl.disable();\n } else if (!isDisabled && this.fromToFormControl?.disabled) {\n this.fromToFormControl.enable();\n }\n }\n\n onBlur() {\n this.onTouchedFn();\n }\n\n writeValue(obj: any): void {\n let startDate: Date | null = null;\n let endDate: Date | null = null;\n\n if (Array.isArray(obj)) {\n if (obj.length > 0 && (obj[0] instanceof Date || typeof obj[0] === 'string' || typeof obj[0] === 'number')) {\n startDate = new Date(obj[0]);\n }\n if (obj.length > 1 && (obj[1] instanceof Date || typeof obj[1] === 'string' || typeof obj[1] === 'number')) {\n endDate = new Date(obj[1]);\n }\n } else if (obj instanceof Date || typeof obj === 'string' || typeof obj === 'number') {\n startDate = new Date(obj);\n }\n\n if (this.showTime()) {\n this.fromCtrl.setValue(startDate, {emitEvent: false});\n this.toCtrl.setValue(endDate, {emitEvent: false});\n } else if (startDate || endDate) {\n this.dateRangeCtrl.setValue([startDate, endDate], {emitEvent: false});\n } else {\n this.dateRangeCtrl.setValue(null, {emitEvent: false});\n }\n }\n\n validate(): ValidationErrors | null {\n if (!this.required()) return null;\n\n if (this.showTime()) {\n if (this.fromCtrl.hasError('required') || this.toCtrl.hasError('required')) {\n return {\n required: true\n };\n }\n } else {\n if (this.dateRangeCtrl.hasError('required')) {\n return {\n required: true\n };\n }\n }\n\n return null;\n }\n\n private onValueChange() {\n if (this.showTime()) {\n const fromDate = this.fromCtrl.value as Date;\n const toDate = this.toCtrl.value as Date;\n this.onChangeFn([fromDate, toDate]);\n } else {\n const date = this.dateRangeCtrl.value as Date[];\n this.onChangeFn(date);\n }\n }\n}\n","@if (showTime()) {\n <div class=\"flex gap-2\">\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"fromCtrl\"\n [maxDate]=\"toCtrl.value\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n [showTime]=\"true\"\n [showSeconds]=\"showSeconds()\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"toCtrl\"\n [minDate]=\"fromCtrl.value\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n [showTime]=\"true\"\n [showSeconds]=\"showSeconds()\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n </div>\n} @else {\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"dateRangeCtrl\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n selectionMode=\"range\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ExistingProvider,\n Injector,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {Dropdown, DropdownChangeEvent, DropdownModule} from 'primeng/dropdown';\nimport {MultiSelect, MultiSelectBlurEvent, MultiSelectChangeEvent, MultiSelectModule} from 'primeng/multiselect';\nimport {combineLatest, map, of, switchMap, tap} from 'rxjs';\n\nimport {CommonsInternalError, ILookupDataProvider, LoggerService, toObservable as commonsToObservable, fromSubscribeError, getErrorLogLevel} from '@mediusinc/mng-commons/core';\n\nexport const DROPDOWN_VALUE_ACCESSOR: ExistingProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownComponent),\n multi: true\n};\n\n@Component({\n standalone: true,\n selector: 'mng-dropdown',\n templateUrl: './dropdown.component.html',\n providers: [DROPDOWN_VALUE_ACCESSOR],\n imports: [DropdownModule, MultiSelectModule, TranslateModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DropdownComponent implements ControlValueAccessor {\n private readonly logger = inject(LoggerService).create('DropdownComponent');\n\n private readonly injector = inject(Injector);\n private readonly destroyRef = inject(DestroyRef);\n private readonly translate = inject(TranslateService);\n\n public dataProvider = input<ILookupDataProvider<any, any, any, any>>();\n public options = input<Array<any>>([]);\n public optionsTrackProperty = input<string>();\n public optionsLabelPropertyInit = input<string | undefined>(undefined, {alias: 'optionsLabelProperty'});\n public optionsLabelTranslate = input(false, {transform: booleanAttribute});\n public optionsValuePropertyInput = input<string | undefined>(undefined, {alias: 'optionsValueProperty'});\n public optionsDisabledProperty = input<string>();\n public multiselect = input(false, {transform: booleanAttribute});\n public placeholder = input<string>();\n public showClear = input(false, {transform: booleanAttribute});\n public selectFirstItemInput = input(false, {transform: booleanAttribute, alias: 'selectFirstItem'});\n public className = input<string>();\n public dropdownClassName = input<string>();\n public changeValueOnBlur = input(false, {transform: booleanAttribute});\n public loadingInput = input(false, {alias: 'loading', transform: booleanAttribute});\n public disabledInput = input(false, {alias: 'disabled', transform: booleanAttribute});\n public appendTo = input<string | null>('body');\n\n public valueChange = output<any>();\n public blur = output<Event>();\n\n public primeDropdown = viewChild(Dropdown);\n public primeMultiselect = viewChild(MultiSelect);\n\n private _value?: any | null;\n public ngModelValue = signal<undefined | null | any>(undefined);\n\n private _loading = signal(false);\n private _disabled = signal(false);\n public loading = computed(() => this.loadingInput() || this._loading());\n public disabled = computed(() => this.disabledInput() || this._disabled());\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedFn: any = () => {};\n\n private dataProviderService: any = null;\n public items = signal<Array<any>>([]);\n private firstTimeSettingItems = true;\n\n private isDropdownPanelShown = false;\n\n public optionsLabelProperty = computed(() => {\n if (this.optionsLabelTranslate()) {\n // setup translation properties\n if (this.optionsLabelPropertyInit()) {\n return `${this.optionsLabelPropertyInit()}_i18n`;\n } else if (!this.optionsLabelPropertyInit() && !this.optionsValuePropertyInput()) {\n return 'title_i18n';\n } else {\n throw new CommonsInternalError(`Invalid use with value (${this.optionsValuePropertyInput()}) and label (${this.optionsLabelPropertyInit()}) property setup.`, {\n name: 'DropdownComponentError'\n });\n }\n }\n\n return this.optionsLabelPropertyInit();\n });\n public optionsValueProperty = computed(() => {\n if (this.optionsLabelTranslate()) {\n // setup translation properties\n if (!this.optionsLabelPropertyInit() && !this.optionsValuePropertyInput()) {\n return 'value';\n } else if (!this.optionsLabelPropertyInit()) {\n throw new CommonsInternalError(`Invalid use with value (${this.optionsValuePropertyInput()}) and label (${this.optionsLabelPropertyInit()}) property setup.`, {\n name: 'DropdownComponentError'\n });\n }\n }\n\n return this.optionsValuePropertyInput();\n });\n\n public get value() {\n return this._value;\n }\n\n constructor() {\n effect(() => {\n this._value = this.ngModelValue();\n });\n\n combineLatest([toObservable(this.dataProvider), toObservable(this.options)])\n .pipe(\n tap(() => this._loading.set(true)),\n switchMap(([dataProvider, options]) => {\n if (dataProvider) {\n this.dataProviderService = dataProvider.serviceType ? this.injector.get<any>(dataProvider.serviceType) : null;\n return commonsToObservable(dataProvider.lookup({limit: 50}, this.dataProviderService));\n } else {\n return of(options ?? []);\n }\n }),\n switchMap(items => this.transformItems(items)),\n takeUntilDestroyed()\n )\n .subscribe({\n next: res => {\n this.items.set(res);\n this._loading.set(false);\n this.selectFirstItem();\n this.adjustValueOnItemsValuePropertyTypeMismatch();\n },\n error: err => {\n this.items.set([]);\n this._loading.set(false);\n const error = fromSubscribeError(err, 'DropdownComponentError');\n this.logger.log(error, getErrorLogLevel(error));\n }\n });\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n setTimeout(() => this._disabled.set(isDisabled));\n }\n\n writeValue(value: any): void {\n // this check is required because angular in some cases writes null value\n // before value accessor is initialized\n // if form control value is of primitive type (ex: enums) then write value is not called (we think)\n if (value == null && this._value == null) {\n return;\n }\n // write value immediately - it is important so that first select is not triggered!\n this._value = value;\n this.adjustValueOnItemsValuePropertyTypeMismatch(true);\n }\n\n onDropdownBlur(event: Event) {\n if (this.isDropdownPanelShown) {\n // ignore this blur event\n return;\n }\n const primeDropdown = this.primeDropdown();\n if (this.changeValueOnBlur() && primeDropdown) {\n this.propagateValueChange(primeDropdown.value);\n }\n this.onTouchedFn();\n this.blur.emit(event);\n }\n\n onDropdownChange(event: DropdownChangeEvent) {\n if (!this.changeValueOnBlur()) {\n this.propagateValueChange(event.value);\n }\n }\n\n onDropdownPanelShow() {\n this.isDropdownPanelShown = true;\n }\n\n onDropdownPanelHide() {\n this.isDropdownPanelShown = false;\n }\n\n onMultiselectChange(event: MultiSelectChangeEvent) {\n if (!this.changeValueOnBlur()) {\n this.propagateValueChange(event.value);\n }\n }\n\n onMultiselectBlur(event: MultiSelectBlurEvent) {\n this.onTouchedFn();\n this.blur.emit(event.originalEvent);\n }\n\n onMultiselectPanelHide() {\n const primeMultiselect = this.primeMultiselect();\n if (this.changeValueOnBlur() && primeMultiselect) {\n this.propagateValueChange(primeMultiselect.value);\n }\n }\n\n private selectFirstItem() {\n if (this.firstTimeSettingItems && this.items().length > 0 && this.selectFirstItemInput() && !this._value) {\n const optionsValueProperty = this.optionsValueProperty();\n const value = optionsValueProperty ? this.items()[0][optionsValueProperty] : this.items()[0];\n this.ngModelValue.set(value); // set to write for input\n this.firstTimeSettingItems = false;\n this.propagateValueChange(value);\n }\n }\n\n private transformItems(items: any[]) {\n if (this.optionsLabelTranslate()) {\n const translationKeys: string[] = items.map(\n item => (typeof item === 'object' && this.optionsLabelPropertyInit() ? (item[this.optionsLabelPropertyInit() as keyof object] as string) : item) as string\n );\n\n if (translationKeys.length === 0) {\n return of([]);\n }\n\n return this.translate.stream(translationKeys).pipe(\n map(translations =>\n items.map(item => {\n if (typeof item === 'object' && this.optionsLabelPropertyInit()) {\n const label = item[this.optionsLabelPropertyInit() as keyof object] as string;\n const translation: string | undefined = translations[label];\n if (translation) {\n return {...item, [this.optionsLabelProperty()!]: translation};\n }\n return {...item};\n } else {\n const translation = translations[item];\n return {\n [this.optionsLabelProperty()!]: translation ?? item,\n [this.optionsValueProperty()!]: item\n };\n }\n })\n )\n );\n } else {\n return of(items);\n }\n }\n\n private adjustValueOnItemsValuePropertyTypeMismatch(setNgModelValue = false) {\n const optionsValueProp = this.optionsValueProperty();\n if (optionsValueProp && this._value != null && this.items().length > 0 && this.items()[0][optionsValueProp] != null) {\n if (Array.isArray(this._value)) {\n if (this._value.length > 0 && typeof this.items()[0][optionsValueProp] !== typeof this._value[0]) {\n const stringValues = this._value.map(v => v.toString());\n const selectedOptions = this.items().filter(i => i[optionsValueProp] != null && stringValues.includes(i[optionsValueProp].toString()));\n if (selectedOptions.length > 0) {\n this.ngModelValue.set(selectedOptions.map(i => i[optionsValueProp]));\n return;\n }\n }\n } else if (typeof this.items()[0][optionsValueProp] !== typeof this._value) {\n // types dont match, search and compare by string\n const selectedOption = this.items().find(i => i[optionsValueProp] != null && i[optionsValueProp].toString() === this._value.toString());\n if (selectedOption) {\n this.ngModelValue.set(selectedOption[optionsValueProp]);\n return;\n }\n }\n }\n\n if (setNgModelValue) {\n // force write to ngModelValue anyway\n this.ngModelValue.set(this._value);\n }\n }\n\n private propagateValueChange(value: any) {\n this._value = value;\n this.onChangeFn(value);\n this.valueChange.emit(value);\n }\n}\n","@if (!multiselect()) {\n <p-dropdown\n [ngModel]=\"ngModelValue()\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [showClear]=\"showClear()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [disabled]=\"disabled()\"\n (onBlur)=\"onDropdownBlur($event)\"\n (onChange)=\"onDropdownChange($event)\"\n (onShow)=\"onDropdownPanelShow()\"\n (onHide)=\"onDropdownPanelHide()\"\n [dropdownIcon]=\"loading() ? 'pi pi-spinner pi-spin' : 'pi pi-chevron-down'\"\n [appendTo]=\"appendTo()\">\n </p-dropdown>\n} @else {\n <p-multiSelect\n [ngModel]=\"ngModelValue()\"\n [maxSelectedLabels]=\"1\"\n [selectedItemsLabel]=\"'mngDropdown.multiselectOverMaxDisplayLimit' | translate\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [filter]=\"true\"\n [showToggleAll]=\"false\"\n [disabled]=\"disabled()\"\n (onChange)=\"onMultiselectChange($event)\"\n (onPanelHide)=\"onMultiselectPanelHide()\"\n (onBlur)=\"onMultiselectBlur($event)\"\n appendTo=\"body\">\n </p-multiSelect>\n}\n","import {NgClass} from '@angular/common';\nimport {ChangeDetectionStrategy, ChangeDetectorRef, Component, ExistingProvider, booleanAttribute, effect, forwardRef, inject, input, output} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n Validators\n} from '@angular/forms';\n\nimport {InputNumberModule} from 'primeng/inputnumber';\nimport {merge} from 'rxjs';\n\nimport {Nullable} from '@mediusinc/mng-commons/core';\n\nexport const NUMBER_RANGE_VALUE_ACCESSOR: ExistingProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberRangeComponent),\n multi: true\n};\n\nexport const NUMBER_RANGE_VALIDATOR: ExistingProvider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberRangeComponent),\n multi: true\n};\n\n@Component({\n standalone: true,\n selector: 'mng-number-range',\n templateUrl: './number-range.component.html',\n providers: [NUMBER_RANGE_VALUE_ACCESSOR, NUMBER_RANGE_VALIDATOR],\n imports: [FormsModule, ReactiveFormsModule, InputNumberModule, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NumberRangeComponent implements ControlValueAccessor, Validator {\n private readonly formBuilder = inject(FormBuilder);\n private readonly cdr = inject(ChangeDetectorRef);\n\n public placeholder = input<string>();\n public useGrouping = input<boolean>(true);\n public minFractionDigits = input<number>();\n public maxFractionDigits = input<number>();\n public required = input(false, {transform: booleanAttribute});\n public disabled = input(false, {\n transform: booleanAttribute\n });\n public keyDown = output<KeyboardEvent>();\n\n private fromToFormControl: FormGroup = this.formBuilder.group({\n from: [null, Validators.required],\n to: [null, Validators.required]\n });\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedFn: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onValidatorChangeFn: any = () => {};\n\n public get fromCtrl() {\n return this.fromToFormControl.get('from') as FormControl;\n }\n\n public get toCtrl() {\n return this.fromToFormControl.get('to') as FormControl;\n }\n\n constructor() {\n effect(() => {\n this.setDisabledState(this.disabled());\n });\n\n merge(this.fromCtrl.valueChanges, this.toCtrl.valueChanges)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.onValueChange());\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled && this.fromToFormControl?.enabled) {\n this.fromToFormControl.disable();\n } else if (!isDisabled && this.fromToFormControl?.disabled) {\n this.fromToFormControl.enable();\n }\n }\n\n writeValue(obj: any): void {\n let start: number | null = null;\n let end: number | null = null;\n\n if (Array.isArray(obj)) {\n if (obj.length > 0 && (typeof obj[0] === 'string' || typeof obj[0] === 'number')) {\n start = this.toNumber(obj[0]);\n }\n if (obj.length > 1 && (typeof obj[1] === 'string' || typeof obj[1] === 'number')) {\n end = this.toNumber(obj[1]);\n }\n } else if (typeof obj === 'string' || typeof obj === 'number') {\n start = this.toNumber(obj);\n }\n\n this.fromCtrl.setValue(start, {emitEvent: false});\n this.toCtrl.setValue(end, {emitEvent: false});\n }\n\n validate(): ValidationErrors | null {\n if (!this.required()) return null;\n\n if (this.fromCtrl.hasError('required') || this.toCtrl.hasError('required')) {\n return {\n required: true\n };\n }\n\n return null;\n }\n\n onKeyDown(event: KeyboardEvent) {\n this.keyDown.emit(event);\n }\n\n onBlur() {\n this.onTouchedFn();\n }\n\n private toNumber(val: Nullable<string | number>) {\n if (val == null || typeof val === 'number') {\n return val ?? null;\n }\n val = val.replaceAll(',', '');\n const numVal = parseFloat(val);\n return isNaN(numVal) ? null : numVal;\n }\n\n private onValueChange() {\n const fromDate = this.fromCtrl.value as Date;\n const toDate = this.toCtrl.value as Date;\n this.onChangeFn([fromDate, toDate]);\n }\n}\n","<div class=\"flex gap-2\">\n <p-inputNumber\n [formControl]=\"fromCtrl\"\n [placeholder]=\"placeholder()\"\n [useGrouping]=\"useGrouping()\"\n [minFractionDigits]=\"minFractionDigits()\"\n [maxFractionDigits]=\"maxFractionDigits()\"\n [max]=\"toCtrl.value\"\n (onKeyDown)=\"onKeyDown($event)\"\n (onBlur)=\"onBlur()\" />\n <p-inputNumber\n [formControl]=\"toCtrl\"\n [placeholder]=\"placeholder()\"\n [useGrouping]=\"useGrouping()\"\n [minFractionDigits]=\"minFractionDigits()\"\n [maxFractionDigits]=\"maxFractionDigits()\"\n [min]=\"fromCtrl.value\"\n (onKeyDown)=\"onKeyDown($event)\"\n (onBlur)=\"onBlur()\" />\n</div>\n","import {Directive, ElementRef, inject, input} from '@angular/core';\nimport {NgControl} from '@angular/forms';\n\nimport {InputTrimType} from '@mediusinc/mng-commons/form/api';\n\n@Directive({\n standalone: true,\n selector: '[mngInputTrim]',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {'(blur)': 'onBlur()'}\n})\nexport class InputTrimDirective {\n public mngInputTrim = input<InputTrimType>();\n\n private readonly el = inject(ElementRef);\n private readonly ngControl = inject(NgControl, {optional: true});\n\n onBlur() {\n const control = this.ngControl?.control;\n const value = control ? control.value : this.el.nativeElement.value;\n let trimmedValue: string;\n\n if (typeof value === 'string') {\n trimmedValue = this.getTrimmedValue(value);\n\n if (trimmedValue != value) {\n if (control) {\n control.setValue(trimmedValue, {emitEvent: false});\n } else {\n this.el.nativeElement.value = trimmedValue;\n }\n }\n }\n }\n\n private getTrimmedValue(value: string): string {\n switch (this.mngInputTrim()) {\n case 'both':\n return value.trim();\n case 'start':\n return value.trimStart();\n case 'end':\n return value.trimEnd();\n default:\n return value;\n }\n }\n}\n","// components\nexport * from './components/autocomplete/autocomplete.component';\nexport * from './components/date-range/date-range.component';\nexport * from './components/dropdown/dropdown.component';\nexport * from './components/number-range/number-range.component';\n\n// directives\nexport * from './directives/input-trim.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","toObservable","commonsToObservable","map","i2","i4"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediusinc-mng-commons-model.mjs","sources":["../../model/src/data-providers/base-from-type-data-provider.factory.ts","../../model/src/descriptors/enum.descriptor.ts","../../model/src/helpers/model.ts","../../model/src/descriptors/type.descriptor.ts","../../model/src/descriptors/model.descriptor.ts","../../model/src/helpers/i18n.ts","../../model/src/index.ts","../../model/src/mediusinc-mng-commons-model.ts"],"sourcesContent":["import {ClassType, DataProviderInst, ServiceClassType} from '@mediusinc/mng-commons/core';\n\nimport {ModelDescriptor} from '../descriptors/model.descriptor';\nimport {TypeDescriptor} from '../descriptors/type.descriptor';\n\nexport function dataProvider<Model>(): DataProviderInst<Model, undefined, undefined, undefined>;\nexport function dataProvider<Model>(type: TypeDescriptor<Model>): DataProviderInst<Model, undefined, undefined, undefined>;\nexport function dataProvider<Model, Service = any>(\n type: TypeDescriptor<Model>,\n serviceType: ServiceClassType<Service>\n): DataProviderInst<Model, Service, undefined, ServiceClassType<Service>>;\nexport function dataProvider<Model, Service = any, ServiceClass = ServiceClassType<Service>>(type?: TypeDescriptor<Model>, serviceType?: ServiceClass) {\n return new DataProviderInst<Model, Service, undefined, ServiceClass>(undefined, serviceType as ServiceClass);\n}\n\nexport function dataProviderFromModel<Model, ModelClass = ClassType<Model>>(model: ModelDescriptor<Model, ModelClass>): DataProviderInst<Model, undefined, ModelClass, undefined>;\nexport function dataProviderFromModel<Model, Service = any, ModelClass = ClassType<Model>>(\n model: ModelDescriptor<Model, ModelClass>,\n ServiceClass: ServiceClassType<Service>\n): DataProviderInst<Model, Service, ModelClass, ServiceClassType<Service>>;\nexport function dataProviderFromModel<Model, Service = any, ModelClass = ClassType<Model>, ServiceClass = ServiceClassType<Service>>(\n model: ModelDescriptor<Model, ModelClass>,\n serviceType?: ServiceClass\n) {\n return new DataProviderInst<Model, Service, ClassType<Model>, ServiceClass>(model.type as ClassType<Model>, serviceType as ServiceClass);\n}\n","import {EnumType, findReflectEnumName} from '@mediusinc/mng-commons/core';\n\nexport class EnumDescriptor<Enum> {\n private readonly _value: Enum;\n private readonly _type: EnumType;\n private readonly _nameAsValue;\n private readonly _i18nBaseKey: string | null;\n\n public constructor(value: Enum, type: EnumType, i18nBaseKey?: string | null, nameAsValue = false) {\n this._value = value;\n this._type = type;\n this._nameAsValue = nameAsValue;\n\n if (typeof i18nBaseKey === 'undefined') {\n i18nBaseKey = findReflectEnumName(type);\n }\n this._i18nBaseKey = i18nBaseKey;\n }\n\n public get type() {\n return this._type;\n }\n\n public get i18nBaseKey() {\n return this._i18nBaseKey;\n }\n\n public get nameAsValue() {\n return this._nameAsValue;\n }\n}\n\nexport function enumModel<Enum>(value: Enum, type: EnumType, i18nBaseKey: string | undefined | null = null, nameAsValue = false) {\n return new EnumDescriptor<Enum>(value, type, i18nBaseKey, nameAsValue);\n}\n\nexport function enumModelGeneric<Enum = any>(type: EnumType, i18nBaseKey: string | undefined | null = null, nameAsValue = false) {\n return new EnumDescriptor<Enum>(undefined as Enum, type, i18nBaseKey, nameAsValue);\n}\n","import {ClassAttributeDef, ClassType, ILookupDescriptor, TypeRegistry} from '@mediusinc/mng-commons/core';\n\nexport function findClassIdAttribute<T>(classType?: ClassType<T>): string | null {\n if (!classType) return null;\n\n const attrDef = getClassAttributeDef(classType);\n if (!attrDef) {\n return null;\n }\n\n let idAttribute = findAttributeByTypeAndName(attrDef, ['string', 'number'], 'id', 'uuid', 'code', 'sifra');\n if (!idAttribute) {\n // if no id or code, take the first attribute\n idAttribute = attrDef[0];\n }\n\n return idAttribute?.name ?? null;\n}\n\nexport function findClassTitleAttribute<T>(classType?: ClassType<T>): string | null {\n if (!classType) return null;\n\n const attrDef = getClassAttributeDef(classType);\n if (!attrDef) {\n return null;\n }\n\n let titleAttribute = findAttributeByTypeAndName(attrDef, ['string'], 'name', 'ime', 'title', 'naziv');\n if (!titleAttribute) {\n // if no name or title, take the first attribute\n titleAttribute = attrDef[0];\n }\n\n return titleAttribute?.name ?? null;\n}\n\nexport function getClassAttributeDef<T>(classType?: ClassType<T>) {\n if (!classType) return null;\n const attrDefByFn = (classType as any).getAttributeTypeMap?.() as Array<ClassAttributeDef> | undefined;\n if (attrDefByFn) return attrDefByFn;\n const attrDefByProp = (classType as any).attributeTypeMap as Array<ClassAttributeDef> | undefined;\n if (attrDefByProp) return attrDefByProp;\n const attrByObjSer = TypeRegistry.get().findAttributesDefinitionByClassType(classType);\n if (attrByObjSer) return attrByObjSer;\n return null;\n}\n\nfunction findAttributeByTypeAndName(attributes: ClassAttributeDef[], types: string[], ...names: string[]): ClassAttributeDef | null {\n for (const name of names) {\n const attribute = attributes.find(a => types.some(t => t === a.type) && a.name === name);\n if (attribute) {\n return attribute;\n }\n }\n return null;\n}\n\nexport function trySetLookupItemsProperties<T>(lookup: ILookupDescriptor<T>, idAsTrack = true) {\n if (lookup.dataProvider.classType) {\n if (!lookup.optionsValueProperty && !lookup.optionsTrackProperty) {\n const idProperty = findClassIdAttribute(lookup.dataProvider.classType) ?? undefined;\n if (idProperty && !lookup.optionsValueProperty && !lookup.optionsTrackProperty) {\n if (idAsTrack) {\n lookup.withOptionsTrackPropertyUnsafe(idProperty);\n }\n }\n }\n if (!lookup.optionsLabelProperty) {\n const labelProperty = findClassTitleAttribute(lookup.dataProvider.classType);\n if (labelProperty) {\n lookup.withOptionsLabelPropertyUnsafe(labelProperty);\n }\n }\n }\n}\n","import {ClassType} from '@mediusinc/mng-commons/core';\n\nexport class TypeDescriptor<Type> {\n private readonly _classType?: ClassType<Type>;\n\n public constructor(classType?: ClassType<Type>) {\n this._classType = classType;\n }\n\n public get classType() {\n return this._classType;\n }\n}\n\nexport function type<Type>(): TypeDescriptor<Type> {\n return new TypeDescriptor<Type>();\n}\n\nexport function typeClass<Type>(type: ClassType<Type>): TypeDescriptor<Type> {\n return new TypeDescriptor<Type>(type);\n}\n","import {ClassOptType, ClassType, CommonsInternalError, IModelDescriptor, findReflectTypeName} from '@mediusinc/mng-commons/core';\n\nimport {findClassIdAttribute, findClassTitleAttribute} from '../helpers/model';\nimport {TypeDescriptor} from './type.descriptor';\n\nexport class ModelDescriptor<Model, ModelClass = ClassOptType<Model>> implements IModelDescriptor<Model, ModelClass> {\n private readonly _type: ModelClass;\n private _i18nBaseKey: string;\n private _idProperty?: string;\n private _titleProperty?: string | ((item: Model) => string);\n\n public constructor(type: ModelClass, idProperty?: string, titleProperty?: string | ((item: Model) => string), i18nBaseKey?: string | ClassType<any>) {\n this._type = type;\n this._idProperty = idProperty;\n this._titleProperty = titleProperty;\n if (!this._idProperty && type) {\n this._idProperty = findClassIdAttribute(type as unknown as ClassType<Model>) ?? undefined;\n }\n if (!this._titleProperty && type) {\n this._titleProperty = findClassTitleAttribute(type as unknown as ClassType<Model>) ?? undefined;\n }\n this._i18nBaseKey =\n (typeof i18nBaseKey === 'string' || typeof i18nBaseKey === 'undefined' ? i18nBaseKey : findReflectTypeName(i18nBaseKey)) ??\n findReflectTypeName(type as ClassType<Model>) ??\n '';\n }\n\n /**\n * @deprecated Use standalone {model()} instead.\n */\n public static create<Model>(idProperty?: keyof Model, titleProperty?: keyof Model, i18nBaseKey?: string | ClassType<unknown>): ModelDescriptor<Model, undefined> {\n return new ModelDescriptor(undefined, idProperty as string, titleProperty as string, i18nBaseKey);\n }\n\n /**\n * @deprecated Use standalone {model()} instead.\n */\n public static fromClass<Model>(\n type: ClassType<Model>,\n idProperty?: keyof Model,\n titleProperty?: keyof Model,\n i18nBaseKey?: string | ClassType<unknown>\n ): ModelDescriptor<Model, ClassType<Model>> {\n return new ModelDescriptor(type, idProperty as string, titleProperty as string, i18nBaseKey);\n }\n\n public get type() {\n return this._type;\n }\n\n /**\n * @deprecated Use `i18nBaseKey` instead.\n */\n public get typeName() {\n return this.i18nBaseKey;\n }\n\n public get i18nBaseKey() {\n return this._i18nBaseKey;\n }\n\n public get idProperty() {\n return this._idProperty;\n }\n\n public get titleProperty() {\n return this._titleProperty;\n }\n\n public withIdProperty(property: keyof Model): this {\n this._idProperty = property as string;\n return this;\n }\n\n public withIdPropertyUnsafe(property: string): this {\n this._idProperty = property;\n return this;\n }\n\n public withTitleProperty(property: keyof Model): this {\n this._titleProperty = property as string;\n return this;\n }\n\n public withTitlePropertyUnsafe(property: string): this {\n this._titleProperty = property;\n return this;\n }\n\n public withI18nBase(base: ClassType<any> | string): this {\n if (typeof base !== 'string') {\n const typeName = findReflectTypeName(base);\n if (!typeName) {\n throw new CommonsInternalError(`Could not find define i18nBaseKey for ${base} on model ${this.i18nBaseKey}`);\n }\n base = typeName;\n }\n this._i18nBaseKey = base;\n return this;\n }\n\n public copy(): ModelDescriptor<Model, ModelClass> {\n return new ModelDescriptor<Model, ModelClass>(this._type, this._idProperty, this._titleProperty, this._i18nBaseKey);\n }\n}\n\nexport type ModelDescriptorCreateOpts<Model> = {\n id?: keyof Model;\n title?: keyof Model | ((item: Model) => string);\n i18nBase?: string | ClassType<any>;\n};\n\nexport function model<Model>(): ModelDescriptor<Model, undefined>;\nexport function model<Model>(opts: ModelDescriptorCreateOpts<Model>): ModelDescriptor<Model, undefined>;\nexport function model<Model>(type: TypeDescriptor<Model>, opts?: ModelDescriptorCreateOpts<Model>): ModelDescriptor<Model, undefined>;\nexport function model<Model>(clazz: ClassType<Model>, opts?: ModelDescriptorCreateOpts<Model>): ModelDescriptor<Model, ClassType<Model>>;\nexport function model<Model>(typeOrClassOrOpts?: ClassType<Model> | TypeDescriptor<Model> | ModelDescriptorCreateOpts<Model>, opts?: ModelDescriptorCreateOpts<Model>) {\n if (typeOrClassOrOpts == null) {\n return new ModelDescriptor<Model, undefined>(undefined);\n } else if (typeOrClassOrOpts instanceof TypeDescriptor) {\n return new ModelDescriptor<Model, undefined>(undefined, opts?.id as string, opts?.title as string, opts?.i18nBase);\n } else if (typeof typeOrClassOrOpts === 'function') {\n return new ModelDescriptor<Model, ClassType<Model>>(typeOrClassOrOpts as ClassType<Model>, opts?.id as string, opts?.title as string, opts?.i18nBase);\n } else {\n const typeOrClassAsOpts = typeOrClassOrOpts as ModelDescriptorCreateOpts<Model>;\n return new ModelDescriptor<Model, undefined>(undefined, typeOrClassAsOpts?.id as string, typeOrClassAsOpts?.title as string, typeOrClassAsOpts?.i18nBase);\n }\n}\n","import {TranslateService} from '@ngx-translate/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {KeyOfType, getI18n, getI18nTypeKeyBasePath, getI18nTypeParams, getI18nTypeParamsAsync} from '@mediusinc/mng-commons/core';\n\nimport {ModelDescriptor} from '../descriptors/model.descriptor';\n\nexport function getI18nForModel(\n translate: TranslateService,\n model: ModelDescriptor<any>,\n keyPath: string,\n customKey?: string,\n item?: any,\n fallbackKey?: string,\n params?: any\n): string | null {\n const keys = getKeysByPriority(model, keyPath, customKey, fallbackKey);\n const i18nParams = getI18nModelParams(translate, model, item, params);\n return getI18n(translate, i18nParams, ...keys);\n}\n\nexport function getI18nModelParams(translate: TranslateService, model?: ModelDescriptor<any>, item?: any, params: any = {}): any {\n const i18nParams = getI18nTypeParams(translate, model?.i18nBaseKey, item, params);\n return populateI18nModelParams(model?.idProperty, model?.titleProperty, item, i18nParams);\n}\n\nexport function getI18nModelParamsAsync(translate: TranslateService, model?: ModelDescriptor<any>, item?: any, params: any = {}): Observable<any> {\n return getI18nTypeParamsAsync(translate, model?.i18nBaseKey, item, params).pipe(\n map(i18nParams => populateI18nModelParams(model?.idProperty, model?.titleProperty, item, i18nParams))\n );\n}\n\nexport function populateI18nModelParams(idProperty?: KeyOfType, titleProperty?: KeyOfType | ((item: any) => string), item?: any, params: any = {}): any {\n const paramsRes = {...params, itemId: '', itemTitle: ''};\n if (item) {\n if (idProperty && item[idProperty]) {\n paramsRes.itemId = item[idProperty];\n }\n if (typeof titleProperty === 'function') {\n paramsRes.itemTitle = titleProperty(item);\n } else if (titleProperty && item[titleProperty]) {\n paramsRes.itemTitle = item[titleProperty];\n }\n }\n return paramsRes;\n}\n\nfunction getKeysByPriority(model: ModelDescriptor<any>, keyPath: string, customKey?: string, fallbackKey?: string) {\n const keys = [];\n if (customKey) {\n keys.push(customKey);\n }\n const modelActionKey = getI18nTypeKeyBasePath(model.i18nBaseKey, ...keyPath);\n keys.push(modelActionKey);\n if (fallbackKey) {\n keys.push(fallbackKey);\n }\n return keys;\n}\n","// data providers\nexport * from './data-providers/base-from-type-data-provider.factory';\n\n// descriptors\nexport * from './descriptors/enum.descriptor';\nexport * from './descriptors/model.descriptor';\nexport * from './descriptors/type.descriptor';\n\n// helpers\nexport * from './helpers/i18n';\nexport * from './helpers/model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mediusinc-mng-commons-model.mjs","sources":["../../model/src/data-providers/base-from-type-data-provider.factory.ts","../../model/src/descriptors/enum.descriptor.ts","../../model/src/helpers/model.ts","../../model/src/descriptors/type.descriptor.ts","../../model/src/descriptors/model.descriptor.ts","../../model/src/helpers/i18n.ts","../../model/src/index.ts","../../model/src/mediusinc-mng-commons-model.ts"],"sourcesContent":["import {ClassType, DataProviderInst, ServiceClassType} from '@mediusinc/mng-commons/core';\n\nimport {ModelDescriptor} from '../descriptors/model.descriptor';\nimport {TypeDescriptor} from '../descriptors/type.descriptor';\n\nexport function dataProvider<Model>(): DataProviderInst<Model, undefined, undefined, undefined>;\nexport function dataProvider<Model>(type: TypeDescriptor<Model>): DataProviderInst<Model, undefined, undefined, undefined>;\nexport function dataProvider<Model, Service = any>(\n type: TypeDescriptor<Model>,\n serviceType: ServiceClassType<Service>\n): DataProviderInst<Model, Service, undefined, ServiceClassType<Service>>;\nexport function dataProvider<Model, Service = any, ServiceClass = ServiceClassType<Service>>(type?: TypeDescriptor<Model>, serviceType?: ServiceClass) {\n return new DataProviderInst<Model, Service, undefined, ServiceClass>(undefined, serviceType as ServiceClass);\n}\n\nexport function dataProviderFromModel<Model, ModelClass = ClassType<Model>>(model: ModelDescriptor<Model, ModelClass>): DataProviderInst<Model, undefined, ModelClass, undefined>;\nexport function dataProviderFromModel<Model, Service = any, ModelClass = ClassType<Model>>(\n model: ModelDescriptor<Model, ModelClass>,\n ServiceClass: ServiceClassType<Service>\n): DataProviderInst<Model, Service, ModelClass, ServiceClassType<Service>>;\nexport function dataProviderFromModel<Model, Service = any, ModelClass = ClassType<Model>, ServiceClass = ServiceClassType<Service>>(\n model: ModelDescriptor<Model, ModelClass>,\n serviceType?: ServiceClass\n) {\n return new DataProviderInst<Model, Service, ClassType<Model>, ServiceClass>(model.type as ClassType<Model>, serviceType as ServiceClass);\n}\n","import {EnumType, findReflectEnumName} from '@mediusinc/mng-commons/core';\n\nexport class EnumDescriptor<Enum> {\n private readonly _value: Enum;\n private readonly _type: EnumType;\n private readonly _nameAsValue;\n private readonly _i18nBaseKey: string | null;\n\n public constructor(value: Enum, type: EnumType, i18nBaseKey?: string | null, nameAsValue = false) {\n this._value = value;\n this._type = type;\n this._nameAsValue = nameAsValue;\n\n if (typeof i18nBaseKey === 'undefined') {\n i18nBaseKey = findReflectEnumName(type);\n }\n this._i18nBaseKey = i18nBaseKey;\n }\n\n public get type() {\n return this._type;\n }\n\n public get i18nBaseKey() {\n return this._i18nBaseKey;\n }\n\n public get nameAsValue() {\n return this._nameAsValue;\n }\n}\n\nexport function enumModel<Enum>(value: Enum, type: EnumType, i18nBaseKey: string | undefined | null = null, nameAsValue = false) {\n return new EnumDescriptor<Enum>(value, type, i18nBaseKey, nameAsValue);\n}\n\nexport function enumModelGeneric<Enum = any>(type: EnumType, i18nBaseKey: string | undefined | null = null, nameAsValue = false) {\n return new EnumDescriptor<Enum>(undefined as Enum, type, i18nBaseKey, nameAsValue);\n}\n","import {ClassAttributeDef, ClassType, ILookupDescriptor, TypeRegistry} from '@mediusinc/mng-commons/core';\n\nexport function findClassIdAttribute<T>(classType?: ClassType<T>): string | null {\n if (!classType) return null;\n\n const attrDef = getClassAttributeDef(classType);\n if (!attrDef) {\n return null;\n }\n\n let idAttribute = findAttributeByTypeAndName(attrDef, ['string', 'number'], 'id', 'uuid', 'code', 'sifra');\n if (!idAttribute) {\n // if no id or code, take the first attribute\n idAttribute = attrDef[0];\n }\n\n return idAttribute?.name ?? null;\n}\n\nexport function findClassTitleAttribute<T>(classType?: ClassType<T>): string | null {\n if (!classType) return null;\n\n const attrDef = getClassAttributeDef(classType);\n if (!attrDef) {\n return null;\n }\n\n let titleAttribute = findAttributeByTypeAndName(attrDef, ['string'], 'name', 'ime', 'title', 'naziv');\n if (!titleAttribute) {\n // if no name or title, take the first attribute\n titleAttribute = attrDef[0];\n }\n\n return titleAttribute?.name ?? null;\n}\n\nexport function getClassAttributeDef<T>(classType?: ClassType<T>) {\n if (!classType) return null;\n const attrDefByFn = (classType as any).getAttributeTypeMap?.() as Array<ClassAttributeDef> | undefined;\n if (attrDefByFn) return attrDefByFn;\n const attrDefByProp = (classType as any).attributeTypeMap as Array<ClassAttributeDef> | undefined;\n if (attrDefByProp) return attrDefByProp;\n const attrByObjSer = TypeRegistry.get().findAttributesDefinitionByClassType(classType);\n if (attrByObjSer) return attrByObjSer;\n return null;\n}\n\nfunction findAttributeByTypeAndName(attributes: ClassAttributeDef[], types: string[], ...names: string[]): ClassAttributeDef | null {\n for (const name of names) {\n const attribute = attributes.find(a => types.some(t => t === a.type) && a.name === name);\n if (attribute) {\n return attribute;\n }\n }\n return null;\n}\n\nexport function trySetLookupItemsProperties<Model>(lookup: ILookupDescriptor<Model, any, any, any>, idAsTrack = true) {\n if (lookup.dataProvider.classType) {\n if (!lookup.optionsValueProperty && !lookup.optionsTrackProperty) {\n const idProperty = findClassIdAttribute(lookup.dataProvider.classType) ?? undefined;\n if (idProperty && !lookup.optionsValueProperty && !lookup.optionsTrackProperty) {\n if (idAsTrack) {\n lookup.withOptionsTrackPropertyUnsafe(idProperty);\n }\n }\n }\n if (!lookup.optionsLabelProperty) {\n const labelProperty = findClassTitleAttribute(lookup.dataProvider.classType);\n if (labelProperty) {\n lookup.withOptionsLabelPropertyUnsafe(labelProperty);\n }\n }\n }\n}\n","import {ClassType} from '@mediusinc/mng-commons/core';\n\nexport class TypeDescriptor<Type> {\n private readonly _classType?: ClassType<Type>;\n\n public constructor(classType?: ClassType<Type>) {\n this._classType = classType;\n }\n\n public get classType() {\n return this._classType;\n }\n}\n\nexport function type<Type>(): TypeDescriptor<Type> {\n return new TypeDescriptor<Type>();\n}\n\nexport function typeClass<Type>(type: ClassType<Type>): TypeDescriptor<Type> {\n return new TypeDescriptor<Type>(type);\n}\n","import {ClassOptType, ClassType, CommonsInternalError, IModelDescriptor, findReflectTypeName} from '@mediusinc/mng-commons/core';\n\nimport {findClassIdAttribute, findClassTitleAttribute} from '../helpers/model';\nimport {TypeDescriptor} from './type.descriptor';\n\nexport class ModelDescriptor<Model, ModelClass = ClassOptType<Model>> implements IModelDescriptor<Model, ModelClass> {\n private readonly _type: ModelClass;\n private _i18nBaseKey: string;\n private _idProperty?: string;\n private _titleProperty?: string | ((item: Model) => string);\n\n public constructor(type: ModelClass, idProperty?: string, titleProperty?: string | ((item: Model) => string), i18nBaseKey?: string | ClassType<any>) {\n this._type = type;\n this._idProperty = idProperty;\n this._titleProperty = titleProperty;\n if (!this._idProperty && type) {\n this._idProperty = findClassIdAttribute(type as unknown as ClassType<Model>) ?? undefined;\n }\n if (!this._titleProperty && type) {\n this._titleProperty = findClassTitleAttribute(type as unknown as ClassType<Model>) ?? undefined;\n }\n this._i18nBaseKey =\n (typeof i18nBaseKey === 'string' || typeof i18nBaseKey === 'undefined' ? i18nBaseKey : findReflectTypeName(i18nBaseKey)) ??\n findReflectTypeName(type as ClassType<Model>) ??\n '';\n }\n\n /**\n * @deprecated Use standalone {model()} instead.\n */\n public static create<Model>(idProperty?: keyof Model, titleProperty?: keyof Model, i18nBaseKey?: string | ClassType<unknown>): ModelDescriptor<Model, undefined> {\n return new ModelDescriptor(undefined, idProperty as string, titleProperty as string, i18nBaseKey);\n }\n\n /**\n * @deprecated Use standalone {model()} instead.\n */\n public static fromClass<Model>(\n type: ClassType<Model>,\n idProperty?: keyof Model,\n titleProperty?: keyof Model,\n i18nBaseKey?: string | ClassType<unknown>\n ): ModelDescriptor<Model, ClassType<Model>> {\n return new ModelDescriptor(type, idProperty as string, titleProperty as string, i18nBaseKey);\n }\n\n public get type() {\n return this._type;\n }\n\n /**\n * @deprecated Use `i18nBaseKey` instead.\n */\n public get typeName() {\n return this.i18nBaseKey;\n }\n\n public get i18nBaseKey() {\n return this._i18nBaseKey;\n }\n\n public get idProperty() {\n return this._idProperty;\n }\n\n public get titleProperty() {\n return this._titleProperty;\n }\n\n public withIdProperty(property: keyof Model): this {\n this._idProperty = property as string;\n return this;\n }\n\n public withIdPropertyUnsafe(property: string): this {\n this._idProperty = property;\n return this;\n }\n\n public withTitleProperty(property: keyof Model): this {\n this._titleProperty = property as string;\n return this;\n }\n\n public withTitlePropertyUnsafe(property: string): this {\n this._titleProperty = property;\n return this;\n }\n\n public withI18nBase(base: ClassType<any> | string): this {\n if (typeof base !== 'string') {\n const typeName = findReflectTypeName(base);\n if (!typeName) {\n throw new CommonsInternalError(`Could not find define i18nBaseKey for ${base} on model ${this.i18nBaseKey}`);\n }\n base = typeName;\n }\n this._i18nBaseKey = base;\n return this;\n }\n\n public copy(): ModelDescriptor<Model, ModelClass> {\n return new ModelDescriptor<Model, ModelClass>(this._type, this._idProperty, this._titleProperty, this._i18nBaseKey);\n }\n}\n\nexport type ModelDescriptorCreateOpts<Model> = {\n id?: keyof Model;\n title?: keyof Model | ((item: Model) => string);\n i18nBase?: string | ClassType<any>;\n};\n\nexport function model<Model>(): ModelDescriptor<Model, undefined>;\nexport function model<Model>(opts: ModelDescriptorCreateOpts<Model>): ModelDescriptor<Model, undefined>;\nexport function model<Model>(type: TypeDescriptor<Model>, opts?: ModelDescriptorCreateOpts<Model>): ModelDescriptor<Model, undefined>;\nexport function model<Model>(clazz: ClassType<Model>, opts?: ModelDescriptorCreateOpts<Model>): ModelDescriptor<Model, ClassType<Model>>;\nexport function model<Model>(typeOrClassOrOpts?: ClassType<Model> | TypeDescriptor<Model> | ModelDescriptorCreateOpts<Model>, opts?: ModelDescriptorCreateOpts<Model>) {\n if (typeOrClassOrOpts == null) {\n return new ModelDescriptor<Model, undefined>(undefined);\n } else if (typeOrClassOrOpts instanceof TypeDescriptor) {\n return new ModelDescriptor<Model, undefined>(undefined, opts?.id as string, opts?.title as string, opts?.i18nBase);\n } else if (typeof typeOrClassOrOpts === 'function') {\n return new ModelDescriptor<Model, ClassType<Model>>(typeOrClassOrOpts as ClassType<Model>, opts?.id as string, opts?.title as string, opts?.i18nBase);\n } else {\n const typeOrClassAsOpts = typeOrClassOrOpts as ModelDescriptorCreateOpts<Model>;\n return new ModelDescriptor<Model, undefined>(undefined, typeOrClassAsOpts?.id as string, typeOrClassAsOpts?.title as string, typeOrClassAsOpts?.i18nBase);\n }\n}\n","import {TranslateService} from '@ngx-translate/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {KeyOfType, getI18n, getI18nTypeKeyBasePath, getI18nTypeParams, getI18nTypeParamsAsync} from '@mediusinc/mng-commons/core';\n\nimport {ModelDescriptor} from '../descriptors/model.descriptor';\n\nexport function getI18nForModel(\n translate: TranslateService,\n model: ModelDescriptor<any>,\n keyPath: string,\n customKey?: string,\n item?: any,\n fallbackKey?: string,\n params?: any\n): string | null {\n const keys = getKeysByPriority(model, keyPath, customKey, fallbackKey);\n const i18nParams = getI18nModelParams(translate, model, item, params);\n return getI18n(translate, i18nParams, ...keys);\n}\n\nexport function getI18nModelParams(translate: TranslateService, model?: ModelDescriptor<any>, item?: any, params: any = {}): any {\n const i18nParams = getI18nTypeParams(translate, model?.i18nBaseKey, item, params);\n return populateI18nModelParams(model?.idProperty, model?.titleProperty, item, i18nParams);\n}\n\nexport function getI18nModelParamsAsync(translate: TranslateService, model?: ModelDescriptor<any>, item?: any, params: any = {}): Observable<any> {\n return getI18nTypeParamsAsync(translate, model?.i18nBaseKey, item, params).pipe(\n map(i18nParams => populateI18nModelParams(model?.idProperty, model?.titleProperty, item, i18nParams))\n );\n}\n\nexport function populateI18nModelParams(idProperty?: KeyOfType, titleProperty?: KeyOfType | ((item: any) => string), item?: any, params: any = {}): any {\n const paramsRes = {...params, itemId: '', itemTitle: ''};\n if (item) {\n if (idProperty && item[idProperty]) {\n paramsRes.itemId = item[idProperty];\n }\n if (typeof titleProperty === 'function') {\n paramsRes.itemTitle = titleProperty(item);\n } else if (titleProperty && item[titleProperty]) {\n paramsRes.itemTitle = item[titleProperty];\n }\n }\n return paramsRes;\n}\n\nfunction getKeysByPriority(model: ModelDescriptor<any>, keyPath: string, customKey?: string, fallbackKey?: string) {\n const keys = [];\n if (customKey) {\n keys.push(customKey);\n }\n const modelActionKey = getI18nTypeKeyBasePath(model.i18nBaseKey, ...keyPath);\n keys.push(modelActionKey);\n if (fallbackKey) {\n keys.push(fallbackKey);\n }\n return keys;\n}\n","// data providers\nexport * from './data-providers/base-from-type-data-provider.factory';\n\n// descriptors\nexport * from './descriptors/enum.descriptor';\nexport * from './descriptors/model.descriptor';\nexport * from './descriptors/type.descriptor';\n\n// helpers\nexport * from './helpers/i18n';\nexport * from './helpers/model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|