@mediusinc/mng-commons 7.0.0-rc.1 → 7.0.0-rc.3

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 (37) hide show
  1. package/core/index.d.ts +24 -4
  2. package/fesm2022/mediusinc-mng-commons-core.mjs +108 -72
  3. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  4. package/fesm2022/mediusinc-mng-commons-filter.mjs +16 -0
  5. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  6. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  7. package/fesm2022/mediusinc-mng-commons-form.mjs +406 -49
  8. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  9. package/fesm2022/mediusinc-mng-commons-model-class.mjs.map +1 -1
  10. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  11. package/fesm2022/mediusinc-mng-commons-table-api-class.mjs.map +1 -1
  12. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  13. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-DnEnjeJ9.mjs +30 -0
  14. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-DnEnjeJ9.mjs.map +1 -0
  15. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BuhoFRkG.mjs +2700 -0
  16. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BuhoFRkG.mjs.map +1 -0
  17. package/fesm2022/mediusinc-mng-commons-table.mjs +1 -1
  18. package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs.map +1 -1
  19. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +31 -3
  20. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  21. package/fesm2022/mediusinc-mng-commons-tableview.mjs +155 -123
  22. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  23. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  24. package/filter/index.d.ts +13 -0
  25. package/form/index.d.ts +109 -22
  26. package/i18n/en.json +12 -1
  27. package/i18n/sl.json +12 -1
  28. package/package.json +24 -24
  29. package/table/api/index.d.ts +2 -2
  30. package/table/index.d.ts +97 -29
  31. package/tableview/api/index.d.ts +17 -2
  32. package/tableview/index.d.ts +7 -1
  33. package/version-info.json +6 -6
  34. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-0Dtv48mq.mjs +0 -30
  35. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-0Dtv48mq.mjs.map +0 -1
  36. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BsAwyXiN.mjs +0 -2417
  37. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BsAwyXiN.mjs.map +0 -1
