@mediusinc/mng-commons 7.3.0 → 7.4.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/fesm2022/mediusinc-mng-commons-core.mjs +4 -3
  2. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  3. package/fesm2022/mediusinc-mng-commons-filter.mjs +10 -0
  4. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  5. package/fesm2022/mediusinc-mng-commons-form-api.mjs +21 -0
  6. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  7. package/fesm2022/mediusinc-mng-commons-form.mjs +181 -23
  8. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  9. package/fesm2022/{mediusinc-mng-commons-table-column-toggle.component-4BDcYyDd.mjs → mediusinc-mng-commons-table-column-toggle.component-D7fm83ug.mjs} +2 -2
  10. package/fesm2022/{mediusinc-mng-commons-table-column-toggle.component-4BDcYyDd.mjs.map → mediusinc-mng-commons-table-column-toggle.component-D7fm83ug.mjs.map} +1 -1
  11. package/fesm2022/{mediusinc-mng-commons-table-mediusinc-mng-commons-table-DoXp48ZT.mjs → mediusinc-mng-commons-table-mediusinc-mng-commons-table-Czmm5fLT.mjs} +45 -9
  12. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-Czmm5fLT.mjs.map +1 -0
  13. package/fesm2022/mediusinc-mng-commons-table.mjs +1 -1
  14. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +10 -0
  15. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  16. package/package.json +1 -1
  17. package/types/mediusinc-mng-commons-core.d.ts +14 -4
  18. package/types/mediusinc-mng-commons-filter.d.ts +8 -1
  19. package/types/mediusinc-mng-commons-form-api.d.ts +14 -1
  20. package/types/mediusinc-mng-commons-form.d.ts +36 -3
  21. package/types/mediusinc-mng-commons-table.d.ts +2 -0
  22. package/types/mediusinc-mng-commons-tableview-api.d.ts +8 -1
  23. package/version-info.json +6 -6
  24. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-DoXp48ZT.mjs.map +0 -1
@@ -568,6 +568,16 @@ class FilterLookupDescriptor extends FilterDescriptor {
568
568
  this._dataProvider.withLookup(lookup);
569
569
  return this;
570
570
  }
571
+ /**
572
+ * Sets the cache configuration.
573
+ * @param enabled If cache is enabled. Defaults to true.
574
+ * @param opts.ttl Time-to-live in seconds.
575
+ * @param opts.key Key to use for caching. Defaults to data provider instance.
576
+ */
577
+ withCache(enabled, opts) {
578
+ this._dataProvider.withCache(enabled, opts);
579
+ return this;
580
+ }
571
581
  /**
572
582
  * Sets the dropdown class name.
573
583
  * @param dropdownClassName Class name for dropdown.
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-filter.mjs","sources":["../../filter/src/models/filter.model.ts","../../filter/src/descriptors/filter.descriptor.ts","../../filter/src/descriptors/filter-lookup.descriptor.ts","../../filter/src/descriptors/filter-generic.descriptor.ts","../../filter/src/index.ts","../../filter/src/mediusinc-mng-commons-filter.ts"],"sourcesContent":["export enum FilterTypeEnum {\n String,\n Number,\n Boolean,\n Date,\n Lookup,\n LookupEnum,\n Component\n}\n\nexport enum FilterLookupTypeEnum {\n Dropdown,\n Autocomplete\n}\n\nexport enum FilterDisplayTypeEnum {\n Column,\n OverlayWithTag,\n DirectInput\n}\n","import {Type} from '@angular/core';\n\nimport {CommonsInternalError, FilterMatchModeExtendedType, FilterMatchModeType, IFilterDescriptor, ILookupDataProvider, LoggerService} from '@mediusinc/mng-commons/core';\nimport {InputTrimType} from '@mediusinc/mng-commons/form/api';\n\nimport {IFilterComponent} from '../models/filter-component.interface';\nimport {FilterDisplayTypeEnum, FilterTypeEnum} from '../models/filter.model';\n\nexport type FilterDatePickerDisplayOptsType = {\n applyFromDisplayFormat?: boolean;\n format?: string;\n showTime?: boolean;\n showSeconds?: boolean;\n showMilliseconds?: boolean;\n primeTimePicker?: boolean;\n timeSelectInterval?: number;\n timeSelect?: boolean;\n};\n\nexport type FilterDateValueOptsType = {\n utc?: boolean;\n noTime?: boolean;\n noTimeZone?: boolean;\n};\n\nexport type FilterDateOptsType = FilterDateValueOptsType &\n FilterDatePickerDisplayOptsType & {\n displayFormat?: string;\n };\n\nexport type FilterNumberFractionOptsType = {\n minFractionDigits?: number;\n maxFractionDigits?: number;\n};\n\nexport type FilterLocaleOptsType = {\n locale?: string;\n};\n\nexport type FilterNumberOptsType = FilterNumberFractionOptsType &\n FilterLocaleOptsType & {\n displayFormat?: string;\n };\n\nexport class FilterDescriptor<FilterModel, TableModel> implements IFilterDescriptor<FilterModel, TableModel> {\n protected readonly _property: string;\n protected _showOnColumn?: string;\n\n protected _filterType = FilterTypeEnum.String;\n protected _displayType?: FilterDisplayTypeEnum;\n\n // default value\n protected _hasDefaultValue = false;\n protected _defaultMatchMode?: FilterMatchModeExtendedType;\n protected _defaultValue?: FilterModel | FilterModel[];\n protected _matchModes?: string[];\n\n // value display\n private _displayFormat?: string;\n private _displayFormatApplyToField?: boolean;\n private _locale?: string;\n\n // number filter field specific properties\n protected _numberMinFractionDigits?: number;\n protected _numberMaxFractionDigits?: number;\n protected _numberUseGrouping = true;\n\n // date filter field specific properties\n protected _datePickerFormat?: string;\n protected _datePickerShowTime?: boolean;\n protected _datePickerShowSeconds?: boolean;\n protected _datePickerShowMilliseconds?: boolean;\n protected _datePickerPrimeTimePicker?: boolean;\n protected _datePickerTimeSelectInterval?: number;\n protected _datePickerTimeSelect?: boolean;\n protected _dateValueNoTime?: boolean;\n protected _dateValueNoTimezone?: boolean;\n protected _dateValueUtc?: boolean;\n\n // custom component\n private _customComponentType?: Type<IFilterComponent<FilterModel, TableModel>>;\n\n protected _placeholder?: string;\n protected _className = '';\n protected _columnClassName = '';\n protected _columnWidth: number | null = null;\n protected _columnMinWidth: number | null = null;\n protected _inputTrim?: InputTrimType;\n protected _title?: string;\n protected _titleUseModelBase?: boolean;\n protected _isRequired = false;\n\n protected _isGenericFilter = false;\n protected _valueSuggestionProvider?: ILookupDataProvider<string, any, any, 'field'>;\n protected _dropdownClassName = '';\n\n constructor(property: string) {\n this._property = property;\n this._showOnColumn = property;\n }\n\n public get filterType() {\n return this._filterType;\n }\n\n public get showOnColumn() {\n return this._showOnColumn;\n }\n\n public get displayType() {\n return this._displayType;\n }\n\n public get hasDefaultValue() {\n return this._hasDefaultValue;\n }\n\n public get defaultValue() {\n return this._defaultValue;\n }\n\n public get defaultMatchMode() {\n return this._defaultMatchMode;\n }\n\n public get matchModes() {\n return this._matchModes;\n }\n\n public get displayFormat() {\n return this._displayFormat;\n }\n\n public get displayFormatApplyToField() {\n return this._displayFormatApplyToField;\n }\n\n public get locale() {\n return this._locale;\n }\n\n public get numberMinFractionDigits() {\n return this._numberMinFractionDigits;\n }\n\n public get numberMaxFractionDigits() {\n return this._numberMaxFractionDigits;\n }\n\n public get numberUseGrouping() {\n return this._numberUseGrouping;\n }\n\n public get datePickerFormat() {\n return this._datePickerFormat;\n }\n\n public get datePickerShowTime() {\n return this._datePickerShowTime;\n }\n\n public get datePickerShowSeconds() {\n return this._datePickerShowSeconds;\n }\n\n public get datePickerShowMilliseconds() {\n return this._datePickerShowMilliseconds;\n }\n\n public get datePickerPrimeTimePicker() {\n return this._datePickerPrimeTimePicker;\n }\n\n public get datePickerTimeSelectInterval() {\n return this._datePickerTimeSelectInterval;\n }\n\n public get datePickerTimeSelect() {\n return this._datePickerTimeSelect;\n }\n\n public get dateValueUtc() {\n return this._dateValueUtc;\n }\n\n public get dateValueNoTimezone() {\n return this._dateValueNoTimezone;\n }\n\n public get dateValueNoTime() {\n return this._dateValueNoTime;\n }\n\n public get customComponentType() {\n return this._customComponentType;\n }\n\n public get placeholder() {\n return this._placeholder;\n }\n\n public get className() {\n return this._className;\n }\n\n public get columnClassName() {\n return this._columnClassName;\n }\n\n public get columnWidth() {\n return this._columnWidth;\n }\n\n public get columnMinWidth() {\n return this._columnMinWidth;\n }\n\n public get trimOption() {\n return this._inputTrim;\n }\n\n public get property() {\n return this._property;\n }\n\n public get title() {\n return this._title;\n }\n\n public get titleUseModelBase() {\n return this._titleUseModelBase;\n }\n\n public get isGenericFilter() {\n return this._isGenericFilter;\n }\n\n public get genericValueProvider() {\n return this._valueSuggestionProvider;\n }\n\n public get dropdownClassName(): string {\n return this._dropdownClassName;\n }\n\n public get isRequired() {\n return this._isRequired;\n }\n\n /**\n * Converts filter to given type.\n *\n * @param filterType Filter type.\n */\n public asFilterType(filterType: FilterTypeEnum) {\n this._filterType = filterType;\n return this;\n }\n\n /**\n * Sets the filter as a generic filter. For internal use only.\n *\n * @internal\n */\n public asGenericFilter(): this {\n this._isGenericFilter = true;\n return this;\n }\n\n /**\n * Set filter as date type.\n *\n * @param opts Additional options.\n */\n public asDate(opts?: FilterDateOptsType): this {\n this._filterType = FilterTypeEnum.Date;\n this.withDisplayFormat(opts?.displayFormat).withDatePickerDisplay(opts).withDateValue(opts);\n return this;\n }\n\n /**\n * Set filter as number type.\n *\n * @param opts Additional options.\n */\n public asNumber(opts?: FilterNumberOptsType): this {\n this._filterType = FilterTypeEnum.Number;\n this.withDisplayFormat(opts?.displayFormat).withNumberFractions(opts?.minFractionDigits, opts?.maxFractionDigits).withLocale(opts?.locale);\n return this;\n }\n\n public asCustomComponent(component: Type<IFilterComponent<FilterModel, TableModel>>): this {\n this._filterType = FilterTypeEnum.Component;\n this._customComponentType = component;\n return this;\n }\n\n /**\n * Shows filter on column for given property.\n *\n * @param property Column property to show filter on.\n * @param displayType Optional display type override. If not column, the filter will not be shown on column.\n */\n public withShowOnColumn(property: keyof TableModel, displayType: FilterDisplayTypeEnum | undefined = FilterDisplayTypeEnum.Column): this {\n return this.withShowOnColumnUnsafe(property as string, displayType);\n }\n\n /**\n * Shows filter on column for given property.\n *\n * This function is UNSAFE.\n *\n * @param property Column property to show filter on.\n * @param displayType Optional display type override. If not column, the filter will not be shown on column.\n */\n public withShowOnColumnUnsafe(property: string, displayType: FilterDisplayTypeEnum | undefined = FilterDisplayTypeEnum.Column): this {\n this._showOnColumn = property;\n this._displayType = displayType;\n return this;\n }\n\n /**\n * Changes display type of filter.\n *\n * @param type Display type.\n */\n public withDisplayType(type?: FilterDisplayTypeEnum): this {\n this._displayType = type;\n return this;\n }\n\n /**\n * Sets default filter value for filter.\n *\n * @param matchMode Match mode for default filter.\n * @param value Value for default filter.\n */\n public withDefaultValue(matchMode: 'exists' | 'doesNotExist'): this;\n public withDefaultValue(matchMode: 'between', value: [FilterModel, FilterModel]): this;\n public withDefaultValue(matchMode: 'in' | 'notIn', value: FilterModel[]): this;\n public withDefaultValue(\n matchMode: 'lessThan' | 'lessThanOrEqualTo' | 'greaterThan' | 'greaterThanOrEqualTo',\n value: FilterModel extends number | Date ? FilterModel : never\n ): this;\n public withDefaultValue(matchMode: 'contains' | 'notContains' | 'startsWith' | 'endsWith', value: FilterModel extends string ? FilterModel : never): this;\n public withDefaultValue(matchMode: 'equals' | 'notEquals', value: FilterModel): this;\n /**\n * Sets the default value for a filter with the specified match mode.\n *\n * @param {FilterMatchModeType} matchMode - The match mode of the filter.\n * @param {FilterModel | FilterModel[]} [value] - The default value(s) for the filter. Type of value differs based on match mode and filter model.\n */\n public withDefaultValue(matchMode: FilterMatchModeType, value?: FilterModel | FilterModel[] | undefined): this {\n return this.withDefaultValueUnsafe(matchMode, value);\n }\n\n /**\n * Sets the default value for a filter with the specified match mode.\n *\n * This function is UNSAFE!\n *\n * @param {FilterMatchModeType} matchMode - The match mode of the filter.\n * @param {FilterModel | FilterModel[]} [value] - The default value(s) for the filter. Type of value differs based on match mode and filter model.\n */\n public withDefaultValueUnsafe(matchMode?: string, value?: any | any[] | undefined): this {\n this._hasDefaultValue = true;\n this._defaultValue = value;\n this._defaultMatchMode = matchMode;\n if (matchMode) {\n this.validateDefaultFilter(value, matchMode);\n }\n return this;\n }\n\n /**\n * Turns of the default value and match mode for filter.\n */\n public withoutDefaultValue(): this {\n this._hasDefaultValue = false;\n this._defaultValue = undefined;\n this._defaultMatchMode = undefined;\n return this;\n }\n\n protected validateDefaultFilter(value: FilterModel | FilterModel[] | undefined, matchMode: FilterMatchModeExtendedType) {\n if (matchMode === 'between' && value != null && (!Array.isArray(value) || value.filter(v => v != null).length !== 2)) {\n throw new CommonsInternalError(`Default value for filter match mode ${matchMode} must provide exactly 2 values in array`);\n }\n if ((matchMode === 'in' || matchMode === 'notIn') && value != null && (!Array.isArray(value) || value.filter(v => v != null).length === 0)) {\n throw new CommonsInternalError(`Default value for filter match mode ${matchMode} must be array and provide at least 1 non-null value`);\n }\n if (matchMode === 'exists' || matchMode === 'doesNotExist') {\n this._defaultValue = undefined;\n }\n\n if (matchMode && this._matchModes && this._matchModes.indexOf(matchMode) < 0) {\n this._defaultMatchMode = undefined;\n LoggerService.get().debug(`WARNING: Default filter match mode '${matchMode}' could not be assigned for property ${this._property}.`);\n }\n }\n\n /**\n * Sets format for display of filter value (applies to date and number).\n *\n * @param format Format (Angular formatting rules apply).\n * @param applyToField If the format should also be applied to field on filter editing form.\n */\n public withDisplayFormat(format?: string, applyToField?: boolean): this {\n this._displayFormat = format;\n this._displayFormatApplyToField = applyToField;\n return this;\n }\n\n /**\n * Sets locale for filter.\n *\n * @param locale Locale.\n */\n public withLocale(locale?: string): this {\n this._locale = locale;\n return this;\n }\n\n /**\n * Sets fraction for number filter editing field.\n *\n * @param min Min fraction digits (i.e. digits after decimal).\n * @param max Max fraction digits (i.e. digits after decimal).\n */\n public withNumberFractions(min?: number, max?: number) {\n this._numberMinFractionDigits = min;\n this._numberMaxFractionDigits = max;\n return this;\n }\n\n /**\n * If number grouping should be used.\n *\n * @param useGrouping Enables/disbaled the feature.\n */\n public withNumberGrouping(useGrouping = true): this {\n this._numberUseGrouping = useGrouping;\n return this;\n }\n\n /**\n * Sets a data provider for autocomplete text suggestions.\n *\n * @param valueDataProvider Data provider for autocomplete.\n */\n public withGenericValueProvider(valueDataProvider: ILookupDataProvider<string, any, any, 'field'>): this {\n if (!(this.filterType === FilterTypeEnum.String || this.filterType === FilterTypeEnum.LookupEnum)) {\n throw new CommonsInternalError('Generic value lookup can only be set for the string or lookup enum filter types.');\n }\n\n this._valueSuggestionProvider = valueDataProvider;\n return this;\n }\n\n /**\n * Sets date picker display options.\n *\n * @param opts Options.\n */\n public withDatePickerDisplay(opts?: FilterDatePickerDisplayOptsType): this {\n this._displayFormatApplyToField = opts?.applyFromDisplayFormat;\n this._datePickerFormat = opts?.format;\n this._datePickerShowTime = opts?.showTime;\n this._datePickerShowSeconds = opts?.showSeconds;\n this._datePickerShowMilliseconds = opts?.showMilliseconds;\n this._datePickerPrimeTimePicker = opts?.primeTimePicker;\n this._datePickerTimeSelectInterval = opts?.timeSelectInterval;\n this._datePickerTimeSelect = opts?.timeSelect;\n return this;\n }\n\n /**\n * Sets filter date value formatting options.\n *\n * @param opts Options.\n */\n public withDateValue(opts?: FilterDateValueOptsType): this {\n this._dateValueUtc = opts?.utc;\n this._dateValueNoTimezone = opts?.noTimeZone;\n this._dateValueNoTime = opts?.noTime;\n return this;\n }\n\n /**\n * Sets placeholder for filter field.\n *\n * @param placeholder Text for placeholder.\n */\n public withPlaceholder(placeholder: string): this {\n this._placeholder = placeholder;\n return this;\n }\n\n /**\n * Sets class name for filter.\n *\n * @param className Class name.\n */\n public withClassName(className: string): this {\n this._className = className;\n return this;\n }\n\n /**\n * Sets class name for column display type.\n *\n * @param className Class name for column.\n */\n public withColumnClassName(className: string): this {\n this._columnClassName = className;\n return this;\n }\n\n /**\n * Set column width for column display type.\n *\n * @param width Relative width (in percentage) of table width:\n * @param minWidth\n */\n public withColumnWidth(width?: number, minWidth?: number): this {\n this._columnWidth = width ?? null;\n this._columnMinWidth = minWidth ?? null;\n return this;\n }\n\n /**\n * Sets input trimming for filter value field.\n *\n * @param trimOption Trim setting.\n */\n public withInputTrimming(trimOption: InputTrimType = 'both'): this {\n this._inputTrim = trimOption;\n return this;\n }\n\n /**\n * Sets range of match modes for this filter. If non provided, the defaults are applied.\n *\n * @param matchModes Match mode options.\n */\n public withMatchModes(matchModes?: Array<FilterMatchModeExtendedType>): this {\n this._matchModes = matchModes;\n return this;\n }\n\n /**\n * Sets default match mode for this filter. If non provided, the default is applied. If custom match modes are provided, it will be validated against it.\n *\n * @param matchMode Match mode option.\n */\n public withDefaultMatchMode(matchMode?: FilterMatchModeExtendedType): this {\n if (matchMode != null && Array.isArray(this._matchModes) && !this._matchModes.includes(matchMode)) {\n throw new CommonsInternalError(`Filter match mode ${matchMode} cannot be set for property ${this._property}, because custom match modes do not include it.`);\n }\n this._defaultMatchMode = matchMode;\n return this;\n }\n\n /**\n * Filter title. If non provided, the defaults are applied.\n *\n * @param title Title for the field.\n * @param useModelBase Use model's i18n base key as base path for translation.\n */\n public withTitle(title: string, useModelBase?: boolean): this {\n this._title = title;\n this._titleUseModelBase = useModelBase;\n return this;\n }\n\n public withDropdownClassName(dropdownClassName: string): this {\n this._dropdownClassName = dropdownClassName;\n return this;\n }\n\n public withRequired(isRequired = true) {\n this._isRequired = isRequired;\n return this;\n }\n\n /**\n * Copies current descriptor to a new instance.\n */\n public copy(): FilterDescriptor<FilterModel, TableModel> {\n const descriptor = new FilterDescriptor<FilterModel, TableModel>(this._property);\n this.copyFieldsTo(descriptor);\n return descriptor;\n }\n\n protected copyFieldsTo(descriptor: FilterDescriptor<FilterModel, TableModel>) {\n descriptor._filterType = this._filterType;\n descriptor._hasDefaultValue = this._hasDefaultValue;\n descriptor._defaultValue = this._defaultValue;\n descriptor._defaultMatchMode = this._defaultMatchMode;\n descriptor._displayFormat = this._displayFormat;\n descriptor._locale = this._locale;\n descriptor._numberMinFractionDigits = this._numberMinFractionDigits;\n descriptor._numberMaxFractionDigits = this._numberMaxFractionDigits;\n descriptor._numberUseGrouping = this._numberUseGrouping;\n descriptor._datePickerFormat = this._datePickerFormat;\n descriptor._datePickerShowTime = this._datePickerShowTime;\n descriptor._dateValueUtc = this._dateValueUtc;\n descriptor._dateValueNoTimezone = this._dateValueNoTimezone;\n descriptor._dateValueNoTime = this._dateValueNoTime;\n descriptor._customComponentType = this._customComponentType;\n descriptor._placeholder = this._placeholder;\n descriptor._className = this._className;\n descriptor._columnWidth = this._columnWidth;\n descriptor._columnMinWidth = this._columnMinWidth;\n descriptor._columnClassName = this._columnClassName;\n descriptor._isGenericFilter = this._isGenericFilter;\n descriptor._valueSuggestionProvider = this._valueSuggestionProvider;\n descriptor._dropdownClassName = this._dropdownClassName;\n descriptor._isRequired = this._isRequired;\n }\n}\n","import {of} from 'rxjs';\n\nimport {\n EnumConstantType,\n EnumValue,\n ILookupDataProvider,\n ILookupDescriptor,\n LookupDataProviderLookupFnType,\n ServiceClassOptType,\n ServiceClassType,\n fromEnumConstantsAsValueArray,\n fromEnumValuesAsValueArray\n} from '@mediusinc/mng-commons/core';\nimport {LookupDataProviderInst} from '@mediusinc/mng-commons/form/api';\nimport {EnumDescriptor} from '@mediusinc/mng-commons/model';\n\nimport {FilterLookupTypeEnum, FilterTypeEnum} from '../models/filter.model';\nimport {FilterDescriptor} from './filter.descriptor';\n\nexport type FilterLookupDescriptorConstructorOptsType<\n FilterModel,\n Service,\n Sorts = keyof FilterModel,\n Filters extends keyof any = keyof FilterModel\n> = FilterLookupDescriptorCreateOptsProviderType<FilterModel, Service, Sorts, Filters> & {\n optionsValueProperty?: string | null;\n};\n\nexport type FilterLookupDescriptorCreateOptsProviderType<FilterModel, Service, Sorts = keyof FilterModel, Filters extends keyof any = keyof FilterModel> = {\n serviceType?: ServiceClassType<Service>;\n dataProvider?: ILookupDataProvider<FilterModel, Service, Sorts, Filters>;\n};\n\nexport type FilterLookupOptsType = {\n inlineSearch?: boolean;\n};\n\nexport type FilterLookupDropdownOptsType = FilterLookupOptsType & {\n allowInput?: boolean;\n};\n\nexport type FilterLookupAutocompleteOptsType = FilterLookupOptsType & {\n openOnFocus?: boolean;\n autoClear?: boolean;\n};\n\nexport class FilterLookupDescriptor<FilterModel, TableModel, Service = any, FilterValue = FilterModel, Sorts = keyof FilterModel, Filters extends keyof any = keyof FilterModel>\n extends FilterDescriptor<FilterValue, TableModel>\n implements ILookupDescriptor<FilterModel, Service, Sorts, Filters>\n{\n protected readonly _dataProvider: ILookupDataProvider<FilterModel, Service, Sorts, Filters>;\n protected readonly _optionsValueProperty?: string | null;\n protected _lookupType?: FilterLookupTypeEnum = FilterLookupTypeEnum.Dropdown;\n protected _optionsLabelProperty?: string;\n protected _optionsLabelTranslate = false;\n\n protected override _dropdownClassName = 'mng-filter-lookup-dropdown';\n\n protected _inlineSearch?: boolean;\n\n protected _dropdownAllowInput?: boolean;\n\n protected _autocompleteOpenOnFocus?: boolean;\n protected _autocompleteAutoClear?: boolean;\n\n constructor(property: string, cfg?: FilterLookupDescriptorConstructorOptsType<FilterModel, Service, Sorts, Filters>) {\n super(property);\n this._filterType = FilterTypeEnum.Lookup;\n\n if (cfg?.dataProvider) {\n this._dataProvider = cfg.dataProvider;\n } else {\n this._dataProvider = new LookupDataProviderInst<FilterModel, Service, Sorts, Filters, ServiceClassOptType<Service>>(cfg?.serviceType);\n }\n\n this._optionsValueProperty = cfg?.optionsValueProperty ?? undefined;\n }\n\n public get lookupType() {\n return this._lookupType;\n }\n\n public get dataProvider() {\n return this._dataProvider;\n }\n\n public get optionsLabelProperty() {\n return this._optionsLabelProperty;\n }\n\n public get optionsLabelTranslate() {\n return this._optionsLabelTranslate;\n }\n\n public get optionsValueProperty() {\n return this._optionsValueProperty ?? undefined;\n }\n\n public get autocompleteOpenOnFocus() {\n return this._autocompleteOpenOnFocus;\n }\n\n public get autocompleteAutoClear() {\n return this._autocompleteAutoClear;\n }\n\n public get inlineSearch() {\n return this._inlineSearch;\n }\n\n public get dropdownAllowInput() {\n return this._dropdownAllowInput;\n }\n\n /**\n * @deprecated Use `inlineSearch` instead.\n */\n public get autocompleteInlineSearch() {\n return this._inlineSearch;\n }\n\n public override get dropdownClassName() {\n return this._dropdownClassName;\n }\n\n /**\n * Sets label property for options display.\n *\n * @param property Property for label options.\n * @param translate If the options should be translated through the i18n.\n */\n public withOptionsLabelProperty(property: keyof FilterModel, translate = false): this {\n return this.withOptionsLabelPropertyUnsafe(property as string, translate);\n }\n\n /**\n * Sets label property for options display.\n *\n * This function is UNSAFE!\n *\n * @param property Property for label options.\n * @param translate If the options should be translated through the i18n.\n */\n public withOptionsLabelPropertyUnsafe(property: string, translate = false): this {\n this._optionsLabelProperty = property;\n this._optionsLabelTranslate = translate;\n return this;\n }\n\n /**\n * Method will set `optionsValueProperty`, because track properties are not supported here as filters need final value to work correctly.\n * Use `optionsValueProperty` in filter creation instead.\n */\n public withOptionsTrackProperty(): this {\n return this;\n }\n\n /**\n * Method will set `optionsValueProperty`, because track properties are not supported here as filters need final value to work correctly.\n * Use `optionsValueProperty` in filter creation instead.\n */\n public withOptionsTrackPropertyUnsafe(): this {\n return this;\n }\n\n public withLookup(lookup?: LookupDataProviderLookupFnType<FilterModel, Service, Sorts, Filters>): this {\n this._dataProvider.withLookup(lookup);\n return this;\n }\n\n /**\n * Sets the dropdown class name.\n * @param dropdownClassName Class name for dropdown.\n */\n public override withDropdownClassName(dropdownClassName: string): this {\n this._dropdownClassName = dropdownClassName;\n return this;\n }\n\n /**\n * Sets lookup as autocomplete instead of dropdown.\n *\n * @param opts Additional options.\n */\n public asDropdown(opts?: FilterLookupDropdownOptsType): this {\n this._lookupType = FilterLookupTypeEnum.Dropdown;\n this._dropdownAllowInput = opts?.allowInput;\n this.#setCommonProps(opts);\n return this;\n }\n\n /**\n * Sets lookup as autocomplete instead of dropdown.\n *\n * @param opts Additional options.\n */\n public asAutocomplete(opts?: FilterLookupAutocompleteOptsType): this {\n this._lookupType = FilterLookupTypeEnum.Autocomplete;\n this._autocompleteAutoClear = opts?.autoClear;\n this._autocompleteOpenOnFocus = opts?.openOnFocus;\n this.#setCommonProps(opts);\n return this;\n }\n\n #setCommonProps(opts?: FilterLookupOptsType) {\n this._inlineSearch = opts?.inlineSearch;\n }\n\n /**\n * Copies current descriptor to a new instance.\n */\n public override copy(): FilterLookupDescriptor<FilterModel, TableModel, Service, FilterValue, Sorts, Filters> {\n const descriptor = new FilterLookupDescriptor<FilterModel, TableModel, Service, FilterValue, Sorts, Filters>(this._property, {\n dataProvider: this.dataProvider\n });\n this.copyFieldsTo(descriptor);\n return descriptor;\n }\n\n protected override copyFieldsTo(filter: FilterLookupDescriptor<FilterModel, TableModel, Service, FilterValue, Sorts, Filters>) {\n super.copyFieldsTo(filter);\n filter._lookupType = this._lookupType;\n filter._optionsLabelProperty = this._optionsLabelProperty;\n filter._optionsLabelTranslate = this._optionsLabelTranslate;\n filter._dropdownClassName = this._dropdownClassName;\n filter._inlineSearch = this._inlineSearch;\n filter._dropdownAllowInput = this._dropdownAllowInput;\n filter._autocompleteOpenOnFocus = this._autocompleteOpenOnFocus;\n filter._autocompleteAutoClear = this._autocompleteAutoClear;\n }\n}\n\nexport class FilterLookupEnumDescriptor<Enum, TableModel> extends FilterLookupDescriptor<EnumValue, TableModel, undefined, EnumConstantType, never, never> {\n private readonly _enum: EnumDescriptor<Enum>;\n private readonly _optionEnumValues: EnumValue[];\n\n constructor(property: string, enumDesc: EnumDescriptor<Enum>, options?: Array<Enum>) {\n super(property, {\n dataProvider: new LookupDataProviderInst<EnumValue, undefined, never, never, undefined>(undefined),\n optionsValueProperty: 'value'\n });\n this._filterType = FilterTypeEnum.LookupEnum;\n\n this._enum = enumDesc;\n\n this._optionEnumValues = Array.isArray(options)\n ? fromEnumValuesAsValueArray(this._enum.type, options, this._enum.nameAsValue, this._enum.i18nBaseKey ?? undefined)\n : fromEnumConstantsAsValueArray(this._enum.type, this._enum.nameAsValue, this._enum.i18nBaseKey ?? undefined);\n\n this.withLookup(() => of(this._optionEnumValues));\n this.withOptionsLabelProperty('title', this._enum.i18nBaseKey !== null);\n }\n\n public get enum() {\n return this._enum;\n }\n\n /**\n * Sets lookup as autocomplete instead of dropdown.\n *\n * @param opts Additional options.\n */\n public override asAutocomplete(opts?: FilterLookupAutocompleteOptsType): this {\n super.asAutocomplete({\n ...opts,\n openOnFocus: opts?.openOnFocus ?? true,\n inlineSearch: opts?.inlineSearch ?? true\n });\n return this;\n }\n\n /**\n * Copies current descriptor to a new instance.\n */\n public override copy(): FilterLookupEnumDescriptor<Enum, TableModel> {\n const field = new FilterLookupEnumDescriptor<Enum, TableModel>(this._property, this.enum, []);\n this.copyFieldsTo(field);\n return field;\n }\n}\n","import {LookupDataProviderInst} from '@mediusinc/mng-commons/form/api';\n\nimport {FilterGenericProperty} from '../models/filter-generic-property.model';\n\nexport class FilterGenericDescriptor {\n protected _propertyLookup: LookupDataProviderInst<FilterGenericProperty>;\n protected _propertySearch?: boolean;\n protected _valueLookup?: LookupDataProviderInst<string, any, any, 'field'>;\n\n constructor(propertyLookupDataProvider: LookupDataProviderInst<FilterGenericProperty>) {\n this._propertyLookup = propertyLookupDataProvider;\n }\n\n // must set return types explicitly due to ng-packagr bug: https://github.com/ng-packagr/ng-packagr/issues/1405\n public get propertyLookup(): LookupDataProviderInst<FilterGenericProperty> {\n return this._propertyLookup;\n }\n\n public get propertySearch() {\n return this._propertySearch;\n }\n\n // must set return types explicitly due to ng-packagr bug: https://github.com/ng-packagr/ng-packagr/issues/1405\n public get valueLookup(): LookupDataProviderInst<string, any, any, 'field'> | undefined {\n return this._valueLookup;\n }\n\n public withValueLookup(valueLookup: LookupDataProviderInst<string, any, any, 'field'>): this {\n this._valueLookup = valueLookup;\n return this;\n }\n\n public withPropertySearch(search = true): this {\n this._propertySearch = search;\n return this;\n }\n\n public copy(): FilterGenericDescriptor {\n const descriptor = new FilterGenericDescriptor(this._propertyLookup);\n descriptor._propertySearch = this._propertySearch;\n descriptor._valueLookup = this._valueLookup;\n return descriptor;\n }\n}\n","// descriptors\nexport * from './descriptors/filter.descriptor';\nexport * from './descriptors/filter-lookup.descriptor';\nexport * from './descriptors/filter-generic.descriptor';\n\n// models\nexport * from './models/filter.model';\nexport * from './models/filter-component.interface';\nexport * from './models/filter-generic-property.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-filter.mjs","sources":["../../filter/src/models/filter.model.ts","../../filter/src/descriptors/filter.descriptor.ts","../../filter/src/descriptors/filter-lookup.descriptor.ts","../../filter/src/descriptors/filter-generic.descriptor.ts","../../filter/src/index.ts","../../filter/src/mediusinc-mng-commons-filter.ts"],"sourcesContent":["export enum FilterTypeEnum {\n String,\n Number,\n Boolean,\n Date,\n Lookup,\n LookupEnum,\n Component\n}\n\nexport enum FilterLookupTypeEnum {\n Dropdown,\n Autocomplete\n}\n\nexport enum FilterDisplayTypeEnum {\n Column,\n OverlayWithTag,\n DirectInput\n}\n","import {Type} from '@angular/core';\n\nimport {CommonsInternalError, FilterMatchModeExtendedType, FilterMatchModeType, IFilterDescriptor, ILookupDataProvider, LoggerService} from '@mediusinc/mng-commons/core';\nimport {InputTrimType} from '@mediusinc/mng-commons/form/api';\n\nimport {IFilterComponent} from '../models/filter-component.interface';\nimport {FilterDisplayTypeEnum, FilterTypeEnum} from '../models/filter.model';\n\nexport type FilterDatePickerDisplayOptsType = {\n applyFromDisplayFormat?: boolean;\n format?: string;\n showTime?: boolean;\n showSeconds?: boolean;\n showMilliseconds?: boolean;\n primeTimePicker?: boolean;\n timeSelectInterval?: number;\n timeSelect?: boolean;\n};\n\nexport type FilterDateValueOptsType = {\n utc?: boolean;\n noTime?: boolean;\n noTimeZone?: boolean;\n};\n\nexport type FilterDateOptsType = FilterDateValueOptsType &\n FilterDatePickerDisplayOptsType & {\n displayFormat?: string;\n };\n\nexport type FilterNumberFractionOptsType = {\n minFractionDigits?: number;\n maxFractionDigits?: number;\n};\n\nexport type FilterLocaleOptsType = {\n locale?: string;\n};\n\nexport type FilterNumberOptsType = FilterNumberFractionOptsType &\n FilterLocaleOptsType & {\n displayFormat?: string;\n };\n\nexport class FilterDescriptor<FilterModel, TableModel> implements IFilterDescriptor<FilterModel, TableModel> {\n protected readonly _property: string;\n protected _showOnColumn?: string;\n\n protected _filterType = FilterTypeEnum.String;\n protected _displayType?: FilterDisplayTypeEnum;\n\n // default value\n protected _hasDefaultValue = false;\n protected _defaultMatchMode?: FilterMatchModeExtendedType;\n protected _defaultValue?: FilterModel | FilterModel[];\n protected _matchModes?: string[];\n\n // value display\n private _displayFormat?: string;\n private _displayFormatApplyToField?: boolean;\n private _locale?: string;\n\n // number filter field specific properties\n protected _numberMinFractionDigits?: number;\n protected _numberMaxFractionDigits?: number;\n protected _numberUseGrouping = true;\n\n // date filter field specific properties\n protected _datePickerFormat?: string;\n protected _datePickerShowTime?: boolean;\n protected _datePickerShowSeconds?: boolean;\n protected _datePickerShowMilliseconds?: boolean;\n protected _datePickerPrimeTimePicker?: boolean;\n protected _datePickerTimeSelectInterval?: number;\n protected _datePickerTimeSelect?: boolean;\n protected _dateValueNoTime?: boolean;\n protected _dateValueNoTimezone?: boolean;\n protected _dateValueUtc?: boolean;\n\n // custom component\n private _customComponentType?: Type<IFilterComponent<FilterModel, TableModel>>;\n\n protected _placeholder?: string;\n protected _className = '';\n protected _columnClassName = '';\n protected _columnWidth: number | null = null;\n protected _columnMinWidth: number | null = null;\n protected _inputTrim?: InputTrimType;\n protected _title?: string;\n protected _titleUseModelBase?: boolean;\n protected _isRequired = false;\n\n protected _isGenericFilter = false;\n protected _valueSuggestionProvider?: ILookupDataProvider<string, any, any, 'field'>;\n protected _dropdownClassName = '';\n\n constructor(property: string) {\n this._property = property;\n this._showOnColumn = property;\n }\n\n public get filterType() {\n return this._filterType;\n }\n\n public get showOnColumn() {\n return this._showOnColumn;\n }\n\n public get displayType() {\n return this._displayType;\n }\n\n public get hasDefaultValue() {\n return this._hasDefaultValue;\n }\n\n public get defaultValue() {\n return this._defaultValue;\n }\n\n public get defaultMatchMode() {\n return this._defaultMatchMode;\n }\n\n public get matchModes() {\n return this._matchModes;\n }\n\n public get displayFormat() {\n return this._displayFormat;\n }\n\n public get displayFormatApplyToField() {\n return this._displayFormatApplyToField;\n }\n\n public get locale() {\n return this._locale;\n }\n\n public get numberMinFractionDigits() {\n return this._numberMinFractionDigits;\n }\n\n public get numberMaxFractionDigits() {\n return this._numberMaxFractionDigits;\n }\n\n public get numberUseGrouping() {\n return this._numberUseGrouping;\n }\n\n public get datePickerFormat() {\n return this._datePickerFormat;\n }\n\n public get datePickerShowTime() {\n return this._datePickerShowTime;\n }\n\n public get datePickerShowSeconds() {\n return this._datePickerShowSeconds;\n }\n\n public get datePickerShowMilliseconds() {\n return this._datePickerShowMilliseconds;\n }\n\n public get datePickerPrimeTimePicker() {\n return this._datePickerPrimeTimePicker;\n }\n\n public get datePickerTimeSelectInterval() {\n return this._datePickerTimeSelectInterval;\n }\n\n public get datePickerTimeSelect() {\n return this._datePickerTimeSelect;\n }\n\n public get dateValueUtc() {\n return this._dateValueUtc;\n }\n\n public get dateValueNoTimezone() {\n return this._dateValueNoTimezone;\n }\n\n public get dateValueNoTime() {\n return this._dateValueNoTime;\n }\n\n public get customComponentType() {\n return this._customComponentType;\n }\n\n public get placeholder() {\n return this._placeholder;\n }\n\n public get className() {\n return this._className;\n }\n\n public get columnClassName() {\n return this._columnClassName;\n }\n\n public get columnWidth() {\n return this._columnWidth;\n }\n\n public get columnMinWidth() {\n return this._columnMinWidth;\n }\n\n public get trimOption() {\n return this._inputTrim;\n }\n\n public get property() {\n return this._property;\n }\n\n public get title() {\n return this._title;\n }\n\n public get titleUseModelBase() {\n return this._titleUseModelBase;\n }\n\n public get isGenericFilter() {\n return this._isGenericFilter;\n }\n\n public get genericValueProvider() {\n return this._valueSuggestionProvider;\n }\n\n public get dropdownClassName(): string {\n return this._dropdownClassName;\n }\n\n public get isRequired() {\n return this._isRequired;\n }\n\n /**\n * Converts filter to given type.\n *\n * @param filterType Filter type.\n */\n public asFilterType(filterType: FilterTypeEnum) {\n this._filterType = filterType;\n return this;\n }\n\n /**\n * Sets the filter as a generic filter. For internal use only.\n *\n * @internal\n */\n public asGenericFilter(): this {\n this._isGenericFilter = true;\n return this;\n }\n\n /**\n * Set filter as date type.\n *\n * @param opts Additional options.\n */\n public asDate(opts?: FilterDateOptsType): this {\n this._filterType = FilterTypeEnum.Date;\n this.withDisplayFormat(opts?.displayFormat).withDatePickerDisplay(opts).withDateValue(opts);\n return this;\n }\n\n /**\n * Set filter as number type.\n *\n * @param opts Additional options.\n */\n public asNumber(opts?: FilterNumberOptsType): this {\n this._filterType = FilterTypeEnum.Number;\n this.withDisplayFormat(opts?.displayFormat).withNumberFractions(opts?.minFractionDigits, opts?.maxFractionDigits).withLocale(opts?.locale);\n return this;\n }\n\n public asCustomComponent(component: Type<IFilterComponent<FilterModel, TableModel>>): this {\n this._filterType = FilterTypeEnum.Component;\n this._customComponentType = component;\n return this;\n }\n\n /**\n * Shows filter on column for given property.\n *\n * @param property Column property to show filter on.\n * @param displayType Optional display type override. If not column, the filter will not be shown on column.\n */\n public withShowOnColumn(property: keyof TableModel, displayType: FilterDisplayTypeEnum | undefined = FilterDisplayTypeEnum.Column): this {\n return this.withShowOnColumnUnsafe(property as string, displayType);\n }\n\n /**\n * Shows filter on column for given property.\n *\n * This function is UNSAFE.\n *\n * @param property Column property to show filter on.\n * @param displayType Optional display type override. If not column, the filter will not be shown on column.\n */\n public withShowOnColumnUnsafe(property: string, displayType: FilterDisplayTypeEnum | undefined = FilterDisplayTypeEnum.Column): this {\n this._showOnColumn = property;\n this._displayType = displayType;\n return this;\n }\n\n /**\n * Changes display type of filter.\n *\n * @param type Display type.\n */\n public withDisplayType(type?: FilterDisplayTypeEnum): this {\n this._displayType = type;\n return this;\n }\n\n /**\n * Sets default filter value for filter.\n *\n * @param matchMode Match mode for default filter.\n * @param value Value for default filter.\n */\n public withDefaultValue(matchMode: 'exists' | 'doesNotExist'): this;\n public withDefaultValue(matchMode: 'between', value: [FilterModel, FilterModel]): this;\n public withDefaultValue(matchMode: 'in' | 'notIn', value: FilterModel[]): this;\n public withDefaultValue(\n matchMode: 'lessThan' | 'lessThanOrEqualTo' | 'greaterThan' | 'greaterThanOrEqualTo',\n value: FilterModel extends number | Date ? FilterModel : never\n ): this;\n public withDefaultValue(matchMode: 'contains' | 'notContains' | 'startsWith' | 'endsWith', value: FilterModel extends string ? FilterModel : never): this;\n public withDefaultValue(matchMode: 'equals' | 'notEquals', value: FilterModel): this;\n /**\n * Sets the default value for a filter with the specified match mode.\n *\n * @param {FilterMatchModeType} matchMode - The match mode of the filter.\n * @param {FilterModel | FilterModel[]} [value] - The default value(s) for the filter. Type of value differs based on match mode and filter model.\n */\n public withDefaultValue(matchMode: FilterMatchModeType, value?: FilterModel | FilterModel[] | undefined): this {\n return this.withDefaultValueUnsafe(matchMode, value);\n }\n\n /**\n * Sets the default value for a filter with the specified match mode.\n *\n * This function is UNSAFE!\n *\n * @param {FilterMatchModeType} matchMode - The match mode of the filter.\n * @param {FilterModel | FilterModel[]} [value] - The default value(s) for the filter. Type of value differs based on match mode and filter model.\n */\n public withDefaultValueUnsafe(matchMode?: string, value?: any | any[] | undefined): this {\n this._hasDefaultValue = true;\n this._defaultValue = value;\n this._defaultMatchMode = matchMode;\n if (matchMode) {\n this.validateDefaultFilter(value, matchMode);\n }\n return this;\n }\n\n /**\n * Turns of the default value and match mode for filter.\n */\n public withoutDefaultValue(): this {\n this._hasDefaultValue = false;\n this._defaultValue = undefined;\n this._defaultMatchMode = undefined;\n return this;\n }\n\n protected validateDefaultFilter(value: FilterModel | FilterModel[] | undefined, matchMode: FilterMatchModeExtendedType) {\n if (matchMode === 'between' && value != null && (!Array.isArray(value) || value.filter(v => v != null).length !== 2)) {\n throw new CommonsInternalError(`Default value for filter match mode ${matchMode} must provide exactly 2 values in array`);\n }\n if ((matchMode === 'in' || matchMode === 'notIn') && value != null && (!Array.isArray(value) || value.filter(v => v != null).length === 0)) {\n throw new CommonsInternalError(`Default value for filter match mode ${matchMode} must be array and provide at least 1 non-null value`);\n }\n if (matchMode === 'exists' || matchMode === 'doesNotExist') {\n this._defaultValue = undefined;\n }\n\n if (matchMode && this._matchModes && this._matchModes.indexOf(matchMode) < 0) {\n this._defaultMatchMode = undefined;\n LoggerService.get().debug(`WARNING: Default filter match mode '${matchMode}' could not be assigned for property ${this._property}.`);\n }\n }\n\n /**\n * Sets format for display of filter value (applies to date and number).\n *\n * @param format Format (Angular formatting rules apply).\n * @param applyToField If the format should also be applied to field on filter editing form.\n */\n public withDisplayFormat(format?: string, applyToField?: boolean): this {\n this._displayFormat = format;\n this._displayFormatApplyToField = applyToField;\n return this;\n }\n\n /**\n * Sets locale for filter.\n *\n * @param locale Locale.\n */\n public withLocale(locale?: string): this {\n this._locale = locale;\n return this;\n }\n\n /**\n * Sets fraction for number filter editing field.\n *\n * @param min Min fraction digits (i.e. digits after decimal).\n * @param max Max fraction digits (i.e. digits after decimal).\n */\n public withNumberFractions(min?: number, max?: number) {\n this._numberMinFractionDigits = min;\n this._numberMaxFractionDigits = max;\n return this;\n }\n\n /**\n * If number grouping should be used.\n *\n * @param useGrouping Enables/disbaled the feature.\n */\n public withNumberGrouping(useGrouping = true): this {\n this._numberUseGrouping = useGrouping;\n return this;\n }\n\n /**\n * Sets a data provider for autocomplete text suggestions.\n *\n * @param valueDataProvider Data provider for autocomplete.\n */\n public withGenericValueProvider(valueDataProvider: ILookupDataProvider<string, any, any, 'field'>): this {\n if (!(this.filterType === FilterTypeEnum.String || this.filterType === FilterTypeEnum.LookupEnum)) {\n throw new CommonsInternalError('Generic value lookup can only be set for the string or lookup enum filter types.');\n }\n\n this._valueSuggestionProvider = valueDataProvider;\n return this;\n }\n\n /**\n * Sets date picker display options.\n *\n * @param opts Options.\n */\n public withDatePickerDisplay(opts?: FilterDatePickerDisplayOptsType): this {\n this._displayFormatApplyToField = opts?.applyFromDisplayFormat;\n this._datePickerFormat = opts?.format;\n this._datePickerShowTime = opts?.showTime;\n this._datePickerShowSeconds = opts?.showSeconds;\n this._datePickerShowMilliseconds = opts?.showMilliseconds;\n this._datePickerPrimeTimePicker = opts?.primeTimePicker;\n this._datePickerTimeSelectInterval = opts?.timeSelectInterval;\n this._datePickerTimeSelect = opts?.timeSelect;\n return this;\n }\n\n /**\n * Sets filter date value formatting options.\n *\n * @param opts Options.\n */\n public withDateValue(opts?: FilterDateValueOptsType): this {\n this._dateValueUtc = opts?.utc;\n this._dateValueNoTimezone = opts?.noTimeZone;\n this._dateValueNoTime = opts?.noTime;\n return this;\n }\n\n /**\n * Sets placeholder for filter field.\n *\n * @param placeholder Text for placeholder.\n */\n public withPlaceholder(placeholder: string): this {\n this._placeholder = placeholder;\n return this;\n }\n\n /**\n * Sets class name for filter.\n *\n * @param className Class name.\n */\n public withClassName(className: string): this {\n this._className = className;\n return this;\n }\n\n /**\n * Sets class name for column display type.\n *\n * @param className Class name for column.\n */\n public withColumnClassName(className: string): this {\n this._columnClassName = className;\n return this;\n }\n\n /**\n * Set column width for column display type.\n *\n * @param width Relative width (in percentage) of table width:\n * @param minWidth\n */\n public withColumnWidth(width?: number, minWidth?: number): this {\n this._columnWidth = width ?? null;\n this._columnMinWidth = minWidth ?? null;\n return this;\n }\n\n /**\n * Sets input trimming for filter value field.\n *\n * @param trimOption Trim setting.\n */\n public withInputTrimming(trimOption: InputTrimType = 'both'): this {\n this._inputTrim = trimOption;\n return this;\n }\n\n /**\n * Sets range of match modes for this filter. If non provided, the defaults are applied.\n *\n * @param matchModes Match mode options.\n */\n public withMatchModes(matchModes?: Array<FilterMatchModeExtendedType>): this {\n this._matchModes = matchModes;\n return this;\n }\n\n /**\n * Sets default match mode for this filter. If non provided, the default is applied. If custom match modes are provided, it will be validated against it.\n *\n * @param matchMode Match mode option.\n */\n public withDefaultMatchMode(matchMode?: FilterMatchModeExtendedType): this {\n if (matchMode != null && Array.isArray(this._matchModes) && !this._matchModes.includes(matchMode)) {\n throw new CommonsInternalError(`Filter match mode ${matchMode} cannot be set for property ${this._property}, because custom match modes do not include it.`);\n }\n this._defaultMatchMode = matchMode;\n return this;\n }\n\n /**\n * Filter title. If non provided, the defaults are applied.\n *\n * @param title Title for the field.\n * @param useModelBase Use model's i18n base key as base path for translation.\n */\n public withTitle(title: string, useModelBase?: boolean): this {\n this._title = title;\n this._titleUseModelBase = useModelBase;\n return this;\n }\n\n public withDropdownClassName(dropdownClassName: string): this {\n this._dropdownClassName = dropdownClassName;\n return this;\n }\n\n public withRequired(isRequired = true) {\n this._isRequired = isRequired;\n return this;\n }\n\n /**\n * Copies current descriptor to a new instance.\n */\n public copy(): FilterDescriptor<FilterModel, TableModel> {\n const descriptor = new FilterDescriptor<FilterModel, TableModel>(this._property);\n this.copyFieldsTo(descriptor);\n return descriptor;\n }\n\n protected copyFieldsTo(descriptor: FilterDescriptor<FilterModel, TableModel>) {\n descriptor._filterType = this._filterType;\n descriptor._hasDefaultValue = this._hasDefaultValue;\n descriptor._defaultValue = this._defaultValue;\n descriptor._defaultMatchMode = this._defaultMatchMode;\n descriptor._displayFormat = this._displayFormat;\n descriptor._locale = this._locale;\n descriptor._numberMinFractionDigits = this._numberMinFractionDigits;\n descriptor._numberMaxFractionDigits = this._numberMaxFractionDigits;\n descriptor._numberUseGrouping = this._numberUseGrouping;\n descriptor._datePickerFormat = this._datePickerFormat;\n descriptor._datePickerShowTime = this._datePickerShowTime;\n descriptor._dateValueUtc = this._dateValueUtc;\n descriptor._dateValueNoTimezone = this._dateValueNoTimezone;\n descriptor._dateValueNoTime = this._dateValueNoTime;\n descriptor._customComponentType = this._customComponentType;\n descriptor._placeholder = this._placeholder;\n descriptor._className = this._className;\n descriptor._columnWidth = this._columnWidth;\n descriptor._columnMinWidth = this._columnMinWidth;\n descriptor._columnClassName = this._columnClassName;\n descriptor._isGenericFilter = this._isGenericFilter;\n descriptor._valueSuggestionProvider = this._valueSuggestionProvider;\n descriptor._dropdownClassName = this._dropdownClassName;\n descriptor._isRequired = this._isRequired;\n }\n}\n","import {of} from 'rxjs';\n\nimport {\n EnumConstantType,\n EnumValue,\n ILookupDataProvider,\n ILookupDescriptor,\n LookupDataProviderCacheOpts,\n LookupDataProviderLookupFnType,\n ServiceClassOptType,\n ServiceClassType,\n fromEnumConstantsAsValueArray,\n fromEnumValuesAsValueArray\n} from '@mediusinc/mng-commons/core';\nimport {LookupDataProviderInst} from '@mediusinc/mng-commons/form/api';\nimport {EnumDescriptor} from '@mediusinc/mng-commons/model';\n\nimport {FilterLookupTypeEnum, FilterTypeEnum} from '../models/filter.model';\nimport {FilterDescriptor} from './filter.descriptor';\n\nexport type FilterLookupDescriptorConstructorOptsType<\n FilterModel,\n Service,\n Sorts = keyof FilterModel,\n Filters extends keyof any = keyof FilterModel\n> = FilterLookupDescriptorCreateOptsProviderType<FilterModel, Service, Sorts, Filters> & {\n optionsValueProperty?: string | null;\n};\n\nexport type FilterLookupDescriptorCreateOptsProviderType<FilterModel, Service, Sorts = keyof FilterModel, Filters extends keyof any = keyof FilterModel> = {\n serviceType?: ServiceClassType<Service>;\n dataProvider?: ILookupDataProvider<FilterModel, Service, Sorts, Filters>;\n};\n\nexport type FilterLookupOptsType = {\n inlineSearch?: boolean;\n};\n\nexport type FilterLookupDropdownOptsType = FilterLookupOptsType & {\n allowInput?: boolean;\n};\n\nexport type FilterLookupAutocompleteOptsType = FilterLookupOptsType & {\n openOnFocus?: boolean;\n autoClear?: boolean;\n};\n\nexport class FilterLookupDescriptor<FilterModel, TableModel, Service = any, FilterValue = FilterModel, Sorts = keyof FilterModel, Filters extends keyof any = keyof FilterModel>\n extends FilterDescriptor<FilterValue, TableModel>\n implements ILookupDescriptor<FilterModel, Service, Sorts, Filters>\n{\n protected readonly _dataProvider: ILookupDataProvider<FilterModel, Service, Sorts, Filters>;\n protected readonly _optionsValueProperty?: string | null;\n protected _lookupType?: FilterLookupTypeEnum = FilterLookupTypeEnum.Dropdown;\n protected _optionsLabelProperty?: string;\n protected _optionsLabelTranslate = false;\n\n protected override _dropdownClassName = 'mng-filter-lookup-dropdown';\n\n protected _inlineSearch?: boolean;\n\n protected _dropdownAllowInput?: boolean;\n\n protected _autocompleteOpenOnFocus?: boolean;\n protected _autocompleteAutoClear?: boolean;\n\n constructor(property: string, cfg?: FilterLookupDescriptorConstructorOptsType<FilterModel, Service, Sorts, Filters>) {\n super(property);\n this._filterType = FilterTypeEnum.Lookup;\n\n if (cfg?.dataProvider) {\n this._dataProvider = cfg.dataProvider;\n } else {\n this._dataProvider = new LookupDataProviderInst<FilterModel, Service, Sorts, Filters, ServiceClassOptType<Service>>(cfg?.serviceType);\n }\n\n this._optionsValueProperty = cfg?.optionsValueProperty ?? undefined;\n }\n\n public get lookupType() {\n return this._lookupType;\n }\n\n public get dataProvider() {\n return this._dataProvider;\n }\n\n public get optionsLabelProperty() {\n return this._optionsLabelProperty;\n }\n\n public get optionsLabelTranslate() {\n return this._optionsLabelTranslate;\n }\n\n public get optionsValueProperty() {\n return this._optionsValueProperty ?? undefined;\n }\n\n public get autocompleteOpenOnFocus() {\n return this._autocompleteOpenOnFocus;\n }\n\n public get autocompleteAutoClear() {\n return this._autocompleteAutoClear;\n }\n\n public get inlineSearch() {\n return this._inlineSearch;\n }\n\n public get dropdownAllowInput() {\n return this._dropdownAllowInput;\n }\n\n /**\n * @deprecated Use `inlineSearch` instead.\n */\n public get autocompleteInlineSearch() {\n return this._inlineSearch;\n }\n\n public override get dropdownClassName() {\n return this._dropdownClassName;\n }\n\n /**\n * Sets label property for options display.\n *\n * @param property Property for label options.\n * @param translate If the options should be translated through the i18n.\n */\n public withOptionsLabelProperty(property: keyof FilterModel, translate = false): this {\n return this.withOptionsLabelPropertyUnsafe(property as string, translate);\n }\n\n /**\n * Sets label property for options display.\n *\n * This function is UNSAFE!\n *\n * @param property Property for label options.\n * @param translate If the options should be translated through the i18n.\n */\n public withOptionsLabelPropertyUnsafe(property: string, translate = false): this {\n this._optionsLabelProperty = property;\n this._optionsLabelTranslate = translate;\n return this;\n }\n\n /**\n * Method will set `optionsValueProperty`, because track properties are not supported here as filters need final value to work correctly.\n * Use `optionsValueProperty` in filter creation instead.\n */\n public withOptionsTrackProperty(): this {\n return this;\n }\n\n /**\n * Method will set `optionsValueProperty`, because track properties are not supported here as filters need final value to work correctly.\n * Use `optionsValueProperty` in filter creation instead.\n */\n public withOptionsTrackPropertyUnsafe(): this {\n return this;\n }\n\n public withLookup(lookup?: LookupDataProviderLookupFnType<FilterModel, Service, Sorts, Filters>): this {\n this._dataProvider.withLookup(lookup);\n return this;\n }\n\n /**\n * Sets the cache configuration.\n * @param enabled If cache is enabled. Defaults to true.\n * @param opts.ttl Time-to-live in seconds.\n * @param opts.key Key to use for caching. Defaults to data provider instance.\n */\n public withCache(enabled?: boolean, opts?: LookupDataProviderCacheOpts): this {\n this._dataProvider.withCache(enabled, opts);\n return this;\n }\n\n /**\n * Sets the dropdown class name.\n * @param dropdownClassName Class name for dropdown.\n */\n public override withDropdownClassName(dropdownClassName: string): this {\n this._dropdownClassName = dropdownClassName;\n return this;\n }\n\n /**\n * Sets lookup as autocomplete instead of dropdown.\n *\n * @param opts Additional options.\n */\n public asDropdown(opts?: FilterLookupDropdownOptsType): this {\n this._lookupType = FilterLookupTypeEnum.Dropdown;\n this._dropdownAllowInput = opts?.allowInput;\n this.#setCommonProps(opts);\n return this;\n }\n\n /**\n * Sets lookup as autocomplete instead of dropdown.\n *\n * @param opts Additional options.\n */\n public asAutocomplete(opts?: FilterLookupAutocompleteOptsType): this {\n this._lookupType = FilterLookupTypeEnum.Autocomplete;\n this._autocompleteAutoClear = opts?.autoClear;\n this._autocompleteOpenOnFocus = opts?.openOnFocus;\n this.#setCommonProps(opts);\n return this;\n }\n\n #setCommonProps(opts?: FilterLookupOptsType) {\n this._inlineSearch = opts?.inlineSearch;\n }\n\n /**\n * Copies current descriptor to a new instance.\n */\n public override copy(): FilterLookupDescriptor<FilterModel, TableModel, Service, FilterValue, Sorts, Filters> {\n const descriptor = new FilterLookupDescriptor<FilterModel, TableModel, Service, FilterValue, Sorts, Filters>(this._property, {\n dataProvider: this.dataProvider\n });\n this.copyFieldsTo(descriptor);\n return descriptor;\n }\n\n protected override copyFieldsTo(filter: FilterLookupDescriptor<FilterModel, TableModel, Service, FilterValue, Sorts, Filters>) {\n super.copyFieldsTo(filter);\n filter._lookupType = this._lookupType;\n filter._optionsLabelProperty = this._optionsLabelProperty;\n filter._optionsLabelTranslate = this._optionsLabelTranslate;\n filter._dropdownClassName = this._dropdownClassName;\n filter._inlineSearch = this._inlineSearch;\n filter._dropdownAllowInput = this._dropdownAllowInput;\n filter._autocompleteOpenOnFocus = this._autocompleteOpenOnFocus;\n filter._autocompleteAutoClear = this._autocompleteAutoClear;\n }\n}\n\nexport class FilterLookupEnumDescriptor<Enum, TableModel> extends FilterLookupDescriptor<EnumValue, TableModel, undefined, EnumConstantType, never, never> {\n private readonly _enum: EnumDescriptor<Enum>;\n private readonly _optionEnumValues: EnumValue[];\n\n constructor(property: string, enumDesc: EnumDescriptor<Enum>, options?: Array<Enum>) {\n super(property, {\n dataProvider: new LookupDataProviderInst<EnumValue, undefined, never, never, undefined>(undefined),\n optionsValueProperty: 'value'\n });\n this._filterType = FilterTypeEnum.LookupEnum;\n\n this._enum = enumDesc;\n\n this._optionEnumValues = Array.isArray(options)\n ? fromEnumValuesAsValueArray(this._enum.type, options, this._enum.nameAsValue, this._enum.i18nBaseKey ?? undefined)\n : fromEnumConstantsAsValueArray(this._enum.type, this._enum.nameAsValue, this._enum.i18nBaseKey ?? undefined);\n\n this.withLookup(() => of(this._optionEnumValues));\n this.withOptionsLabelProperty('title', this._enum.i18nBaseKey !== null);\n }\n\n public get enum() {\n return this._enum;\n }\n\n /**\n * Sets lookup as autocomplete instead of dropdown.\n *\n * @param opts Additional options.\n */\n public override asAutocomplete(opts?: FilterLookupAutocompleteOptsType): this {\n super.asAutocomplete({\n ...opts,\n openOnFocus: opts?.openOnFocus ?? true,\n inlineSearch: opts?.inlineSearch ?? true\n });\n return this;\n }\n\n /**\n * Copies current descriptor to a new instance.\n */\n public override copy(): FilterLookupEnumDescriptor<Enum, TableModel> {\n const field = new FilterLookupEnumDescriptor<Enum, TableModel>(this._property, this.enum, []);\n this.copyFieldsTo(field);\n return field;\n }\n}\n","import {LookupDataProviderInst} from '@mediusinc/mng-commons/form/api';\n\nimport {FilterGenericProperty} from '../models/filter-generic-property.model';\n\nexport class FilterGenericDescriptor {\n protected _propertyLookup: LookupDataProviderInst<FilterGenericProperty>;\n protected _propertySearch?: boolean;\n protected _valueLookup?: LookupDataProviderInst<string, any, any, 'field'>;\n\n constructor(propertyLookupDataProvider: LookupDataProviderInst<FilterGenericProperty>) {\n this._propertyLookup = propertyLookupDataProvider;\n }\n\n // must set return types explicitly due to ng-packagr bug: https://github.com/ng-packagr/ng-packagr/issues/1405\n public get propertyLookup(): LookupDataProviderInst<FilterGenericProperty> {\n return this._propertyLookup;\n }\n\n public get propertySearch() {\n return this._propertySearch;\n }\n\n // must set return types explicitly due to ng-packagr bug: https://github.com/ng-packagr/ng-packagr/issues/1405\n public get valueLookup(): LookupDataProviderInst<string, any, any, 'field'> | undefined {\n return this._valueLookup;\n }\n\n public withValueLookup(valueLookup: LookupDataProviderInst<string, any, any, 'field'>): this {\n this._valueLookup = valueLookup;\n return this;\n }\n\n public withPropertySearch(search = true): this {\n this._propertySearch = search;\n return this;\n }\n\n public copy(): FilterGenericDescriptor {\n const descriptor = new FilterGenericDescriptor(this._propertyLookup);\n descriptor._propertySearch = this._propertySearch;\n descriptor._valueLookup = this._valueLookup;\n return descriptor;\n }\n}\n","// descriptors\nexport * from './descriptors/filter.descriptor';\nexport * from './descriptors/filter-lookup.descriptor';\nexport * from './descriptors/filter-generic.descriptor';\n\n// models\nexport * from './models/filter.model';\nexport * from './models/filter-component.interface';\nexport * from './models/filter-generic-property.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -8,10 +8,31 @@ class LookupDataProviderInst extends DataProviderInst {
8
8
  get lookup() {
9
9
  return this._lookup;
10
10
  }
11
+ get cacheKey() {
12
+ return this._cacheKey;
13
+ }
14
+ get cacheEnabled() {
15
+ return this._cacheEnabled;
16
+ }
17
+ get cacheTtl() {
18
+ return this._cacheTtl;
19
+ }
11
20
  withLookup(fn) {
12
21
  this._lookup = fn;
13
22
  return this;
14
23
  }
24
+ /**
25
+ * Sets the cache configuration.
26
+ * @param enabled If cache is enabled. Defaults to true.
27
+ * @param opts.ttl Time-to-live in seconds.
28
+ * @param opts.key Key to use for caching. Defaults to data provider instance.
29
+ */
30
+ withCache(enabled, opts) {
31
+ this._cacheEnabled = enabled;
32
+ this._cacheTtl = opts?.ttl;
33
+ this._cacheKey = opts?.key;
34
+ return this;
35
+ }
15
36
  }
16
37
 
17
38
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-form-api.mjs","sources":["../../form/api/src/data-providers/lookup.data-provider.ts","../../form/api/src/data-providers/lookup-data-provider.factory.ts","../../form/api/src/descriptors/action-button.descriptor.ts","../../form/api/src/helpers/button.helper.ts","../../form/api/src/index.ts","../../form/api/src/mediusinc-mng-commons-form-api.ts"],"sourcesContent":["import {DataProviderInst, ILookupDataProvider, LookupDataProviderLookupFnType, ServiceClassOptType} from '@mediusinc/mng-commons/core';\n\nexport class LookupDataProviderInst<Model, Service = any, Sorts = keyof Model, Filters extends keyof any = keyof Model, ServiceClass = ServiceClassOptType<Service>>\n extends DataProviderInst<Model, Service, ServiceClass>\n implements ILookupDataProvider<Model, Service, Sorts, Filters, ServiceClass>\n{\n protected _lookup: LookupDataProviderLookupFnType<Model, Service, Sorts, Filters> = () => [];\n\n public constructor(serviceType: ServiceClass) {\n super(serviceType);\n }\n\n get lookup() {\n return this._lookup;\n }\n\n withLookup(fn: LookupDataProviderLookupFnType<Model, Service, Sorts, Filters>): this {\n this._lookup = fn;\n return this;\n }\n}\n","import {ServiceClassType} from '@mediusinc/mng-commons/core';\nimport {ModelDescriptor, TypeDescriptor} from '@mediusinc/mng-commons/model';\n\nimport {LookupDataProviderInst} from './lookup.data-provider';\n\n/**\n * Creates and returns an instance of `LookupDataProviderInst` with the specified options for managing lookup data.\n *\n * @param {Object} [opts] - The options object to configure the data provider.\n * @param {TypeDescriptor<Model> | ModelDescriptor<Model>} [opts.type] - The descriptor defining the type of model.\n * @param {ServiceClassType<Service>} [opts.service] - The service class type associated with the data provider.\n * @param {TypeDescriptor<CreateModel> | ModelDescriptor<CreateModel>} [opts.filtersType] - The descriptor defining the filters type.\n * @param {TypeDescriptor<UpdateModel> | ModelDescriptor<UpdateModel>} [opts.sortsType] - The descriptor defining the sorts type.\n * @return {LookupDataProviderInst<Model, Service, Sorts, Filters, ServiceClass>} An instance of `LookupDataProviderInst` configured according to the provided options.\n */\nexport function lookupDataProvider<\n Model,\n Service = any,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model,\n ServiceClass = Service extends undefined ? undefined : ServiceClassType<Service>\n>(opts?: {\n type?: TypeDescriptor<Model> | ModelDescriptor<Model>;\n service?: ServiceClassType<Service>;\n filtersType?: TypeDescriptor<Filters> | ModelDescriptor<Filters>;\n sortsType?: TypeDescriptor<Sorts> | ModelDescriptor<Sorts>;\n}): LookupDataProviderInst<Model, Service, Sorts, Filters, ServiceClass> {\n return new LookupDataProviderInst<Model, Service, Sorts, Filters, ServiceClass>(opts?.service as ServiceClass);\n}\n","import {IActionButtonDescriptor, IButtonStyleDescriptor} from '../models/button.model';\n\nexport class ActionButtonDescriptor implements IActionButtonDescriptor {\n private _label?: string | null;\n\n private _icon?: string | null;\n private _iconPosition?: 'left' | 'right';\n\n private _styleClass?: IButtonStyleDescriptor;\n\n private _badge?: string;\n private _tooltip?: string | null;\n private _tooltipPosition?: 'top' | 'bottom' | 'left' | 'right';\n\n public withLabel(label?: string | null): this {\n this._label = label;\n return this;\n }\n\n public withIcon(icon: string | null, iconPosition?: 'left' | 'right'): this {\n this._icon = icon;\n this._iconPosition = iconPosition;\n return this;\n }\n\n public withStyle(style?: IButtonStyleDescriptor): this {\n this._styleClass = style;\n return this;\n }\n\n public withBadge(badge: string): this {\n this._badge = badge;\n return this;\n }\n\n public withTooltip(tooltip: string | null, position?: 'top' | 'bottom' | 'left' | 'right'): this {\n this._tooltip = tooltip;\n this._tooltipPosition = position ?? 'top';\n return this;\n }\n\n public get label() {\n return this._label;\n }\n\n public get icon() {\n return this._icon;\n }\n\n public get iconPosition() {\n return this._iconPosition;\n }\n\n public get style() {\n return this._styleClass;\n }\n\n public get badge() {\n return this._badge;\n }\n\n public get tooltip() {\n return this._tooltip;\n }\n\n public get tooltipPosition() {\n return this._tooltipPosition;\n }\n\n public copy(): ActionButtonDescriptor {\n const descriptor = new ActionButtonDescriptor();\n descriptor._label = this._label;\n descriptor._icon = this._icon;\n descriptor._iconPosition = this._iconPosition;\n descriptor._styleClass = {...this._styleClass};\n descriptor._badge = this._badge;\n descriptor._tooltip = this._tooltip;\n return descriptor;\n }\n}\n","import {StyleSizeEnum} from '@mediusinc/mng-commons/core';\n\nimport {IButtonStyleDescriptor, PrimeButtonSize, PrimeButtonStyleProps} from '../models/button.model';\n\nexport function buttonStyleToPrimeStyles(descriptor: IButtonStyleDescriptor | undefined, hasNoTitle = false): PrimeButtonStyleProps {\n return {\n size: sizeEnumToPrimeSize(descriptor?.size),\n severity: descriptor?.severity,\n text: descriptor?.text,\n outlined: descriptor?.outlined,\n raised: descriptor?.raised,\n rounded: descriptor?.rounded ?? hasNoTitle,\n class: [sizeEnumToCustomStyleClass(descriptor?.size), descriptor?.class].filter(Boolean).join(' ')\n };\n}\n\nfunction sizeEnumToPrimeSize(size: StyleSizeEnum | undefined): PrimeButtonSize {\n switch (size) {\n case StyleSizeEnum.Small:\n return 'small';\n case StyleSizeEnum.Large:\n return 'large';\n default:\n return undefined;\n }\n}\n\nfunction sizeEnumToCustomStyleClass(size?: StyleSizeEnum): string | undefined {\n switch (size) {\n case StyleSizeEnum.ExtraLarge:\n return 'mng-button-xl';\n case StyleSizeEnum.ExtraSmall:\n return 'mng-button-xs';\n default:\n return undefined;\n }\n}\n","// data providers\nexport * from './data-providers/lookup.data-provider';\nexport * from './data-providers/lookup-data-provider.factory';\n\n// descriptors\nexport * from './descriptors/action-button.descriptor';\n\n// models\nexport * from './models/button.model';\nexport * from './models/empty-value.model';\nexport * from './models/trim.model';\n\n// helpers\nexport * from './helpers/button.helper';\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-form-api.mjs","sources":["../../form/api/src/data-providers/lookup.data-provider.ts","../../form/api/src/data-providers/lookup-data-provider.factory.ts","../../form/api/src/descriptors/action-button.descriptor.ts","../../form/api/src/helpers/button.helper.ts","../../form/api/src/index.ts","../../form/api/src/mediusinc-mng-commons-form-api.ts"],"sourcesContent":["import {DataProviderInst, ILookupDataProvider, LookupDataProviderCacheOpts, LookupDataProviderLookupFnType, ServiceClassOptType} from '@mediusinc/mng-commons/core';\n\nexport class LookupDataProviderInst<Model, Service = any, Sorts = keyof Model, Filters extends keyof any = keyof Model, ServiceClass = ServiceClassOptType<Service>>\n extends DataProviderInst<Model, Service, ServiceClass>\n implements ILookupDataProvider<Model, Service, Sorts, Filters, ServiceClass>\n{\n protected _lookup: LookupDataProviderLookupFnType<Model, Service, Sorts, Filters> = () => [];\n protected _cacheKey?: string;\n protected _cacheEnabled?: boolean;\n protected _cacheTtl?: number;\n\n public constructor(serviceType: ServiceClass) {\n super(serviceType);\n }\n\n get lookup() {\n return this._lookup;\n }\n\n get cacheKey() {\n return this._cacheKey;\n }\n\n get cacheEnabled() {\n return this._cacheEnabled;\n }\n\n get cacheTtl() {\n return this._cacheTtl;\n }\n\n withLookup(fn: LookupDataProviderLookupFnType<Model, Service, Sorts, Filters>): this {\n this._lookup = fn;\n return this;\n }\n\n /**\n * Sets the cache configuration.\n * @param enabled If cache is enabled. Defaults to true.\n * @param opts.ttl Time-to-live in seconds.\n * @param opts.key Key to use for caching. Defaults to data provider instance.\n */\n withCache(enabled?: boolean, opts?: LookupDataProviderCacheOpts): this {\n this._cacheEnabled = enabled;\n this._cacheTtl = opts?.ttl;\n this._cacheKey = opts?.key;\n return this;\n }\n}\n","import {ServiceClassType} from '@mediusinc/mng-commons/core';\nimport {ModelDescriptor, TypeDescriptor} from '@mediusinc/mng-commons/model';\n\nimport {LookupDataProviderInst} from './lookup.data-provider';\n\n/**\n * Creates and returns an instance of `LookupDataProviderInst` with the specified options for managing lookup data.\n *\n * @param {Object} [opts] - The options object to configure the data provider.\n * @param {TypeDescriptor<Model> | ModelDescriptor<Model>} [opts.type] - The descriptor defining the type of model.\n * @param {ServiceClassType<Service>} [opts.service] - The service class type associated with the data provider.\n * @param {TypeDescriptor<CreateModel> | ModelDescriptor<CreateModel>} [opts.filtersType] - The descriptor defining the filters type.\n * @param {TypeDescriptor<UpdateModel> | ModelDescriptor<UpdateModel>} [opts.sortsType] - The descriptor defining the sorts type.\n * @return {LookupDataProviderInst<Model, Service, Sorts, Filters, ServiceClass>} An instance of `LookupDataProviderInst` configured according to the provided options.\n */\nexport function lookupDataProvider<\n Model,\n Service = any,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model,\n ServiceClass = Service extends undefined ? undefined : ServiceClassType<Service>\n>(opts?: {\n type?: TypeDescriptor<Model> | ModelDescriptor<Model>;\n service?: ServiceClassType<Service>;\n filtersType?: TypeDescriptor<Filters> | ModelDescriptor<Filters>;\n sortsType?: TypeDescriptor<Sorts> | ModelDescriptor<Sorts>;\n}): LookupDataProviderInst<Model, Service, Sorts, Filters, ServiceClass> {\n return new LookupDataProviderInst<Model, Service, Sorts, Filters, ServiceClass>(opts?.service as ServiceClass);\n}\n","import {IActionButtonDescriptor, IButtonStyleDescriptor} from '../models/button.model';\n\nexport class ActionButtonDescriptor implements IActionButtonDescriptor {\n private _label?: string | null;\n\n private _icon?: string | null;\n private _iconPosition?: 'left' | 'right';\n\n private _styleClass?: IButtonStyleDescriptor;\n\n private _badge?: string;\n private _tooltip?: string | null;\n private _tooltipPosition?: 'top' | 'bottom' | 'left' | 'right';\n\n public withLabel(label?: string | null): this {\n this._label = label;\n return this;\n }\n\n public withIcon(icon: string | null, iconPosition?: 'left' | 'right'): this {\n this._icon = icon;\n this._iconPosition = iconPosition;\n return this;\n }\n\n public withStyle(style?: IButtonStyleDescriptor): this {\n this._styleClass = style;\n return this;\n }\n\n public withBadge(badge: string): this {\n this._badge = badge;\n return this;\n }\n\n public withTooltip(tooltip: string | null, position?: 'top' | 'bottom' | 'left' | 'right'): this {\n this._tooltip = tooltip;\n this._tooltipPosition = position ?? 'top';\n return this;\n }\n\n public get label() {\n return this._label;\n }\n\n public get icon() {\n return this._icon;\n }\n\n public get iconPosition() {\n return this._iconPosition;\n }\n\n public get style() {\n return this._styleClass;\n }\n\n public get badge() {\n return this._badge;\n }\n\n public get tooltip() {\n return this._tooltip;\n }\n\n public get tooltipPosition() {\n return this._tooltipPosition;\n }\n\n public copy(): ActionButtonDescriptor {\n const descriptor = new ActionButtonDescriptor();\n descriptor._label = this._label;\n descriptor._icon = this._icon;\n descriptor._iconPosition = this._iconPosition;\n descriptor._styleClass = {...this._styleClass};\n descriptor._badge = this._badge;\n descriptor._tooltip = this._tooltip;\n return descriptor;\n }\n}\n","import {StyleSizeEnum} from '@mediusinc/mng-commons/core';\n\nimport {IButtonStyleDescriptor, PrimeButtonSize, PrimeButtonStyleProps} from '../models/button.model';\n\nexport function buttonStyleToPrimeStyles(descriptor: IButtonStyleDescriptor | undefined, hasNoTitle = false): PrimeButtonStyleProps {\n return {\n size: sizeEnumToPrimeSize(descriptor?.size),\n severity: descriptor?.severity,\n text: descriptor?.text,\n outlined: descriptor?.outlined,\n raised: descriptor?.raised,\n rounded: descriptor?.rounded ?? hasNoTitle,\n class: [sizeEnumToCustomStyleClass(descriptor?.size), descriptor?.class].filter(Boolean).join(' ')\n };\n}\n\nfunction sizeEnumToPrimeSize(size: StyleSizeEnum | undefined): PrimeButtonSize {\n switch (size) {\n case StyleSizeEnum.Small:\n return 'small';\n case StyleSizeEnum.Large:\n return 'large';\n default:\n return undefined;\n }\n}\n\nfunction sizeEnumToCustomStyleClass(size?: StyleSizeEnum): string | undefined {\n switch (size) {\n case StyleSizeEnum.ExtraLarge:\n return 'mng-button-xl';\n case StyleSizeEnum.ExtraSmall:\n return 'mng-button-xs';\n default:\n return undefined;\n }\n}\n","// data providers\nexport * from './data-providers/lookup.data-provider';\nexport * from './data-providers/lookup-data-provider.factory';\n\n// descriptors\nexport * from './descriptors/action-button.descriptor';\n\n// models\nexport * from './models/button.model';\nexport * from './models/empty-value.model';\nexport * from './models/trim.model';\n\n// helpers\nexport * from './helpers/button.helper';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}