@@ -88,6 +88,18 @@ class FilterDescriptor {
88
88
  get datePickerShowSeconds() {
89
89
  return this._datePickerShowSeconds;
90
90
  }
91
+ get datePickerShowMilliseconds() {
92
+ return this._datePickerShowMilliseconds;
93
+ }
94
+ get datePickerPrimeTimePicker() {
95
+ return this._datePickerPrimeTimePicker;
96
+ }
97
+ get datePickerTimeSelectInterval() {
98
+ return this._datePickerTimeSelectInterval;
99
+ }
100
+ get datePickerTimeSelect() {
101
+ return this._datePickerTimeSelect;
102
+ }
91
103
  get dateValueUtc() {
92
104
  return this._dateValueUtc;
93
105
  }
@@ -325,6 +337,10 @@ class FilterDescriptor {
325
337
  this._datePickerFormat = opts?.format;
326
338
  this._datePickerShowTime = opts?.showTime;
327
339
  this._datePickerShowSeconds = opts?.showSeconds;
340
+ this._datePickerShowMilliseconds = opts?.showMilliseconds;
341
+ this._datePickerPrimeTimePicker = opts?.primeTimePicker;
342
+ this._datePickerTimeSelectInterval = opts?.timeSelectInterval;
343
+ this._datePickerTimeSelect = opts?.timeSelect;
328
344
  return this;
329
345
  }
330
346
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-filter.mjs","sources":["../tmp-esm2022/filter/models/filter.model.js","../tmp-esm2022/filter/descriptors/filter.descriptor.js","../tmp-esm2022/filter/descriptors/filter-lookup.descriptor.js","../tmp-esm2022/filter/descriptors/filter-generic.descriptor.js","../tmp-esm2022/filter/index.js","../tmp-esm2022/filter/mediusinc-mng-commons-filter.js"],"sourcesContent":["export var FilterTypeEnum;\n(function (FilterTypeEnum) {\n FilterTypeEnum[FilterTypeEnum[\"String\"] = 0] = \"String\";\n FilterTypeEnum[FilterTypeEnum[\"Number\"] = 1] = \"Number\";\n FilterTypeEnum[FilterTypeEnum[\"Boolean\"] = 2] = \"Boolean\";\n FilterTypeEnum[FilterTypeEnum[\"Date\"] = 3] = \"Date\";\n FilterTypeEnum[FilterTypeEnum[\"Lookup\"] = 4] = \"Lookup\";\n FilterTypeEnum[FilterTypeEnum[\"LookupEnum\"] = 5] = \"LookupEnum\";\n FilterTypeEnum[FilterTypeEnum[\"Component\"] = 6] = \"Component\";\n})(FilterTypeEnum || (FilterTypeEnum = {}));\nexport var FilterLookupTypeEnum;\n(function (FilterLookupTypeEnum) {\n FilterLookupTypeEnum[FilterLookupTypeEnum[\"Dropdown\"] = 0] = \"Dropdown\";\n FilterLookupTypeEnum[FilterLookupTypeEnum[\"Autocomplete\"] = 1] = \"Autocomplete\";\n})(FilterLookupTypeEnum || (FilterLookupTypeEnum = {}));\nexport var FilterDisplayTypeEnum;\n(function (FilterDisplayTypeEnum) {\n FilterDisplayTypeEnum[FilterDisplayTypeEnum[\"Column\"] = 0] = \"Column\";\n FilterDisplayTypeEnum[FilterDisplayTypeEnum[\"OverlayWithTag\"] = 1] = \"OverlayWithTag\";\n FilterDisplayTypeEnum[FilterDisplayTypeEnum[\"DirectInput\"] = 2] = \"DirectInput\";\n})(FilterDisplayTypeEnum || (FilterDisplayTypeEnum = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZmlsdGVyL3NyYy9tb2RlbHMvZmlsdGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGNBUVg7QUFSRCxXQUFZLGNBQWM7SUFDdEIsdURBQU0sQ0FBQTtJQUNOLHVEQUFNLENBQUE7SUFDTix5REFBTyxDQUFBO0lBQ1AsbURBQUksQ0FBQTtJQUNKLHVEQUFNLENBQUE7SUFDTiwrREFBVSxDQUFBO0lBQ1YsNkRBQVMsQ0FBQTtBQUNiLENBQUMsRUFSVyxjQUFjLEtBQWQsY0FBYyxRQVF6QjtBQUVELE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDNUIsdUVBQVEsQ0FBQTtJQUNSLCtFQUFZLENBQUE7QUFDaEIsQ0FBQyxFQUhXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHL0I7QUFFRCxNQUFNLENBQU4sSUFBWSxxQkFJWDtBQUpELFdBQVkscUJBQXFCO0lBQzdCLHFFQUFNLENBQUE7SUFDTixxRkFBYyxDQUFBO0lBQ2QsK0VBQVcsQ0FBQTtBQUNmLENBQUMsRUFKVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBSWhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRmlsdGVyVHlwZUVudW0ge1xuICAgIFN0cmluZyxcbiAgICBOdW1iZXIsXG4gICAgQm9vbGVhbixcbiAgICBEYXRlLFxuICAgIExvb2t1cCxcbiAgICBMb29rdXBFbnVtLFxuICAgIENvbXBvbmVudFxufVxuXG5leHBvcnQgZW51bSBGaWx0ZXJMb29rdXBUeXBlRW51bSB7XG4gICAgRHJvcGRvd24sXG4gICAgQXV0b2NvbXBsZXRlXG59XG5cbmV4cG9ydCBlbnVtIEZpbHRlckRpc3BsYXlUeXBlRW51bSB7XG4gICAgQ29sdW1uLFxuICAgIE92ZXJsYXlXaXRoVGFnLFxuICAgIERpcmVjdElucHV0XG59XG4iXX0=","import { CommonsInternalError, LoggerService } from '@mediusinc/mng-commons/core';\nimport { FilterDisplayTypeEnum, FilterTypeEnum } from '../models/filter.model';\nexport class FilterDescriptor {\n constructor(property) {\n this._filterType = FilterTypeEnum.String;\n // default value\n this._hasDefaultValue = false;\n this._numberUseGrouping = true;\n this._className = '';\n this._columnClassName = '';\n this._columnWidth = null;\n this._columnMinWidth = null;\n this._isRequired = false;\n this._isGenericFilter = false;\n this._dropdownClassName = '';\n this._property = property;\n this._showOnColumn = property;\n }\n get filterType() {\n return this._filterType;\n }\n get showOnColumn() {\n return this._showOnColumn;\n }\n get displayType() {\n return this._displayType;\n }\n get hasDefaultValue() {\n return this._hasDefaultValue;\n }\n get defaultValue() {\n return this._defaultValue;\n }\n get defaultMatchMode() {\n return this._defaultMatchMode;\n }\n get matchModes() {\n return this._matchModes;\n }\n get displayFormat() {\n return this._displayFormat;\n }\n get displayFormatApplyToField() {\n return this._displayFormatApplyToField;\n }\n get locale() {\n return this._locale;\n }\n get numberMinFractionDigits() {\n return this._numberMinFractionDigits;\n }\n get numberMaxFractionDigits() {\n return this._numberMaxFractionDigits;\n }\n get numberUseGrouping() {\n return this._numberUseGrouping;\n }\n get datePickerFormat() {\n return this._datePickerFormat;\n }\n get datePickerShowTime() {\n return this._datePickerShowTime;\n }\n get datePickerShowSeconds() {\n return this._datePickerShowSeconds;\n }\n get dateValueUtc() {\n return this._dateValueUtc;\n }\n get dateValueNoTimezone() {\n return this._dateValueNoTimezone;\n }\n get dateValueNoTime() {\n return this._dateValueNoTime;\n }\n get customComponentType() {\n return this._customComponentType;\n }\n get placeholder() {\n return this._placeholder;\n }\n get className() {\n return this._className;\n }\n get columnClassName() {\n return this._columnClassName;\n }\n get columnWidth() {\n return this._columnWidth;\n }\n get columnMinWidth() {\n return this._columnMinWidth;\n }\n get trimOption() {\n return this._inputTrim;\n }\n get property() {\n return this._property;\n }\n get title() {\n return this._title;\n }\n get titleUseModelBase() {\n return this._titleUseModelBase;\n }\n get isGenericFilter() {\n return this._isGenericFilter;\n }\n get genericValueProvider() {\n return this._valueSuggestionProvider;\n }\n get dropdownClassName() {\n return this._dropdownClassName;\n }\n get isRequired() {\n return this._isRequired;\n }\n /**\n * Converts filter to given type.\n *\n * @param filterType Filter type.\n */\n asFilterType(filterType) {\n this._filterType = filterType;\n return this;\n }\n /**\n * Sets the filter as a generic filter. For internal use only.\n *\n * @internal\n */\n asGenericFilter() {\n this._isGenericFilter = true;\n return this;\n }\n /**\n * Set filter as date type.\n *\n * @param opts Additional options.\n */\n asDate(opts) {\n this._filterType = FilterTypeEnum.Date;\n this.withDisplayFormat(opts?.displayFormat).withDatePickerDisplay(opts).withDateValue(opts);\n return this;\n }\n /**\n * Set filter as number type.\n *\n * @param opts Additional options.\n */\n asNumber(opts) {\n this._filterType = FilterTypeEnum.Number;\n this.withDisplayFormat(opts?.displayFormat).withNumberFractions(opts?.minFractionDigits, opts?.maxFractionDigits).withLocale(opts?.locale);\n return this;\n }\n asCustomComponent(component) {\n this._filterType = FilterTypeEnum.Component;\n this._customComponentType = component;\n return this;\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 withShowOnColumn(property, displayType = FilterDisplayTypeEnum.Column) {\n return this.withShowOnColumnUnsafe(property, displayType);\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 withShowOnColumnUnsafe(property, displayType = FilterDisplayTypeEnum.Column) {\n this._showOnColumn = property;\n this._displayType = displayType;\n return this;\n }\n /**\n * Changes display type of filter.\n *\n * @param type Display type.\n */\n withDisplayType(type) {\n this._displayType = type;\n return this;\n }\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 withDefaultValue(matchMode, value) {\n return this.withDefaultValueUnsafe(matchMode, value);\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 withDefaultValueUnsafe(matchMode, value) {\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 * Turns of the default value and match mode for filter.\n */\n withoutDefaultValue() {\n this._hasDefaultValue = false;\n this._defaultValue = undefined;\n this._defaultMatchMode = undefined;\n return this;\n }\n validateDefaultFilter(value, matchMode) {\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 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 * 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 withDisplayFormat(format, applyToField) {\n this._displayFormat = format;\n this._displayFormatApplyToField = applyToField;\n return this;\n }\n /**\n * Sets locale for filter.\n *\n * @param locale Locale.\n */\n withLocale(locale) {\n this._locale = locale;\n return this;\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 withNumberFractions(min, max) {\n this._numberMinFractionDigits = min;\n this._numberMaxFractionDigits = max;\n return this;\n }\n /**\n * If number grouping should be used.\n *\n * @param useGrouping Enables/disbaled the feature.\n */\n withNumberGrouping(useGrouping = true) {\n this._numberUseGrouping = useGrouping;\n return this;\n }\n /**\n * Sets a data provider for autocomplete text suggestions.\n *\n * @param valueDataProvider Data provider for autocomplete.\n */\n withGenericValueProvider(valueDataProvider) {\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 this._valueSuggestionProvider = valueDataProvider;\n return this;\n }\n /**\n * Sets date picker display options.\n *\n * @param opts Options.\n */\n withDatePickerDisplay(opts) {\n this._displayFormatApplyToField = opts?.applyFromDisplayFormat;\n this._datePickerFormat = opts?.format;\n this._datePickerShowTime = opts?.showTime;\n this._datePickerShowSeconds = opts?.showSeconds;\n return this;\n }\n /**\n * Sets filter date value formatting options.\n *\n * @param opts Options.\n */\n withDateValue(opts) {\n this._dateValueUtc = opts?.utc;\n this._dateValueNoTimezone = opts?.noTimeZone;\n this._dateValueNoTime = opts?.noTime;\n return this;\n }\n /**\n * Sets placeholder for filter field.\n *\n * @param placeholder Text for placeholder.\n */\n withPlaceholder(placeholder) {\n this._placeholder = placeholder;\n return this;\n }\n /**\n * Sets class name for filter.\n *\n * @param className Class name.\n */\n withClassName(className) {\n this._className = className;\n return this;\n }\n /**\n * Sets class name for column display type.\n *\n * @param className Class name for column.\n */\n withColumnClassName(className) {\n this._columnClassName = className;\n return this;\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 withColumnWidth(width, minWidth) {\n this._columnWidth = width ?? null;\n this._columnMinWidth = minWidth ?? null;\n return this;\n }\n /**\n * Sets input trimming for filter value field.\n *\n * @param trimOption Trim setting.\n */\n withInputTrimming(trimOption = 'both') {\n this._inputTrim = trimOption;\n return this;\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 withMatchModes(matchModes) {\n this._matchModes = matchModes;\n return this;\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 withDefaultMatchMode(matchMode) {\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 * 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 withTitle(title, useModelBase) {\n this._title = title;\n this._titleUseModelBase = useModelBase;\n return this;\n }\n withDropdownClassName(dropdownClassName) {\n this._dropdownClassName = dropdownClassName;\n return this;\n }\n withRequired(isRequired = true) {\n this._isRequired = isRequired;\n return this;\n }\n /**\n * Copies current descriptor to a new instance.\n */\n copy() {\n const descriptor = new FilterDescriptor(this._property);\n this.copyFieldsTo(descriptor);\n return descriptor;\n }\n copyFieldsTo(descriptor) {\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//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9maWx0ZXIvc3JjL2Rlc2NyaXB0b3JzL2ZpbHRlci5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxvQkFBb0IsRUFBNEYsYUFBYSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFJMUssT0FBTyxFQUFDLHFCQUFxQixFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBa0M3RSxNQUFNLE9BQU8sZ0JBQWdCO0lBZ0R6QixZQUFZLFFBQWdCO1FBNUNsQixnQkFBVyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFHOUMsZ0JBQWdCO1FBQ04scUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBYXpCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQWMxQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QixpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFDbkMsb0JBQWUsR0FBa0IsSUFBSSxDQUFDO1FBSXRDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6Qix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFHOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0Is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QUksQ0FBQyxZQUFZLENBQUM7UUFDNUMsVUFBVSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2xELFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDcEQsVUFBVSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUNwRCxVQUFVLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ3BFLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDeEQsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzlDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7Q29tbW9uc0ludGVybmFsRXJyb3IsIEZpbHRlck1hdGNoTW9kZUV4dGVuZGVkVHlwZSwgRmlsdGVyTWF0Y2hNb2RlVHlwZSwgSUZpbHRlckRlc2NyaXB0b3IsIElMb29rdXBEYXRhUHJvdmlkZXIsIExvZ2dlclNlcnZpY2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0lucHV0VHJpbVR5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZm9ybS9hcGknO1xuXG5pbXBvcnQge0lGaWx0ZXJDb21wb25lbnR9IGZyb20gJy4uL21vZGVscy9maWx0ZXItY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0ZpbHRlckRpc3BsYXlUeXBlRW51bSwgRmlsdGVyVHlwZUVudW19IGZyb20gJy4uL21vZGVscy9maWx0ZXIubW9kZWwnO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJEYXRlUGlja2VyRGlzcGxheU9wdHNUeXBlID0ge1xuICAgIGFwcGx5RnJvbURpc3BsYXlGb3JtYXQ/OiBib29sZWFuO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgICBzaG93VGltZT86IGJvb2xlYW47XG4gICAgc2hvd1NlY29uZHM/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRmlsdGVyRGF0ZVZhbHVlT3B0c1R5cGUgPSB7XG4gICAgdXRjPzogYm9vbGVhbjtcbiAgICBub1RpbWU/OiBib29sZWFuO1xuICAgIG5vVGltZVpvbmU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRmlsdGVyRGF0ZU9wdHNUeXBlID0gRmlsdGVyRGF0ZVZhbHVlT3B0c1R5cGUgJlxuICAgIEZpbHRlckRhdGVQaWNrZXJEaXNwbGF5T3B0c1R5cGUgJiB7XG4gICAgICAgIGRpc3BsYXlGb3JtYXQ/OiBzdHJpbmc7XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgRmlsdGVyTnVtYmVyRnJhY3Rpb25PcHRzVHlwZSA9IHtcbiAgICBtaW5GcmFjdGlvbkRpZ2l0cz86IG51bWJlcjtcbiAgICBtYXhGcmFjdGlvbkRpZ2l0cz86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEZpbHRlckxvY2FsZU9wdHNUeXBlID0ge1xuICAgIGxvY2FsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEZpbHRlck51bWJlck9wdHNUeXBlID0gRmlsdGVyTnVtYmVyRnJhY3Rpb25PcHRzVHlwZSAmXG4gICAgRmlsdGVyTG9jYWxlT3B0c1R5cGUgJiB7XG4gICAgICAgIGRpc3BsYXlGb3JtYXQ/OiBzdHJpbmc7XG4gICAgfTtcblxuZXhwb3J0IGNsYXNzIEZpbHRlckRlc2NyaXB0b3I8RmlsdGVyTW9kZWwsIFRhYmxlTW9kZWw+IGltcGxlbWVudHMgSUZpbHRlckRlc2NyaXB0b3I8RmlsdGVyTW9kZWwsIFRhYmxlTW9kZWw+IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3Byb3BlcnR5OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9zaG93T25Db2x1bW4/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5TdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9kaXNwbGF5VHlwZT86IEZpbHRlckRpc3BsYXlUeXBlRW51bTtcblxuICAgIC8vIGRlZmF1bHQgdmFsdWVcbiAgICBwcm90ZWN0ZWQgX2hhc0RlZmF1bHRWYWx1ZSA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBfZGVmYXVsdE1hdGNoTW9kZT86IEZpbHRlck1hdGNoTW9kZUV4dGVuZGVkVHlwZTtcbiAgICBwcm90ZWN0ZWQgX2RlZmF1bHRWYWx1ZT86IEZpbHRlck1vZGVsIHwgRmlsdGVyTW9kZWxbXTtcbiAgICBwcm90ZWN0ZWQgX21hdGNoTW9kZXM/OiBzdHJpbmdbXTtcblxuICAgIC8vIHZhbHVlIGRpc3BsYXlcbiAgICBwcml2YXRlIF9kaXNwbGF5Rm9ybWF0Pzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2Rpc3BsYXlGb3JtYXRBcHBseVRvRmllbGQ/OiBib29sZWFuO1xuICAgIHByaXZhdGUgX2xvY2FsZT86IHN0cmluZztcblxuICAgIC8vIG51bWJlciBmaWx0ZXIgZmllbGQgc3BlY2lmaWMgcHJvcGVydGllc1xuICAgIHByb3RlY3RlZCBfbnVtYmVyTWluRnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIF9udW1iZXJNYXhGcmFjdGlvbkRpZ2l0cz86IG51bWJlcjtcbiAgICBwcm90ZWN0ZWQgX251bWJlclVzZUdyb3VwaW5nID0gdHJ1ZTtcblxuICAgIC8vIGRhdGUgZmlsdGVyIGZpZWxkIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgICBwcm90ZWN0ZWQgX2RhdGVQaWNrZXJGb3JtYXQ/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9kYXRlUGlja2VyU2hvd1RpbWU/OiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfZGF0ZVBpY2tlclNob3dTZWNvbmRzPzogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX2RhdGVWYWx1ZU5vVGltZT86IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9kYXRlVmFsdWVOb1RpbWV6b25lPzogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX2RhdGVWYWx1ZVV0Yz86IGJvb2xlYW47XG5cbiAgICAvLyBjdXN0b20gY29tcG9uZW50XG4gICAgcHJpdmF0ZSBfY3VzdG9tQ29tcG9uZW50VHlwZT86IFR5cGU8SUZpbHRlckNvbXBvbmVudDxGaWx0ZXJNb2RlbCwgVGFibGVNb2RlbD4+O1xuXG4gICAgcHJvdGVjdGVkIF9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2NsYXNzTmFtZSA9ICcnO1xuICAgIHByb3RlY3RlZCBfY29sdW1uQ2xhc3NOYW1lID0gJyc7XG4gICAgcHJvdGVjdGVkIF9jb2x1bW5XaWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHJvdGVjdGVkIF9jb2x1bW5NaW5XaWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHJvdGVjdGVkIF9pbnB1dFRyaW0/OiBJbnB1dFRyaW1UeXBlO1xuICAgIHByb3RlY3RlZCBfdGl0bGU/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF90aXRsZVVzZU1vZGVsQmFzZT86IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9pc1JlcXVpcmVkID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgX2lzR2VuZXJpY0ZpbHRlciA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBfdmFsdWVTdWdnZXN0aW9uUHJvdmlkZXI/OiBJTG9va3VwRGF0YVByb3ZpZGVyPHN0cmluZywgYW55LCBhbnksICdmaWVsZCc+O1xuICAgIHByb3RlY3RlZCBfZHJvcGRvd25DbGFzc05hbWUgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICAgICAgdGhpcy5fc2hvd09uQ29sdW1uID0gcHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWx0ZXJUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNob3dPbkNvbHVtbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dPbkNvbHVtbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpc3BsYXlUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheVR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNEZWZhdWx0VmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNEZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkZWZhdWx0VmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkZWZhdWx0TWF0Y2hNb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdE1hdGNoTW9kZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1hdGNoTW9kZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXRjaE1vZGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlzcGxheUZvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlGb3JtYXQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaXNwbGF5Rm9ybWF0QXBwbHlUb0ZpZWxkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheUZvcm1hdEFwcGx5VG9GaWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG51bWJlck1pbkZyYWN0aW9uRGlnaXRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbnVtYmVyTWluRnJhY3Rpb25EaWdpdHM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBudW1iZXJNYXhGcmFjdGlvbkRpZ2l0cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX251bWJlck1heEZyYWN0aW9uRGlnaXRzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbnVtYmVyVXNlR3JvdXBpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9udW1iZXJVc2VHcm91cGluZztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGVQaWNrZXJGb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRlUGlja2VyRm9ybWF0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0ZVBpY2tlclNob3dUaW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVBpY2tlclNob3dUaW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0ZVBpY2tlclNob3dTZWNvbmRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVBpY2tlclNob3dTZWNvbmRzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0ZVZhbHVlVXRjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVZhbHVlVXRjO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0ZVZhbHVlTm9UaW1lem9uZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGVWYWx1ZU5vVGltZXpvbmU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRlVmFsdWVOb1RpbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRlVmFsdWVOb1RpbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjdXN0b21Db21wb25lbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VzdG9tQ29tcG9uZW50VHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5DbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5DbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5XaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbldpZHRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29sdW1uTWluV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5NaW5XaWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRyaW1PcHRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnB1dFRyaW07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRpdGxlVXNlTW9kZWxCYXNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGVVc2VNb2RlbEJhc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0dlbmVyaWNGaWx0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0dlbmVyaWNGaWx0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBnZW5lcmljVmFsdWVQcm92aWRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlU3VnZ2VzdGlvblByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZHJvcGRvd25DbGFzc05hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Ryb3Bkb3duQ2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNSZXF1aXJlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVxdWlyZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgZmlsdGVyIHRvIGdpdmVuIHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsdGVyVHlwZSBGaWx0ZXIgdHlwZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXNGaWx0ZXJUeXBlKGZpbHRlclR5cGU6IEZpbHRlclR5cGVFbnVtKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlclR5cGUgPSBmaWx0ZXJUeXBlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBmaWx0ZXIgYXMgYSBnZW5lcmljIGZpbHRlci4gRm9yIGludGVybmFsIHVzZSBvbmx5LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGFzR2VuZXJpY0ZpbHRlcigpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNHZW5lcmljRmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGZpbHRlciBhcyBkYXRlIHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0cyBBZGRpdGlvbmFsIG9wdGlvbnMuXG4gICAgICovXG4gICAgcHVibGljIGFzRGF0ZShvcHRzPzogRmlsdGVyRGF0ZU9wdHNUeXBlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2ZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5EYXRlO1xuICAgICAgICB0aGlzLndpdGhEaXNwbGF5Rm9ybWF0KG9wdHM/LmRpc3BsYXlGb3JtYXQpLndpdGhEYXRlUGlja2VyRGlzcGxheShvcHRzKS53aXRoRGF0ZVZhbHVlKG9wdHMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgZmlsdGVyIGFzIG51bWJlciB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdHMgQWRkaXRpb25hbCBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBhc051bWJlcihvcHRzPzogRmlsdGVyTnVtYmVyT3B0c1R5cGUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyVHlwZSA9IEZpbHRlclR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgdGhpcy53aXRoRGlzcGxheUZvcm1hdChvcHRzPy5kaXNwbGF5Rm9ybWF0KS53aXRoTnVtYmVyRnJhY3Rpb25zKG9wdHM/Lm1pbkZyYWN0aW9uRGlnaXRzLCBvcHRzPy5tYXhGcmFjdGlvbkRpZ2l0cykud2l0aExvY2FsZShvcHRzPy5sb2NhbGUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXNDdXN0b21Db21wb25lbnQoY29tcG9uZW50OiBUeXBlPElGaWx0ZXJDb21wb25lbnQ8RmlsdGVyTW9kZWwsIFRhYmxlTW9kZWw+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9maWx0ZXJUeXBlID0gRmlsdGVyVHlwZUVudW0uQ29tcG9uZW50O1xuICAgICAgICB0aGlzLl9jdXN0b21Db21wb25lbnRUeXBlID0gY29tcG9uZW50O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93cyBmaWx0ZXIgb24gY29sdW1uIGZvciBnaXZlbiBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBDb2x1bW4gcHJvcGVydHkgdG8gc2hvdyBmaWx0ZXIgb24uXG4gICAgICogQHBhcmFtIGRpc3BsYXlUeXBlIE9wdGlvbmFsIGRpc3BsYXkgdHlwZSBvdmVycmlkZS4gSWYgbm90IGNvbHVtbiwgdGhlIGZpbHRlciB3aWxsIG5vdCBiZSBzaG93biBvbiBjb2x1bW4uXG4gICAgICovXG4gICAgcHVibGljIHdpdGhTaG93T25Db2x1bW4ocHJvcGVydHk6IGtleW9mIFRhYmxlTW9kZWwsIGRpc3BsYXlUeXBlOiBGaWx0ZXJEaXNwbGF5VHlwZUVudW0gfCB1bmRlZmluZWQgPSBGaWx0ZXJEaXNwbGF5VHlwZUVudW0uQ29sdW1uKTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhTaG93T25Db2x1bW5VbnNhZmUocHJvcGVydHkgYXMgc3RyaW5nLCBkaXNwbGF5VHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd3MgZmlsdGVyIG9uIGNvbHVtbiBmb3IgZ2l2ZW4gcHJvcGVydHkuXG4gICAgICpcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIFVOU0FGRS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBDb2x1bW4gcHJvcGVydHkgdG8gc2hvdyBmaWx0ZXIgb24uXG4gICAgICogQHBhcmFtIGRpc3BsYXlUeXBlIE9wdGlvbmFsIGRpc3BsYXkgdHlwZSBvdmVycmlkZS4gSWYgbm90IGNvbHVtbiwgdGhlIGZpbHRlciB3aWxsIG5vdCBiZSBzaG93biBvbiBjb2x1bW4uXG4gICAgICovXG4gICAgcHVibGljIHdpdGhTaG93T25Db2x1bW5VbnNhZmUocHJvcGVydHk6IHN0cmluZywgZGlzcGxheVR5cGU6IEZpbHRlckRpc3BsYXlUeXBlRW51bSB8IHVuZGVmaW5lZCA9IEZpbHRlckRpc3BsYXlUeXBlRW51bS5Db2x1bW4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fc2hvd09uQ29sdW1uID0gcHJvcGVydHk7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlUeXBlID0gZGlzcGxheVR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZXMgZGlzcGxheSB0eXBlIG9mIGZpbHRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlIERpc3BsYXkgdHlwZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aERpc3BsYXlUeXBlKHR5cGU/OiBGaWx0ZXJEaXNwbGF5VHlwZUVudW0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGlzcGxheVR5cGUgPSB0eXBlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGRlZmF1bHQgZmlsdGVyIHZhbHVlIGZvciBmaWx0ZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWF0Y2hNb2RlIE1hdGNoIG1vZGUgZm9yIGRlZmF1bHQgZmlsdGVyLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBmb3IgZGVmYXVsdCBmaWx0ZXIuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhEZWZhdWx0VmFsdWUobWF0Y2hNb2RlOiAnZXhpc3RzJyB8ICdkb2VzTm90RXhpc3QnKTogdGhpcztcbiAgICBwdWJsaWMgd2l0aERlZmF1bHRWYWx1ZShtYXRjaE1vZGU6ICdiZXR3ZWVuJywgdmFsdWU6IFtGaWx0ZXJNb2RlbCwgRmlsdGVyTW9kZWxdKTogdGhpcztcbiAgICBwdWJsaWMgd2l0aERlZmF1bHRWYWx1ZShtYXRjaE1vZGU6ICdpbicgfCAnbm90SW4nLCB2YWx1ZTogRmlsdGVyTW9kZWxbXSk6IHRoaXM7XG4gICAgcHVibGljIHdpdGhEZWZhdWx0VmFsdWUoXG4gICAgICAgIG1hdGNoTW9kZTogJ2xlc3NUaGFuJyB8ICdsZXNzVGhhbk9yRXF1YWxUbycgfCAnZ3JlYXRlclRoYW4nIHwgJ2dyZWF0ZXJUaGFuT3JFcXVhbFRvJyxcbiAgICAgICAgdmFsdWU6IEZpbHRlck1vZGVsIGV4dGVuZHMgbnVtYmVyIHwgRGF0ZSA/IEZpbHRlck1vZGVsIDogbmV2ZXJcbiAgICApOiB0aGlzO1xuICAgIHB1YmxpYyB3aXRoRGVmYXVsdFZhbHVlKG1hdGNoTW9kZTogJ2NvbnRhaW5zJyB8ICdub3RDb250YWlucycgfCAnc3RhcnRzV2l0aCcgfCAnZW5kc1dpdGgnLCB2YWx1ZTogRmlsdGVyTW9kZWwgZXh0ZW5kcyBzdHJpbmcgPyBGaWx0ZXJNb2RlbCA6IG5ldmVyKTogdGhpcztcbiAgICBwdWJsaWMgd2l0aERlZmF1bHRWYWx1ZShtYXRjaE1vZGU6ICdlcXVhbHMnIHwgJ25vdEVxdWFscycsIHZhbHVlOiBGaWx0ZXJNb2RlbCk6IHRoaXM7XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgYSBmaWx0ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG1hdGNoIG1vZGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0ZpbHRlck1hdGNoTW9kZVR5cGV9IG1hdGNoTW9kZSAtIFRoZSBtYXRjaCBtb2RlIG9mIHRoZSBmaWx0ZXIuXG4gICAgICogQHBhcmFtIHtGaWx0ZXJNb2RlbCB8IEZpbHRlck1vZGVsW119IFt2YWx1ZV0gLSBUaGUgZGVmYXVsdCB2YWx1ZShzKSBmb3IgdGhlIGZpbHRlci4gVHlwZSBvZiB2YWx1ZSBkaWZmZXJzIGJhc2VkIG9uIG1hdGNoIG1vZGUgYW5kIGZpbHRlciBtb2RlbC5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aERlZmF1bHRWYWx1ZShtYXRjaE1vZGU6IEZpbHRlck1hdGNoTW9kZVR5cGUsIHZhbHVlPzogRmlsdGVyTW9kZWwgfCBGaWx0ZXJNb2RlbFtdIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhEZWZhdWx0VmFsdWVVbnNhZmUobWF0Y2hNb2RlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgYSBmaWx0ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG1hdGNoIG1vZGUuXG4gICAgICpcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIFVOU0FGRSFcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RmlsdGVyTWF0Y2hNb2RlVHlwZX0gbWF0Y2hNb2RlIC0gVGhlIG1hdGNoIG1vZGUgb2YgdGhlIGZpbHRlci5cbiAgICAgKiBAcGFyYW0ge0ZpbHRlck1vZGVsIHwgRmlsdGVyTW9kZWxbXX0gW3ZhbHVlXSAtIFRoZSBkZWZhdWx0IHZhbHVlKHMpIGZvciB0aGUgZmlsdGVyLiBUeXBlIG9mIHZhbHVlIGRpZmZlcnMgYmFzZWQgb24gbWF0Y2ggbW9kZSBhbmQgZmlsdGVyIG1vZGVsLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoRGVmYXVsdFZhbHVlVW5zYWZlKG1hdGNoTW9kZT86IHN0cmluZywgdmFsdWU/OiBhbnkgfCBhbnlbXSB8IHVuZGVmaW5lZCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNEZWZhdWx0VmFsdWUgPSB0cnVlO1xuICAgICAgICB0aGlzLl9kZWZhdWx0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fZGVmYXVsdE1hdGNoTW9kZSA9IG1hdGNoTW9kZTtcbiAgICAgICAgaWYgKG1hdGNoTW9kZSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZURlZmF1bHRGaWx0ZXIodmFsdWUsIG1hdGNoTW9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHVybnMgb2YgdGhlIGRlZmF1bHQgdmFsdWUgYW5kIG1hdGNoIG1vZGUgZm9yIGZpbHRlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aG91dERlZmF1bHRWYWx1ZSgpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzRGVmYXVsdFZhbHVlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5fZGVmYXVsdE1hdGNoTW9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlRGVmYXVsdEZpbHRlcih2YWx1ZTogRmlsdGVyTW9kZWwgfCBGaWx0ZXJNb2RlbFtdIHwgdW5kZWZpbmVkLCBtYXRjaE1vZGU6IEZpbHRlck1hdGNoTW9kZUV4dGVuZGVkVHlwZSkge1xuICAgICAgICBpZiAobWF0Y2hNb2RlID09PSAnYmV0d2VlbicgJiYgdmFsdWUgIT0gbnVsbCAmJiAoIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLmZpbHRlcih2ID0+IHYgIT0gbnVsbCkubGVuZ3RoICE9PSAyKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBEZWZhdWx0IHZhbHVlIGZvciBmaWx0ZXIgbWF0Y2ggbW9kZSAke21hdGNoTW9kZX0gbXVzdCBwcm92aWRlIGV4YWN0bHkgMiB2YWx1ZXMgaW4gYXJyYXlgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKG1hdGNoTW9kZSA9PT0gJ2luJyB8fCBtYXRjaE1vZGUgPT09ICdub3RJbicpICYmIHZhbHVlICE9IG51bGwgJiYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5maWx0ZXIodiA9PiB2ICE9IG51bGwpLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgRGVmYXVsdCB2YWx1ZSBmb3IgZmlsdGVyIG1hdGNoIG1vZGUgJHttYXRjaE1vZGV9IG11c3QgYmUgYXJyYXkgYW5kIHByb3ZpZGUgYXQgbGVhc3QgMSBub24tbnVsbCB2YWx1ZWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaE1vZGUgPT09ICdleGlzdHMnIHx8IG1hdGNoTW9kZSA9PT0gJ2RvZXNOb3RFeGlzdCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaE1vZGUgJiYgdGhpcy5fbWF0Y2hNb2RlcyAmJiB0aGlzLl9tYXRjaE1vZGVzLmluZGV4T2YobWF0Y2hNb2RlKSA8IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRNYXRjaE1vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBMb2dnZXJTZXJ2aWNlLmdldCgpLmRlYnVnKGBXQVJOSU5HOiBEZWZhdWx0IGZpbHRlciBtYXRjaCBtb2RlICcke21hdGNoTW9kZX0nIGNvdWxkIG5vdCBiZSBhc3NpZ25lZCBmb3IgcHJvcGVydHkgJHt0aGlzLl9wcm9wZXJ0eX0uYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGZvcm1hdCBmb3IgZGlzcGxheSBvZiBmaWx0ZXIgdmFsdWUgKGFwcGxpZXMgdG8gZGF0ZSBhbmQgbnVtYmVyKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb3JtYXQgRm9ybWF0IChBbmd1bGFyIGZvcm1hdHRpbmcgcnVsZXMgYXBwbHkpLlxuICAgICAqIEBwYXJhbSBhcHBseVRvRmllbGQgSWYgdGhlIGZvcm1hdCBzaG91bGQgYWxzbyBiZSBhcHBsaWVkIHRvIGZpZWxkIG9uIGZpbHRlciBlZGl0aW5nIGZvcm0uXG4gICAgICovXG4gICAgcHVibGljIHdpdGhEaXNwbGF5Rm9ybWF0KGZvcm1hdD86IHN0cmluZywgYXBwbHlUb0ZpZWxkPzogYm9vbGVhbik6IHRoaXMge1xuICAgICAgICB0aGlzLl9kaXNwbGF5Rm9ybWF0ID0gZm9ybWF0O1xuICAgICAgICB0aGlzLl9kaXNwbGF5Rm9ybWF0QXBwbHlUb0ZpZWxkID0gYXBwbHlUb0ZpZWxkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGxvY2FsZSBmb3IgZmlsdGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIGxvY2FsZSBMb2NhbGUuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhMb2NhbGUobG9jYWxlPzogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBmcmFjdGlvbiBmb3IgbnVtYmVyIGZpbHRlciBlZGl0aW5nIGZpZWxkLlxuICAgICAqXG4gICAgICogQHBhcmFtIG1pbiBNaW4gZnJhY3Rpb24gZGlnaXRzIChpLmUuIGRpZ2l0cyBhZnRlciBkZWNpbWFsKS5cbiAgICAgKiBAcGFyYW0gbWF4IE1heCBmcmFjdGlvbiBkaWdpdHMgKGkuZS4gZGlnaXRzIGFmdGVyIGRlY2ltYWwpLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoTnVtYmVyRnJhY3Rpb25zKG1pbj86IG51bWJlciwgbWF4PzogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX251bWJlck1pbkZyYWN0aW9uRGlnaXRzID0gbWluO1xuICAgICAgICB0aGlzLl9udW1iZXJNYXhGcmFjdGlvbkRpZ2l0cyA9IG1heDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgbnVtYmVyIGdyb3VwaW5nIHNob3VsZCBiZSB1c2VkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZUdyb3VwaW5nIEVuYWJsZXMvZGlzYmFsZWQgdGhlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhOdW1iZXJHcm91cGluZyh1c2VHcm91cGluZyA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fbnVtYmVyVXNlR3JvdXBpbmcgPSB1c2VHcm91cGluZztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIGRhdGEgcHJvdmlkZXIgZm9yIGF1dG9jb21wbGV0ZSB0ZXh0IHN1Z2dlc3Rpb25zLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlRGF0YVByb3ZpZGVyIERhdGEgcHJvdmlkZXIgZm9yIGF1dG9jb21wbGV0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aEdlbmVyaWNWYWx1ZVByb3ZpZGVyKHZhbHVlRGF0YVByb3ZpZGVyOiBJTG9va3VwRGF0YVByb3ZpZGVyPHN0cmluZywgYW55LCBhbnksICdmaWVsZCc+KTogdGhpcyB7XG4gICAgICAgIGlmICghKHRoaXMuZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZUVudW0uU3RyaW5nIHx8IHRoaXMuZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZUVudW0uTG9va3VwRW51bSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcignR2VuZXJpYyB2YWx1ZSBsb29rdXAgY2FuIG9ubHkgYmUgc2V0IGZvciB0aGUgc3RyaW5nIG9yIGxvb2t1cCBlbnVtIGZpbHRlciB0eXBlcy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3ZhbHVlU3VnZ2VzdGlvblByb3ZpZGVyID0gdmFsdWVEYXRhUHJvdmlkZXI7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgZGF0ZSBwaWNrZXIgZGlzcGxheSBvcHRpb25zLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aERhdGVQaWNrZXJEaXNwbGF5KG9wdHM/OiBGaWx0ZXJEYXRlUGlja2VyRGlzcGxheU9wdHNUeXBlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlGb3JtYXRBcHBseVRvRmllbGQgPSBvcHRzPy5hcHBseUZyb21EaXNwbGF5Rm9ybWF0O1xuICAgICAgICB0aGlzLl9kYXRlUGlja2VyRm9ybWF0ID0gb3B0cz8uZm9ybWF0O1xuICAgICAgICB0aGlzLl9kYXRlUGlja2VyU2hvd1RpbWUgPSBvcHRzPy5zaG93VGltZTtcbiAgICAgICAgdGhpcy5fZGF0ZVBpY2tlclNob3dTZWNvbmRzID0gb3B0cz8uc2hvd1NlY29uZHM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgZmlsdGVyIGRhdGUgdmFsdWUgZm9ybWF0dGluZyBvcHRpb25zLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aERhdGVWYWx1ZShvcHRzPzogRmlsdGVyRGF0ZVZhbHVlT3B0c1R5cGUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGF0ZVZhbHVlVXRjID0gb3B0cz8udXRjO1xuICAgICAgICB0aGlzLl9kYXRlVmFsdWVOb1RpbWV6b25lID0gb3B0cz8ubm9UaW1lWm9uZTtcbiAgICAgICAgdGhpcy5fZGF0ZVZhbHVlTm9UaW1lID0gb3B0cz8ubm9UaW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHBsYWNlaG9sZGVyIGZvciBmaWx0ZXIgZmllbGQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGxhY2Vob2xkZXIgVGV4dCBmb3IgcGxhY2Vob2xkZXIuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhQbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgY2xhc3MgbmFtZSBmb3IgZmlsdGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBDbGFzcyBuYW1lLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoQ2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBjbGFzcyBuYW1lIGZvciBjb2x1bW4gZGlzcGxheSB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBDbGFzcyBuYW1lIGZvciBjb2x1bW4uXG4gICAgICovXG4gICAgcHVibGljIHdpdGhDb2x1bW5DbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uQ2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgY29sdW1uIHdpZHRoIGZvciBjb2x1bW4gZGlzcGxheSB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdpZHRoIFJlbGF0aXZlIHdpZHRoIChpbiBwZXJjZW50YWdlKSBvZiB0YWJsZSB3aWR0aDpcbiAgICAgKiBAcGFyYW0gbWluV2lkdGhcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aENvbHVtbldpZHRoKHdpZHRoPzogbnVtYmVyLCBtaW5XaWR0aD86IG51bWJlcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5XaWR0aCA9IHdpZHRoID8/IG51bGw7XG4gICAgICAgIHRoaXMuX2NvbHVtbk1pbldpZHRoID0gbWluV2lkdGggPz8gbnVsbDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBpbnB1dCB0cmltbWluZyBmb3IgZmlsdGVyIHZhbHVlIGZpZWxkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRyaW1PcHRpb24gVHJpbSBzZXR0aW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoSW5wdXRUcmltbWluZyh0cmltT3B0aW9uOiBJbnB1dFRyaW1UeXBlID0gJ2JvdGgnKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lucHV0VHJpbSA9IHRyaW1PcHRpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgcmFuZ2Ugb2YgbWF0Y2ggbW9kZXMgZm9yIHRoaXMgZmlsdGVyLiBJZiBub24gcHJvdmlkZWQsIHRoZSBkZWZhdWx0cyBhcmUgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtYXRjaE1vZGVzIE1hdGNoIG1vZGUgb3B0aW9ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aE1hdGNoTW9kZXMobWF0Y2hNb2Rlcz86IEFycmF5PEZpbHRlck1hdGNoTW9kZUV4dGVuZGVkVHlwZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fbWF0Y2hNb2RlcyA9IG1hdGNoTW9kZXM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgZGVmYXVsdCBtYXRjaCBtb2RlIGZvciB0aGlzIGZpbHRlci4gSWYgbm9uIHByb3ZpZGVkLCB0aGUgZGVmYXVsdCBpcyBhcHBsaWVkLiBJZiBjdXN0b20gbWF0Y2ggbW9kZXMgYXJlIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0IGl0LlxuICAgICAqXG4gICAgICogQHBhcmFtIG1hdGNoTW9kZSBNYXRjaCBtb2RlIG9wdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aERlZmF1bHRNYXRjaE1vZGUobWF0Y2hNb2RlPzogRmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlKTogdGhpcyB7XG4gICAgICAgIGlmIChtYXRjaE1vZGUgIT0gbnVsbCAmJiBBcnJheS5pc0FycmF5KHRoaXMuX21hdGNoTW9kZXMpICYmICF0aGlzLl9tYXRjaE1vZGVzLmluY2x1ZGVzKG1hdGNoTW9kZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgRmlsdGVyIG1hdGNoIG1vZGUgJHttYXRjaE1vZGV9IGNhbm5vdCBiZSBzZXQgZm9yIHByb3BlcnR5ICR7dGhpcy5fcHJvcGVydHl9LCBiZWNhdXNlIGN1c3RvbSBtYXRjaCBtb2RlcyBkbyBub3QgaW5jbHVkZSBpdC5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kZWZhdWx0TWF0Y2hNb2RlID0gbWF0Y2hNb2RlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGl0bGUuIElmIG5vbiBwcm92aWRlZCwgdGhlIGRlZmF1bHRzIGFyZSBhcHBsaWVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlIFRpdGxlIGZvciB0aGUgZmllbGQuXG4gICAgICogQHBhcmFtIHVzZU1vZGVsQmFzZSBVc2UgbW9kZWwncyBpMThuIGJhc2Uga2V5IGFzIGJhc2UgcGF0aCBmb3IgdHJhbnNsYXRpb24uXG4gICAgICovXG4gICAgcHVibGljIHdpdGhUaXRsZSh0aXRsZTogc3RyaW5nLCB1c2VNb2RlbEJhc2U/OiBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7XG4gICAgICAgIHRoaXMuX3RpdGxlVXNlTW9kZWxCYXNlID0gdXNlTW9kZWxCYXNlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERyb3Bkb3duQ2xhc3NOYW1lKGRyb3Bkb3duQ2xhc3NOYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZHJvcGRvd25DbGFzc05hbWUgPSBkcm9wZG93bkNsYXNzTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSZXF1aXJlZChpc1JlcXVpcmVkID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLl9pc1JlcXVpcmVkID0gaXNSZXF1aXJlZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29waWVzIGN1cnJlbnQgZGVzY3JpcHRvciB0byBhIG5ldyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29weSgpOiBGaWx0ZXJEZXNjcmlwdG9yPEZpbHRlck1vZGVsLCBUYWJsZU1vZGVsPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRmlsdGVyRGVzY3JpcHRvcjxGaWx0ZXJNb2RlbCwgVGFibGVNb2RlbD4odGhpcy5fcHJvcGVydHkpO1xuICAgICAgICB0aGlzLmNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yKTtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yOiBGaWx0ZXJEZXNjcmlwdG9yPEZpbHRlck1vZGVsLCBUYWJsZU1vZGVsPikge1xuICAgICAgICBkZXNjcmlwdG9yLl9maWx0ZXJUeXBlID0gdGhpcy5fZmlsdGVyVHlwZTtcbiAgICAgICAgZGVzY3JpcHRvci5faGFzRGVmYXVsdFZhbHVlID0gdGhpcy5faGFzRGVmYXVsdFZhbHVlO1xuICAgICAgICBkZXNjcmlwdG9yLl9kZWZhdWx0VmFsdWUgPSB0aGlzLl9kZWZhdWx0VmFsdWU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2RlZmF1bHRNYXRjaE1vZGUgPSB0aGlzLl9kZWZhdWx0TWF0Y2hNb2RlO1xuICAgICAgICBkZXNjcmlwdG9yLl9kaXNwbGF5Rm9ybWF0ID0gdGhpcy5fZGlzcGxheUZvcm1hdDtcbiAgICAgICAgZGVzY3JpcHRvci5fbG9jYWxlID0gdGhpcy5fbG9jYWxlO1xuICAgICAgICBkZXNjcmlwdG9yLl9udW1iZXJNaW5GcmFjdGlvbkRpZ2l0cyA9IHRoaXMuX251bWJlck1pbkZyYWN0aW9uRGlnaXRzO1xuICAgICAgICBkZXNjcmlwdG9yLl9udW1iZXJNYXhGcmFjdGlvbkRpZ2l0cyA9IHRoaXMuX251bWJlck1heEZyYWN0aW9uRGlnaXRzO1xuICAgICAgICBkZXNjcmlwdG9yLl9udW1iZXJVc2VHcm91cGluZyA9IHRoaXMuX251bWJlclVzZUdyb3VwaW5nO1xuICAgICAgICBkZXNjcmlwdG9yLl9kYXRlUGlja2VyRm9ybWF0ID0gdGhpcy5fZGF0ZVBpY2tlckZvcm1hdDtcbiAgICAgICAgZGVzY3JpcHRvci5fZGF0ZVBpY2tlclNob3dUaW1lID0gdGhpcy5fZGF0ZVBpY2tlclNob3dUaW1lO1xuICAgICAgICBkZXNjcmlwdG9yLl9kYXRlVmFsdWVVdGMgPSB0aGlzLl9kYXRlVmFsdWVVdGM7XG4gICAgICAgIGRlc2NyaXB0b3IuX2RhdGVWYWx1ZU5vVGltZXpvbmUgPSB0aGlzLl9kYXRlVmFsdWVOb1RpbWV6b25lO1xuICAgICAgICBkZXNjcmlwdG9yLl9kYXRlVmFsdWVOb1RpbWUgPSB0aGlzLl9kYXRlVmFsdWVOb1RpbWU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2N1c3RvbUNvbXBvbmVudFR5cGUgPSB0aGlzLl9jdXN0b21Db21wb25lbnRUeXBlO1xuICAgICAgICBkZXNjcmlwdG9yLl9wbGFjZWhvbGRlciA9IHRoaXMuX3BsYWNlaG9sZGVyO1xuICAgICAgICBkZXNjcmlwdG9yLl9jbGFzc05hbWUgPSB0aGlzLl9jbGFzc05hbWU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2NvbHVtbldpZHRoID0gdGhpcy5fY29sdW1uV2lkdGg7XG4gICAgICAgIGRlc2NyaXB0b3IuX2NvbHVtbk1pbldpZHRoID0gdGhpcy5fY29sdW1uTWluV2lkdGg7XG4gICAgICAgIGRlc2NyaXB0b3IuX2NvbHVtbkNsYXNzTmFtZSA9IHRoaXMuX2NvbHVtbkNsYXNzTmFtZTtcbiAgICAgICAgZGVzY3JpcHRvci5faXNHZW5lcmljRmlsdGVyID0gdGhpcy5faXNHZW5lcmljRmlsdGVyO1xuICAgICAgICBkZXNjcmlwdG9yLl92YWx1ZVN1Z2dlc3Rpb25Qcm92aWRlciA9IHRoaXMuX3ZhbHVlU3VnZ2VzdGlvblByb3ZpZGVyO1xuICAgICAgICBkZXNjcmlwdG9yLl9kcm9wZG93bkNsYXNzTmFtZSA9IHRoaXMuX2Ryb3Bkb3duQ2xhc3NOYW1lO1xuICAgICAgICBkZXNjcmlwdG9yLl9pc1JlcXVpcmVkID0gdGhpcy5faXNSZXF1aXJlZDtcbiAgICB9XG59XG4iXX0=","import { of } from 'rxjs';\nimport { fromEnumConstantsAsValueArray, fromEnumValuesAsValueArray } from '@mediusinc/mng-commons/core';\nimport { LookupDataProviderInst } from '@mediusinc/mng-commons/form/api';\nimport { FilterLookupTypeEnum, FilterTypeEnum } from '../models/filter.model';\nimport { FilterDescriptor } from './filter.descriptor';\nexport class FilterLookupDescriptor extends FilterDescriptor {\n constructor(property, cfg) {\n super(property);\n this._lookupType = FilterLookupTypeEnum.Dropdown;\n this._optionsLabelTranslate = false;\n this._dropdownClassName = 'mng-filter-lookup-dropdown';\n this._filterType = FilterTypeEnum.Lookup;\n if (cfg?.dataProvider) {\n this._dataProvider = cfg.dataProvider;\n }\n else {\n this._dataProvider = new LookupDataProviderInst(cfg?.serviceType);\n }\n this._optionsValueProperty = cfg?.optionsValueProperty ?? undefined;\n }\n get lookupType() {\n return this._lookupType;\n }\n get dataProvider() {\n return this._dataProvider;\n }\n get optionsLabelProperty() {\n return this._optionsLabelProperty;\n }\n get optionsLabelTranslate() {\n return this._optionsLabelTranslate;\n }\n get optionsValueProperty() {\n return this._optionsValueProperty ?? undefined;\n }\n get autocompleteOpenOnFocus() {\n return this._autocompleteOpenOnFocus;\n }\n get autocompleteAutoClear() {\n return this._autocompleteAutoClear;\n }\n get autocompleteInlineSearch() {\n return this._autocompleteInlineSearch;\n }\n get dropdownClassName() {\n return this._dropdownClassName;\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 withOptionsLabelProperty(property, translate = false) {\n return this.withOptionsLabelPropertyUnsafe(property, translate);\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 withOptionsLabelPropertyUnsafe(property, translate = false) {\n this._optionsLabelProperty = property;\n this._optionsLabelTranslate = translate;\n return this;\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 withOptionsTrackProperty() {\n return this;\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 withOptionsTrackPropertyUnsafe() {\n return this;\n }\n withLookup(lookup) {\n this._dataProvider.withLookup(lookup);\n return this;\n }\n /**\n * Sets the dropdown class name.\n * @param dropdownClassName Class name for dropdown.\n */\n withDropdownClassName(dropdownClassName) {\n this._dropdownClassName = dropdownClassName;\n return this;\n }\n /**\n * Sets lookup as autocomplete instead of dropdown.\n *\n * @param opts Additional options.\n */\n asAutocomplete(opts) {\n this._lookupType = FilterLookupTypeEnum.Autocomplete;\n this._autocompleteAutoClear = opts?.autoClear;\n this._autocompleteOpenOnFocus = opts?.openOnFocus;\n this._autocompleteInlineSearch = opts?.inlineSearch;\n return this;\n }\n /**\n * Copies current descriptor to a new instance.\n */\n copy() {\n const descriptor = new FilterLookupDescriptor(this._property, {\n dataProvider: this.dataProvider\n });\n this.copyFieldsTo(descriptor);\n return descriptor;\n }\n copyFieldsTo(filter) {\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._autocompleteOpenOnFocus = this._autocompleteOpenOnFocus;\n filter._autocompleteInlineSearch = this._autocompleteInlineSearch;\n }\n}\nexport class FilterLookupEnumDescriptor extends FilterLookupDescriptor {\n constructor(property, enumDesc, options) {\n super(property, {\n dataProvider: new LookupDataProviderInst(undefined),\n optionsValueProperty: 'value'\n });\n this._nameAsValue = false;\n this._filterType = FilterTypeEnum.LookupEnum;\n this._enum = enumDesc;\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 this.withLookup(() => of(this._optionEnumValues));\n this.withOptionsLabelProperty('title', this._enum.i18nBaseKey !== null);\n }\n get enum() {\n return this._enum;\n }\n /**\n * Sets lookup as autocomplete instead of dropdown.\n *\n * @param opts Additional options.\n */\n asAutocomplete(opts) {\n super.asAutocomplete({\n ...opts,\n openOnFocus: opts?.openOnFocus ?? true,\n inlineSearch: opts?.inlineSearch ?? true\n });\n return this;\n }\n /**\n * Copies current descriptor to a new instance.\n */\n copy() {\n const field = new FilterLookupEnumDescriptor(this._property, this.enum, []);\n this.copyFieldsTo(field);\n return field;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWxvb2t1cC5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZmlsdGVyL3NyYy9kZXNjcmlwdG9ycy9maWx0ZXItbG9va3VwLmRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBUUgsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUM3QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBR3ZFLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQXNCckQsTUFBTSxPQUFPLHNCQUNULFNBQVEsZ0JBQXlDO0lBZWpELFlBQVksUUFBZ0IsRUFBRSxHQUFxRjtRQUMvRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFYVixnQkFBVyxHQUEwQixvQkFBb0IsQ0FBQyxRQUFRLENBQUM7UUFFbkUsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBRXRCLHVCQUFrQixHQUFHLDRCQUE0QixDQUFDO1FBUWpFLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUV6QyxJQUFJLEdBQUcsRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksc0JBQXNCLENBQXFFLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMxSSxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsRUFBRSxvQkFBb0IsSUFBSSxTQUFTLENBQUM7SUFDeEUsQ0FBQztJ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QztRQUNsRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDYSxjQUFjLENBQUMsSUFBdUM7UUFDbEUsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUNqQixHQUFHLElBQUk7WUFDUCxXQUFXLEVBQUUsSUFBSSxFQUFFLFdBQVcsSUFBSSxJQUFJO1lBQ3RDLFlBQVksRUFBRSxJQUFJLEVBQUUsWUFBWSxJQUFJLElBQUk7U0FDM0MsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ2EsSUFBSTtRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLDBCQUEwQixDQUFtQixJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge29mfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBFbnVtQ29uc3RhbnRUeXBlLFxuICAgIEVudW1WYWx1ZSxcbiAgICBJTG9va3VwRGF0YVByb3ZpZGVyLFxuICAgIElMb29rdXBEZXNjcmlwdG9yLFxuICAgIExvb2t1cERhdGFQcm92aWRlckxvb2t1cEZuVHlwZSxcbiAgICBTZXJ2aWNlQ2xhc3NPcHRUeXBlLFxuICAgIFNlcnZpY2VDbGFzc1R5cGUsXG4gICAgZnJvbUVudW1Db25zdGFudHNBc1ZhbHVlQXJyYXksXG4gICAgZnJvbUVudW1WYWx1ZXNBc1ZhbHVlQXJyYXlcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7TG9va3VwRGF0YVByb3ZpZGVySW5zdH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtL2FwaSc7XG5pbXBvcnQge0VudW1EZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtGaWx0ZXJMb29rdXBUeXBlRW51bSwgRmlsdGVyVHlwZUVudW19IGZyb20gJy4uL21vZGVscy9maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHtGaWx0ZXJEZXNjcmlwdG9yfSBmcm9tICcuL2ZpbHRlci5kZXNjcmlwdG9yJztcblxuZXhwb3J0IHR5cGUgRmlsdGVyTG9va3VwRGVzY3JpcHRvckNvbnN0cnVjdG9yT3B0c1R5cGU8XG4gICAgRmlsdGVyTW9kZWwsXG4gICAgU2VydmljZSxcbiAgICBTb3J0cyA9IGtleW9mIEZpbHRlck1vZGVsLFxuICAgIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBGaWx0ZXJNb2RlbFxuPiA9IEZpbHRlckxvb2t1cERlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPEZpbHRlck1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz4gJiB7XG4gICAgb3B0aW9uc1ZhbHVlUHJvcGVydHk/OiBzdHJpbmcgfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgRmlsdGVyTG9va3VwRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8RmlsdGVyTW9kZWwsIFNlcnZpY2UsIFNvcnRzID0ga2V5b2YgRmlsdGVyTW9kZWwsIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBGaWx0ZXJNb2RlbD4gPSB7XG4gICAgc2VydmljZVR5cGU/OiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+O1xuICAgIGRhdGFQcm92aWRlcj86IElMb29rdXBEYXRhUHJvdmlkZXI8RmlsdGVyTW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzPjtcbn07XG5cbmV4cG9ydCB0eXBlIEZpbHRlckxvb2t1cEF1dG9jb21wbGV0ZU9wdHNUeXBlID0ge1xuICAgIG9wZW5PbkZvY3VzPzogYm9vbGVhbjtcbiAgICBpbmxpbmVTZWFyY2g/OiBib29sZWFuO1xuICAgIGF1dG9DbGVhcj86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyTG9va3VwRGVzY3JpcHRvcjxGaWx0ZXJNb2RlbCwgVGFibGVNb2RlbCwgU2VydmljZSA9IGFueSwgRmlsdGVyVmFsdWUgPSBGaWx0ZXJNb2RlbCwgU29ydHMgPSBrZXlvZiBGaWx0ZXJNb2RlbCwgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueSA9IGtleW9mIEZpbHRlck1vZGVsPlxuICAgIGV4dGVuZHMgRmlsdGVyRGVzY3JpcHRvcjxGaWx0ZXJWYWx1ZSwgVGFibGVNb2RlbD5cbiAgICBpbXBsZW1lbnRzIElMb29rdXBEZXNjcmlwdG9yPEZpbHRlck1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz5cbntcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFQcm92aWRlcjogSUxvb2t1cERhdGFQcm92aWRlcjxGaWx0ZXJNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+O1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfb3B0aW9uc1ZhbHVlUHJvcGVydHk/OiBzdHJpbmcgfCBudWxsO1xuICAgIHByb3RlY3RlZCBfbG9va3VwVHlwZT86IEZpbHRlckxvb2t1cFR5cGVFbnVtID0gRmlsdGVyTG9va3VwVHlwZUVudW0uRHJvcGRvd247XG4gICAgcHJvdGVjdGVkIF9vcHRpb25zTGFiZWxQcm9wZXJ0eT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnNMYWJlbFRyYW5zbGF0ZSA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF9kcm9wZG93bkNsYXNzTmFtZSA9ICdtbmctZmlsdGVyLWxvb2t1cC1kcm9wZG93bic7XG5cbiAgICBwcm90ZWN0ZWQgX2F1dG9jb21wbGV0ZU9wZW5PbkZvY3VzPzogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX2F1dG9jb21wbGV0ZUlubGluZVNlYXJjaD86IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9hdXRvY29tcGxldGVBdXRvQ2xlYXI/OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydHk6IHN0cmluZywgY2ZnPzogRmlsdGVyTG9va3VwRGVzY3JpcHRvckNvbnN0cnVjdG9yT3B0c1R5cGU8RmlsdGVyTW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzPikge1xuICAgICAgICBzdXBlcihwcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuX2ZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5Mb29rdXA7XG5cbiAgICAgICAgaWYgKGNmZz8uZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBjZmcuZGF0YVByb3ZpZGVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyID0gbmV3IExvb2t1cERhdGFQcm92aWRlckluc3Q8RmlsdGVyTW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzLCBTZXJ2aWNlQ2xhc3NPcHRUeXBlPFNlcnZpY2U+PihjZmc/LnNlcnZpY2VUeXBlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29wdGlvbnNWYWx1ZVByb3BlcnR5ID0gY2ZnPy5vcHRpb25zVmFsdWVQcm9wZXJ0eSA/PyB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb29rdXBUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9va3VwVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGFQcm92aWRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFQcm92aWRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG9wdGlvbnNMYWJlbFByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9uc0xhYmVsUHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBvcHRpb25zTGFiZWxUcmFuc2xhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zTGFiZWxUcmFuc2xhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBvcHRpb25zVmFsdWVQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnNWYWx1ZVByb3BlcnR5ID8/IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGF1dG9jb21wbGV0ZU9wZW5PbkZvY3VzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlT3Blbk9uRm9jdXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhdXRvY29tcGxldGVBdXRvQ2xlYXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGVBdXRvQ2xlYXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhdXRvY29tcGxldGVJbmxpbmVTZWFyY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGVJbmxpbmVTZWFyY2g7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBkcm9wZG93bkNsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Ryb3Bkb3duQ2xhc3NOYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgbGFiZWwgcHJvcGVydHkgZm9yIG9wdGlvbnMgZGlzcGxheS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBQcm9wZXJ0eSBmb3IgbGFiZWwgb3B0aW9ucy5cbiAgICAgKiBAcGFyYW0gdHJhbnNsYXRlIElmIHRoZSBvcHRpb25zIHNob3VsZCBiZSB0cmFuc2xhdGVkIHRocm91Z2ggdGhlIGkxOG4uXG4gICAgICovXG4gICAgcHVibGljIHdpdGhPcHRpb25zTGFiZWxQcm9wZXJ0eShwcm9wZXJ0eToga2V5b2YgRmlsdGVyTW9kZWwsIHRyYW5zbGF0ZSA9IGZhbHNlKTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhPcHRpb25zTGFiZWxQcm9wZXJ0eVVuc2FmZShwcm9wZXJ0eSBhcyBzdHJpbmcsIHRyYW5zbGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBsYWJlbCBwcm9wZXJ0eSBmb3Igb3B0aW9ucyBkaXNwbGF5LlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBVTlNBRkUhXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgZm9yIGxhYmVsIG9wdGlvbnMuXG4gICAgICogQHBhcmFtIHRyYW5zbGF0ZSBJZiB0aGUgb3B0aW9ucyBzaG91bGQgYmUgdHJhbnNsYXRlZCB0aHJvdWdoIHRoZSBpMThuLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoT3B0aW9uc0xhYmVsUHJvcGVydHlVbnNhZmUocHJvcGVydHk6IHN0cmluZywgdHJhbnNsYXRlID0gZmFsc2UpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fb3B0aW9uc0xhYmVsUHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICAgICAgdGhpcy5fb3B0aW9uc0xhYmVsVHJhbnNsYXRlID0gdHJhbnNsYXRlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2Qgd2lsbCBzZXQgYG9wdGlvbnNWYWx1ZVByb3BlcnR5YCwgYmVjYXVzZSB0cmFjayBwcm9wZXJ0aWVzIGFyZSBub3Qgc3VwcG9ydGVkIGhlcmUgYXMgZmlsdGVycyBuZWVkIGZpbmFsIHZhbHVlIHRvIHdvcmsgY29ycmVjdGx5LlxuICAgICAqIFVzZSBgb3B0aW9uc1ZhbHVlUHJvcGVydHlgIGluIGZpbHRlciBjcmVhdGlvbiBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoT3B0aW9uc1RyYWNrUHJvcGVydHkoKTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB3aWxsIHNldCBgb3B0aW9uc1ZhbHVlUHJvcGVydHlgLCBiZWNhdXNlIHRyYWNrIHByb3BlcnRpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaGVyZSBhcyBmaWx0ZXJzIG5lZWQgZmluYWwgdmFsdWUgdG8gd29yayBjb3JyZWN0bHkuXG4gICAgICogVXNlIGBvcHRpb25zVmFsdWVQcm9wZXJ0eWAgaW4gZmlsdGVyIGNyZWF0aW9uIGluc3RlYWQuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhPcHRpb25zVHJhY2tQcm9wZXJ0eVVuc2FmZSgpOiB0aGlzIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhMb29rdXAobG9va3VwPzogTG9va3VwRGF0YVByb3ZpZGVyTG9va3VwRm5UeXBlPEZpbHRlck1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyLndpdGhMb29rdXAobG9va3VwKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgZHJvcGRvd24gY2xhc3MgbmFtZS5cbiAgICAgKiBAcGFyYW0gZHJvcGRvd25DbGFzc05hbWUgQ2xhc3MgbmFtZSBmb3IgZHJvcGRvd24uXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIHdpdGhEcm9wZG93bkNsYXNzTmFtZShkcm9wZG93bkNsYXNzTmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2Ryb3Bkb3duQ2xhc3NOYW1lID0gZHJvcGRvd25DbGFzc05hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgbG9va3VwIGFzIGF1dG9jb21wbGV0ZSBpbnN0ZWFkIG9mIGRyb3Bkb3duLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdHMgQWRkaXRpb25hbCBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBhc0F1dG9jb21wbGV0ZShvcHRzPzogRmlsdGVyTG9va3VwQXV0b2NvbXBsZXRlT3B0c1R5cGUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fbG9va3VwVHlwZSA9IEZpbHRlckxvb2t1cFR5cGVFbnVtLkF1dG9jb21wbGV0ZTtcbiAgICAgICAgdGhpcy5fYXV0b2NvbXBsZXRlQXV0b0NsZWFyID0gb3B0cz8uYXV0b0NsZWFyO1xuICAgICAgICB0aGlzLl9hdXRvY29tcGxldGVPcGVuT25Gb2N1cyA9IG9wdHM/Lm9wZW5PbkZvY3VzO1xuICAgICAgICB0aGlzLl9hdXRvY29tcGxldGVJbmxpbmVTZWFyY2ggPSBvcHRzPy5pbmxpbmVTZWFyY2g7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcGllcyBjdXJyZW50IGRlc2NyaXB0b3IgdG8gYSBuZXcgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGNvcHkoKTogRmlsdGVyTG9va3VwRGVzY3JpcHRvcjxGaWx0ZXJNb2RlbCwgVGFibGVNb2RlbCwgU2VydmljZSwgRmlsdGVyVmFsdWUsIFNvcnRzLCBGaWx0ZXJzPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRmlsdGVyTG9va3VwRGVzY3JpcHRvcjxGaWx0ZXJNb2RlbCwgVGFibGVNb2RlbCwgU2VydmljZSwgRmlsdGVyVmFsdWUsIFNvcnRzLCBGaWx0ZXJzPih0aGlzLl9wcm9wZXJ0eSwge1xuICAgICAgICAgICAgZGF0YVByb3ZpZGVyOiB0aGlzLmRhdGFQcm92aWRlclxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjb3B5RmllbGRzVG8oZmlsdGVyOiBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPEZpbHRlck1vZGVsLCBUYWJsZU1vZGVsLCBTZXJ2aWNlLCBGaWx0ZXJWYWx1ZSwgU29ydHMsIEZpbHRlcnM+KSB7XG4gICAgICAgIHN1cGVyLmNvcHlGaWVsZHNUbyhmaWx0ZXIpO1xuICAgICAgICBmaWx0ZXIuX2xvb2t1cFR5cGUgPSB0aGlzLl9sb29rdXBUeXBlO1xuICAgICAgICBmaWx0ZXIuX29wdGlvbnNMYWJlbFByb3BlcnR5ID0gdGhpcy5fb3B0aW9uc0xhYmVsUHJvcGVydHk7XG4gICAgICAgIGZpbHRlci5fb3B0aW9uc0xhYmVsVHJhbnNsYXRlID0gdGhpcy5fb3B0aW9uc0xhYmVsVHJhbnNsYXRlO1xuICAgICAgICBmaWx0ZXIuX2Ryb3Bkb3duQ2xhc3NOYW1lID0gdGhpcy5fZHJvcGRvd25DbGFzc05hbWU7XG4gICAgICAgIGZpbHRlci5fYXV0b2NvbXBsZXRlT3Blbk9uRm9jdXMgPSB0aGlzLl9hdXRvY29tcGxldGVPcGVuT25Gb2N1cztcbiAgICAgICAgZmlsdGVyLl9hdXRvY29tcGxldGVJbmxpbmVTZWFyY2ggPSB0aGlzLl9hdXRvY29tcGxldGVJbmxpbmVTZWFyY2g7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmlsdGVyTG9va3VwRW51bURlc2NyaXB0b3I8RW51bSwgVGFibGVNb2RlbD4gZXh0ZW5kcyBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPEVudW1WYWx1ZSwgVGFibGVNb2RlbCwgdW5kZWZpbmVkLCBFbnVtQ29uc3RhbnRUeXBlLCBuZXZlciwgbmV2ZXI+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbnVtOiBFbnVtRGVzY3JpcHRvcjxFbnVtPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vcHRpb25FbnVtVmFsdWVzOiBFbnVtVmFsdWVbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uYW1lQXNWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydHk6IHN0cmluZywgZW51bURlc2M6IEVudW1EZXNjcmlwdG9yPEVudW0+LCBvcHRpb25zPzogQXJyYXk8RW51bT4pIHtcbiAgICAgICAgc3VwZXIocHJvcGVydHksIHtcbiAgICAgICAgICAgIGRhdGFQcm92aWRlcjogbmV3IExvb2t1cERhdGFQcm92aWRlckluc3Q8RW51bVZhbHVlLCB1bmRlZmluZWQsIG5ldmVyLCBuZXZlciwgdW5kZWZpbmVkPih1bmRlZmluZWQpLFxuICAgICAgICAgICAgb3B0aW9uc1ZhbHVlUHJvcGVydHk6ICd2YWx1ZSdcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2ZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5Mb29rdXBFbnVtO1xuXG4gICAgICAgIHRoaXMuX2VudW0gPSBlbnVtRGVzYztcblxuICAgICAgICB0aGlzLl9vcHRpb25FbnVtVmFsdWVzID0gQXJyYXkuaXNBcnJheShvcHRpb25zKVxuICAgICAgICAgICAgPyBmcm9tRW51bVZhbHVlc0FzVmFsdWVBcnJheSh0aGlzLl9lbnVtLnR5cGUsIG9wdGlvbnMsIHRoaXMuX2VudW0ubmFtZUFzVmFsdWUsIHRoaXMuX2VudW0uaTE4bkJhc2VLZXkgPz8gdW5kZWZpbmVkKVxuICAgICAgICAgICAgOiBmcm9tRW51bUNvbnN0YW50c0FzVmFsdWVBcnJheSh0aGlzLl9lbnVtLnR5cGUsIHRoaXMuX2VudW0ubmFtZUFzVmFsdWUsIHRoaXMuX2VudW0uaTE4bkJhc2VLZXkgPz8gdW5kZWZpbmVkKTtcblxuICAgICAgICB0aGlzLndpdGhMb29rdXAoKCkgPT4gb2YodGhpcy5fb3B0aW9uRW51bVZhbHVlcykpO1xuICAgICAgICB0aGlzLndpdGhPcHRpb25zTGFiZWxQcm9wZXJ0eSgndGl0bGUnLCB0aGlzLl9lbnVtLmkxOG5CYXNlS2V5ICE9PSBudWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVudW0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgbG9va3VwIGFzIGF1dG9jb21wbGV0ZSBpbnN0ZWFkIG9mIGRyb3Bkb3duLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdHMgQWRkaXRpb25hbCBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBhc0F1dG9jb21wbGV0ZShvcHRzPzogRmlsdGVyTG9va3VwQXV0b2NvbXBsZXRlT3B0c1R5cGUpOiB0aGlzIHtcbiAgICAgICAgc3VwZXIuYXNBdXRvY29tcGxldGUoe1xuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgICAgIG9wZW5PbkZvY3VzOiBvcHRzPy5vcGVuT25Gb2N1cyA/PyB0cnVlLFxuICAgICAgICAgICAgaW5saW5lU2VhcmNoOiBvcHRzPy5pbmxpbmVTZWFyY2ggPz8gdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29waWVzIGN1cnJlbnQgZGVzY3JpcHRvciB0byBhIG5ldyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29weSgpOiBGaWx0ZXJMb29rdXBFbnVtRGVzY3JpcHRvcjxFbnVtLCBUYWJsZU1vZGVsPiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gbmV3IEZpbHRlckxvb2t1cEVudW1EZXNjcmlwdG9yPEVudW0sIFRhYmxlTW9kZWw+KHRoaXMuX3Byb3BlcnR5LCB0aGlzLmVudW0sIFtdKTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxufVxuIl19","export class FilterGenericDescriptor {\n constructor(propertyLookupDataProvider) {\n this._propertyLookup = propertyLookupDataProvider;\n }\n // must set return types explicitly due to ng-packagr bug: https://github.com/ng-packagr/ng-packagr/issues/1405\n get propertyLookup() {\n return this._propertyLookup;\n }\n get propertySearch() {\n return this._propertySearch;\n }\n // must set return types explicitly due to ng-packagr bug: https://github.com/ng-packagr/ng-packagr/issues/1405\n get valueLookup() {\n return this._valueLookup;\n }\n withValueLookup(valueLookup) {\n this._valueLookup = valueLookup;\n return this;\n }\n withPropertySearch(search = true) {\n this._propertySearch = search;\n return this;\n }\n copy() {\n const descriptor = new FilterGenericDescriptor(this._propertyLookup);\n descriptor._propertySearch = this._propertySearch;\n descriptor._valueLookup = this._valueLookup;\n return descriptor;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWdlbmVyaWMuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2ZpbHRlci9zcmMvZGVzY3JpcHRvcnMvZmlsdGVyLWdlbmVyaWMuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sdUJBQXVCO0lBS2hDLFlBQVksMEJBQXlFO1FBQ2pGLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQTBCLENBQUM7SUFDdEQsQ0FBQztJQUVELCtHQUErRztJQUMvRyxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCwrR0FBK0c7SUFDL0csSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRU0sZUFBZSxDQUFDLFdBQThEO1FBQ2pGLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsSUFBSTtRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sSUFBSTtRQUNQLE1BQU0sVUFBVSxHQUFHLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JFLFVBQVUsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNsRCxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDNUMsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb29rdXBEYXRhUHJvdmlkZXJJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcblxuaW1wb3J0IHtGaWx0ZXJHZW5lcmljUHJvcGVydHl9IGZyb20gJy4uL21vZGVscy9maWx0ZXItZ2VuZXJpYy1wcm9wZXJ0eS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJHZW5lcmljRGVzY3JpcHRvciB7XG4gICAgcHJvdGVjdGVkIF9wcm9wZXJ0eUxvb2t1cDogTG9va3VwRGF0YVByb3ZpZGVySW5zdDxGaWx0ZXJHZW5lcmljUHJvcGVydHk+O1xuICAgIHByb3RlY3RlZCBfcHJvcGVydHlTZWFyY2g/OiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfdmFsdWVMb29rdXA/OiBMb29rdXBEYXRhUHJvdmlkZXJJbnN0PHN0cmluZywgYW55LCBhbnksICdmaWVsZCc+O1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydHlMb29rdXBEYXRhUHJvdmlkZXI6IExvb2t1cERhdGFQcm92aWRlckluc3Q8RmlsdGVyR2VuZXJpY1Byb3BlcnR5Pikge1xuICAgICAgICB0aGlzLl9wcm9wZXJ0eUxvb2t1cCA9IHByb3BlcnR5TG9va3VwRGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIC8vIG11c3Qgc2V0IHJldHVybiB0eXBlcyBleHBsaWNpdGx5IGR1ZSB0byBuZy1wYWNrYWdyIGJ1ZzogaHR0cHM6Ly9naXRodWIuY29tL25nLXBhY2thZ3IvbmctcGFja2Fnci9pc3N1ZXMvMTQwNVxuICAgIHB1YmxpYyBnZXQgcHJvcGVydHlMb29rdXAoKTogTG9va3VwRGF0YVByb3ZpZGVySW5zdDxGaWx0ZXJHZW5lcmljUHJvcGVydHk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3BlcnR5TG9va3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHJvcGVydHlTZWFyY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0eVNlYXJjaDtcbiAgICB9XG5cbiAgICAvLyBtdXN0IHNldCByZXR1cm4gdHlwZXMgZXhwbGljaXRseSBkdWUgdG8gbmctcGFja2FnciBidWc6IGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wYWNrYWdyL25nLXBhY2thZ3IvaXNzdWVzLzE0MDVcbiAgICBwdWJsaWMgZ2V0IHZhbHVlTG9va3VwKCk6IExvb2t1cERhdGFQcm92aWRlckluc3Q8c3RyaW5nLCBhbnksIGFueSwgJ2ZpZWxkJz4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVMb29rdXA7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhWYWx1ZUxvb2t1cCh2YWx1ZUxvb2t1cDogTG9va3VwRGF0YVByb3ZpZGVySW5zdDxzdHJpbmcsIGFueSwgYW55LCAnZmllbGQnPik6IHRoaXMge1xuICAgICAgICB0aGlzLl92YWx1ZUxvb2t1cCA9IHZhbHVlTG9va3VwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFByb3BlcnR5U2VhcmNoKHNlYXJjaCA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcHJvcGVydHlTZWFyY2ggPSBzZWFyY2g7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5KCk6IEZpbHRlckdlbmVyaWNEZXNjcmlwdG9yIHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBGaWx0ZXJHZW5lcmljRGVzY3JpcHRvcih0aGlzLl9wcm9wZXJ0eUxvb2t1cCk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Byb3BlcnR5U2VhcmNoID0gdGhpcy5fcHJvcGVydHlTZWFyY2g7XG4gICAgICAgIGRlc2NyaXB0b3IuX3ZhbHVlTG9va3VwID0gdGhpcy5fdmFsdWVMb29rdXA7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbn1cbiJdfQ==","// descriptors\nexport * from './descriptors/filter.descriptor';\nexport * from './descriptors/filter-lookup.descriptor';\nexport * from './descriptors/filter-generic.descriptor';\n// models\nexport * from './models/filter.model';\nexport * from './models/filter-component.interface';\nexport * from './models/filter-generic-property.model';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9maWx0ZXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxTQUFTO0FBQ1QsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBkZXNjcmlwdG9yc1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9maWx0ZXIuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL2ZpbHRlci1sb29rdXAuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL2ZpbHRlci1nZW5lcmljLmRlc2NyaXB0b3InO1xuXG4vLyBtb2RlbHNcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2ZpbHRlci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9maWx0ZXItY29tcG9uZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9maWx0ZXItZ2VuZXJpYy1wcm9wZXJ0eS5tb2RlbCc7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2ZpbHRlci9zcmMvbWVkaXVzaW5jLW1uZy1jb21tb25zLWZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;AAAU,IAAC;AACX,CAAC,UAAU,cAAc,EAAE;AAC3B,IAAI,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AAC3D,IAAI,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AAC3D,IAAI,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;AAC7D,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AACvD,IAAI,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AAC3D,IAAI,cAAc,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY;AACnE,IAAI,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;AACjE,CAAC,EAAE,cAAc,KAAK,cAAc,GAAG,EAAE,CAAC,CAAC;AACjC,IAAC;AACX,CAAC,UAAU,oBAAoB,EAAE;AACjC,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;AAC3E,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc;AACnF,CAAC,EAAE,oBAAoB,KAAK,oBAAoB,GAAG,EAAE,CAAC,CAAC;AAC7C,IAAC;AACX,CAAC,UAAU,qBAAqB,EAAE;AAClC,IAAI,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AACzE,IAAI,qBAAqB,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB;AACzF,IAAI,qBAAqB,CAAC,qBAAqB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa;AACnF,CAAC,EAAE,qBAAqB,KAAK,qBAAqB,GAAG,EAAE,CAAC,CAAC;;AClBlD,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,MAAM;AAChD;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACrC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI;AACtC,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE;AAC5B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAClC,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK;AAChC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACrC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,EAAE;AACpC,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ;AACjC,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ;AACrC,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,aAAa;AACjC,IAAI;AACJ,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY;AAChC,IAAI;AACJ,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,gBAAgB;AACpC,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,aAAa;AACjC,IAAI;AACJ,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,OAAO,IAAI,CAAC,iBAAiB;AACrC,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B,IAAI;AACJ,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,cAAc;AAClC,IAAI;AACJ,IAAI,IAAI,yBAAyB,GAAG;AACpC,QAAQ,OAAO,IAAI,CAAC,0BAA0B;AAC9C,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO;AAC3B,IAAI;AACJ,IAAI,IAAI,uBAAuB,GAAG;AAClC,QAAQ,OAAO,IAAI,CAAC,wBAAwB;AAC5C,IAAI;AACJ,IAAI,IAAI,uBAAuB,GAAG;AAClC,QAAQ,OAAO,IAAI,CAAC,wBAAwB;AAC5C,IAAI;AACJ,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,kBAAkB;AACtC,IAAI;AACJ,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,OAAO,IAAI,CAAC,iBAAiB;AACrC,IAAI;AACJ,IAAI,IAAI,kBAAkB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,mBAAmB;AACvC,IAAI;AACJ,IAAI,IAAI,qBAAqB,GAAG;AAChC,QAAQ,OAAO,IAAI,CAAC,sBAAsB;AAC1C,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,aAAa;AACjC,IAAI;AACJ,IAAI,IAAI,mBAAmB,GAAG;AAC9B,QAAQ,OAAO,IAAI,CAAC,oBAAoB;AACxC,IAAI;AACJ,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,gBAAgB;AACpC,IAAI;AACJ,IAAI,IAAI,mBAAmB,GAAG;AAC9B,QAAQ,OAAO,IAAI,CAAC,oBAAoB;AACxC,IAAI;AACJ,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY;AAChC,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B,IAAI;AACJ,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,gBAAgB;AACpC,IAAI;AACJ,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY;AAChC,IAAI;AACJ,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC,eAAe;AACnC,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS;AAC7B,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B,IAAI;AACJ,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,kBAAkB;AACtC,IAAI;AACJ,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,gBAAgB;AACpC,IAAI;AACJ,IAAI,IAAI,oBAAoB,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,wBAAwB;AAC5C,IAAI;AACJ,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,kBAAkB;AACtC,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,UAAU,EAAE;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,UAAU;AACrC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI;AACpC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI;AAC9C,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;AACnG,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,MAAM;AAChD,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;AAClJ,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,iBAAiB,CAAC,SAAS,EAAE;AACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,SAAS;AACnD,QAAQ,IAAI,CAAC,oBAAoB,GAAG,SAAS;AAC7C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,qBAAqB,CAAC,MAAM,EAAE;AAC3E,QAAQ,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,WAAW,CAAC;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,QAAQ,EAAE,WAAW,GAAG,qBAAqB,CAAC,MAAM,EAAE;AACjF,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ;AACrC,QAAQ,IAAI,CAAC,YAAY,GAAG,WAAW;AACvC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,IAAI,EAAE;AAC1B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC;AAC5D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,SAAS,EAAE,KAAK,EAAE;AAC7C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI;AACpC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK;AAClC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,SAAS;AAC1C,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC;AACxD,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACrC,QAAQ,IAAI,CAAC,aAAa,GAAG,SAAS;AACtC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,SAAS;AAC1C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE;AAC5C,QAAQ,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AAC9H,YAAY,MAAM,IAAI,oBAAoB,CAAC,CAAC,oCAAoC,EAAE,SAAS,CAAC,uCAAuC,CAAC,CAAC;AACrI,QAAQ;AACR,QAAQ,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AACpJ,YAAY,MAAM,IAAI,oBAAoB,CAAC,CAAC,oCAAoC,EAAE,SAAS,CAAC,oDAAoD,CAAC,CAAC;AAClJ,QAAQ;AACR,QAAQ,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,cAAc,EAAE;AACpE,YAAY,IAAI,CAAC,aAAa,GAAG,SAAS;AAC1C,QAAQ;AACR,QAAQ,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;AACtF,YAAY,IAAI,CAAC,iBAAiB,GAAG,SAAS;AAC9C,YAAY,aAAa,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,oCAAoC,EAAE,SAAS,CAAC,qCAAqC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAChJ,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE;AAC5C,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM;AACpC,QAAQ,IAAI,CAAC,0BAA0B,GAAG,YAAY;AACtD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE;AAClC,QAAQ,IAAI,CAAC,wBAAwB,GAAG,GAAG;AAC3C,QAAQ,IAAI,CAAC,wBAAwB,GAAG,GAAG;AAC3C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,CAAC,WAAW,GAAG,IAAI,EAAE;AAC3C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,WAAW;AAC7C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB,CAAC,iBAAiB,EAAE;AAChD,QAAQ,IAAI,EAAE,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,UAAU,CAAC,EAAE;AAC3G,YAAY,MAAM,IAAI,oBAAoB,CAAC,kFAAkF,CAAC;AAC9H,QAAQ;AACR,QAAQ,IAAI,CAAC,wBAAwB,GAAG,iBAAiB;AACzD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,IAAI,EAAE;AAChC,QAAQ,IAAI,CAAC,0BAA0B,GAAG,IAAI,EAAE,sBAAsB;AACtE,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,EAAE,MAAM;AAC7C,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,EAAE,QAAQ;AACjD,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI,EAAE,WAAW;AACvD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,IAAI,EAAE;AACxB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,GAAG;AACtC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,EAAE,UAAU;AACpD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,EAAE,MAAM;AAC5C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,WAAW,EAAE;AACjC,QAAQ,IAAI,CAAC,YAAY,GAAG,WAAW;AACvC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,SAAS,EAAE;AAC7B,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS;AACnC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,SAAS,EAAE;AACnC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,SAAS;AACzC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE;AACrC,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,IAAI,IAAI;AACzC,QAAQ,IAAI,CAAC,eAAe,GAAG,QAAQ,IAAI,IAAI;AAC/C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,UAAU,GAAG,MAAM,EAAE;AAC3C,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,UAAU,EAAE;AAC/B,QAAQ,IAAI,CAAC,WAAW,GAAG,UAAU;AACrC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,SAAS,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC3G,YAAY,MAAM,IAAI,oBAAoB,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;AACxK,QAAQ;AACR,QAAQ,IAAI,CAAC,iBAAiB,GAAG,SAAS;AAC1C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE;AACnC,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,IAAI,CAAC,kBAAkB,GAAG,YAAY;AAC9C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,qBAAqB,CAAC,iBAAiB,EAAE;AAC7C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,iBAAiB;AACnD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,YAAY,CAAC,UAAU,GAAG,IAAI,EAAE;AACpC,QAAQ,IAAI,CAAC,WAAW,GAAG,UAAU;AACrC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/D,QAAQ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AACrC,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ,IAAI,YAAY,CAAC,UAAU,EAAE;AAC7B,QAAQ,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;AACjD,QAAQ,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AAC3D,QAAQ,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;AACrD,QAAQ,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB;AAC7D,QAAQ,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc;AACvD,QAAQ,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AACzC,QAAQ,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB;AAC3E,QAAQ,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB;AAC3E,QAAQ,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;AAC/D,QAAQ,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB;AAC7D,QAAQ,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB;AACjE,QAAQ,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;AACrD,QAAQ,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB;AACnE,QAAQ,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AAC3D,QAAQ,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB;AACnE,QAAQ,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;AACnD,QAAQ,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAC/C,QAAQ,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;AACnD,QAAQ,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe;AACzD,QAAQ,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AAC3D,QAAQ,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AAC3D,QAAQ,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB;AAC3E,QAAQ,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;AAC/D,QAAQ,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;AACjD,IAAI;AACJ;;AChbO,MAAM,sBAAsB,SAAS,gBAAgB,CAAC;AAC7D,IAAI,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;AAC/B,QAAQ,KAAK,CAAC,QAAQ,CAAC;AACvB,QAAQ,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,QAAQ;AACxD,QAAQ,IAAI,CAAC,sBAAsB,GAAG,KAAK;AAC3C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,4BAA4B;AAC9D,QAAQ,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,MAAM;AAChD,QAAQ,IAAI,GAAG,EAAE,YAAY,EAAE;AAC/B,YAAY,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,YAAY;AACjD,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAsB,CAAC,GAAG,EAAE,WAAW,CAAC;AAC7E,QAAQ;AACR,QAAQ,IAAI,CAAC,qBAAqB,GAAG,GAAG,EAAE,oBAAoB,IAAI,SAAS;AAC3E,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,aAAa;AACjC,IAAI;AACJ,IAAI,IAAI,oBAAoB,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,qBAAqB;AACzC,IAAI;AACJ,IAAI,IAAI,qBAAqB,GAAG;AAChC,QAAQ,OAAO,IAAI,CAAC,sBAAsB;AAC1C,IAAI;AACJ,IAAI,IAAI,oBAAoB,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,qBAAqB,IAAI,SAAS;AACtD,IAAI;AACJ,IAAI,IAAI,uBAAuB,GAAG;AAClC,QAAQ,OAAO,IAAI,CAAC,wBAAwB;AAC5C,IAAI;AACJ,IAAI,IAAI,qBAAqB,GAAG;AAChC,QAAQ,OAAO,IAAI,CAAC,sBAAsB;AAC1C,IAAI;AACJ,IAAI,IAAI,wBAAwB,GAAG;AACnC,QAAQ,OAAO,IAAI,CAAC,yBAAyB;AAC7C,IAAI;AACJ,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,kBAAkB;AACtC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB,CAAC,QAAQ,EAAE,SAAS,GAAG,KAAK,EAAE;AAC1D,QAAQ,OAAO,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,SAAS,CAAC;AACvE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,8BAA8B,CAAC,QAAQ,EAAE,SAAS,GAAG,KAAK,EAAE;AAChE,QAAQ,IAAI,CAAC,qBAAqB,GAAG,QAAQ;AAC7C,QAAQ,IAAI,CAAC,sBAAsB,GAAG,SAAS;AAC/C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,wBAAwB,GAAG;AAC/B,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,8BAA8B,GAAG;AACrC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,UAAU,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;AAC7C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,iBAAiB,EAAE;AAC7C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,iBAAiB;AACnD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,IAAI,EAAE;AACzB,QAAQ,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,YAAY;AAC5D,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI,EAAE,SAAS;AACrD,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,EAAE,WAAW;AACzD,QAAQ,IAAI,CAAC,yBAAyB,GAAG,IAAI,EAAE,YAAY;AAC3D,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,MAAM,UAAU,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE;AACtE,YAAY,YAAY,EAAE,IAAI,CAAC;AAC/B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AACrC,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ,IAAI,YAAY,CAAC,MAAM,EAAE;AACzB,QAAQ,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;AAClC,QAAQ,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;AAC7C,QAAQ,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB;AACjE,QAAQ,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB;AACnE,QAAQ,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;AAC3D,QAAQ,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB;AACvE,QAAQ,MAAM,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB;AACzE,IAAI;AACJ;AACO,MAAM,0BAA0B,SAAS,sBAAsB,CAAC;AACvE,IAAI,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE;AAC7C,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB,YAAY,YAAY,EAAE,IAAI,sBAAsB,CAAC,SAAS,CAAC;AAC/D,YAAY,oBAAoB,EAAE;AAClC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK;AACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,UAAU;AACpD,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ;AAC7B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO;AACtD,cAAc,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS;AAC9H,cAAc,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC;AACzH,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;AAC/E,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,KAAK;AACzB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,IAAI,EAAE;AACzB,QAAQ,KAAK,CAAC,cAAc,CAAC;AAC7B,YAAY,GAAG,IAAI;AACnB,YAAY,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,IAAI;AAClD,YAAY,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI;AAChD,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,MAAM,KAAK,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACnF,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAChC,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;;ACtKO,MAAM,uBAAuB,CAAC;AACrC,IAAI,WAAW,CAAC,0BAA0B,EAAE;AAC5C,QAAQ,IAAI,CAAC,eAAe,GAAG,0BAA0B;AACzD,IAAI;AACJ;AACA,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC,eAAe;AACnC,IAAI;AACJ,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC,eAAe;AACnC,IAAI;AACJ;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY;AAChC,IAAI;AACJ,IAAI,eAAe,CAAC,WAAW,EAAE;AACjC,QAAQ,IAAI,CAAC,YAAY,GAAG,WAAW;AACvC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,kBAAkB,CAAC,MAAM,GAAG,IAAI,EAAE;AACtC,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM;AACrC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,MAAM,UAAU,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC;AAC5E,QAAQ,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe;AACzD,QAAQ,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;AACnD,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ;;AC7BA;;ACAA;AACA;AACA;;;;"}
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 FilterLookupAutocompleteOptsType = {\n openOnFocus?: boolean;\n inlineSearch?: 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 _autocompleteOpenOnFocus?: boolean;\n protected _autocompleteInlineSearch?: 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 autocompleteInlineSearch() {\n return this._autocompleteInlineSearch;\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 asAutocomplete(opts?: FilterLookupAutocompleteOptsType): this {\n this._lookupType = FilterLookupTypeEnum.Autocomplete;\n this._autocompleteAutoClear = opts?.autoClear;\n this._autocompleteOpenOnFocus = opts?.openOnFocus;\n this._autocompleteInlineSearch = opts?.inlineSearch;\n return this;\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._autocompleteOpenOnFocus = this._autocompleteOpenOnFocus;\n filter._autocompleteInlineSearch = this._autocompleteInlineSearch;\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 private readonly _nameAsValue: boolean = false;\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 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-form-api.mjs","sources":["../tmp-esm2022/form/api/data-providers/lookup.data-provider.js","../tmp-esm2022/form/api/data-providers/lookup-data-provider.factory.js","../tmp-esm2022/form/api/descriptors/action-button.descriptor.js","../tmp-esm2022/form/api/descriptors/button-style.builder.js","../tmp-esm2022/form/api/index.js","../tmp-esm2022/form/api/mediusinc-mng-commons-form-api.js"],"sourcesContent":["import { DataProviderInst } from '@mediusinc/mng-commons/core';\nexport class LookupDataProviderInst extends DataProviderInst {\n constructor(serviceType) {\n super(serviceType);\n this._lookup = () => [];\n }\n get lookup() {\n return this._lookup;\n }\n withLookup(fn) {\n this._lookup = fn;\n return this;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9mb3JtL2FwaS9zcmMvZGF0YS1wcm92aWRlcnMvbG9va3VwLmRhdGEtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUEyRSxNQUFNLDZCQUE2QixDQUFDO0FBRXZJLE1BQU0sT0FBTyxzQkFDVCxTQUFRLGdCQUE4QztJQUt0RCxZQUFtQixXQUF5QjtRQUN4QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIYixZQUFPLEdBQW1FLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUk3RixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsRUFBa0U7UUFDekUsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhUHJvdmlkZXJJbnN0LCBJTG9va3VwRGF0YVByb3ZpZGVyLCBMb29rdXBEYXRhUHJvdmlkZXJMb29rdXBGblR5cGUsIFNlcnZpY2VDbGFzc09wdFR5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBMb29rdXBEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlID0gYW55LCBTb3J0cyA9IGtleW9mIE1vZGVsLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWwsIFNlcnZpY2VDbGFzcyA9IFNlcnZpY2VDbGFzc09wdFR5cGU8U2VydmljZT4+XG4gICAgZXh0ZW5kcyBEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTZXJ2aWNlQ2xhc3M+XG4gICAgaW1wbGVtZW50cyBJTG9va3VwRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgU2VydmljZUNsYXNzPlxue1xuICAgIHByb3RlY3RlZCBfbG9va3VwOiBMb29rdXBEYXRhUHJvdmlkZXJMb29rdXBGblR5cGU8TW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzPiA9ICgpID0+IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3MpIHtcbiAgICAgICAgc3VwZXIoc2VydmljZVR5cGUpO1xuICAgIH1cblxuICAgIGdldCBsb29rdXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb29rdXA7XG4gICAgfVxuXG4gICAgd2l0aExvb2t1cChmbjogTG9va3VwRGF0YVByb3ZpZGVyTG9va3VwRm5UeXBlPE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fbG9va3VwID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cbiJdfQ==","import { LookupDataProviderInst } from './lookup.data-provider';\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(opts) {\n return new LookupDataProviderInst(opts?.service);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWRhdGEtcHJvdmlkZXIuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Zvcm0vYXBpL3NyYy9kYXRhLXByb3ZpZGVycy9sb29rdXAtZGF0YS1wcm92aWRlci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTlEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FNaEMsSUFLRDtJQUNHLE9BQU8sSUFBSSxzQkFBc0IsQ0FBK0MsSUFBSSxFQUFFLE9BQXVCLENBQUMsQ0FBQztBQUNuSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZXJ2aWNlQ2xhc3NUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3IsIFR5cGVEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtMb29rdXBEYXRhUHJvdmlkZXJJbnN0fSBmcm9tICcuL2xvb2t1cC5kYXRhLXByb3ZpZGVyJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuZCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIGBMb29rdXBEYXRhUHJvdmlkZXJJbnN0YCB3aXRoIHRoZSBzcGVjaWZpZWQgb3B0aW9ucyBmb3IgbWFuYWdpbmcgbG9va3VwIGRhdGEuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIFRoZSBvcHRpb25zIG9iamVjdCB0byBjb25maWd1cmUgdGhlIGRhdGEgcHJvdmlkZXIuXG4gKiBAcGFyYW0ge1R5cGVEZXNjcmlwdG9yPE1vZGVsPiB8IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD59IFtvcHRzLnR5cGVdIC0gVGhlIGRlc2NyaXB0b3IgZGVmaW5pbmcgdGhlIHR5cGUgb2YgbW9kZWwuXG4gKiBAcGFyYW0ge1NlcnZpY2VDbGFzc1R5cGU8U2VydmljZT59IFtvcHRzLnNlcnZpY2VdIC0gVGhlIHNlcnZpY2UgY2xhc3MgdHlwZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGEgcHJvdmlkZXIuXG4gKiBAcGFyYW0ge1R5cGVEZXNjcmlwdG9yPENyZWF0ZU1vZGVsPiB8IE1vZGVsRGVzY3JpcHRvcjxDcmVhdGVNb2RlbD59IFtvcHRzLmZpbHRlcnNUeXBlXSAtIFRoZSBkZXNjcmlwdG9yIGRlZmluaW5nIHRoZSBmaWx0ZXJzIHR5cGUuXG4gKiBAcGFyYW0ge1R5cGVEZXNjcmlwdG9yPFVwZGF0ZU1vZGVsPiB8IE1vZGVsRGVzY3JpcHRvcjxVcGRhdGVNb2RlbD59IFtvcHRzLnNvcnRzVHlwZV0gLSBUaGUgZGVzY3JpcHRvciBkZWZpbmluZyB0aGUgc29ydHMgdHlwZS5cbiAqIEByZXR1cm4ge0xvb2t1cERhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzLCBTZXJ2aWNlQ2xhc3M+fSBBbiBpbnN0YW5jZSBvZiBgTG9va3VwRGF0YVByb3ZpZGVySW5zdGAgY29uZmlndXJlZCBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb29rdXBEYXRhUHJvdmlkZXI8XG4gICAgTW9kZWwsXG4gICAgU2VydmljZSA9IGFueSxcbiAgICBTb3J0cyA9IGtleW9mIE1vZGVsLFxuICAgIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBNb2RlbCxcbiAgICBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlIGV4dGVuZHMgdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPlxuPihvcHRzPzoge1xuICAgIHR5cGU/OiBUeXBlRGVzY3JpcHRvcjxNb2RlbD4gfCBNb2RlbERlc2NyaXB0b3I8TW9kZWw+O1xuICAgIHNlcnZpY2U/OiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+O1xuICAgIGZpbHRlcnNUeXBlPzogVHlwZURlc2NyaXB0b3I8RmlsdGVycz4gfCBNb2RlbERlc2NyaXB0b3I8RmlsdGVycz47XG4gICAgc29ydHNUeXBlPzogVHlwZURlc2NyaXB0b3I8U29ydHM+IHwgTW9kZWxEZXNjcmlwdG9yPFNvcnRzPjtcbn0pOiBMb29rdXBEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgU2VydmljZUNsYXNzPiB7XG4gICAgcmV0dXJuIG5ldyBMb29rdXBEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgU2VydmljZUNsYXNzPihvcHRzPy5zZXJ2aWNlIGFzIFNlcnZpY2VDbGFzcyk7XG59XG4iXX0=","export class ActionButtonDescriptor {\n withLabel(label) {\n this._label = label;\n return this;\n }\n withIcon(icon, iconPosition) {\n this._icon = icon;\n this._iconPosition = iconPosition;\n return this;\n }\n withStyle(style) {\n this._styleClass = style;\n return this;\n }\n withBadge(badge) {\n this._badge = badge;\n return this;\n }\n withTooltip(tooltip, position) {\n this._tooltip = tooltip;\n this._tooltipPosition = position ?? 'top';\n return this;\n }\n get label() {\n return this._label;\n }\n get icon() {\n return this._icon;\n }\n get iconPosition() {\n return this._iconPosition;\n }\n get style() {\n return this._styleClass;\n }\n get badge() {\n return this._badge;\n }\n get tooltip() {\n return this._tooltip;\n }\n get tooltipPosition() {\n return this._tooltipPosition;\n }\n copy() {\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//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbi5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZm9ybS9hcGkvc3JjL2Rlc2NyaXB0b3JzL2FjdGlvbi1idXR0b24uZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sc0JBQXNCO0lBWXhCLFNBQVMsQ0FBQyxLQUFxQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sUUFBUSxDQUFDLElBQW1CLEVBQUUsWUFBK0I7UUFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUE4QjtRQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQixFQUFFLFFBQThDO1FBQ3JGLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLElBQUksS0FBSyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFTSxJQUFJO1FBQ1AsTUFBTSxVQUFVLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hELFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDOUIsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzlDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQztRQUMvQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3BDLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SUFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IsIElCdXR0b25TdHlsZURlc2NyaXB0b3J9IGZyb20gJy4uL21vZGVscy9idXR0b24ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uQnV0dG9uRGVzY3JpcHRvciBpbXBsZW1lbnRzIElBY3Rpb25CdXR0b25EZXNjcmlwdG9yIHtcbiAgICBwcml2YXRlIF9sYWJlbD86IHN0cmluZyB8IG51bGw7XG5cbiAgICBwcml2YXRlIF9pY29uPzogc3RyaW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIF9pY29uUG9zaXRpb24/OiAnbGVmdCcgfCAncmlnaHQnO1xuXG4gICAgcHJpdmF0ZSBfc3R5bGVDbGFzcz86IElCdXR0b25TdHlsZURlc2NyaXB0b3I7XG5cbiAgICBwcml2YXRlIF9iYWRnZT86IHN0cmluZztcbiAgICBwcml2YXRlIF90b29sdGlwPzogc3RyaW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIF90b29sdGlwUG9zaXRpb24/OiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcblxuICAgIHB1YmxpYyB3aXRoTGFiZWwobGFiZWw/OiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2xhYmVsID0gbGFiZWw7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSWNvbihpY29uOiBzdHJpbmcgfCBudWxsLCBpY29uUG9zaXRpb24/OiAnbGVmdCcgfCAncmlnaHQnKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2ljb24gPSBpY29uO1xuICAgICAgICB0aGlzLl9pY29uUG9zaXRpb24gPSBpY29uUG9zaXRpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoU3R5bGUoc3R5bGU/OiBJQnV0dG9uU3R5bGVEZXNjcmlwdG9yKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3N0eWxlQ2xhc3MgPSBzdHlsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhCYWRnZShiYWRnZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2JhZGdlID0gYmFkZ2U7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVG9vbHRpcCh0b29sdGlwOiBzdHJpbmcgfCBudWxsLCBwb3NpdGlvbj86ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXAgPSB0b29sdGlwO1xuICAgICAgICB0aGlzLl90b29sdGlwUG9zaXRpb24gPSBwb3NpdGlvbiA/PyAndG9wJztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpY29uUG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uUG9zaXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlQ2xhc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBiYWRnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JhZGdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdG9vbHRpcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdGlwUG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b29sdGlwUG9zaXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHkoKTogQWN0aW9uQnV0dG9uRGVzY3JpcHRvciB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgQWN0aW9uQnV0dG9uRGVzY3JpcHRvcigpO1xuICAgICAgICBkZXNjcmlwdG9yLl9sYWJlbCA9IHRoaXMuX2xhYmVsO1xuICAgICAgICBkZXNjcmlwdG9yLl9pY29uID0gdGhpcy5faWNvbjtcbiAgICAgICAgZGVzY3JpcHRvci5faWNvblBvc2l0aW9uID0gdGhpcy5faWNvblBvc2l0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9zdHlsZUNsYXNzID0gey4uLnRoaXMuX3N0eWxlQ2xhc3N9O1xuICAgICAgICBkZXNjcmlwdG9yLl9iYWRnZSA9IHRoaXMuX2JhZGdlO1xuICAgICAgICBkZXNjcmlwdG9yLl90b29sdGlwID0gdGhpcy5fdG9vbHRpcDtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxufVxuIl19","import { StyleLevelEnum, StyleSizeEnum } from '@mediusinc/mng-commons/core';\nexport class ButtonStyleBuilder {\n static from(opts) {\n const builder = new ButtonStyleBuilder();\n builder._level = opts?.level;\n builder._size = opts?.size;\n builder._textButton = opts?.textButton;\n builder._outlined = opts?.outlined;\n builder._raised = opts?.raised;\n builder._rounded = opts?.rounded;\n builder._class = opts?.class;\n return builder;\n }\n get level() {\n return this._level;\n }\n get size() {\n return this._size;\n }\n get textButton() {\n return this._textButton;\n }\n get outlined() {\n return this._outlined;\n }\n get raised() {\n return this._raised;\n }\n get rounded() {\n return this._rounded;\n }\n get class() {\n return this._class;\n }\n /**\n * sets custom action level and returns this object\n * @param level\n */\n withLevel(level) {\n this._level = level;\n return this;\n }\n /**\n * sets custom size and return this object\n * @param size\n */\n withSize(size) {\n this._size = size;\n return this;\n }\n /**\n * sets text button property\n * @param text default true\n */\n withTextButton(text = true) {\n this._textButton = text;\n return this;\n }\n /**\n * sets outline button property\n * @param outlined default true\n */\n withOutlined(outlined = true) {\n this._outlined = outlined;\n return this;\n }\n /**\n * sets raised button property\n * @param raised default true\n */\n withRaised(raised = true) {\n this._raised = raised;\n return this;\n }\n withRounded(rounded = true) {\n this._rounded = rounded;\n return this;\n }\n /**\n * sets custom style class\n * @param customClass\n */\n withClass(customClass) {\n this._class = customClass;\n return this;\n }\n build(hasNoTitle = false) {\n const styles = [this.levelToStyleClass(), this.sizeToStyleClass(), this._class];\n if (this._textButton) {\n styles.push(`p-button-text`);\n }\n if (this._outlined) {\n styles.push(`p-button-outlined`);\n }\n if (this._raised) {\n styles.push(`p-button-raised`);\n }\n if ((hasNoTitle && this._rounded == null) || this._rounded) {\n styles.push('p-button-rounded');\n }\n return styles.join(' ');\n }\n copy() {\n const builder = new ButtonStyleBuilder();\n builder._level = this._level;\n builder._size = this._size;\n builder._textButton = this._textButton;\n builder._outlined = this._outlined;\n builder._raised = this._raised;\n builder._rounded = this._rounded;\n builder._class = this._class;\n return builder;\n }\n levelToStyleClass() {\n switch (this._level) {\n case undefined:\n case StyleLevelEnum.Default:\n case StyleLevelEnum.Primary:\n return 'p-button-primary';\n case StyleLevelEnum.Secondary:\n return 'p-button-secondary';\n case StyleLevelEnum.Info:\n return 'p-button-info';\n case StyleLevelEnum.Help:\n return 'p-button-help';\n case StyleLevelEnum.Success:\n return 'p-button-success';\n case StyleLevelEnum.Warning:\n return 'p-button-warn';\n case StyleLevelEnum.Danger:\n return 'p-button-danger';\n case StyleLevelEnum.Contrast:\n return 'p-button-contrast';\n }\n }\n sizeToStyleClass() {\n switch (this._size) {\n case StyleSizeEnum.ExtraSmall:\n return 'mng-button-xs';\n case StyleSizeEnum.Small:\n return 'p-button-sm';\n case StyleSizeEnum.Large:\n return 'p-button-lg';\n case StyleSizeEnum.ExtraLarge:\n return 'mng-button-xl';\n case StyleSizeEnum.Normal:\n default:\n return '';\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXN0eWxlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9mb3JtL2FwaS9zcmMvZGVzY3JpcHRvcnMvYnV0dG9uLXN0eWxlLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUkxRSxNQUFNLE9BQU8sa0JBQWtCO0lBU3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBNkI7UUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQztRQUM3QixPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxJQUFJLENBQUM7UUFDM0IsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsVUFBVSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLFFBQVEsQ0FBQztRQUNuQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7UUFDL0IsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQztRQUM3QixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFB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QUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N0eWxlTGV2ZWxFbnVtLCBTdHlsZVNpemVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge0lCdXR0b25TdHlsZURlc2NyaXB0b3J9IGZyb20gJy4uL21vZGVscy9idXR0b24ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgQnV0dG9uU3R5bGVCdWlsZGVyIGltcGxlbWVudHMgSUJ1dHRvblN0eWxlRGVzY3JpcHRvciB7XG4gICAgcHJpdmF0ZSBfbGV2ZWw/OiBTdHlsZUxldmVsRW51bTtcbiAgICBwcml2YXRlIF9zaXplPzogU3R5bGVTaXplRW51bTtcbiAgICBwcml2YXRlIF90ZXh0QnV0dG9uPzogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9vdXRsaW5lZD86IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfcmFpc2VkPzogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9yb3VuZGVkPzogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9jbGFzcz86IHN0cmluZztcblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbShvcHRzPzogSUJ1dHRvblN0eWxlRGVzY3JpcHRvcik6IEJ1dHRvblN0eWxlQnVpbGRlciB7XG4gICAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKCk7XG4gICAgICAgIGJ1aWxkZXIuX2xldmVsID0gb3B0cz8ubGV2ZWw7XG4gICAgICAgIGJ1aWxkZXIuX3NpemUgPSBvcHRzPy5zaXplO1xuICAgICAgICBidWlsZGVyLl90ZXh0QnV0dG9uID0gb3B0cz8udGV4dEJ1dHRvbjtcbiAgICAgICAgYnVpbGRlci5fb3V0bGluZWQgPSBvcHRzPy5vdXRsaW5lZDtcbiAgICAgICAgYnVpbGRlci5fcmFpc2VkID0gb3B0cz8ucmFpc2VkO1xuICAgICAgICBidWlsZGVyLl9yb3VuZGVkID0gb3B0cz8ucm91bmRlZDtcbiAgICAgICAgYnVpbGRlci5fY2xhc3MgPSBvcHRzPy5jbGFzcztcbiAgICAgICAgcmV0dXJuIGJ1aWxkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsZXZlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xldmVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0ZXh0QnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dEJ1dHRvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG91dGxpbmVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3V0bGluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByYWlzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yYWlzZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3VuZGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm91bmRlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xhc3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyBjdXN0b20gYWN0aW9uIGxldmVsIGFuZCByZXR1cm5zIHRoaXMgb2JqZWN0XG4gICAgICogQHBhcmFtIGxldmVsXG4gICAgICovXG4gICAgcHVibGljIHdpdGhMZXZlbChsZXZlbDogU3R5bGVMZXZlbEVudW0pOiBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgICAgICB0aGlzLl9sZXZlbCA9IGxldmVsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIGN1c3RvbSBzaXplIGFuZCByZXR1cm4gdGhpcyBvYmplY3RcbiAgICAgKiBAcGFyYW0gc2l6ZVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoU2l6ZShzaXplOiBTdHlsZVNpemVFbnVtKTogQnV0dG9uU3R5bGVCdWlsZGVyIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHNpemU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHMgdGV4dCBidXR0b24gcHJvcGVydHlcbiAgICAgKiBAcGFyYW0gdGV4dCBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aFRleHRCdXR0b24odGV4dCA9IHRydWUpOiBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgICAgICB0aGlzLl90ZXh0QnV0dG9uID0gdGV4dDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyBvdXRsaW5lIGJ1dHRvbiBwcm9wZXJ0eVxuICAgICAqIEBwYXJhbSBvdXRsaW5lZCBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aE91dGxpbmVkKG91dGxpbmVkID0gdHJ1ZSk6IEJ1dHRvblN0eWxlQnVpbGRlciB7XG4gICAgICAgIHRoaXMuX291dGxpbmVkID0gb3V0bGluZWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHMgcmFpc2VkIGJ1dHRvbiBwcm9wZXJ0eVxuICAgICAqIEBwYXJhbSByYWlzZWQgZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHdpdGhSYWlzZWQocmFpc2VkID0gdHJ1ZSk6IEJ1dHRvblN0eWxlQnVpbGRlciB7XG4gICAgICAgIHRoaXMuX3JhaXNlZCA9IHJhaXNlZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSb3VuZGVkKHJvdW5kZWQgPSB0cnVlKTogQnV0dG9uU3R5bGVCdWlsZGVyIHtcbiAgICAgICAgdGhpcy5fcm91bmRlZCA9IHJvdW5kZWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHMgY3VzdG9tIHN0eWxlIGNsYXNzXG4gICAgICogQHBhcmFtIGN1c3RvbUNsYXNzXG4gICAgICovXG4gICAgcHVibGljIHdpdGhDbGFzcyhjdXN0b21DbGFzczogc3RyaW5nKTogQnV0dG9uU3R5bGVCdWlsZGVyIHtcbiAgICAgICAgdGhpcy5fY2xhc3MgPSBjdXN0b21DbGFzcztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGJ1aWxkKGhhc05vVGl0bGUgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHN0eWxlcyA9IFt0aGlzLmxldmVsVG9TdHlsZUNsYXNzKCksIHRoaXMuc2l6ZVRvU3R5bGVDbGFzcygpLCB0aGlzLl9jbGFzc107XG5cbiAgICAgICAgaWYgKHRoaXMuX3RleHRCdXR0b24pIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKGBwLWJ1dHRvbi10ZXh0YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fb3V0bGluZWQpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKGBwLWJ1dHRvbi1vdXRsaW5lZGApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3JhaXNlZCkge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goYHAtYnV0dG9uLXJhaXNlZGApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChoYXNOb1RpdGxlICYmIHRoaXMuX3JvdW5kZWQgPT0gbnVsbCkgfHwgdGhpcy5fcm91bmRlZCkge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goJ3AtYnV0dG9uLXJvdW5kZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdHlsZXMuam9pbignICcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5KCk6IEJ1dHRvblN0eWxlQnVpbGRlciB7XG4gICAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKCk7XG4gICAgICAgIGJ1aWxkZXIuX2xldmVsID0gdGhpcy5fbGV2ZWw7XG4gICAgICAgIGJ1aWxkZXIuX3NpemUgPSB0aGlzLl9zaXplO1xuICAgICAgICBidWlsZGVyLl90ZXh0QnV0dG9uID0gdGhpcy5fdGV4dEJ1dHRvbjtcbiAgICAgICAgYnVpbGRlci5fb3V0bGluZWQgPSB0aGlzLl9vdXRsaW5lZDtcbiAgICAgICAgYnVpbGRlci5fcmFpc2VkID0gdGhpcy5fcmFpc2VkO1xuICAgICAgICBidWlsZGVyLl9yb3VuZGVkID0gdGhpcy5fcm91bmRlZDtcbiAgICAgICAgYnVpbGRlci5fY2xhc3MgPSB0aGlzLl9jbGFzcztcbiAgICAgICAgcmV0dXJuIGJ1aWxkZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsZXZlbFRvU3R5bGVDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX2xldmVsKSB7XG4gICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgIGNhc2UgU3R5bGVMZXZlbEVudW0uRGVmYXVsdDpcbiAgICAgICAgICAgIGNhc2UgU3R5bGVMZXZlbEVudW0uUHJpbWFyeTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLXByaW1hcnknO1xuICAgICAgICAgICAgY2FzZSBTdHlsZUxldmVsRW51bS5TZWNvbmRhcnk6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1zZWNvbmRhcnknO1xuICAgICAgICAgICAgY2FzZSBTdHlsZUxldmVsRW51bS5JbmZvOlxuICAgICAgICAgICAgICAgIHJldHVybiAncC1idXR0b24taW5mbyc7XG4gICAgICAgICAgICBjYXNlIFN0eWxlTGV2ZWxFbnVtLkhlbHA6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1oZWxwJztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVMZXZlbEVudW0uU3VjY2VzczpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLXN1Y2Nlc3MnO1xuICAgICAgICAgICAgY2FzZSBTdHlsZUxldmVsRW51bS5XYXJuaW5nOlxuICAgICAgICAgICAgICAgIHJldHVybiAncC1idXR0b24td2Fybic7XG4gICAgICAgICAgICBjYXNlIFN0eWxlTGV2ZWxFbnVtLkRhbmdlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLWRhbmdlcic7XG4gICAgICAgICAgICBjYXNlIFN0eWxlTGV2ZWxFbnVtLkNvbnRyYXN0OlxuICAgICAgICAgICAgICAgIHJldHVybiAncC1idXR0b24tY29udHJhc3QnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaXplVG9TdHlsZUNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fc2l6ZSkge1xuICAgICAgICAgICAgY2FzZSBTdHlsZVNpemVFbnVtLkV4dHJhU21hbGw6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdtbmctYnV0dG9uLXhzJztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5TbWFsbDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLXNtJztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5MYXJnZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLWxnJztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5FeHRyYUxhcmdlOlxuICAgICAgICAgICAgICAgIHJldHVybiAnbW5nLWJ1dHRvbi14bCc7XG4gICAgICAgICAgICBjYXNlIFN0eWxlU2l6ZUVudW0uTm9ybWFsOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=","// data providers\nexport * from './data-providers/lookup.data-provider';\nexport * from './data-providers/lookup-data-provider.factory';\n// descriptors\nexport * from './descriptors/action-button.descriptor';\nexport * from './descriptors/button-style.builder';\n// models\nexport * from './models/button.model';\nexport * from './models/empty-value.model';\nexport * from './models/trim.model';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9mb3JtL2FwaS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjO0FBQ2QsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELFNBQVM7QUFDVCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGRhdGEgcHJvdmlkZXJzXG5leHBvcnQgKiBmcm9tICcuL2RhdGEtcHJvdmlkZXJzL2xvb2t1cC5kYXRhLXByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1wcm92aWRlcnMvbG9va3VwLWRhdGEtcHJvdmlkZXIuZmFjdG9yeSc7XG5cbi8vIGRlc2NyaXB0b3JzXG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL2FjdGlvbi1idXR0b24uZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL2J1dHRvbi1zdHlsZS5idWlsZGVyJztcblxuLy8gbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9idXR0b24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZW1wdHktdmFsdWUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdHJpbS5tb2RlbCc7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLWZvcm0tYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZm9ybS9hcGkvc3JjL21lZGl1c2luYy1tbmctY29tbW9ucy1mb3JtLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"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/descriptors/button-style.builder.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 {StyleLevelEnum, StyleSizeEnum} from '@mediusinc/mng-commons/core';\n\nimport {IButtonStyleDescriptor} from '../models/button.model';\n\nexport class ButtonStyleBuilder implements IButtonStyleDescriptor {\n private _level?: StyleLevelEnum;\n private _size?: StyleSizeEnum;\n private _textButton?: boolean;\n private _outlined?: boolean;\n private _raised?: boolean;\n private _rounded?: boolean;\n private _class?: string;\n\n public static from(opts?: IButtonStyleDescriptor): ButtonStyleBuilder {\n const builder = new ButtonStyleBuilder();\n builder._level = opts?.level;\n builder._size = opts?.size;\n builder._textButton = opts?.textButton;\n builder._outlined = opts?.outlined;\n builder._raised = opts?.raised;\n builder._rounded = opts?.rounded;\n builder._class = opts?.class;\n return builder;\n }\n\n public get level() {\n return this._level;\n }\n\n public get size() {\n return this._size;\n }\n\n public get textButton() {\n return this._textButton;\n }\n\n public get outlined() {\n return this._outlined;\n }\n\n public get raised() {\n return this._raised;\n }\n\n public get rounded() {\n return this._rounded;\n }\n\n public get class() {\n return this._class;\n }\n\n /**\n * sets custom action level and returns this object\n * @param level\n */\n public withLevel(level: StyleLevelEnum): ButtonStyleBuilder {\n this._level = level;\n return this;\n }\n\n /**\n * sets custom size and return this object\n * @param size\n */\n public withSize(size: StyleSizeEnum): ButtonStyleBuilder {\n this._size = size;\n return this;\n }\n\n /**\n * sets text button property\n * @param text default true\n */\n public withTextButton(text = true): ButtonStyleBuilder {\n this._textButton = text;\n return this;\n }\n\n /**\n * sets outline button property\n * @param outlined default true\n */\n public withOutlined(outlined = true): ButtonStyleBuilder {\n this._outlined = outlined;\n return this;\n }\n\n /**\n * sets raised button property\n * @param raised default true\n */\n public withRaised(raised = true): ButtonStyleBuilder {\n this._raised = raised;\n return this;\n }\n\n public withRounded(rounded = true): ButtonStyleBuilder {\n this._rounded = rounded;\n return this;\n }\n\n /**\n * sets custom style class\n * @param customClass\n */\n public withClass(customClass: string): ButtonStyleBuilder {\n this._class = customClass;\n return this;\n }\n\n public build(hasNoTitle = false): string {\n const styles = [this.levelToStyleClass(), this.sizeToStyleClass(), this._class];\n\n if (this._textButton) {\n styles.push(`p-button-text`);\n }\n\n if (this._outlined) {\n styles.push(`p-button-outlined`);\n }\n\n if (this._raised) {\n styles.push(`p-button-raised`);\n }\n\n if ((hasNoTitle && this._rounded == null) || this._rounded) {\n styles.push('p-button-rounded');\n }\n\n return styles.join(' ');\n }\n\n public copy(): ButtonStyleBuilder {\n const builder = new ButtonStyleBuilder();\n builder._level = this._level;\n builder._size = this._size;\n builder._textButton = this._textButton;\n builder._outlined = this._outlined;\n builder._raised = this._raised;\n builder._rounded = this._rounded;\n builder._class = this._class;\n return builder;\n }\n\n private levelToStyleClass(): string {\n switch (this._level) {\n case undefined:\n case StyleLevelEnum.Default:\n case StyleLevelEnum.Primary:\n return 'p-button-primary';\n case StyleLevelEnum.Secondary:\n return 'p-button-secondary';\n case StyleLevelEnum.Info:\n return 'p-button-info';\n case StyleLevelEnum.Help:\n return 'p-button-help';\n case StyleLevelEnum.Success:\n return 'p-button-success';\n case StyleLevelEnum.Warning:\n return 'p-button-warn';\n case StyleLevelEnum.Danger:\n return 'p-button-danger';\n case StyleLevelEnum.Contrast:\n return 'p-button-contrast';\n }\n }\n\n private sizeToStyleClass(): string {\n switch (this._size) {\n case StyleSizeEnum.ExtraSmall:\n return 'mng-button-xs';\n case StyleSizeEnum.Small:\n return 'p-button-sm';\n case StyleSizeEnum.Large:\n return 'p-button-lg';\n case StyleSizeEnum.ExtraLarge:\n return 'mng-button-xl';\n case StyleSizeEnum.Normal:\n default:\n return '';\n }\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';\nexport * from './descriptors/button-style.builder';\n\n// models\nexport * from './models/button.model';\nexport * from './models/empty-value.model';\nexport * from './models/trim.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEM,MAAO,sBACT,SAAQ,gBAA8C,CAAA;AAKtD,IAAA,WAAA,CAAmB,WAAyB,EAAA;QACxC,KAAK,CAAC,WAAW,CAAC;AAHZ,QAAA,IAAA,CAAA,OAAO,GAAmE,MAAM,EAAE;IAI5F;AAEA,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,OAAO;IACvB;AAEA,IAAA,UAAU,CAAC,EAAkE,EAAA;AACzE,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,QAAA,OAAO,IAAI;IACf;AACH;;ACfD;;;;;;;;;AASG;AACG,SAAU,kBAAkB,CAMhC,IAKD,EAAA;AACG,IAAA,OAAO,IAAI,sBAAsB,CAA+C,IAAI,EAAE,OAAuB,CAAC;AAClH;;MC1Ba,sBAAsB,CAAA;AAYxB,IAAA,SAAS,CAAC,KAAqB,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,OAAO,IAAI;IACf;IAEO,QAAQ,CAAC,IAAmB,EAAE,YAA+B,EAAA;AAChE,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY;AACjC,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,SAAS,CAAC,KAA8B,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,SAAS,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,OAAO,IAAI;IACf;IAEO,WAAW,CAAC,OAAsB,EAAE,QAA8C,EAAA;AACrF,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,IAAI,KAAK;AACzC,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACtB;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;AAEA,IAAA,IAAW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,aAAa;IAC7B;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;IAC3B;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACtB;AAEA,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ;IACxB;AAEA,IAAA,IAAW,eAAe,GAAA;QACtB,OAAO,IAAI,CAAC,gBAAgB;IAChC;IAEO,IAAI,GAAA;AACP,QAAA,MAAM,UAAU,GAAG,IAAI,sBAAsB,EAAE;AAC/C,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/B,QAAA,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC7B,QAAA,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;QAC7C,UAAU,CAAC,WAAW,GAAG,EAAC,GAAG,IAAI,CAAC,WAAW,EAAC;AAC9C,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/B,QAAA,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AACnC,QAAA,OAAO,UAAU;IACrB;AACH;;MC3EY,kBAAkB,CAAA;IASpB,OAAO,IAAI,CAAC,IAA6B,EAAA;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE;AACxC,QAAA,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK;AAC5B,QAAA,OAAO,CAAC,KAAK,GAAG,IAAI,EAAE,IAAI;AAC1B,QAAA,OAAO,CAAC,WAAW,GAAG,IAAI,EAAE,UAAU;AACtC,QAAA,OAAO,CAAC,SAAS,GAAG,IAAI,EAAE,QAAQ;AAClC,QAAA,OAAO,CAAC,OAAO,GAAG,IAAI,EAAE,MAAM;AAC9B,QAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,EAAE,OAAO;AAChC,QAAA,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK;AAC5B,QAAA,OAAO,OAAO;IAClB;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACtB;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;AAEA,IAAA,IAAW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW;IAC3B;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;IACzB;AAEA,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,OAAO;IACvB;AAEA,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ;IACxB;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACtB;AAEA;;;AAGG;AACI,IAAA,SAAS,CAAC,KAAqB,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;AACI,IAAA,QAAQ,CAAC,IAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;IACI,cAAc,CAAC,IAAI,GAAG,IAAI,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;IACI,YAAY,CAAC,QAAQ,GAAG,IAAI,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;IACI,UAAU,CAAC,MAAM,GAAG,IAAI,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,OAAO,IAAI;IACf;IAEO,WAAW,CAAC,OAAO,GAAG,IAAI,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;AACI,IAAA,SAAS,CAAC,WAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,WAAW;AACzB,QAAA,OAAO,IAAI;IACf;IAEO,KAAK,CAAC,UAAU,GAAG,KAAK,EAAA;AAC3B,QAAA,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;AAE/E,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,MAAM,CAAC,IAAI,CAAC,CAAA,aAAA,CAAe,CAAC;QAChC;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,MAAM,CAAC,IAAI,CAAC,CAAA,iBAAA,CAAmB,CAAC;QACpC;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,MAAM,CAAC,IAAI,CAAC,CAAA,eAAA,CAAiB,CAAC;QAClC;AAEA,QAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;AACxD,YAAA,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACnC;AAEA,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3B;IAEO,IAAI,GAAA;AACP,QAAA,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE;AACxC,QAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC5B,QAAA,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC1B,QAAA,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;AACtC,QAAA,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAClC,QAAA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC9B,QAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAChC,QAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC5B,QAAA,OAAO,OAAO;IAClB;IAEQ,iBAAiB,GAAA;AACrB,QAAA,QAAQ,IAAI,CAAC,MAAM;AACf,YAAA,KAAK,SAAS;YACd,KAAK,cAAc,CAAC,OAAO;YAC3B,KAAK,cAAc,CAAC,OAAO;AACvB,gBAAA,OAAO,kBAAkB;YAC7B,KAAK,cAAc,CAAC,SAAS;AACzB,gBAAA,OAAO,oBAAoB;YAC/B,KAAK,cAAc,CAAC,IAAI;AACpB,gBAAA,OAAO,eAAe;YAC1B,KAAK,cAAc,CAAC,IAAI;AACpB,gBAAA,OAAO,eAAe;YAC1B,KAAK,cAAc,CAAC,OAAO;AACvB,gBAAA,OAAO,kBAAkB;YAC7B,KAAK,cAAc,CAAC,OAAO;AACvB,gBAAA,OAAO,eAAe;YAC1B,KAAK,cAAc,CAAC,MAAM;AACtB,gBAAA,OAAO,iBAAiB;YAC5B,KAAK,cAAc,CAAC,QAAQ;AACxB,gBAAA,OAAO,mBAAmB;;IAEtC;IAEQ,gBAAgB,GAAA;AACpB,QAAA,QAAQ,IAAI,CAAC,KAAK;YACd,KAAK,aAAa,CAAC,UAAU;AACzB,gBAAA,OAAO,eAAe;YAC1B,KAAK,aAAa,CAAC,KAAK;AACpB,gBAAA,OAAO,aAAa;YACxB,KAAK,aAAa,CAAC,KAAK;AACpB,gBAAA,OAAO,aAAa;YACxB,KAAK,aAAa,CAAC,UAAU;AACzB,gBAAA,OAAO,eAAe;YAC1B,KAAK,aAAa,CAAC,MAAM;AACzB,YAAA;AACI,gBAAA,OAAO,EAAE;;IAErB;AACH;;ACxLD;;ACAA;;AAEG;;;;"}